# Changelog

### 3.5.4

* Introduce experimental support for the `QNN` execution provider
* Prevent invalid execution cache after onnxruntime update
* Hide `ConnectionResetError` by asyncio under Windows
* Secure `--processors`, `--ui-layouts` and `--job-id` to prevent attacks
* Remove `--insecure` from curl to enforce secure connections

### 3.5.3

* Prevent conflicts with system-wide CUDA under Windows
* Fix extraction of 16-bit video footage like `ProRes`
* Fix webcam stripe artifacts caused by resolution mismatch

### 3.5.2

* Add retry for downloads to handle weak internet connections
* Introduce optional `--force-reinstall` argument to the installer
* Fix dependency resolution by single run installation

### 3.5.1

* Fix side by side preview on images with channel mismatch
* Fix inference crash when using `--execution-devices-ids` argument

### 3.5.0

* Introduce background remover processor
* Add `--face-detector-margin` to detect face beyond the frame
* Add frame processor models `face_dat_x4` and `tghq_face_x8`
* Extend `--output-pattern` for batch-run by source and target values
* Revamp architecture to modular processors and workflows
* Support for the `mpeg` and `mxf` video format

### 3.4.2

* Fix RAM explosion on 4K footage
* Fix broken bounding box

### 3.4.1

* Remove `DirectShow` camera backend on Windows
* Fix output processing with frame enhancer
* Fix side by side preview with frame enhancer

### 3.4.0

* Introduce single pass frame processing
* Process inference on multiple execution devices
* Add side by side preview modes along with preview resolutions
* Introduce `--expression-restorer-areas` argument
* Revamp webcam experience and performance
* Reintroduce the `yunet` face detector
* Add `--voice-extractor-model` argument
* Migrate ArcFace converter to CrossFace models&#x20;
* Balance source and target using the `--face-swapper-weight` argument
* Introduce `--benchmark-mode` to select between warm and cold caches
* Introduce many for the `--face-occluder-model` argument
* Replace output resolution with relative output scale
* Add `libx264rgb` to avoid color shifts due to RGB to YUV conversion
* Add support for  the `wmv` video format
* Experimental support for `MIGraphX` execution provider
* Log model information in debug mode
* Remove `--execution-queue-count` argument
* Remove score and classifier items from the face debugger
* Fix crash on headless-run when passing invalid output path
* Fix demographic filters for mutated faces

### 3.3.2

* Fix broken Gradio dependency
* Make `hyperswap_1a_256` the default face swapper model

### 3.3.1

* Fix the face store causing the second processor to fail

### 3.3.0

* Introduce `hyperswap` models by FaceFusion Labs
* Add more deep swapper models
* Add the `ultra_sharp_2_x4` frame enhancer model
* Boost performance for high resolution processing
* Run multiple NSFW models to prevent false detection
* Use the 68-point face landmarks to create face area masking
* Control lip movements using the  `--lip-syncer-weight` argument
* Enhance read and write reliability for corrupted videos
* Introduce fallback logic for unsupported audio and video encoders
* Fix the `UDP` webcam mode
* Fix bitrate range violation for `libopus`

### 3.2.0

* Introduce `gitee` and `hf-mirror` to bypass China's great firewall
* Enhance NSFW validation using a `YOLO` powered detector
* Reduce choices to installed audio encoders and video encoders
* Introduce `--halt-on-error` for several job commands
* Improve Gradio preview for unplayable videos larger than 512 MB in size
* Make the face selector more responsive to preview changes
* Add `--output-audio-quality` and `--output-audio-volume` arguments
* Use `flac` over `aac` for the `--output-audio-encoder` default
* Extend the face occluder by the `xseg_3` model
* Automatically select the most suitable execution provider
* Enable fast prediction and model caches for CoreML
* Remove `--skip-audio` argument as muted audio yield the same
* Normalize the range of the `--reference-face-distance` argument
* Eliminate broken file format verification in Gradio
* Restore frame colorizer support for CoreML
* Prevent deep swapper and face enhancer errors when offline
* Experimental multi GPU support for OpenVINO
* Fix model size detection of the deep swapper
* Fix inference pool sharing to avoid crash while switching models
* Fix audio restoring when `--output-video-fps` is modified
* Fix progress bar while extracting frames and merging videos
* Fix `webp` and `webm` support under Windows

