henryruhs 6e91bddfb0 Reuse the decoded window frame as the swap canvas
process_temp_frame read the target frame twice per output frame: once from
the video (the detection window) and once from the extracted temp PNG (the
swap canvas). They are the same frame N. The window centre is already decoded
in the reader, so use it as the canvas and only fall back to the temp PNG when
the reader resolution differs from the temp resolution (scaled output).

Removes one full-frame decode per output frame. AV1 ~22 -> ~26 fps and
H.264 ~20 -> ~23 fps -- matching and slightly beating 3.6.1, because a
frame copy is cheaper than a PNG decode. The canvas now comes from the raw
pipe decode instead of the PNG decode of the same frame (sub-visual ~1 LSB
difference in passthrough regions); detection is unchanged.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-22 10:31:11 +02:00
2026-06-30 15:12:26 +02:00
2026-06-30 15:00:02 +02:00
2025-10-29 11:51:42 +01:00
2023-08-19 23:52:51 +02:00
2025-04-28 10:03:25 +02:00
2025-11-03 14:05:15 +01:00
2025-04-28 10:03:25 +02:00
2026-03-16 15:08:43 +01:00
2024-09-20 17:27:50 +02:00
2026-04-01 09:10:08 +02:00
2023-08-19 23:52:51 +02:00
2025-06-16 12:01:11 +02:00
2026-06-30 15:00:02 +02:00

FaceFusion

Industry leading face manipulation platform.

Build Status Coverage Status License

Preview

Preview

Installation

Be aware, the installation needs technical skills and is not recommended for beginners. In case you are not comfortable using a terminal, our Windows Installer and macOS Installer get you started.

Usage

Run the command:

python facefusion.py [commands] [options]

options:
  -h, --help                                      show this help message and exit
  -v, --version                                   show program's version number and exit

commands:
    run                                           run the program
    headless-run                                  run the program in headless mode
    batch-run                                     run the program in batch mode
    force-download                                force automate downloads and exit
    benchmark                                     benchmark the program
    job-list                                      list jobs by status
    job-create                                    create a drafted job
    job-submit                                    submit a drafted job to become a queued job
    job-submit-all                                submit all drafted jobs to become a queued jobs
    job-delete                                    delete a drafted, queued, failed or completed job
    job-delete-all                                delete all drafted, queued, failed and completed jobs
    job-add-step                                  add a step to a drafted job
    job-remix-step                                remix a previous step from a drafted job
    job-insert-step                               insert a step to a drafted job
    job-remove-step                               remove a step from a drafted job
    job-run                                       run a queued job
    job-run-all                                   run all queued jobs
    job-retry                                     retry a failed job
    job-retry-all                                 retry all failed jobs

Documentation

Read the documentation for a deep dive.

S
Description
Languages
Python 99.7%
CSS 0.3%