

To use FaceFusion, install it locally, add a source face photo and a target photo or video, select the person to replace, preview the result, and run the swap. Use reference selection when a video contains several people; start with face swapping alone before adding enhancement or larger output settings.
The official FaceFusion project is the local face-manipulation software at facefusion.io and github.com/facefusion/facefusion. Similarly named cloud face-swap sites are separate products. This distinction matters before you download software, buy an installer, follow setup instructions or evaluate privacy claims.
This guide covers FaceFusion 3.9.0, released September 3, 2026. Commands were checked against the tagged release and official documentation on September 13; this is a setup guide, not a hardware speed benchmark. If you want a browser workflow without managing Python or GPU drivers, try Magic Hour Face Swap.
If you are moving from Roop, read our current Roop AI status guide first. It separates the archived official project from unrelated sites and compares FaceFusion with supported browser and extension workflows.
FaceFusion runs on your computer and opens a browser interface. A local browser interface does not mean your job runs in a cloud service. Installation and model downloads need network access; processing requirements depend on your selected models, video length, resolution and hardware.
Route | What it involves | Choose it when |
|---|---|---|
Official Windows or macOS installer | A paid installer from the FaceFusion project; the shop lists Windows at $20 and macOS at $30 | You want the project's packaged installation route |
Manual source installation | Git, Conda, FFmpeg and the runtime appropriate to your machine | You can maintain a Python environment and diagnose dependencies |
Browser face-swap service | Upload inputs to a hosted tool; review its limits and data policies | You want an occasional swap without local installation |
Use the official FaceFusion shop for packaged installers. Third-party tutorials and launchers can target older releases. Paying for an installer also does not override the licenses of the models you choose.
For manual setup, follow the platform prerequisites for Windows, macOS or Linux. Confirm that Git, Conda and FFmpeg are available before proceeding. An NVIDIA runtime is not an interchangeable choice for Apple or AMD hardware.
Before installing locally, compare the verified free entry points in our best free AI face swap tools guide.
Upload a short clip and a clear replacement portrait to Magic Hour, then inspect identity tracking through motion before processing a longer video.
Try Video Face SwapThe following example uses a fresh environment and folder named facefusion-390 so it can sit beside an existing installation. Run commands one at a time. If either name already exists, choose another unused name consistently; do not overwrite a working setup to follow a tutorial.
If Conda has not been initialized for your terminal, run:
conda init --all
Reopen the terminal if Conda requests it, then create and activate the environment:
conda create --name facefusion-390 python=3.12 pip=25.0
conda activate facefusion-390
These Python and pip versions follow the current installation instructions. Keeping FaceFusion in its own environment avoids changing the runtime of an unrelated project.
git clone --branch 3.9.0 --depth 1 https://github.com/facefusion/facefusion facefusion-390
cd facefusion-390
This selects the 3.9.0 release, rather than whatever happens to be on the development branch later. A detached-HEAD notice is normal when checking out a release tag.
FaceFusion 3.9.0 takes the runtime as a positional argument. The old tutorial's --onnxruntime installation syntax does not match this release's installer source.
Your intended execution route | Installation command | Before using it |
|---|---|---|
CPU |
| Expect workload-dependent processing time |
| Confirm CoreML is available on your supported Mac | |
| Complete the matching accelerator and driver setup | |
| Check the Windows accelerator requirements for your GPU | |
| Follow the supported Linux accelerator configuration | |
| Check platform and hardware compatibility |
Do not run every row. Follow the relevant Windows accelerator or Linux accelerator instructions, then install the runtime for that route. The install command and the provider selected when processing are separate settings.
conda deactivate
conda activate facefusion-390
From the facefusion-390 project directory, run:
python facefusion.py run --open-browser
Keep the terminal open while using the interface. On first use, required model downloads can add time before a preview or job is ready. Read the terminal message before treating a download or dependency error as a failed face swap.
The source and target have different jobs: a sharper source can help supply a clearer identity, but it cannot guarantee recovery of a face that is tiny, hidden or motion-blurred in the target. Choose better inputs before increasing every setting.
Work on one visible problem at a time. The 3.9.0 face-swapper source defaults to hyperswap_1a_256; older tutorials often name INSwapper as the default. New model availability is not evidence that one model wins on every face or clip.
Setting | What it changes | Practical starting point |
|---|---|---|
Face selector mode | Which detected faces receive the swap | One for a single person; reference for a chosen person in a group |
Face selector order | Which face is first in one mode | Choose the order that selects your intended person; do not assume left-to-right |
Reference frame and reference face | The identity used for matching | Pick a frame where that person is clearly visible |
Reference face distance | How permissive identity matching is | Adjust gradually and inspect other people for unintended swaps |
Face mask type | Which parts of the detected face are blended | Inspect box masking first; consider occlusion or region controls for a specific issue |
Face enhancement | Restoration applied to the face | Add only after selection and blending are acceptable; inspect for altered texture or identity |
Pixel boost and output scale | Processing or export resolution settings | Increase only when the smaller result and memory use are acceptable |
One does not mean “track this person throughout the video.” It selects a face using the configured ordering and filters. In a group scene, the first face can change as people move. Reference mode is the more relevant control when you want a particular identity. See the face selector documentation.
Masking also has distinct purposes. Occlusion masking can help retain an object crossing the face; region controls limit which facial regions participate in the blend. Neither is a guaranteed repair for every hand, pair of glasses or extreme angle. Use the preview to judge the actual affected frames. The mask documentation lists supported controls.
Symptom | Check first | Next useful action |
|---|---|---|
Conda activation or Python import fails | Correct environment and project directory | Reactivate the intended environment; read the first relevant terminal error before reinstalling |
CUDA or another GPU provider is unavailable | Installed runtime, hardware support and driver dependencies | Follow the platform accelerator guide; selecting a provider does not install it |
Preview has no swap | Source face, target detection and enabled processors | Try a clearer target frame and confirm face_swapper is enabled |
The wrong person changes | Selector mode, ordering and reference identity | Use a clear reference frame and inspect all people after adjusting matching |
A turned face stops matching | Visibility, blur and the reference identity | Compare nearby frames and a better reference; image-rotation detection angles do not reconstruct a hidden side of a face |
Glasses or a hand become distorted | Mask coverage in the affected frames | Compare occlusion or region settings at that moment, rather than judging only an unobstructed frame |
Skin becomes unnaturally smooth | Enhancement and source image | Reduce or disable enhancement and compare against the unenhanced swap |
Video memory runs out | Additional processors, pixel boost and workload | Reduce the workload and use a conservative memory strategy before increasing threads |
Export lacks audio or has playback trouble | Source audio, output volume, encoder and final file | Check the output settings and terminal log; play the completed file in the intended destination |
There is no defensible universal “best thread count” or completion time. CPU/GPU, runtime, models, frame count and processing settings all matter. The memory controls trade processing speed against memory use; more threads are not automatically faster.
For a broadly compatible MP4 starting point, FaceFusion exposes H.264 through libx264 and AAC audio. AAC is the current default audio encoder, not FLAC. Review output creation settings when changing frame rate, scale, compression or sound. An output-quality slider is an encoding control, not proof of more accurate face identity.
After installation, this single-person example uses files in the current project directory and writes a named MP4 file:
python facefusion.py headless-run --source-paths "source.jpg" --target-path "target.mp4" --output-path "output.mp4" --processors face_swapper --face-selector-mode one
Replace those paths with your files. Quote paths containing spaces. This example does not select a GPU provider or change the model; your available provider and configuration still matter. For a target with several people, configure reference selection instead of assuming one mode will consistently follow the right person.
To see the arguments accepted by your installed version:
python facefusion.py headless-run --help
Headless processing, batch patterns and queued jobs are different workflows. Headless-run handles a specified input/output job. Batch-run accepts source, target and output patterns. The job manager creates and submits jobs, while job-run and job-run-all execute submitted jobs. Use the CLI command reference and job runner documentation for the workflow you need.
This page previously covered 3.6.0. If you followed that version, keep its environment until the new installation opens and exports your representative clip correctly. Create a separate environment for 3.9.0, use the current positional runtime command, and review settings instead of assuming old presets have the same effect.
The 3.9.0 release adds AlphaFace to the face swapper and HRFFA to the face landmarker. That describes new options, not a benchmark result. Check each model's license and your actual output before switching a production workflow.
The source is available without buying the packaged installer. That does not make every supported model unrestricted for commercial use. FaceFusion's license inventory lists OpenRAIL-AS for the application and separate terms for its assets. AlphaFace, INSwapper and ArcFace are listed as non-commercial; HyperSwap uses ResearchRAIL.
Check the complete pipeline you intend to use, including recognition and restoration assets, rather than checking only the visible face-swapper model. You also need permission to use the person's likeness and the source footage. Do not present a face swap as evidence of something a real person said or did.
Choose FaceFusion when local processing, model selection and detailed masking justify maintaining the setup. Choose a hosted tool when completing a photo or video swap matters more than controlling its local runtime.
For a quick comparison, use Magic Hour's photo face swap or video face swap with the same permitted inputs. Check the current preview, free limits and output requirements before upgrading. For several people, start with multiple face swap. Our face-swap app comparison separates photo, video, credit and licensing differences across the main alternatives.
Start with the default face-swapper model and one processor. Use one mode for a single clear person. Use reference selection when several people appear and you must keep replacing the same person. Change one setting at a time and inspect a short representative clip before processing the full video.
Yes. A source photo supplies the replacement identity, while the target can be a photo or video. A clear source cannot recover a target face that is tiny, covered or heavily blurred, so fix the inputs before adding restoration or aggressive settings.
FaceFusion opens a browser interface, but the application and processing run on your computer. If you want a hosted browser workflow without local installation, compare the same permitted inputs in Magic Hour Face Swap.