### 3.1.2

* Fix broken `pydantic` dependency

### 3.1.1

* Restore `fp16` fallbacks for CoreML
* Fix CUDA for the Geforce 16 series

### 3.1.0

* Support for `DeepFaceLive` models
* Fallback aware download providers
* Introduce the `hififace_256` face swapper model
* Polish age modifier processor to reduce halo effect
* Introduce batch processing via the `batch-run` command
* Provide adjustable face occluder and face parser
* Release the popular frame enhancer models
* Add progress bar for extracting and merging of videos
* Modernize the UI to align with the Gradio 5 update
* Provide an option to select the webcam device id
* Introduce `--temp-path` argument to alter temporary resources
* Add video encoder `h264_qsv` and `hevc_qsv`
* Remove obsolete `--skip-download` argument
* Enforce `libvpx-vp9` codec for `webm` processing
* Gracefully close the webcam stream on exit
* Fix inconsistent preview updates
* Fix video length issues when restoring audio
* Fix OpenVINO issue by aliasing `GPU.0` to `GPU`

### 3.0.1

* Fix broken `python-multipart` dependency

### 3.0.0

* Revamp the architecture where everything is a job
* Introduce `pixel boost` to the face swappers
* Add multi angle processing to the face detectors
* Introduce age modifier processor
* Introduce Live Portrait powered expression restorer processor
* Introduce Live Portrait powered face editor processor
* Replace face parser with `bisenet_resnet_34` model
* Release the `GHOST` face swapper models
* Release frame enhancer `real_esrgan_x8` models
* Introduce ArcFace converter models for SimSwap and GHOST
* Introduce offline first assets based on local hash validation
* Replace `gender_age` with superior `fairface` model
* Transfer `order`, `age` and `gender` to the face selector
* Support CUDA 12.4, TensorRT 10.4, OpenVINO 2024.1 and ROCm 6.2
* Provide appropriate error codes in headless mode
* Migrate the CLI to commands along with related arguments
* Introduce custom made `peppa_wutz` face landmark model
* Introduce `--face-landmark-model` argument
* Introduce `--output-audio-encoder` argument
* Add video encoder `h264_videotoolbox` and `hevc_videotoolbox`
* Change the `--face-selector-order` default to large-small
* Replace globals with a context aware inference manager
* Use audio whenever defined via source
* Tweak the UI layout and visual appearance
* Update to latest Gradio 4
* Provide a multi range slider to trim video frames
* Introduce a log level aware terminal component to the UI
* Ensure significantly more accurate benchmark results
* Drop the face detector model `yunet` due low accuracy
* Fix flicker in the face swapper `uniface` model
* Fix threading and preview crashes for ROCm and DirectML
* Fix image quality for `webp` images
* Fix the termination of `ffmpeg` processing

### 2.6.1

* Fix broken `numpy` dependency

### 2.6.0

* Introduce a standalone one-click installer for Windows
* Add the frame enhancer `clear_reality_x4` and `ultra_sharp_x4` model
* Load different `ini` files via the `--config` argument
* Introduce `--open-browser` to open browser once the program is ready
* Introduce `--execution-device-id` to select processing device
* Support for Intel Arc using the OpenVINO execution provider
* Prevent Gradio from converting videos larger than 512 MB in size
* Fix path issues on Windows related to special characters
* Fix issues when finalizing images using temporary files

### 2.5.3

* Disable Gradio Analytics to prevent version alerts

### 2.5.2

* Introduce dynamic frame colorizer sizes
* Validate `facefusion.ini` overrides to prevent crashes
* Remove GPU architecture lookup to support outdated `nvidia-smi`
* Remove `hwaccel` which surprisingly improves the FFmpeg performance
* Fix threading and preview crashes for DirectML
* Fix `--output-video-resolution` from not being applied

### 2.5.1

* Add missing `deoldify` models to the frame colorizer
* Fix over-correction by voice extractor on background audio
* Fix excessive VRAM consumption of the voice extractor
* Fix exception in `conditional_download` while model removal
* Fix stuck processing when using FFmpeg 7

### 2.5.0

* Introduce the frame colorizer using the `ddcolor` and `deoldify` model
* Extract voice from the audio to enhance the lip-syncer quality
* Experimental 5 to 68 face landmark estimation
* Add the face enhancer `gpen_bfr_1024` and `gpen_bfr_2048` model
* Add the frame enhancer `real_esrgan_x2` and `real_hatgan_x4` model
* Introduce `--force-download` to download every model at once
* Migrate the documentation and installer from venv to conda
* Full compatibility with CUDA 12 due `inswapper_128_fp16` model fix
* Fix fps boosting and lowering during video merging
* Fix crashes when using `--skip-download` when models are absent
* Fix `h264_nvenc` and `hevc_nvenc` presets mapping

### 2.4.1

* Conditional download face analyser models
* Prevent download loop when remote is unreachable
* Dynamic `concurrency_count` for ideal Gradio performance
* Monkey patch Gradio for faster preview and stream rendering
* Fix preview for audio to image

### 2.4.0

* Run multiple face detectors simultaneously
* Prevent the 68 to 5 face landmark transformation on low confidence
* Add the high performance `scrfd` face detector model
* Gracefully start and stop processing
* Introduce ONNX powered frame enhancers
* Introduce `--face-landmarker-score` argument
* Render tabs when using multiple UI layouts
* Introduce `--output-image-resolution` argument
* Add more face debugger items and refine their color theme
* Print internal statistics when `--log-level debug` is enabled
* Keep lips over the whole video once lip syncer is enabled
* Restrict resolution upscaling and fps boosting for temporary resources
* Add support for `h264_amf` and `hevc_amf` video encoders
* Change the `--output-path` behaviour and normalization
* Remove `--temp-frame-quality` argument
* Fix green line when using a target with uneven pixels
* Fix preview of lip syncer when using `--trim-frame-start`
* Fix the blank output issue for Geforce GTX 16 series

### 2.3.0

* Introduce the lip-syncer processors using `wave2lip`
* Improve face alignment with 68 to 5 face landmark transformation
* Add face swapper model `uniface_256`
* Add `yoloface` as the default face detector model
* Clear temporary resources before processing
* Add `age` and `gender` to the face debugger items
* Update installer to version specific CUDA and ROCM entries
* Improve the description of the CLI arguments
* Enforce `--output-video-resolution` after upscaling
* Reduce terminal output noise while processing

### 2.2.1

* Replace `restoreformer` with the latest `restoreformer_plus_plus` model
* Fix error when the `facefusion.ini` file is missing a section
* Fix image to image when utilizing `--video-memory-strategy tolerant`

### 2.2.0

* Significant improve the CUDA performance
* Allow default overrides through the `facefusion.ini` file
* Enable faster `inswapper_128_fp16` model as default
* Add `--video-memory-strategy` to trade VRAM usage for speed
* Add `bmp` to the `--temp-frame-format` argument
* Add compatibility with Pinokio 1.0.0
* Display the processing time in the terminal on success
* Introduce `--output-video-preset` which defaults to `veryfast`
* Introduce `--output-video-fps` argument
* Introduce `--output-video-resolution` argument
* Block the preview and webcam until models are fully downloaded
* Rename `--max-memory` to `--system-memory-limit`
* Fix gender detection due incorrect matrix transformation
* Fix render issues when toggling face debugger items repeatedly

### 2.1.3

* Fix installer option for `directml` under Windows

### 2.1.2

* Add CUDA nightly to the installer
* Refresh reference faces on processor change
* Fix rounding issues of number based CLI arguments

### 2.1.1

* Remove falsy clear reference faces in preview

### 2.1.0

* Add face occlusion masking
* Add face region masking with selectable regions
* Average source face from multiple images
* Multi processing aware reference faces
* Only process the reference with face enhancer
* Introduce `debug`, `info`, `warn` and `error` log levels
* Restore face alignment offset from retinaface
* Enforce virtual environment via installer
* Reduce the installer options according to platform
* Add `onnxruntime-rocm` support to installer
* Fix preview updates on slider release
* Fix preview updates on face reference change
* Fix similarity transformation for the face alignment

### 2.0.0

* Add `blendswap_256`, `simswap_256` and `simswap_512_unofficial` to the face swapper
* Add `gpen_bfr_256` and `restoreformer` to the face enhancer
* High performance face detector using the `retinaface` or `yunet` models
* Add ROCm and OpenVINO support to the frame enhancers
* Add support for `webp` images and `webm` videos
* Add the `best-worst` and `worst-best` to `--face-analyser-order`
* Introduce the `face_debugger` to visualize the bounding box, key points and face mask
* Introduce the `facefusion-pinokio` repository to our GitHub organization
* Introduce `--face-mask-blur` and `--face-mask-padding` arguments
* Introduce `--face-detector-size` and `--face-detector-score` arguments
* Extend face selector by `one` mode
* Remove `insightface` dependency due handcrafted frame processing
* Remove `tensorflow` and `PIL` dependencies duo handcrafted frame analysing
* Simplify progress bar to reduce performance hits
* Improve reference face UI for large amount of people
* Webcam mode `udp` and `v4l2` now with solid 25fps at 1080p
* Seamless start and stop the webcam feed
* Rename `--face-recognition` to `--face-selector-mode`
* Rename `--face-analyser-direction` to `--face-analyser-order`
* Fix output validation after processing
* Apply fixed ranges to number based CLI arguments
* Normalize the `--reference-face-distance` calculation to a 0-1 range
* Normalize the `--output-path` even without specified `--source-path`
* Set a 10 seconds timeout for download lookups

### 1.3.1

* Refine `default` and `cpu` choices for the installer

### 1.3.0

* Add high performance `fp16` version to the face swapper
* Add ONNX powered `CodeFormer`, `GFPGAN` and `GPEN` to the face enhancer
* Add `RealESRGAN_x2plus` and `RealESRNet_x4plus` to the frame enhancer
* Implement blending for the face enhancer and frame enhancer
* Enable processors to have options and CLI arguments
* Refine the UI theme to a minimal and flat design
* Enhance the `--help` and documentation with arguments grouping
* Reduce the default image and video quality to 80 percent
* Introduce a new `--torch` argument to the installer
* Improve Apple Silicon performance using the latest `onnxruntime`
* Fix video quality to compression normalization
* Fix stuck downloads caused by the Windows firewall

### 1.2.1

* Perform VRAM clearance after each processing step
* Restrict TensorFlow memory consumption to 512 MB
* Verify the model files before frame processing
* Introduce `--skip-download` to skip automated downloads
* Upgrade to the most recent `onnxruntime` version

### 1.2.0

* Establish realtime webcam performance
* Optimize reruns by caching the face analyser results
* Optimize image read performance through caching
* Resume interrupted asset and model downloads
* Allow passing `--onnxruntime` to `install.py`
* Introduce official `facefusion-colab` repository
* Remove alignments from each UI components
* Introduce checkbox group for the settings
* Set webcam resolution and fps in the UI
* Disallow empty execution providers in the UI
* Fix frame range processing on videos with audio
* Fix `CUDA` and `ROCM` Dockerfile to utilize the GPU
* Fix sorting of temp frame paths

### 1.1.0

* Installer for common and acceleration dependencies
* Built-in webcam suite that supports `udp` and `v4l2` streaming
* Dedicated `--headless` mode
* Add Docker support for ROCM
* Allow adjustment of `--output-path` via the UI
* Enhance output path normalization
* Single warm-up before starting the benchmark suite
* Ability to select runs for the benchmark suite
* Enable benchmarking with partial updates
* Implement a fully event-driven UI for super responsiveness
* Add a max memory slider to select free RAM
* Implement conditional UI based on target media type
* Introduce `--output-image-quality` option for image output
* Fix `crf` range for `libvpx` video encoder
* Fix `detect_fps` to work with different encoding

### 1.0.0

* Dynamic UI based on Gradio
* Docker support for CPU and CUDA
* Replace `--many-faces` by `--face-recognition` that takes `reference` and `many` value
* Twin support: swap multiple faces by one face reference
* Introduce `--execution-queue-count` to adjust processing per thread
* Rename `--execution-threads` to `--execution-thread-count`
* Global options direction, age and gender for face analyser
* Blur preview and processing hold when NSFW content has been detected
* Flip the quality best to worse from 0-100 to 100-0
* Trim video via `trim-frame-start` and `trim-frame-end`
* Built-in benchmark suite
* Intensive codebase refactoring


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.facefusion.io/3.5.4/introduction/changelog.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
