From 13761af0446a8b13a057604676767810d96e31a6 Mon Sep 17 00:00:00 2001 From: Henry Ruhs Date: Fri, 20 Sep 2024 17:27:50 +0200 Subject: [PATCH] 3.0.0 (#748) * Cleanup after age modifier PR * Cleanup after age modifier PR * Use OpenVino 2024.2.0 for installer * Prepare 3.0.0 for installer * Fix benchmark suite, Introduce sync_item() for state manager * Fix lint * Render slide preview also in lower res * Lower thread and queue count to avoid false usage * Fix spacing * Feat/jobs UI (#627) * Jobs UI part1 * Change naming * Jobs UI part2 * Jobs UI part3 * Jobs UI part4 * Jobs UI part4 * Jobs UI part5 * Jobs UI part6 * Jobs UI part7 * Jobs UI part8 * Jobs UI part9 * Jobs UI part10 * Jobs UI part11 * Jobs UI part12 * Fix rebase * Jobs UI part13 * Jobs UI part14 * Jobs UI part15 * changes (#626) * Remove useless ui registration * Remove useless ui registration * move job_list.py replace [0] with get_first() * optimize imports * fix date None problem add test job list * Jobs UI part16 * Jobs UI part17 * Jobs UI part18 * Jobs UI part19 * Jobs UI part20 * Jobs UI part21 * Jobs UI part22 * move job_list_options * Add label to job status checkbox group * changes * changes --------- Co-authored-by: Harisreedhar <46858047+harisreedhar@users.noreply.github.com> * Update some dependencies * UI helper to convert 'none' * validate job (#628) * changes * changes * add test * changes * changes * Minor adjustments * Replace is_json with is_file * Handle empty and invalid json in job_list * Handle empty and invalid json in job_list * Handle empty and invalid json in job_list * Work on the job manager UI * Cosmetic changes on common helper * Just make it work for now * Just make it work for now * Just make it work for now * Streamline the step index lookups * Hide footer * Simplify instant runner * Simplify instant runner UI and job manager UI * Fix empty step choices * Fix empty step choices * Fix none values in UI * Rework on benchmark (add warmup) and job list * Improve ValueAndUnit * Add step 1 of x output * Cosmetic changes on the UI * Fix invalid job file names * Update preview * Introducing has_step() and sorting out insert behaviour * Introducing has_step() and sorting out insert behaviour * Add [ none ] to some job id dropdowns * Make updated dropdown values kinda perfect * Make updated dropdown values kinda perfect * Fix testing * Minor improvement on UI * Fix false config lookup * Remove TensorRT as our models are not made for it * Feat/cli commands second try rev2 (#640) * Refactor CLI to commands * Refactor CLI to commands part2 * Refactor CLI to commands part3 * Refactor CLI to commands part4 * Rename everything to facefusion.py * Refactor CLI to commands part5 * Refactor CLI to commands part6 * Adjust testing * Fix lint * Fix lint * Fix lint * Refactor CLI to commands part7 * Extend State typing * Fix false config lookup, adjust logical orders * Move away from passing program part1 * Move away from passing program part2 * Move away from passing program part3 * Fix lint * Move away from passing program part4 * ui-args update * ui-args update * ui-args update * temporary type fix * Move away from passing program part5 * remove unused * creates args.py * Move away from passing program part6 * Move away from passing program part7 --------- Co-authored-by: Harisreedhar <46858047+harisreedhar@users.noreply.github.com> * Minor optimizations * Update commands in README * Fix job-retry command * Fix multi runs via UI * add more job keys * Cleanup codebase * One method to create inference session (#641) * One method to create inference session * Remove warnings, as there are none * Remember job id during processing * Fix face masker config block * Change wording * Prevent age modifier from using CoreML * add expression restorer (#642) * add expression restorer * fix import * fix lint * changes * changes * changes * Host the final model for expression restorer * Insert step on the given index * UI workover (#644) * UI workover part1 * Introduce ComponentOptions * Only set Media components to None when visibility changes * Clear static faces and reference faces between step processing * Minor changes * Minor changes * Fix testing * Enable test_sanitize_path_for_windows (#646) * Dynamic download during job processing (#647) * Fix face masker UI * Rename run-headless to headless-run * Feat/split frame processor UI (#649) * Split frame processor UI * Split frame processor UI part3, Refactor get_model_initializer * Split frame processor UI part4 * Feat/rename frame processors (#651) * Rename frame processors * Rename frame processors part2 * Fix imports  Conflicts:  facefusion/uis/layouts/benchmark.py  facefusion/uis/layouts/default.py * Fix imports * Cosmetic changes * Fix multi threading for ROCm * Change temp frames pattern * Adjust terminal help * remove expression restorer (#653) * Expression restorer as processor (#655) * add expression restorer * changes * Cleanup code * Add TensorRT support back * Add TensorRT support back * Add TensorRT support back * changes (#656) * Change minor wording * Fix face enhancer slider * Add more typing * Fix expression-restorer when using trim (#659) * changes * changes * Rework/model and inference pool part2 (#660) * Rework on model and inference pool * Introduce inference sources and pools part1 * Introduce inference sources and pools part2 * Introduce inference sources and pools part3 * Introduce inference sources and pools part4 * Introduce inference sources and pools part5 * Introduce inference sources and pools part6 * Introduce inference sources and pools part6 * Introduce inference sources and pools part6 * Introduce inference sources and pools part7 * Introduce inference sources and pools part7 * Introduce inference sources and pools part8 * Introduce inference sources and pools part9 * Introduce inference sources and pools part10 * Introduce inference sources and pools part11 * Introduce inference sources and pools part11 * Introduce inference sources and pools part11 * Introduce inference sources and pools part12 * Reorganize the face masker UI * Fix trim in UI * Feat/hashed sources (#668) * Introduce source helper * Remove post_check() and just use process_manager * Remove post_check() part2 * Add hash based downloads * Add hash based downloads part2 * Add hash based downloads part3 * Add hash based downloads part4 * Add hash based downloads part5 * Add hash based downloads part6 * Add hash based downloads part7 * Add hash based downloads part7 * Add hash based downloads part8 * Remove print * Prepare 3.0.0 release * Fix UI * Release the check when really done * Update inputs for live portrait * Update to 3.0.0 releases, extend download postfix * Move files to the right place * Logging for the hash and source validation * Changing logic to handle corrupt sources * Fix typo * Use names over get_inputs(), Remove set_options() call * Age modifier now works for CoreML too * Update age_modifier.py * Add video encoder h264_videotoolbox and hevc_videotoolbox * Face editor add eye gaze & remove open factor sliders (#670) * changes * add eye gaze * changes * cleanup * add eyebrow control * changes * changes * Feat/terminal UI (#671) * Introduce terminal to the UI * Introduce terminal to the UI part2 * Introduce terminal to the UI part2 * Introduce terminal to the UI part2 * Calc range step to avoid weird values * Use Sequence for ranges * Use Sequence for ranges * changes (#673) * Use Sequence for ranges * Finalize terminal UI * Finalize terminal UI * Webcam cosmetics, Fix normalize fps to accept int * Cosmetic changes * Finalize terminal UI * Rename leftover typings * Fix wording * Fix rounding in metavar * Fix rounding in metavar * Rename to face classifier * Face editor lip moves (#677) * changes * changes * changes * Fix rounding in metavar * Rename to face classifier * changes * changes * update naming --------- Co-authored-by: henryruhs * Fix wording * Feat/many landmarker + face analyser breakdown (#678) * Basic multi landmarker integration * Simplify some method names * Break into face_detector and face_landmarker * Fix cosmetics * Fix testing * Break into face_attributor and face_recognizer * Clear them all * Clear them all * Rename to face classifier * Rename to face classifier * Fix testing * Fix stuff * Add face landmarker model to UI * Add face landmarker model to UI part2 * Split the config * Split the UI * Improvement from code review * Improvement from code review * Validate args also for sub parsers * Remove clear of processors in process step * Allow finder control for the face editor * Fix lint * Improve testing performance * Remove unused file, Clear processors from the UI before job runs * Update the installer * Uniform set handler for swapper and detector in the UI * Fix example urls * Feat/inference manager (#684) * Introduce inference manager * Migrate all to inference manager * clean ini * Introduce app context based inference pools * Fix lint * Fix typing * Adjust layout * Less border radius * Rename app context names * Fix/live portrait directml (#691) * changes (#690) * Adjust naming * Use our assets release * Adjust naming --------- Co-authored-by: Harisreedhar <46858047+harisreedhar@users.noreply.github.com> * Add caches to gitignore * Update dependencies and drop CUDA 11.8 support (#693) * Update dependencies and drop CUDA 11.8 support * Play save and keep numpy 1.x.x * Improve TensorRT optimization * changes * changes * changes * changes * changes * changes * changes * changes * changes * Reuse inference sessions (#696) * Fix force-download command * Refactor processors to forward() (#698) * Install tensorrt when selecting cuda * Minor changes * Use latest numpy * Fix limit system memory * Implement forward() for every inference (#699) * Implement forward() for every inference * Implement forward() for every inference * Implement forward() for every inference * Implement forward() for every inference * changes * changes * changes * changes * Feat/fairface (#710) * Replace gender_age model with fair face (#709) * changes * changes * changes * age dropdown to range-slider * Cleanup code * Cleanup code --------- Co-authored-by: Harisreedhar <46858047+harisreedhar@users.noreply.github.com> * Extend installer to set library paths for cuda and tensorrt (#707) * Extend installer to set library paths for cuda and tensorrt * Add refresh of conda env * Remove invalid commands * Set the conda env according to operating system * Update for ROCm 6.2 * fix installer * Aktualisieren von installer.py * Add missing face selector keys * Try to keep original LD_LIBRARY_PATH * windows support installer * Final touch to the installer * Remove spaces * Simplidy collect_model_downloads() * Fix force download for once and forever * Housekeeping (#715) * changes * changes * changes * Fix performance part1 * Fix mixed states (#689) * Fix mixed states * Add missing sync for job args * Move UnionStateXXX to base typing * Undo * Remove UnionStateXXX * Fix app context performance lookup (#717) * Restore performance for inswapper * Mover upper() to the logger * Undo debugging * Move TensorRT installation to docs * Sort out log level typing, Add log level UI dropdown (#719) * Fix inference pool part1 * Validate conda library paths existence * Default face selector order to large-small * Fix inference pool context according to execution provider (#720) * Fix app context under Windows * CUDA and TensorRT update for the installer * Remove concept of static processor modules * Revert false commit * Change event order makes a difference * Fix multi model context in inference pool (#721) * Fix multi model context in inference pool * Fix multi model context in inference pool part2 * Use latest gradio to avoid fastapi bug * Rework on the Windows Installer * Use embedding converter (#724) * changes (#723) * Upload models to official assets repo --------- Co-authored-by: Harisreedhar <46858047+harisreedhar@users.noreply.github.com> * Rework on the Windows Installer part2 * Resolve subprocess calls (#726) * Experiment * Resolve subprocess calls to cover edge cases like broken PATH * Adjust wording * Simplify code * Rework on the Windows Installer part3 * Rework on the Windows Installer part4 * Numpy fix for older onnxruntime * changes (#729) * Add space * Add MacOS installer * Use favicon * Fix disabled logger * Layout polishing (#731) * Update dependencies, Adjust many face landmarker logic * Cosmetics changes * Should be button * Introduce randomized action button * Fix update of lip syncer and expression restorer * Stop sharing inference session this prevents flushing VRAM * Fix test * Fix urls * Prepare release * Vanish inquirer * Sticky preview does not work on portrait images * Sticky preview only for landscape images and videos * remove gradio tunnel env * Change wording and deeplinks * increase peppa landmark score offset * Change wording * Graceful exit install.py * Just adding a required * Cannot use the exit_helper * Rename our model * Change color of face-landmark-68/5 * Limit liveportrait (#739) * changes * changes * changes * Cleanup * Cleanup --------- Co-authored-by: harisreedhar Co-authored-by: Harisreedhar <46858047+harisreedhar@users.noreply.github.com> * limit expression restorer * change expression restorer 0-100 range * Use 256x icon * changes * changes * changes * changes * Limit face editor rotation (#745) * changes (#743) * Finish euler methods --------- Co-authored-by: Harisreedhar <46858047+harisreedhar@users.noreply.github.com> * Use different coveralls badge * Move about wording * Shorten scope in the logger * changes * changes * Shorten scope in the logger * fix typo * Simplify the arcface converter names * Update preview --------- Co-authored-by: Harisreedhar <46858047+harisreedhar@users.noreply.github.com> Co-authored-by: harisreedhar --- .flake8 | 7 +- .github/preview.png | Bin 1217440 -> 1310059 bytes .github/workflows/ci.yml | 29 +- .gitignore | 2 + .install/LICENSE.md | 3 - .install/facefusion.ico | Bin 16958 -> 0 bytes .install/facefusion.nsi | 183 ----- README.md | 102 +-- facefusion.ico | Bin 0 -> 270398 bytes facefusion.ini | 75 +- run.py => facefusion.py | 4 + facefusion/app_context.py | 16 + facefusion/args.py | 118 +++ facefusion/audio.py | 18 +- facefusion/choices.py | 67 +- facefusion/common_helper.py | 46 +- facefusion/config.py | 6 +- facefusion/content_analyser.py | 100 +-- facefusion/core.py | 692 +++++++++--------- facefusion/date_helper.py | 28 + facefusion/download.py | 109 ++- facefusion/execution.py | 67 +- facefusion/exit_helper.py | 24 + facefusion/face_analyser.py | 660 +++-------------- facefusion/face_classifier.py | 128 ++++ facefusion/face_detector.py | 309 ++++++++ facefusion/face_helper.py | 125 ++-- facefusion/face_landmarker.py | 217 ++++++ facefusion/face_masker.py | 178 +++-- facefusion/face_recognizer.py | 81 ++ facefusion/face_selector.py | 91 +++ facefusion/face_store.py | 11 +- facefusion/ffmpeg.py | 124 ++-- facefusion/filesystem.py | 131 ++-- facefusion/globals.py | 60 -- facefusion/hash_helper.py | 32 + facefusion/inference_manager.py | 75 ++ facefusion/installer.py | 117 +-- .../{processors/frame => jobs}/__init__.py | 0 facefusion/jobs/job_helper.py | 15 + facefusion/jobs/job_list.py | 34 + facefusion/jobs/job_manager.py | 263 +++++++ facefusion/jobs/job_runner.py | 106 +++ facefusion/jobs/job_store.py | 27 + facefusion/json.py | 22 + facefusion/logger.py | 78 +- facefusion/metadata.py | 12 +- facefusion/normalizer.py | 22 +- facefusion/process_manager.py | 2 +- facefusion/processors/choices.py | 46 ++ facefusion/processors/core.py | 110 +++ facefusion/processors/frame/choices.py | 16 - facefusion/processors/frame/core.py | 116 --- facefusion/processors/frame/globals.py | 14 - .../processors/frame/modules/face_debugger.py | 192 ----- .../processors/frame/modules/face_enhancer.py | 301 -------- .../processors/frame/modules/face_swapper.py | 369 ---------- .../frame/modules/frame_colorizer.py | 241 ------ .../frame/modules/frame_enhancer.py | 263 ------- .../processors/frame/modules/lip_syncer.py | 260 ------- facefusion/processors/frame/typings.py | 41 -- facefusion/processors/live_portrait.py | 101 +++ .../{frame => }/modules/__init__.py | 0 facefusion/processors/modules/age_modifier.py | 268 +++++++ .../processors/modules/expression_restorer.py | 290 ++++++++ .../processors/modules/face_debugger.py | 222 ++++++ facefusion/processors/modules/face_editor.py | 528 +++++++++++++ .../processors/modules/face_enhancer.py | 397 ++++++++++ facefusion/processors/modules/face_swapper.py | 564 ++++++++++++++ .../processors/modules/frame_colorizer.py | 283 +++++++ .../processors/modules/frame_enhancer.py | 415 +++++++++++ facefusion/processors/modules/lip_syncer.py | 270 +++++++ facefusion/processors/pixel_boost.py | 18 + facefusion/processors/typing.py | 125 ++++ facefusion/program.py | 234 ++++++ facefusion/program_helper.py | 45 ++ facefusion/state_manager.py | 38 + facefusion/statistics.py | 38 +- facefusion/temp_helper.py | 60 ++ facefusion/thread_helper.py | 8 +- facefusion/typing.py | 246 ++++++- facefusion/uis/assets/fixes.css | 7 - facefusion/uis/assets/overrides.css | 82 ++- facefusion/uis/choices.py | 6 +- facefusion/uis/components/about.py | 34 +- .../uis/components/age_modifier_options.py | 63 ++ facefusion/uis/components/benchmark.py | 89 ++- .../uis/components/benchmark_options.py | 3 +- facefusion/uis/components/common_options.py | 33 +- facefusion/uis/components/execution.py | 35 +- .../uis/components/execution_queue_count.py | 13 +- .../uis/components/execution_thread_count.py | 14 +- .../components/expression_restorer_options.py | 63 ++ facefusion/uis/components/face_analyser.py | 123 ---- .../uis/components/face_debugger_options.py | 39 + facefusion/uis/components/face_detector.py | 85 +++ .../uis/components/face_editor_options.py | 271 +++++++ .../uis/components/face_enhancer_options.py | 63 ++ facefusion/uis/components/face_landmarker.py | 50 ++ facefusion/uis/components/face_masker.py | 106 +-- facefusion/uis/components/face_selector.py | 151 ++-- .../uis/components/face_swapper_options.py | 63 ++ .../uis/components/frame_colorizer_options.py | 77 ++ .../uis/components/frame_enhancer_options.py | 63 ++ facefusion/uis/components/frame_processors.py | 40 - .../components/frame_processors_options.py | 216 ------ facefusion/uis/components/instant_runner.py | 110 +++ facefusion/uis/components/job_list.py | 50 ++ facefusion/uis/components/job_list_options.py | 35 + facefusion/uis/components/job_manager.py | 184 +++++ facefusion/uis/components/job_runner.py | 136 ++++ .../uis/components/lip_syncer_options.py | 46 ++ facefusion/uis/components/memory.py | 17 +- facefusion/uis/components/output.py | 84 +-- facefusion/uis/components/output_options.py | 120 +-- facefusion/uis/components/preview.py | 202 ++--- facefusion/uis/components/processors.py | 40 + facefusion/uis/components/source.py | 29 +- facefusion/uis/components/target.py | 53 +- facefusion/uis/components/temp_frame.py | 15 +- facefusion/uis/components/terminal.py | 82 +++ facefusion/uis/components/trim_frame.py | 89 +-- facefusion/uis/components/ui_workflow.py | 21 + facefusion/uis/components/webcam.py | 79 +- facefusion/uis/components/webcam_options.py | 1 + facefusion/uis/core.py | 65 +- facefusion/uis/layouts/benchmark.py | 64 +- facefusion/uis/layouts/default.py | 64 +- facefusion/uis/layouts/jobs.py | 35 + facefusion/uis/layouts/webcam.py | 38 +- facefusion/uis/overrides.py | 8 +- facefusion/uis/typing.py | 107 ++- facefusion/uis/ui_helper.py | 26 + facefusion/vision.py | 18 +- facefusion/voice_extractor.py | 108 +-- facefusion/wording.py | 283 ++++--- install.py | 4 +- requirements.txt | 17 +- tests/helper.py | 44 ++ tests/test_audio.py | 16 +- tests/test_cli_age_modifier.py | 38 + tests/test_cli_expression_restorer.py | 38 + tests/test_cli_face_debugger.py | 32 +- tests/test_cli_face_editor.py | 39 + tests/test_cli_face_enhancer.py | 33 +- tests/test_cli_face_swapper.py | 32 +- tests/test_cli_frame_colorizer.py | 34 +- tests/test_cli_frame_enhancer.py | 32 +- tests/test_cli_job_manager.py | 204 ++++++ tests/test_cli_job_runner.py | 147 ++++ tests/test_cli_lip_syncer.py | 34 +- tests/test_common_helper.py | 18 +- tests/test_config.py | 1 + tests/test_date_helper.py | 15 + tests/test_download.py | 13 +- tests/test_execution.py | 21 +- tests/test_face_analyser.py | 108 +-- tests/test_ffmpeg.py | 110 +-- tests/test_filesystem.py | 98 ++- tests/test_inference_pool.py | 29 + tests/test_job_helper.py | 8 + tests/test_job_list.py | 24 + tests/test_job_manager.py | 373 ++++++++++ tests/test_job_runner.py | 228 ++++++ tests/test_json.py | 19 + tests/test_normalizer.py | 16 +- tests/test_process_manager.py | 2 +- tests/test_program_helper.py | 40 + tests/test_temp_helper.py | 33 + tests/test_vision.py | 78 +- tests/test_wording.py | 2 +- 171 files changed, 11598 insertions(+), 5115 deletions(-) mode change 100644 => 100755 .github/preview.png delete mode 100644 .install/LICENSE.md delete mode 100644 .install/facefusion.ico delete mode 100644 .install/facefusion.nsi create mode 100755 facefusion.ico rename run.py => facefusion.py (65%) create mode 100644 facefusion/app_context.py create mode 100644 facefusion/args.py create mode 100644 facefusion/date_helper.py create mode 100644 facefusion/exit_helper.py create mode 100644 facefusion/face_classifier.py create mode 100644 facefusion/face_detector.py create mode 100644 facefusion/face_landmarker.py create mode 100644 facefusion/face_recognizer.py create mode 100644 facefusion/face_selector.py delete mode 100755 facefusion/globals.py create mode 100644 facefusion/hash_helper.py create mode 100644 facefusion/inference_manager.py rename facefusion/{processors/frame => jobs}/__init__.py (100%) create mode 100644 facefusion/jobs/job_helper.py create mode 100644 facefusion/jobs/job_list.py create mode 100644 facefusion/jobs/job_manager.py create mode 100644 facefusion/jobs/job_runner.py create mode 100644 facefusion/jobs/job_store.py create mode 100644 facefusion/json.py create mode 100755 facefusion/processors/choices.py create mode 100644 facefusion/processors/core.py delete mode 100755 facefusion/processors/frame/choices.py delete mode 100644 facefusion/processors/frame/core.py delete mode 100755 facefusion/processors/frame/globals.py delete mode 100755 facefusion/processors/frame/modules/face_debugger.py delete mode 100755 facefusion/processors/frame/modules/face_enhancer.py delete mode 100755 facefusion/processors/frame/modules/face_swapper.py delete mode 100644 facefusion/processors/frame/modules/frame_colorizer.py delete mode 100644 facefusion/processors/frame/modules/frame_enhancer.py delete mode 100755 facefusion/processors/frame/modules/lip_syncer.py delete mode 100644 facefusion/processors/frame/typings.py create mode 100644 facefusion/processors/live_portrait.py rename facefusion/processors/{frame => }/modules/__init__.py (100%) create mode 100755 facefusion/processors/modules/age_modifier.py create mode 100755 facefusion/processors/modules/expression_restorer.py create mode 100755 facefusion/processors/modules/face_debugger.py create mode 100755 facefusion/processors/modules/face_editor.py create mode 100755 facefusion/processors/modules/face_enhancer.py create mode 100755 facefusion/processors/modules/face_swapper.py create mode 100644 facefusion/processors/modules/frame_colorizer.py create mode 100644 facefusion/processors/modules/frame_enhancer.py create mode 100755 facefusion/processors/modules/lip_syncer.py create mode 100644 facefusion/processors/pixel_boost.py create mode 100644 facefusion/processors/typing.py create mode 100755 facefusion/program.py create mode 100644 facefusion/program_helper.py create mode 100644 facefusion/state_manager.py create mode 100644 facefusion/temp_helper.py delete mode 100644 facefusion/uis/assets/fixes.css create mode 100755 facefusion/uis/components/age_modifier_options.py create mode 100755 facefusion/uis/components/expression_restorer_options.py delete mode 100644 facefusion/uis/components/face_analyser.py create mode 100755 facefusion/uis/components/face_debugger_options.py create mode 100644 facefusion/uis/components/face_detector.py create mode 100755 facefusion/uis/components/face_editor_options.py create mode 100755 facefusion/uis/components/face_enhancer_options.py create mode 100644 facefusion/uis/components/face_landmarker.py create mode 100755 facefusion/uis/components/face_swapper_options.py create mode 100755 facefusion/uis/components/frame_colorizer_options.py create mode 100755 facefusion/uis/components/frame_enhancer_options.py delete mode 100644 facefusion/uis/components/frame_processors.py delete mode 100755 facefusion/uis/components/frame_processors_options.py create mode 100644 facefusion/uis/components/instant_runner.py create mode 100644 facefusion/uis/components/job_list.py create mode 100644 facefusion/uis/components/job_list_options.py create mode 100644 facefusion/uis/components/job_manager.py create mode 100644 facefusion/uis/components/job_runner.py create mode 100755 facefusion/uis/components/lip_syncer_options.py create mode 100644 facefusion/uis/components/processors.py create mode 100644 facefusion/uis/components/terminal.py create mode 100644 facefusion/uis/components/ui_workflow.py create mode 100755 facefusion/uis/layouts/jobs.py create mode 100644 facefusion/uis/ui_helper.py create mode 100644 tests/helper.py create mode 100644 tests/test_cli_age_modifier.py create mode 100644 tests/test_cli_expression_restorer.py create mode 100644 tests/test_cli_face_editor.py create mode 100644 tests/test_cli_job_manager.py create mode 100644 tests/test_cli_job_runner.py create mode 100644 tests/test_date_helper.py create mode 100644 tests/test_inference_pool.py create mode 100644 tests/test_job_helper.py create mode 100644 tests/test_job_list.py create mode 100644 tests/test_job_manager.py create mode 100644 tests/test_job_runner.py create mode 100644 tests/test_json.py create mode 100644 tests/test_program_helper.py create mode 100644 tests/test_temp_helper.py diff --git a/.flake8 b/.flake8 index 1ca6ddab..eac4a0d7 100644 --- a/.flake8 +++ b/.flake8 @@ -1,3 +1,6 @@ [flake8] -select = E3, E4, F -per-file-ignores = facefusion/core.py:E402 +select = E3, E4, F, I1, I2 +per-file-ignores = facefusion.py:E402, install.py:E402 +plugins = flake8-import-order +application_import_names = facefusion +import-order-style = pycharm diff --git a/.github/preview.png b/.github/preview.png old mode 100644 new mode 100755 index c311234bee2f5ed48440e355be5a41f1d00b38e0..ee3161111819620b6c2a5836a534de80efbc7bbe GIT binary patch literal 1310059 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

a5BuY~`kK76hfgNEP@_^~{tQ@$Yr2K>p>v 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∓3*BrBtiyRp~w7e=^jVP5x=KsC`C_TQ*Pt6j4r6BMA|@d z*gGtS#RpDw53gxHb9yg*PTH(($%I1a)DPKG1jy3TvZ6w^+7;CVc~g-f*Vi^hf~>2s zxguXk`vnO={T8(u!ew54U)Nk*)_kSyPTxZ0ko1&%^ys_O=<6GJPtzxelbHg&sX@Xp zojEz*PDzF*RXYVT?7G^qskROAC{G;Kph)nvrvJb@fAw8gN2W5x#r`8pN?>KbZZrm>c zG6v*{mI%1g34+|Z1Cf*WF=tMpR|i}lZaMI}))7;=wwRTIRO36>(Ysf$+dSU zK;qTv&v@j}SN$pda%w!}LElZRVdp{`_1xy~hycN?vo-(*cYwoPV^)_8O*qARb;1Xk zB)w$z6<&w@8Y>OyQIUbv&T);W+&`%ZvtGO{0)%^*q3%&rr5o1X(NC7W0z#2X>51NC zTqZ?hGuE|Oczw=}i+w@>x+$f=INlM)C8gK$0Yid2u=fBx1Xi{R+?x|=BjT|&qEJ6O$_bIbQ!mMEIXWj zCQ)4Ja$m+e0n#7hnuFLWd!!cuV$z8Y#>2n=WZyfPs&6MMSXayAzao*#B=uiIlWnbP zejki>xz~LMfH;Ob_RjYhy|!487h@O)Brd>4JEGsR#IA83V^GpNd(^W(&XkQ_m)!D; z|BpVHh+tOL{xzD;b|et%JI5MqO6jBTi*1TcEH$ce2svqz!0n6^0jx4< z4ku%Ueako}J$L5em~@)Rw(D@(=zUPx%5jYq?^mqcwYHbc-hSV1SJRJyyc*l{vb$c_ z+{64!-?EoSxw{<3B+TFW;F&&be<;5X36MV&u^&G4Py&Y%IF!Jl1iljzcu)f5AN`UD z5O0X$^~--r9TBk58xbH%ADDBvVt>{@_XZ1~u5X&Xsm=F@V#xBJ=nv4TZ0bq9kWH^Q z4s4#h;nUv~RtCgy$_d@f2WL|Al;@(;$K=%IBQ}T^8x8%J@cDSl8F!tgpg7SYiUkok zYzTW(X>)EZx4-+p{c?NX``_Pw=tn->R#b?3b$M9@E}v|36pG&46p^vj9)0vo+qkjb z{_#Kg=WSW3WnOstk@mUY`n(D#@3kA(Rs?RVZ6ZPNE+n-L-Zd)%I!Sdy>YO=&3n%3T zeq9BVDbzeC00NLxn5#VwUH3r!+z}YCp?h{f8CfBpdD2(u^J9|ZMY(&w@YKcj;!}^b zXC8l4X@ZUmG!+5j!kr>2OqQtdxj@z#c`dRbB@$s;M9h>5Wm8IHS04EQosbvX0!~O< zr6>5H3ZUTP-IAdX7f4q!1YALWM~RRC`jls>BPMv?H9;hKq8%VT)Te2ICbI&Uk3zWU z22M}q!%hemhl~UM3rs#nl!dOLK7_%2012m$s#CHz`2uk?-fk184sYOf2$pOidkn~P zPvZ&M?6VVRj|%a2R5F2M*i(Of9C1wukr)6TikQj44?ra+8qz`a_h`#eMP=-&*2Gao z+uTt|0R5geQ9)WJ(ip+W@Nj+KV3@!qlUb4lMd$H`b#zG8{@^mT&usueL2vj>Ck>}7 z0>A?7hlJ_l=PMfwM&EsX~Q(KMmIQnKuAcRcT6xK zw^`58qmXp!!XP9O)ykEj!VW)(5ADZ+#U%i>9eaSPDj zQ4|Iq#^@Nca94jH6|g_6`WM^!oqktNmW*)|{r z;I*fA0`6;WDvD}lZPkPX5(7uv;h-Bxq0LAi<}|;M^A1rVdXH$3ZkHAm4MMT>OJ^2! zJq6_jMr!U;lVn4>3h=PFaMGmBmtVcCD~O7zv~jvO(FXKmR%3oj5hSGFTG~XvEF()W2qolU8a zw0lo!u|i;DGXXvWe55x%1A6{Iwzy~5RY*)gdBz4KCw2gz`3}NjsfD1Pg$vei< z``AbJFm}EmvX%VM<_lx~*TV{2+|#aI*&UDL

Uo3g0UC5t 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≷<^=6&eqgs?)i-00i;mvJ!5viC;-BpF9lt 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¨0$!Dk^5lT03yc8VGqdn zq3<9-1e)-i9l$0XM)5*TTxcu7?lT9{$NZ9(q zAW@Efc$Jt?aWeSGED5Uj$j_i>Zi$HD7`>&?A5MN=2U)yVChVa^2qp`sL4ia~0obZ= zb8L$Z`tYpl0vMG0L)XpDDZCM(REQZ5XwN|svPUwzBXSIK!{8Y8tK{+90HFF8VVj}N!#0v~M*l3?jfzndW8+);;2htTpN zE%$G0-ft=<{-y}ESd#83Jk?3%!dP+$tfSIZ26arrhycVoRRk9Da+EMw6=GmqfX%kr z_Vd5?d)-^!_U>*+?Qo!ra*b<%0ALR!r{{q|pAa<;MW+Xng9xC3L#ZuoRnEGSpf5;& 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�uN8p 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

SK3C58W^@F${cOEWiud9*1GR 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

d`5<>Y45($Q*NmRMW3DTk8O^Yj>IbM8~I}v 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�krSCjV~{3yzy)SiV9H#C@W0` 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�FZMa;K=@q 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

)it9+)t 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

EuMIc=WjU;~-d%_5E7h)Z>NCY=?TgLUSCM<}K#o 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

VOhOE4-8lz|EQ19yk-x*h1Tv{ElE!nr z?wC`7eYljUPLkLjP)vK)`~qQP6h>uQfZm>c@e+OA>tEYm@v4W~(#7-bh9ftY_m4uM z3E-NR)h`|(CS@$@NJoK{FiWN)Zw|{x%3fas9QWjiWnFJh=TMeZ@h%rK&JA2WH0Ns zDN+3kBtYII0tAA51PJWlV85J?5)7k>#|@FuA$Q74#N}K;Oz?M&tv~Zz4?)LKAky{J z=l<1uCqH}H{JfI*$l4j!oiY+iBLoxc!}V~MGB*Wucs+5ZdgJ8%v{B<>XUsaQ**rdb zDzqglkmv20QqM5MdNVmuSWi8?6aY-xG@8SMZ+45$;TYuH3ZPX42xH}DQw~f{orOHg z5*_J#Mj@xa!>k#&84?^mwK-2+N1pEE*5}wU>pMurUNi7H1cmauCr2_|-ej8>bv8UJ z4}zz47m;DWF6CrHt*tgkIP^wqk~ zig}U$^E#iFMc_byoYBAeg|#*>dA$VD&Y6ivnARo)$nM?K?Vt<=4u}Am(HXc?`oT`Z zS!t{w``6X4Rq~OLzsousQz&9yo*&0goodfMcUndQD?Vo@b*|y{LGG6z~%|3~2kIWbV;3`(y*g%%$RI2@2wdQz<%t{*u zzt$O+y6YH9J%Gm6(>=kpzjNlee>BDWC+D4ypDH&!b&veB=cnidM#iN+8$4QsM1jx= zfyI5sjrX_>h??F5gXfeL@*?ML-BsM|VH-v}ZSAQ)>#w0j)vczAiVQE=N_$J^=|rmK zWtV*(qkgwZQw9_2??&f#l6t=6gQmB$k1uj3^Xqc)Of|?I`P{>U(e|GE#H)re;0(7R zQ|?KpP67B?xp^|2e?Ai<>9oaZkJU;$$HKt zk3kG-vLn-9lQCr|GfcG3UaJ*dV=$_BbfUvvsgyJ5bH*!wXTGZ^Zf@4ruy4JQ10#dc z@vcGaWRi73uP4gSncBlu4LV!n*~e& zf|1`RefRhNo%WkbY)*KokIBO3&41)iw7384Pqq8*x$}y){oDWW z?)GQD<+}z6(?>l(`h$P#2Y<|9(vo70zf4KYAwcG2q4}!M`Qr8?f9HSod;Rs6x4yIe z^PhWb`**+mvp%f)Yl{GRQI^D3C7%H!@IncYUwrEi*5w0j21OR7HQ-9z?R|A9$SYnD zgi{FU0?Cm;DF)gM$mE)ZCKvr0P>!Nwb>y<7(_lpm;0XZlvK#$Gz} zkTZei5DJMT>$26Cef82j*=-R=wK=ypSU!iGcBp z$a*t|tatVZP=^r0yMaXKgrx#(q&dX&CYijGOf%SA3W}JU7GMJDa!4UN7MJF1xqDFw z=kI#pH(pVdWMxuWYmS8S%oWMsrvy4V zxxCs0utvTZB)}2?oIp3oP2%FS->`5de4gni6BdLTTk*M#_va-|8f$1>^FM{hkIGpQ zfXAA02r`Y2*A;{VGX~*kOTElF`v=gAbvxdZw-y*buFnad#q*TKHfR6iIf6mO9sy3| zmVrPzuTU&A)0$@`xW#Jvb+3C(d(#_UFH&!_?K`A|=pv&StNjNKn=IjSM-urR@_tI_ zk$6Cm(48&1CXg+jPqO?b7YTbBQq33nT!4Z0*y*gr2)Pa%Av*&ugtB4d2WaZ?tR0pR z0;E8J;J2Dn0IB+-tr;z&O9oi}B6=-I+yaBgylI(MAW_L`au5V{g6KwWR*WWEkF19L z2BtJEr4P~)+OrqN)`d~im&i^ z{C;0ohrk*n@wSW(G14)B=aCgPH~kXt&%He&&pR1H+XmmQ--FHM89(Q_0lW*)Vp)%@ zFa}hAmrgtSy zNT_YRD08a#8P;Hd8$+Xr9BnnRbvBI<5+nWRnSK@yh!F#*=mHtnPNcZ4)MXHnR;6D7 zb2z_3#&lpbxtU_cUNbb9(+1JLDR=HKTcu}RXRO^){f+!sZ4=u>7Hpi>-zP+3 zC`_Qh^W{~Ay;?ovFh=XjS+OF+tfe_}OpuC6gu{l;%6&)Mo%i0~#vwpR5hZU5pH3QH zV&bDU;fZblsMeWDLV8GRrTWk0h8!9%Dd($EP$5g)Y;1r|?!g<)yh@{f;Gj3@$un z9E>7C@L0w3gM49x-`XZ!hLD$dc|v%dzi_I3@B{DF*?qXP&@0;k zok^?DJ=s={Ki&?EEh+S-yg#HfEs6jcKX6-n=(GPoJABu}ZJYE4@+d{NFa@mBc-Ug` z9-@M_WnT|0!#e@Y3iQ6t-l=8h!VKVQ(TuvtgvfMI4d7m{r zkY7G~2wfQ+*F#wQKHs|XU#k>uvW=!jPig%10;! zA%{~id(cbTb#+3dK61l+KKXvZSj3~i$MaR~%$RmvkMa`Iv5rdbwb9oo0PIOEBbBJ` zLjnX{$|1=tQ}tQRh0hcB0G%k_4j80aPp#(-c%v`){0*p%4w3r`GBKeld#ESN8`h7X zO?wA9V5)DX&wLk)o*e@X+86!BV^-@BUB!UAbjhB}%sDwc{^$VAQ9N9HukyfBF4Lns z6XQ@M1G;|4?)&*gd%G8sr?$?qBwEj2?|Cq;^pMD+==nS{7e%gNpwZ72+CMO)dVU{= zA)BuB>c~Ad27lR>Aq6^iHJTrzk5@!Y`fpvyJ@7<%mc0_M_<%SLobo+>Qs~RnWrCk z`MyD)J`;c0rX-J7N`ud^UThH{pJ5ZW)!hH$5rC}t$3OG4?Pq@S#~dg9*%K$*+ureS z+E4t{KXbm1Fa1MbI4J9T{^k!lx5sz?m2YpadF3MpDgWJX{AT;U@BiPOC*^LHhU<-$y#dEXb4z?Xd9Nt?0DkPVby zN;9B2^}D<%-@Xjl6Cfdx0Kp*<$hjCQJ;GHxbjdu(N3Q@q1+Ji z!UJGc^@M>E?5rFKvfz~ED+`+pe?E#RQQA~FR z(E-Zz9f1CEkwXv>bFywdt=t~WFCHPbgwl8Llvx!4F{3adQv#A8dDvq6M1bs7LfK=- zo;LV%|HBW7{GW5El>_^fe?I7SgjB+*B>d8n!c{RJ5D+FLwSEn(37lf>jjLQ%4sqjIcf^Tj-0X1# z&Z@B?Oxm{49+^X-{q&$fH+yU**;@$LnVZ5L4N3nah; z@&LIY(_`ZMC-yyrCo2U4tbm{Dqp!8d7uIUY)mZCi*BTr4g^%(gYY{Uc@JdQpzD6G9 z*^5-XRG9hmfa{YX+M6-R+3zOrq?bw4P^TL5QIA6&K===Xuw1IhXTFQ((e` za!vCT!5lIs?-@uM#Q4s<7?3QIGT~eVl$Dj`Bai;kbpH4G`iF0NOJtydqv!w288dvJ zYOZ`PC(0T17L>Fr)>`GRF+vq|PD$w9%+LE)n%J(?e`<%HBhn4jfT#R!hr;5)Mur|t~ z4kMB2{}rUspq>ua7%EG97>hx_SZ-;%`%(JC=-7oE86iM=->QrbFd2NQ_eRHcxQuen zdSw;?5~50daepA#l{DPBIL-?IKda~Gb#_SJE}s*@aN4;y*5y60BC;I$hO3AC(j?2} zJu!Wx-EsGQ3LPa`FLv1;AmwEVi0ef4tnuDPt0HO(md%ohfs+_dBYOTD5|w_kqaV1E|b%X^Ge_1?q)*{@?;?sv{4Bg#XiN8FBb128Fa>R2b&PV zGo?F{<$Zyw+jW1!Ba<_Qyh?-v9MhR+09ku^T!23^*mIAZ-YySBoe$f#i4;(|gn?RC z`!0z9!DD6(eLx`y7w6`5M$PL?Q_c;Npo>hJSNN_qhzQH<(nGaQrlxi%T%>ZVD5?AG zjFP&`3k2ec85?K-03ZNKL_t)~^3gfHFmBLX>8z!WO_3Vp`dT5chsuMHSyZUSRe7uW ze9_s6tidA`?@H$-BD^7G;UTH##eV24Q4T33NZ+B~DKegSoQEWS4;jIFA!OqiVYcvo zh5UgK!JtEBUYtMEKJ@*qhj%?kG9p5pKJ#vp>C6TOuT7)M7LG*MB`vWVqIs2?_3-n zF`954MPgY#R==pihHo`*)E=rN@43nSS|ON{G|k zfk(-XkO;k;VP8huHcDWOhP3L$h`(KOfIVlD2)SJw_gX~9aEzbd_L{try*=FLxpOm) zL%FpT0;`YMOZ0P#0C|Z9eyiF~`v^c*eCJ>LKG%b_=YjqEoy+6TeBIYL0s80*L1(f= zq{SznJmv!hZ;(Izr@p3r@tZ$?@aVM&5I+2^_q@M-<=1|b2$b(I0rJIP@wM%1zvhp% zulkBFd0s#N#`pa|yCC4~M}FXY2cP|31jy9|^g2H61GrVe)(E@=Bk)2Akhi{7A+S*P z(Hr|k$Cs5T%_y-6qf%g*??O>#Bq^+*00g4w*xJpX6SH40Tlr1=DP5>ZM(&G4kq)^x@*M`It_Z!oMu})4`2hmJW;k;}9JwKOUA@MH z{?e|DcQjTm_PiNDl^0E617RWxw8ryBB~1uGH@Ty} zee#K?+HaY+`Lcz$33x+Z{uHFj}M$*u*UOjNiGfHLND60*d1K3Sn^ z&NMCfgN? zYqtz9u|h3NcYt)Y3$G8z5aWCTXvWC(RF_V|a5*M2v!L%megN7SyaRw|j_Q_(w*q~W zKZm^+@ch^z01Mz9&}dyCxwj}pM z(6wimVwtPX>#x6F06a-om)gy@-mGv;2OZjj*zQwWGY|@=&z@1}l|4?X&KN#-{5j|3 zU|=Rhw8+fXS_!B)bWnxO+8}blgyzOlv(n8K84&`NX zOn{M-tP`G0`+(%+6S8bw7trRsA||^8^btOdTpZe`kO$)qZvZ%Irq3ZoXdfY}#)bAk zbTOaH0_O1USW^GiHK(!A#fyLyn)#(Yc&o5R*05yOCxA^559lJkWN9v#8!kqx+KX#K zryQaL;0}vxb!HMz4Z?P@2go~u7l}ht1@zpzcelJhCN;*&3!+>!Qv#Uw?p7ERZH4$b^yacR*v)8+vG$o;> z0^|+Imxw*@t^S?~r>d6^JBi^@@OTZ+C%4~-40Z4`eM@_)PWLf~@qoCfG3caE&gCK* zsM}tpZ2a;p<-Ja(lq{f@4(OyEcuzU|*bubKP8hbyYugPOX=i>P#!F|b(D(qp0fPb( zIVrpb8Sg!0{FtorCw89K4w+Y(3rdLooaE9e1MRDel8Yii`2M&^(QVsjbT;DUv9BGy z?XI>9&6RrO%ZO?A)%>nd0P#ONcTX1g0x5u8;p~8*QAkFSADnG#3PHFey#S+u3r;$| z+%7EO0ittKHRHjNB^EDP&R-It6Ap6E?p-=>MNW{TLt(yn5RwO@jtTTulN973x-8N| zq!1n@n#(zPQ4)%CO=liwKi1hfH$>=2=%Z7R_hVCM1bMU+ze`=hvqSQp4UiRuYw(&iO)IN+)L}XbO#On*WvK@~) z!i7PqIksKazGVO+0@cR*E^^#t2J3Ag`;h>wL*#YsQNBYRc=h=V3+PPEN${P$!|xb| zbV9}6W*9MfgepIu~FCi>~dvU9vrlp=0`B%T^>(}($nL55TRMJ#UoH-LD}1j`SDYOw&igfzLbo&%C9HuHF#!Fb!6c{zg9ib z4Tkb^=)D>Fh>W%&iIrW$$uN5xx+(G4Ax8nUS@te5sQ&VOg88{ z>o?)Bkcpejo0>yDmwqnv+#@CyDW7G@^YpLQd+)1z!gyUZ2hqRidx+G8bi=5M^CI6d zIXz0ujFi>MtWE$8$O4az%Cv5gGp3IT!!hdh0I}+JF}a># zIOl`$uXg6Xm)+LKzy?Nj4*6WDz2Dd8=zLy1Zlm+-yRyf;o7{0X7_Rft@g6PvdE+(c zU%op!uBqRPC_0GN$oD^}e21UGuPqOd&)~`1YWmg)Y>mLy2yBhOe_bQ+LJ5$!yoC^0 z73&)%4KjpKFDN%yA6w(c9^3jXPXx$E$#de-Qak}$tgr+6pvZCqDk~g=C@C8y6%UH2 zypC*);hq(pu8cazh@UT|$`^$wtG+^6VJzjSNC;O~VSEh8`LY-ArN=`}j*kFE4#i?6 zD+xC3w#_w$i*#}pTj?6O-@Cqm2~~V4uT=&;P=B3JHbZ7*-j@?Dss((}9$)lw=LtaO z_Hc{SKR_afC!r69O|8h97%Jt}E)ukk3xh9m0UN2!o+v7luszg^r6b_7FQNJe*)<91 z3h^ND`;_ubkZa;YAAVey^zpW$#H5n~*qINAtuq(q+C>o{4!xj(nNc{5J-cTWDrmt8 zu^pO9H802-^@2ckz<=6+*TtR#`{Xqu3srS%T3`lNse~&6M2{7`uJKr_LQeQ*rC8X` zSEA?TVS?4^qyQQ`MeraXA!)&~CVK$Z6P}0i1w65q)bCA!MC6SCq&LVsT98+U*1#koqy(4XXQ7^O+vK%CO!Qa0`n5`4E9>12jj>{; zpE;#G6#~)lAej?j1W`l&k44P^>o``sGhVNFCnQFBysJ!($U1jP-^Ig)H9`0)memfm z2Lj5uTr|W9c@;03MH2gpcvw|v6<zAaOF8F&bt!>pOT!Z^Dbvd2d4r6SU%Pg&mVc;XKp8as$KEasP$iD14{=W z)y04q7O2_BCgpp<4S*Aatv;h%Tb)HYvqH?&^Q^Zbw7O?ZR&JgRs8{Eh$(lMkdEemf zu+GsrGJumM?xf<`2gBC@Q1to9xsgx%T=sDukW3?e==&@AQtIrtIknENu@!~CTNJRr zpl=Ym>4ZoRd4M1zmqiwn%SiHLdWt*|yV{vE0{mB|+YL7zZLtKA9kWwn& z`Hei7>4am*m+?kAmA!&jCHsy2kbNg&QvciFe1HUn<@y`jtj1^Q z*oWH2`Dfbfm?#dlVM$&zvq$c154`@1+Rb-8q;hsE9|`Ag5zOjG`3UL!L1tnwB6*6e zC_vXT2bs^g;=RM3>!(MjG+2Ati+PH?(MV3o4N0y zfb|K%7Y%a6rA>m0Q-}368r#lX@<@XZK^!E&bW%&^>*mADCEe76_1;TgoJZCHI909O%qz(uW zgX$j3w2jvEdqS7xKG!W$s_g}OQ-03=BA@tvkv#6Z!Rxw9c^qpXYb<>mqzfR`kB{ z9%GZP4!&!$x|c8~G&3iL&R+9i*$%-{WJ{Gv@q>FDXNc!9(===^e=t2+ z^Co)P1N7g091?D$fIiJbPw9IjM@K);Vij&ZYgHO|ek=02aK*hMAX)+WwzQ%^E2sLcF2Ws5iq>8E9%zx3Wk?HR zIAd)b<<22itb~PtaEyFww6R<aP^)&C2XUFyH4}C}(wnB1P>h>eZu9Dy2^3-&^ECsf0vzavV=TvV zl|qS;ouEhnFJMawuApYFae3F95CFN|>B1mF;moP??Zl~*?YQ!OoI8EN2|_0Y007!7 z3+w@?xTtU+goB6$=w*ej5*Z<|dqvijd-f@rr`kil3Bnc5%ll(ycDJlH_t`tbUL&e| zmvVfNJe^sZ#FAbKrPmD5%aelysH_Q5A++WN9TZ19VAx8N|taI;O77xSd}t@{5_-c$d`e& z>@J1ixFqY-6@`tO5EyhxEr{oht;e|Mcl|2Bv^N7-K?v@Hgb)m_V0ReaA$S*2bg= z5r8d#t4sPv=np(vRz*rpsvi^b#=yJ9`_1`D$p6Cg36JAE6DBnjx=Za?(L63IcDlp7 zXq>QOC6^1y(@7BTJ%PIdd%P1K>f@?BR(dkhHI3CS#c|)IvBN84LqHb^!vWVx)(cqY zb?D^GtWDM`;ac<@UMi|DbFtmz(zYFhJjuc)r^upmh%GCDt`pYdjZ`727?UZ8IlLOw z9`@m+Kq<&BKuhQD(3tWJVYgW4yB%X*-b#B9v^Rg@=eL`0zQLYedz6HCyS#HwYJVI$ zc(@%>LVG|+06(u4fH$vC0fZ1n0CdPNlLi_a$U$E;%L*QOYWdp1VPvcxXPs9fa$Bu? z373rWoe>$Qfhw}ayTW3!fDxA$SvG+9ooT{p;t$Al#zjb z-rV=`7yv9By9KEEEH)v7XHy7W*7o+XRmqHH5yr~zv+bN@;qkUQe^N3@*!8Bfo_6glLa*J|fMdN)GP+WgYs3tcLnc``Jsay6J^1!&4Dr z7ves93Hy-t6V+iB7dh7IDe?{74kDAep?RvkNVKinJd4qS2!i8Nd8CNU-`!d7c9r`B zFOdE1O_35ZA`lt!U}IZ9(iirW*NU84MX-9T47E$fs`7Knqq3&FlMon zOXR8u5E&GZmy7-GM0CHxnL7JABzyhXbCmF@%rM0?S!beMzvt?nm3`hjzL z@j@qCmGQw-PdwG#(H=9Acg)Vue$egRf45r@nSlq&!Q^W9%MYs0YGb&eJ znBGJ3;8}Rc; z0Oe2Cf6VTCj5Z{qx2LRYd4PHy)jghv^%H4adL8>gRTKTS)t_tfK34eA;mhzs-2EnWyAwx4D$D$A619!G3hh+y>+3Ibv6H@os>Bo z<SjH% z0J~Dw4I-CnZY8Z0Wgige1RoeFCWk-*KsP{(Hs{;45s<{!=pKVH6%X9~gyN62A3(dn z2M!^$i6A_X1P*#7XtyWI!Bde}X9 zxZeF-A+RpX&m8&$j{|ZoY;F^$TVaxPIA0RLPXEja$leji!eQ;U5|r)<7ze=Mvt5BM z3L&J%gqYoSJtxeS zlGl>+LVZV4?m0*_&5J!f8=wh`Si+6Ws^4Z!P?4N`rn@2w-xYxw0bLHdr4_|e7Z^rA z9moQeFea>#HIX1o>W>|fKoC6(N@&WncXiK^00t6sPgYh03hi|_6y9U~-unV@i1*$p zM!G;Fp)x0$*N2b*dM>$CmIS!5R!=pi#7zeX0#G`@vj%S&S&c#>Foh=qVkWf?O{#Gp zv=TXByq@p^QTQ%GqS*3Sc{WIRZgNnto5HM+#FDWjT-L5EcM0o-wW`5*U_UE%eDC7zO#E;cGYcL^RVE+K(A)w~SMM9%(5kI5kx~pEnn|SpI zP+ZkK#B%%7&pg@vvu}Rg&)e2`y!_>_*n4ID-o5U{&%Nw90CCjf6FWbN$3J<;>?Ht@ z!MHh094(AY2-#ZfDzbrmI>=rhBm+Jm0~~igr3HWx_!|Pmbb{qnUUdLwZWgHPoFP8s z7BFCm88F=>2r`d53+Oh%!FQQhF4-Xs8v$e47i-c}fvhGK4SZA?o?8X78Z-c0tWa2% z$?za0vu&NsAQZD%GSJrF2F*^oul|1W$Ni?Siv&mm%P9{~*S*%-Uhi8@f%aYd{V30o zR!&b8RA2X`2BRsmE<`~iVDftm#+&FW5GN!BR@VW&xDO)FM2EM@+PK=d7U}3s*I#AM z`C`f}i%dwsIT3426xEq#8f(FSYMBKxI63txdi4YTcLT z1OyJuTI$HG$le9za9Scy)B_O1p4*a0>j&xVLqSF$d%-o~h*RVEsw<>b)eI))PR#`VK-_ z9w79MbsfA%AUvG^sl2%S9>bOZtUNpkf(tH%qp_p;s*5<#gi z5&B9Eu|5H51jG+1to;>kK-Lwi*N*nSd)=PGK^<<32vJzZJ%z#A*6&RvBY!{$tQ`^V zBD@oFkIpjG%_w-kCK>vo@-|&vUD1BJY?+J~i}$H4QirL;paD|;P`R#-B(ojPM@6Fl zc)wTsu@N~&2A@D&<7uiqRU$(i#?bD%lHU;IPUg;U{pfQO{Y6L`to3IY8W8G6a^HDC zluwOh@k`1bqWyGV1jsu-`k}mDHeKfx?OUshtKH4(x6~f(%ljMM!#Dr7+f@jxIgETJ zSGt8e&vq}r_J`fGpZ`iX$3Bl|j@ND0AY==KGM}=A_#5N*k-2O!HV|Q7p&!x1UH9zg z3G)`+&^wYBeB{3MQR@U&mZNv!-R-!==>>S9oDi_ZWKdS+mJ_ky-_FWIBS&B83*}^O(0Z9W?D2_iqD(o4J*qzxJM~Oca{>@v~_FV34dih z-ku^pw&!4kwx%*{HR|NYSdpSX>*6}i_^`!6EKk&Xo|iB!jrXv^m7$fDy7jtWof!m!udP(K&i!w zJ&Ng|^wrU<4xj`05kjPZn>wHlBuM(#@w9!7A7IkMKyLL>teAKpz_&vA=o+jq4KxzI zLI5w<9?AmJmYcG|1cV_GxPc1*RDEVeS||U_hdbTtum7EZfXm%4l>Gd7d*7Y~bO`|Z zuHtg<$_pUzz2*4=PxXd>&To$+s;4`bX zod|d*?)aX!|88DgQ~s1wgJ6K>oE7&(;8>CX#PQAv&H<5>sNRWu&z!iN$+5B| zvP@-fDW?29AxK1`kxvCObCEnOtO1c-%oOJ`0RS?0OJes}1_N{fmhgUUZOQH3Q7E#B z2%1&p15u#=?v}{CuYBce-Ak{&)GaC3%fj{B-Ot|>SfzFU{AWIA8Hn7X9}m?|9zs~M z2AISWFt&|^V5#G9FPpr~3pBDUC{QG_w7fCAZi?__=GS@KKxfHj%Ok)owpfCJI-NLz_(?gLD+brH8R)EH6=@tc(xE!QIKS*e@I`;OOLmqxd29fK4KN}E#W6Z zR+oIV>`a+HB&%NW3Zx|f_5yb8338^qbN{u=`b}TI&I5$<8VGQa02zbj;{$plOvWTi zBQ7q6S?UQ8#BKew{gY=8-#1cZ_{^Xho$UQB1W13qK}>(_IWw+1A^NvApm1wm{#BX9($OKzsq~wVWzJ1f*EpM z9cpi4uedK_`mWZwehww`B$Gf|0mxTYuB#6gySu+q_`h9wqMgZ$Ox};|A&{viJqlPu z#%7Ee#~OzMn;L+Oj*-3uKqeF+-U$#OtUawRduC}pvIZSSP=6yM_1Q5b2X zcvnJBHteu~Hv??dC&+d7YWC#j`H@^%%p*c0WvyF}5P86Ryip5+H&72O&ptIvI4G$y zXJ?Y#N96ptZvy04#K)fG^tQY}w&XcV0`!Ml2lfCtsQhG^gUq$`8S)yVj*0Y^MS1A0 zt*wZV!cao>MBkBoM}{L>2&u>(bAsnfd4fQ&6AsLu1J=1u&?ngY*ps9$Ft6M_%uB`$ zFAze9@?Oud?#6_To(s`)3Q?kVp0O{B03m@oC9w4>Oxz^1}C3`Yx7?OO> zGgW2-l&wFE`ZeQG{a?=ymsLgv)vAzCE-~km{+Vfc+Q?Xq>eKgm>d*veh*Dl70>oo8 zT-UdYaY4RNR?SuBZ`Ms~cStzA=QF<1A-pMg&J6uznZt9^JE=2s>q37rp~pm5ZB%Z1 zzf!mc8DO%xf&8tZO(&^lTi)eaF>Ir+%KOL%sOUfLd**x*87aTcc_qt2D4h3Np*3SN z#B-z0omrEE2Z)?G6`>S{bWe1fua>U6+x11Mb4Zj$KLhn7+# zt-Ll1G89A<%j5yEg`pMqfL~)Uqd(xaD>$^FP#X{lfacoOfz08otX-BuMx9Ae>^@W3 z)N{}x(+2$w;GavVbF8B|6z1bt%v+5|(X0D8IJ-L50FcXbAq_4=00=mMgtGSz zwuF?YaX#4D?|$(5j|D;>cE9@Iez)~-qf@{KS&s@3P}wBJ-q#P{$DAx10l5i_u`dq* zfPF%wo#?u&^7J6&6&?XTRH%*n^1dK65mxdmga=_<)t7`$a@Z=>5erBx`579eS96JI{5>_XG5;VrV5{=H|EuuEtsu6Hot_2gw9>@@VPQq}WjWsJV zxC!(E;o_vQSUIcTE^9ym(8=?08LtHa*?2fyrhOtng2Om1y2EiSi3k9^0K~w90pQ+V zH3CBbV;+C<3Ds9b#@&0}o!cUVH15}~t#-F>T<`ARe_$|dPv8$;9iRT}XS;WmAA|(k zvl`3y-+QmScH?UI;rqW*cr1CXlvel066QrStJHD2|?@6OZHiYX^i9ijwGVRBLR12aJwTe=?maHtUlz#y@3D7?_aWry=(>zut{(&H10fNzAdU!J6X2s=+rYSsM2LX| z6B(HU$rF)1!q(ia4z*vMd%pLbtj}0@2XJw+@%BEwTy;u)(sZ6vp|<>9V>2R449wKE zc!0zjHRakqmhWmlwK}!D0d7m}cjJEU0Y>g?L=6N9dIfv=2pk#iLyw53NGxh0^VrX+ zbAfG4xUzh0V>IsjHg>K2)~CLPdbk@46tx!)`GO=Hkbq1(8x`MWQ2eeY6tMPVV?cL>!OT?v8`-c@}aJSSbxO7eTigN!%2gq@3-ZBNElS7JpTnpNJR~1fiS$o=oLQy)86P|^H zqD1<*@6^2V=pgqAVH=$n#d%Pu6LO9GM)3xr?ikS!&MF?y>^CNOxz6QyO6MAu5Pt(kQ>7}0 zxzuF9IS|*gH*F2+hGHM!nd%evF9hr0p*IGsJx7^u$Rjt9Y5VIuKtmeMv=aRl+cEmGv+%A_~sw&jEm<}HMdA!>g3Pd1n!IQW8UR7NjdCWF_-XlHMsWf$Pvi-l)rH)h@wPAxNx^)rIwx5=;fWI`qX1s zayw_Uj}jmu+S6BUxW{AP#>IM~u8jenE9ARqqs@g}SL$f>H0nSRE`1rTU+Y2V=2x}1 zW>CL(kJkj>4TOk$-*UaJmsanlOEk}9@0pypZ6s0sH6nuAePfTy@%vV%@pF3JqI8VN ziZa5m7&zk#fiyQ=`{MmpK z#oq_Q(!No=eJCj9)~9$B?;N@uMI3NMXq%y0ft)$FL~8>mv{e#!!3%&rM%DEP?eJvv z7sWc-azF{d2>)3L&^Z8D8LsmDD++jjASlH#${jaH@ofhu6C8v^aGUfG&jN$^R;jJ% zV{mB?6J6^h+deJuAJA7N4 zpUigey!)QO30d$9WIr+qK*%A1!77j>>L}+}h+6TDzV8rGkKehYFcymIEiVTS{DARz zc8~)CP{rZ5)Cc6)XrLa-EF=VnDLgNB@ibPykxz5SEZcYL0+%Ct%he^LobhE3(K}`P9uJ&s09)q6l+g%PhOxt9AnXHx+V< zv7{{k;t)2FAmmtavTyYzB*LPsI}Oh007vL3h?>jt%AoC#1J6A9bho9jVb|qB0HL!j zz~^ZZBLEuf>+2>^9HtDSQ1!%1Vg3GxA_L^ffhU8(8Pc037Was4*aEImCpn zVSE>8AAp#?6$Vp>S&>%iKj+V276J zTpI|P08&`^duQ^0;p+1o@Asa0Se)jXfjkLl<4~6-5CEg%5t3x&eBQvO>I*-D{{d_T zF!P*?1w%D^=(FC+wZ3gra0`^%N%wdrZ zmuD2Va6*W{E!}lrUu^30UCm?Un-XkGX3j}=%*`w*zlG%KmPr162oT9Rr(M@R{OX2>-4jGoG@0lk}l5=ksHX&{EZGmcq~F8u};~WLq0ncR$?9I z8i#ufx#{u6+g8t-MIKRi6Cf47uK<4&Am}w#$0DDcBcTWoWKYW(fk6gDC|-vC5y($Y zAqbGegN<%?8vlcA30^oM0YDpR+*@d!dPULiW*L5Zr|2(zD!W$Yua?)?tm2{$`hJ z3BNtB(aj)}O@Kg($RI@I$Fax|JVDN6AaWuD2nY~7KxVWrO+<Sw}* zE@^LASh=G4aa%cBcDrA_`MSyfCqDIT_tKZY(LM3pEAj+U7)CZ<%@2F-u8v zuo(N&xmi&)wpLL~7Fg%?YAE>?5s_ui9u(nVnGS%S1m9WX@fb#!M6b5DpGmv{Aot$o zeXC@+!FSe9_KXHb`x!+tx_R+GOFdHK*w(u{FdJ%dFuJi8e+b*eT8RL zH@OMc*PGnS-qz$=%@oTJKezU>M$itr`aq(zFgz_pQ2Hhh{f~QqRDT#Ou07hsl82|x zGyD$V9>0j@J=wtf0OQeV`k~6XBn>S~eEQU#?s;pSfp+^oE@F-0#Tl7nxjiC*J%%-J zsGHA9e#k`+kg89nSjLsQdrqZyJ@%eYr9Zf_kieS3lCKm_*kbBrkBSjd(JKo~L(~-S zJ<<2w)?s#M1pU8ZtlOU2l9qd{O6Q4J2Ge`kqucz-+|M&YfJ6rJS^SYOt8%Yqj7ryX zAJqGVXsklq{^}(9v-)W;B&a@40bX;2Uh@&N?aMW*Q_N^hHyy5?-S*2ip1HipL$9+M zho&D^U50w6Pul!$)jmi5wK6;-q94Q%W~4jTjgRh|tf#S|!>}fXJ-O921jx|0fBuR> z1O5)brUc0E@Ze3WKJ9^N4@`St+5`W%df?*{Am94VpId{RaaaRRN9b=Tu~E|bG@c(( zMr?&-5Ci3uBV(+_DxIo<`y{{3!N8VvPAnIY%~p|CcB9=U>=o){2oM8rR^D@ePQ^KB zTy_{Oy_MqZLl*w;sH1)u7vu!ft5r`YJasX3(xHt8I&9wW_r#lZ93VgulvPwpn2rLg zxG+g(>7yu)b2@|{$QvUuzNvPs>J3~0zyS(4FGD~{#zKLUz(^Ec>HY5S-gr}l$eeN- ztSiiryge|(R2ln(k8mvQvS!mW`I{HuKSa>J2o4gQ&(2@&?mc{9F#kx2s1F3B<4r(6 zFUW&omIUJhDX1?117WTheUgO}7Kzy9X9arDIEVytT6h=D`8hm9u6COnn+l<| z+}(NnmVh65&Ojome{SBs<%IBr61#f!T6h1Rtcq3M-hmRrinLf!9+Lx+N_fjGD4fPb z7O#f_=1=w@gD!QO@*vrC4i;JKW`T9r1*ojb!W1yb2iTk`yYwwqhB5MOLzxumtuvA#EgA)R4)nND#;l zESbp}qqTWo^KOoCE2<;&=GKi{BJ7Us6|(~x4NwGY%5FM3opLZ{pr8@SKa!9dn!kykCGCzs&761 zwC5yb5IJHf4+7G1(jXtL2sDi;t?F&ps%-JY=DldE~M`LAc`u7oa)G)v-h$LY}l(*_NY# zu3iBtqLC)F)rnQ<3-vSB)(xbM=)`-auE(27_4>+}{=X+c9z{@$y*>E80qJ8;f(9~- zfpzzAfph#aURVG--(4)%-|>&Vz(7hCQJxyG(;zv(f2|3=F|b+SVjGJw!7+@@0I>AW@S1=`qN41> z=oWZg(4Qh<=Z>_GiTIq`)H4*euhZToS+g&BO;|xz$Kpit^hD&cYzp@Fl+$We&J!z=ynOml-z6~J)(3) zemPvC6O=0q82xudzK;hYK<+64Is}OJViO=++WVCMLj=f!%|m%4CcI_KNy6M}-fUED zR^;)l^dX$|7A=z@K$h(NiTo!dq&+04xdB~^Ew|quaF%EJ`-q%cE@c{cVYf@ zc5oB3D?-G0 `UdgopZyiO*qcrjL2<}On^1P|`#{-0i@u0pS_b3|)q@ydN`)&KiGtD+)h=Q?9au)Rj ziRaOXJZs(slxT8|IpB_VIphQJyzqfE6*xDy=yT8ew3lld0g~p{^Za?%iammAAM`V5 z3-iFwuXfhFY{W<(8Vmh~vG5wA?978a`aB6To&z}tN6%}dhjsW-dj<~;Fe63k{CD@7j5wzzrinakZuft~2>KsE0uy!WhI0#`RWs13J_| zgukP_9Huzc08aZ53#czZ82uTq3HP&t!+zBKT1@lN^@qje(QUGAW^J95cp&s>V8i^_>m5uT(>O31Em+xe1=dE zdWMfT&LN?^4kSNS-#M29bJk%y6oQJ+xz_nP1Qw}&&PSk|59ReS5jew`9^t9ctZh{u zfIXfery^wz1kNauk&~4#L!vl;3W=;UH=W#CpbHka$0SdOJW*ZolmQguKuqq7MOlEZ zi11<3J@(igCquvg;Ro_^QP?g#Ow>n&jG9$w54=wfOw=4IgcSgmbP$8Rbx}Ky^lUsA)^6RF1?pk<;K5xbW+!p1$S@HstZ~MCQGks@hd^Y|S3U$L zuDwHVsox;8JTA6sCfpR{31h;%XN~JS0fYeGI~s>|B@-uy$gu!DylKGnc2u83_2-ht zn?&izk5h%2(S$T0v7nqUj4QGRtJqzUE1Q~g6T%m$Zp#9Z7SyMN!h)dN7O{g>GmFC^ zPV^qKYC-Kmbdhi!c|jZIR0q~F#Mr9p{^aA2tIv-Vo<%u9RK(iKg6cUZFOWa!KJ)ww zKHy!wexrNijlb`nf8hn^lrbskxysrM$dvpFkyFSE%PEseSNCR09oXkAuj`Zk$;5|xNiqA0C`wsF2iLcFmv7D5ciu5j_i&_ zGUX@F2lB~s65!2Yw?Gv+%!lN1c$JdT@dgYb6j_?N(c)RSpIrZw?zOM{x99re|Lq_D z^B;Z3w=@vE<*VW|AIM$zjKLUq=etLdAY)LW5fbBj+dV$_+j}oor!4A|ZpH>tk&?_6TVSQoX+jBz9ZaL;GhB00gqU0pY1nS#aATw-Ff3jUqFP z013fDnPrsVCIn1%MXP@HV(@;E`tn5pjSw^btmc09vViePu8wr65I^pql+gf@me<2O zaSpRFmY}u|gQ( z#ki*=*R1)uOY%fJUKY`-Yw_}v%;6^q-&sTCSzvxKKeE3dr|-htNiK@ZT^s9yyPR zy+AM&!I*<&=hg?KmxYL8Zbad+w=2Xs`?qR(q+BU`yZ7w@a=5e6oob)o7ZFd0$aN9@ z57xKzn;cm24kS!Z=2i6zeM%B^oG$bToFbM))Gx{dgnS?qd4t&7)%(6TXd8h9l%>Du z2j+OzToS|+{wfA7@tooN(k1o0P`iM)=zbwXkmJ72SfKVp{TwUr$1xruB0rARZ-?># zl52;)o;bwSyxt!vwBt`-|M%VA#=UMuZCKSFvZDQEdF@8GbmIwyj@<4JHXn9RKl_>P z)i1r)tzLhuJJX)d24PT@{Z@}WWdAamPxk=UM}H)lyTMu3eks`Q!ICGewJc&_SF9KYr|i)vfJiJdG#EZ($;!?*1}{_?bb&rA{8-_)63+%&mIsN+l~ym#|_WAZEulLwH^8^WOVebVX)hL^Y7|Ymwry?spp}3IJ!XYk6sin zw_XNQV-IKg(T}V7kvq?OGn^+tGC=kyY4fJYi=Kq=`i)UaYb*6;FKoJDR!j9om6b_T zUDVq4h_ZXnE6N;w?|gih!A<&*j~B|tu@o}WH<+5^)bnD)T52QK!&$0b1i^4ouI&o^5;6k(AKYW2<_E14qyhm%8FH&S!q>yeGUu`VrBhe8pH<$K(j$< zj5SIFLr|Vj-eUdl5D{1{q8M`MC2s~UysjC_YYw=sV;zRMkI+Zl0BOTv7bUEPm%`J- zFMC47>OL0C9Gr8Y#!5c1lj}LQ%nLvjG6b)O91v`|6jeRCti3w~WcuL1cYqE7pp4C7 zK?gxXy8tcxCx9a1uF&^~kRybu%1sXsc@Vs6MXAFl~OhE^89dOR!9I5CWj(X4g}m| z@k;m_eJy}qmXLrf0-Y&)M;<0y0ze=$$j<;V0;s+%z}mA)ZRLJE696&DU*Y@!v`uYh zoX8o$m;kIZSD6ztA_QWQo%%RYx=NgPGLiI|4+?~eQXd`2(}ECSjHd}J)dMR_ayTs8 zdY=QJ>IcwZV2Ruz^f_VOY;RUc)_F$A0f0`xb$idKyk&X6;IV@BDWR8`U!Q;V3uIX7 zHXc0ao_gw2${%r~d-LtL9UAG1605I2cqq`Fq~gkjVGj&>dT4A2xdE`~q}~GU_eECC z$oogp%G_RJ&96eVkX)X*O6U>ia1p^FGHP|{x|6-msO_2(p6B~2=R^gNxcpdSu_6Hf zk_e*{jX$BO4iER714hM}NNT|3EI_9Eh0g&|2yJFiiTTd4S6?Kj17X-h$gpf6svKM1 z;jR=OMHlRe?AcYD?yKDsjVtqqHBX2VtcVj*=}dj2ME4?Q@ETeq{FiaeR2 zY|AQ>@L9HMmKE+XvHA5}a=kD=o#-9!BGnIaW;){8LXq zr9RepY_8klctwEQ>h&w#pZv=|?OuH0a{}KM<^6PDVdQ?PwM%3fIN_!K26r zVTd^ODPU>N=pl{xK0rwhz9DX@0JEzAKug*X$;s=${KXo%WF+#|xN!lLbqG$eF5P9? z3e$&o4(u0+=vBIePcu3r!9ankU{Zu_Dd72%Qtc$)I8$<@)$r zOs?r`zA(wn1qG0`D1C`3rv+FCK$j z280GL5buK#kG)l+%lC64mjg70P-^95Y8BxH2vP5ePwxGazdg=wSBop=Cw@q2Szpu(uprXu8fr zAMssmdgCz{%in-4u0tNt1B1xa%#qAJmuKQI1WQjcaldY5EqmX`3cmWsV?saDheaj~ zAY;a=^+n6^67?o+@jCQY%-_6^{^8l8E}NY_l1$&1{Mpx>S(kj$9w%nh7T@xU+uFRR zoLce@Ia|>BU-AArORgl%Gxk95VeVI+SsFvl`w$=@N)2X53DI@vPROy4{tzAzA4n?x zB@`XtQwR`~9R)DbF(%^+NOO423c=?&(}%eNR4>DfAhn*u_DIEO1k!`0iu|ykVxZ8) zq9Z#03bNhf!7~DG&JvnRlkx};ke&PTGF0ODUF84~F})|UepkRhd)s|^fNbs@i~Lpy zEC>*{spfKpRf5;R`*K!gPt@-V*g!7E`r4tdd>=**3pJ$(|y}K&o`?=ob z4TOO;Ij_U^^i~h%UI-IUX=~a!v$X(snNNj7l4*TW;{Ywr><` z+o|;6j3(L2&yyjH%@C67teb|wx-f5k+kY<00--69zwKvF zpEvD+X%9?$VA=!I9vCZA0L&lf^{u~34v>H|D7$Dk0p_jJS>bXZs~lV!3gR;`RxH-I z3h=OIWbHW$Q4U-tB=WHV6ypyZH2HvX3^?atk;7R#C`A)T2}g;yV#d8K*&<0f&2s3& zN+e1hPq0QV%rAgS6!V~SQNB#Qg;!K>*tR|N5I;hct|0^jq@)KJ>5`J}MnMEYnt?%L zXogN{1?lbv>Fy30KstsT5MG{dz3;QWwf29o*IxI&uj@RI1Nxn$;fEJ>Y6;{1fu>2X zf1eTQ!M*m@L1&tr|E0s_wqbq!Cf`^fs8i;-&VG@(pmy$mL;32FBWIKG3b{q7pm;*B zQUN+1LXs31yB5b~2PPPhj8ZAbf?ttsyfrAo3jF8wDibIga9!rvoZWUu7+7sEnIK}L zm+KGsJcg}88vhFGt%)1Jv|9-yZ(2HvpWA?VG3iy$1s-`AVy)Ero2GX zDp2(Dn(SwoIF{K~bSGg>qRD@%)hoNI?3S}a>V2aaHKnT{Ee^s;Oi0R=Kr)>g&=mVr zz1xwI2}d-};<<%QLpKiw@usb-UoHDeRQ<+pj79$Z2~B1SD#k7%H$Xl!9vyBpBO_3L zN3=@ZnlUy>>@vK^d#_!RjDql$V;*)HD&i5E(;ftDs`}}*j=3}Vy$faTb<4&kZhC&H zA$biAye;1{`m3$a9Fz7oLL7! z!ID4K;CB;FXHy_L>Rav1b*yj0ost&M4k*t#EnYFv1;4PhiYB~m;NgwOB6F_ow;*Os zSgHcv<}m(g;~g&9g19%9n7jdm+#x6hf6_*DGs-sKKKy94d5 zCdt^`w-djl@{ebpcL)E*{Uv7>Pe1w*!Uq0om$ZyE&M;bA8x&k)6lt&$4}+RnRxrGG zMZb3~03tKPuyem_fNyQC%^xTO_9yr?q#r+BuZ;&3pIS%km9t)ZsmCFc3;w3qu&G5s z`?7V8+*0`^^hpXdAwr$`Qo;=+(cFc>bTyg9Rne){r$cWMyhJK}c~drVBu5x8eR2yu zgV%;I;&(BNW%72G3~c5C>k142A;GiOZD$K!-s4-t1c)<(+o^xx9x9oC_iObCy!fUK6vZXXAalAavJ$mpak5a^{F* zaf4deAfiR>Y5@$!);WqUYtwZ~Ste(iVXx^MZ}8V#7s;u(%(d+S22=a4U)U%`x6$s0 z^zXdwsVxky!!OFO6ZCv4%M8b3pq3Oh7?qMY_kcIAo$=~?H8#Ir;dqdbom}X+e$sce zi2-XFoy1$03dE8zh#$9h31qh)g$o=Ifc!sZ%!3q2f;rB8tl4Cg`eh7g&A00-D|BrX zMx_r_W8gifc2TldhPRcU>QajOg+UWQjg+cO?i#8peV9GHFH-J?PI22OHdlE|zM3j9$&OL{HDyjem$`2^^#Ss|Ka&J2m zdq;1+Wr0x0!4TQ13?Ei}~w;UVrgM?+B_ z%VX+7pW7(Imh5z&!Kg8@o!;V4*!l&E36?sW zn=Sta;idv8Q9ecpsJrRuSEvzgoYcJ0_^|uiaGw zpclhW(40jT<8kjb%C63?Oxkxta6HsK)6vOcOFhOllhh9j-}+~8^u5g}**uMu zm@3=@4CMR+YnsNBRKBZPM8DmCZdw@BJjTRzFm0?v%~(b8QQOGuF_QahOGyM9%@}lT zKjS?8hN>92-cvI9eYmTp-&Mfpc- ziS?U1<`kLI=Y|`+uBLtEH0q3d>B;u?q7zl^t;qd$1sJ4ycBTBSn|TpK{jkG7LxI;# z`VpGX!_JigXIg(=@oOKhlgaZM|++Z}BCs zqz3L2bZ@GGbM>lBSYw<_JPo&vSRf3Oq?GIAE{#%XtmD|55u{pti15FUyPYvBGkceO z(MNJ&SVl%JEOjj`+ljj5@9Ii-UB%^Q5@HBLoC&r)l}<=}(KA>!R4E!r`tU}dALr!1 zx-N46H=XoUWi_}x<}4WL_l6!wJhml~8q+5Ie#vB3Doen+N#LuF#72%!&Jg*(;SKMa z63Jrt@JY-f_b-(&rdQ2njF3&gE05&7L(>bs=V}?27?^C_I1Tan!Q=QT2r%`l_l2E5 zZ*J`vhBiq6T`xz(R*aluluHsE`yJj;B>Igl;+8}9DI9h9Bw|C0#=t|JxN<@%M7BXUkAqfRZG4Krbz;hW%y2u+QojCI1 zgF7*dbFQI=DsELD7>lvtCOz|??lFZN9tV*e$y+^Q>=?n>(zztWrW2m1#SVKw5Z<(qqasM&W%Ev3uGg)6*aRC|VI zX9y_0>ybtmt`3{uw`O0CWjMQ!OFn-59W3o8T54#BC%6;b!>m6V*q5a&P$Hy!?`Vc# zi3@-6Do+V-d>s=LqrEbiJLva@Zj7%a-JBDd8Qy0`b*Mu~YYnWPU7h%nbDjxwP6(OM z-+}B;2GLETm|pUfK`n$zw>@wYCGCsWl+!L$krI<{;$myts z-lORdK^y}g4r_diT~(q8*)!)hT)CSz<Llpp( zcR2$Lv7C?<2t$2angD{Q7AK8(MN-1Es72rbj%|F3(t=Go3n*kTPYyCl3=Ru=5-`1D6ukYBmR8mJv&3C?(d5{CC>^Jbg`Gc0a?yd*< zQJBtef_IjdAe>L`4_Y6F;LhoBL$pDd6Xm9W`~iChwTvdc+`K_)Iw+ zzalEUlI!bsn?b!a`=ky#uFMMVY%XQ}OEAn4pPi{oUWcziN3Ml`1;hwcN-a z9`En%lChNfhfUt*Z2w2!)x$2k29?*;?%VO_0VZw#d>a$st1b?#@c*39Fv7dTHp_3pSfTJU6NQ{S!J)BV zGm7w%x@N!$QVPGg5C=-89Kch4s0JQ_g1>%$@Sy45C$Fek!lU)htZ?9Q(Kw=B8A9|~`{qkwj5_gV)u=v)Aw{JHaKFfwO;*O$!Pr3A*ctsTx{oF=F{@ z5#tQ*0@AJ3OKXb4Np5~jqAR;{vtPapEPNZsr+}aT-bSsPL~gRy4QNqDa*MCr*@nB+ z$)C7QM{23BcQ%7kV!FG2M6Y`qW5SLMnH-0y*^+SodI-2eabL@NaS{VanePaq-^9iA zRM{vL0Ch19vPmOkn0m`QZA+1{r|lE12G2S_x#-MeC?M`L^$x?ly6%Gf2!go@<8lxh z%&#cq`~Z*%UVJh++Jg7De7_B2zodw$Vl)O1Sg5}>0c4JA=n;Hnn;)>!kjebjj$E|Z zAVyABvS?%Qc^GCN;TLu92Yl-fg%OlqdQ(9gc&&mF%DDVzAG8!Tkh(C+z}TbUA?-Bv zuVuairg3~AQW4g#$TlXjz(<2Hv%rK57U853KG{BcLQ>y$tC;F&-%#ERjum^517XOdYS<)N)6{;_PziR zVuvZe&3>7XgVM}d5ATWiFjjojPwEzxiHc(t11FcN>mB6Pi6iUy1DUiRWhSVxCN3qs zxT@-Pa^GDN29N2od9aU<2JWtZ@|4e_f~Pki_*m0%unUfB6MjG*1*ubGX6)g}vto(x zZ4&oUG!|QkeH-~RT<^|_KV9D%$a^EiU8co?n6fA?SK{8^jfPw~$!Z+8bKykKt})#bFhcaTXv9|7dV`82;Ma9@^GzOxHm!$D7dESx~UnFdc@1P-UL+EPClC`tOYqkis(bamFx)_4BQ1Q*MS&){CRky zoyEh32m8TsDM29(Vt70e+Bk#fF8<@g6k@!keVzrKpIU zpmR$}JhgEOP7GpKK3JFkh-ANFd}b-u_9%&@Zl}rLKd91m2#~ZU?VaZxSA5`0kKj;r zeoM^EDDM~MWoQx-_F}RMmD|34pr@}V-)t7ArfV?NcBA$GvH-t(-g(z46FXL{Eiy|# z&uImE#2u$y8|oyxGc=T%U&+rE7v{5FSPy2iE_+MHv z%Rnbpv=rBOlHGKYa)N3Cr zl0SxPK{_Auf{*OkC8i|nw{-{1>KExbu;+4#KpyoX|7t)dv1Q+TK0BW1+)*+V66k)= zn4X#jC>i>YUOGI|S@yGLP}*o#vYwE1e^8ez$S)*SaMH7^V#*X0p&mEFa{5G=L&TSM zrXGVB`3Qe2e`@4B?O)!^heyXeJ9q>f24V{a#+>eK_`AmBYTNR{G}6`9XEQ!m}aEt3G4JuhsYP*KSLp^yRm!Ge;UqYKjec ze1uYiuOxG%A!Axf^6bDM^AXXEQK$_sVPnM|xNI-%uZ>WTt}6b?@9;5(JQKJqw0T$Uvkk}NEOTQI?8ktIsUwqaAeKG=A3c-sT3Wb ze7ru_{!C;|8c*!$DlJ^w_Wi5?dYI%RTT~;gKI)Y#;>D51FvTL9{*m5?MNZ4clmt-| zONrqcv*AK3mY;S#a&a2%ovn4wt=Tj%alytr{>`5*BSvP79)=c{0{yOzMz+p_JJ6`a zYYG~ztreoNiCO4p)x|o*_))*vydi6uQTa08dUaOja?z3OaYmG}G@;`NRnT1dbGZhY zsM@%Z)|I#^-F|7M?_Dmv^7Si$Iz{7V7T4t{r!H-zkA ztjR8amRxUoaHJ_pl-I)bLNUX)nKmHoImBNfpq_0CF53BhrX zo2==k+01{oRSEx1*(tTb1lM+i%zeB6US{dWTw|5~VN>fhK6!|hu2%JBdFe=FDk<)Z zrEb2&qzYKw1E{ZzfR!6Tn|~5}3v0y{WvT7S32fzXzuzL=)O`0YpPzF|#{IYUFbp^L z!m{r2MK;+S+~hg_9yy@0?gxzVI;9hjJK`fR)czEgP=2J4E^rp)VfVrgqa+|+c3f6w zKyXJ<`u^^C6Mhh(e1=VM zGy$drt6k0GLnM`ZNy1Ke`0f!lhrJX1&j?R20`r3Fjaa#{K_WBy!6R0O&tBtC7Rk430e+;(?N&R9YZIJ_FuN`viJy_#7c`VyFQ_UAml>Wlq1d>JlW`6XA#hPPr6Tn4)!HDK>tG+kc`LouWf4o8H7Ke{d5Nz)yDRt8 zB+i{ZixF^~*zuFk0JefW_Ihg2iCW%9fJGTv+?Kyoulw8;u9juYH^V(oJV@plQ%NoS z22Z{e`6`Ka6i(RMV_H|%FTcRIsdzQ3j>rVd>t%`rn=l}Vkma4}*AUARB@QWGS4(+T zB6lVosx1R@-R7EagTn0oCz7RgUC65JB7v zcrm<;{$G=P7*A}PDqOue>y#~++j?|FzuJVcvPmyXaJhL58NEZ1MQ@BY4CZDzffw_U z6*V$3eNtqd{Bs|_J6=Ve9@&U$W#cagyi%fVHPgwaCwobkr>8@lv)Xg{AKSX_4WH!m z^SGv-#sm{jWdN=1n9M}c8ZF6u3m!=li(;1CQ`4&aHs9caz|&)QtnB!=zWKfxX>J`) z9ui&m!utknS+Y4>q7T-v)0sC6>0Z{5DMSpPA;)7#BF#PWmEFfp#w32`+_AlvlgZx&Im7QaV3M}2DvTbA zw9WU-Lh$2OI+mJ3vgQYXSeur5W3#@039pb*rLs3)Ds18!K7{6wNzHo9H%J{UAKew% z17i<^KJ}zow$I){4Y!xMup_UZuFT$86axpClTQ2xSwKYGyV&b!^hyhF0$>8MFTp``Ct3WwkJ!XS_`W;9FacqtF2#v12Nw} z`6UbijeBfq8F~aYMJn!>6OjuuL4bko9I@(AuO?LQzg1fDgaUi1Fiyg~k7BPdb`8IZ_rXbXL0$LDeY{lG zf13rjm!|Gm$e4n=x~DI73a-0sL(XRW!7R^g^jLwu11-`Ime*az6`q7sjL8KDZ?7uW z8dq1*Gj6N1{Zc>Lwj!A)7zO#uP2V^!5zU?fPedviCQh6Uqz`B;y-(tzPN$wkT4R+8W`Q8Z0S={0 zivzKq)R}=(S1+@-@Pj^+P6sKthz#ZV%xO5~w%=#I>e>Qo>7$BA3ukJRl{0)9_G_)w zAQKsLzq}$cAQ`C*lkTo#HqsDWh4y;y)txxhdMaR8a;pde%C{OxAT9X#&&$7M?FSc} zs3>J^`FKpA(N3-|ch43Skw*D9M2m=b?x}~KAWezh{BsT7vwC(REYcr5*a$9$mkyc5 zfA50s;OjyS@9uBilMdilwKdHRh`+rIlzr^1)(Q;=Ke3fEII=fR!pS+Un#7>*{)ag6 zf9K8qcao5zP%OiRfR*`%#|CK;FZ(T7?oQ3}f*Z>~#^EW0dm-I*%NWh;;b;921_CFn z)~~~AHOz%XyE_oePlfRS2k4Zx3Tm@d=@~?Z5AgUN`blc6tDGOGWma}f)5|Hb_Sbam zakKf4B!B+6dk=i&TJBTpl}3BH;|9}fcar1J9^;bNV(d=PyS8gJn$j|E&jXd8 zZHiJad_nY_!F|O55Sct?2$0rQKDlqX1s;)BuBk%v81h5+$sn_}pnr$SbKvqr9OCD) zUge+sl|HxWbPjYS>eQ)4G~un7s}v&_%r{c%(Ai3=oc7q35_k7fdZUo8-mi%KR8~5H z@nwQ0gUHNp80YjWOERMFI4a6rzugL4y#Hh|@08u$6qXj1+x5%LS(E)PoF_ z*R8+6LR^mX_jJBJ8-{szv6tZU8pQixd#CW{py0Xv^A{Mgf~$Rfvg4?50OxK_m#l)t zv|LVFRAplC{o5Qbv^>h$FxN@{QuZ|!z!@ksP}6eF@YPeKUfyLzb0I^18*37+9bnq= z<;UIB$)msL5&GR|gYxws`|Jac#05`7Y@nM%o)76*RB00)CI$vYP3eB6qg5K8K81#v zbFCQY7ozN}IT9ZILyv@&PsCdYU$!Z@bQ6Qvym#oVN9Hqiqwo{IOEgFdN6KXqfuyrw zsXF^l_&|K^8gB#G@qkWl6g}rFP=Qnrpgbxyiq)3Vkh6)HA9r6Z&Cqsop+ZkR*Khjz z*&*Coge$HmAV-A&kh^hCTW&BOLZ6h0s-tnXc zXVE(Uib=YEFzJJ1-|Xi36J#I++E~hP6Y2NW67f9B^Rh+Sj>e}$Li(j-Sa18V)BqOP z(28ssKKI4^z28;Q*Y_BPvy@w3gd5jOKNx2?`E@yA$SiXO7qI6=^LbTD_98I^44-3E zztpJxEgM(kDPPTXkpwxPe!nfAE?s5P;@7<3RLU6fX7$=XeBMAt|Lx~DL5Rb`H2xWB zv%;4fbltI+efCYSSzk0$fml&u2W%*@)V z=w88Ts0&_)yGZL&4Y7C!X7ZTq?bvMam57f%DH^t%JLV<5uA@I|-5tsaP_u-WG-U4| z`=M`-({`oTq396GI_FYv@ZjQ3_{i7sXJ=fFiB-Ul)?4ZE)>{aL4igb zyyuza(H-;%$BFvK2tj`c_?m%~v^~U@htq=8Cs;MhSTUJvHfH2vbGGlt(SOl^k4{%% zUJN$gcsAp{*UD|qbX|=u(k1PTDf9Y$PvE+8UK9^H`q&$_LkHlpKtgezq+boTS$`_=sWSqa!UNC9DkZllZj6yi*-Irsk@k~QF5}7axv~2 z+xOd%v>I0Fum}XaP0@wM85NP*0Q3j=NMBm7D5wi)lp6R4?qm7Eh10X zG6|LZvTb@5MX|3h(6+M;)TK@8mn&HnzufFEh+kz6PR@qBDa~ac0Q5C%S5ObLGK!{MtR=aVb6WW*j6T zkWNDNID&DU7TW31c8ULBmlq%GID&?Ln@yAQ`QPL7Az%gzV10*~I?jpiu)OQIqz~zw z`f1mr=J-vk_Z$qvBzaF%Zk2v&o&Ia>`16KEg0_hyJ>5UP!A_*60Sdfues@ zCGt;XEG^7$sFQuQp7O^D=Z#9yFb7u`M}}5$*@(6$0cWJh*H`_lJln6T)@50He}RJ4 zxHo@ML!4uLQZdkcCV1p61*kL!(dLLIX@pGp9@za~MX>{;Y8z0UHW;z{W%7ok3!l=$$U5e7RpdJ^i zanF)uX(kID7=w11O=sqxV^w0^LI$e5 z+tzidp4$mDiR~y;l-~iBaW@p#$cKzsYm@M$=5l1}27T?V?KS4wt4noFmAHxjhQ8o) zw~ZF<5ASm{#l}VfH8OE7x7wd11?F#ai06;Iqcb_9W+P-Roe-(>;bYs2dDZ0~%@88E z%&`;3!vx>uV^ZHmQ<{kl>nFaKvuw1(f&8gL4RKXGF@uQ6^Lk80VWT;tPnC?FZIc2yf*rX z`2t|<8Yc7yyd$NA+YP{dv$7vf(G+1&1KuKsL-6;$(Y;eIFgQOWfGoi66IRyzuG^~SQ*?Ok(^IstDWB*?tlfyd%BX<0(lI@5Nk4j!Jin4tBnh<>-0#xz zDYS8V=6w*-uV~81FNKS(!XTmzlZ2Oj!Oj647)V084>PP0Wr02n*9t=uAxGZ-eX_=G zO(T{I#84q;YtC|Yyf@MJB7j_AQu}n<&gfxTM#2B1(sqU$R%ga)J-He0#!&Ae4ZHX- zdmSua8omG{rGDIU0XPw?iC19vLtsz5PWBc5g(@f2wHt}eZ2Rgt1#7HQsefCAz`K>5 z(!ybR=81Mvnn_9{^9#2W-{Ok@c3(iATR8&8mj8|7xGVT}9)braVxJdlHWd)d8*z2~ z#@IX}W}AMkdK~GJHBzqhbC?6d3N*u~ie>U_E2K=_Mp(jzv`8_zm%{?Z4CRQo4oKrB zlbE#A;aT(Aqh#a5Op%gblB@n3oB@;_WImw#@@@AN|TL_CAaK?>PiS5;IDqJ(;%C>tl0#)Wfjl`P#FWMe!mj7)_thQdng)aqK_C&L1pJbs&B3C2L?_E7n zb6XCvQEw1c$!tEM;V}l;zGVXSYq3~3^=BmwS%M5aHXLHisr@G551&bL|JIW+8%j8} z{bmu9kTquHl&%J$*c*&ULJO|!`I{JVOyP3}>qyirMB_Wzbr=@SDScAfpRY>S<1z!GDsZ+R^$ihZZLBJFCJtiOP z_9Y<*@8m!w3ZUT?;8ofZrCzp>j&;gpz#ELIRz9zoK~{8AwBY;sP@73NFDp@a=9fbi zQJ>El>mVZFM?_`8t*`o2p!L*o2N$YM(XJ;qcl#zE>;CJQ7re`Flx>sVrLY;FC_w)NPk zNH_bW4WzBUpMZjjutCter}!O~8>iS^&%U73|CcEIk>p<32WD{RL|DU-p`1>)+)0u5JEFNq$Ax6bixs6)XZc7pgezZY=E~G%F9@4=;=a^B{G< zTnCY0KhS*@DL1cU+xZ8lWu^c|Ki_5`^Z^qqxe#Og3DUXH4^+a8{cmYl#ta|?5zA%s zz+XnL&<>KjzJ$=6rc3qt0ua`QmbIrYOnSmcX}afHrMIzzZ5U#Z?`gI;0QDJrg#0oA zz8wi(^p>2vkzv!TsV#^Zz?hlGqlMN{RjO8o1_16viPeVoS*qKPjF#va_p+1S%i*tx zEs$k7%5U8KI__byP=`%0oRv^fR=wl>w-&kD6Mc=7UiMXgn~ksH%4)H>mSa3h7US-m zz+fH0Rs|4Xt~lbL=B6mV+sBKq=LK$vP2bRmt)vx_VAt{qlkyB&vRElzi>D9-!{>qC zsy1=OK2x6|3rV^mf8zW5k{?1FnMHo*EkV3qcKW>hn{~{tGZP2o?qBSe7+@u5igMC{ z0`1%dvutViz41SU*uI8t)nQ>M{1pwOg?(+tvicy89oi=%CK=Q0sP8N~KKN@Xq8~4d z4*m*D#zBigg4AA7{>?LCTVtk0I%PXu&+`^hxiEaC_Xiz4T`1C zTX{<^?-C37Gfc93)gDWl=D_v@{_uQ?B( zuk-sayuW>jsbug!+1_noXY63p_)fdJYv!+f6lWiSPA)*DC=Y#`tzVL0IU$!w{P-U^ zP1JAo^~EK_UY+M z@}8tDMOLw&Z;a6jRB5Cb`KKKN#mTI-fu_mbQboI!2gtweS>{-p$O*W6WBokhvGR=YzlY7>-K((eGQLq{;JXh`dbKk3W~vob>XcU}Vq@C-0mW0bLX z?FO}Ade!Jqu1rgSU+jSkAoxI{oJPk4>KEvi?9zfkcStt0A=2}?+#oNj0eX?%BkB$r z15N)6d^22g?Lo}vg1qUJK_?rAP1DfHefcjhsY+j0)?C04AygnDT-GYN@wOchQEl?BCPrHi9S0;{id!J5+@VviwUt={ zY=c{tH}Adn7FQHQJYV~3777mWgB)(+&{(D2GiOyS#j4LzDl)_WG6E4>vLSss3{lWH zOgw@FZ*EK*eVhJrAR?L>f;eh9CwP0}QvT*bJj^FtIf`m$AQ$v(0NKyX!1NUP32s}c zl)0-#a+`&WVzJh6WT_AjhO6ULkyZVDG#qvVwsRDZm02{gX^>sW|2w^d_+Ik&(KAb` z&s|y_^ zhSww8`<8IkUg{BNHehkBxs+qNyR?a!QMHuhAROV0Q*_0|Y(4a_v1jh{wQLWetHoeS zfp#flzmA$WX&+y*UH-hrCUk`xLAL$toh#}`Z*U<2$B9_5*$ICM827SizIvVyC0sIF z-7xoU_q(ma5iND&gGquP$uEcSq}DjW5zCX%(u1yY>jol8~Up@^d67>^gw>s`n zFHnW8E}`fUIV$)rK9gzNu~g-S+oI$LNe6RjV)^ufV`@s(;&}Y5ibRZQdx-xBw-S;mN73i=BO6A`hx5TE)2j5VXJP$M~NOk}s2WwbhSDSJNzF z!R|M7&0BP-tIJ&;ACJQ!Fr3Mzk$F6~+`v`bUqpq$lCt=}n%cpx$^64z`4T{m3P{MX zXJLT(S*HOE)AHNtnCRSFs21LnOWCW%7d4vAnN|>E#9$0Yg~N0~@Qn+$}~mr2mM0O9|`Yn6$LQt_;U3zzud}U{RsqV*cLUMfCoqO zf36K|yx-{KUXMes+*Ys9^=f(8B?{sJ<)cnxR0q>oE@PSgSE*`> zwcl?9?los2Udru|E)|*RNHXp;BSBIY2?R$J?=}dqEGV+dT#bGrUCdV#jT$;xpYFhA zuJN^EJCVZmn^?9xT7#9_dHa=fW38mK^zl^N*ERc=C+T{n|86%^p0EvJR4N2>fk{$T zL2BssGJo|ZFpJptbRkD9<$joTjZ2Ihmc@%+M}Qude|vV@8#$TcBz0gn$M)iT1~$QNUuqS`|qbh7f#&>Wg0;?(3} zj6EgPiYGM~>j+0L8K2LmPJ!FcW4mB?LCmT#{cgf~D`$`m%lIvItU`~C+g!$00uThK zPrfLB{)Ox={QIjku4l6UzEs|6LfNaa76WQ+siUv)?(VCQf3gOMl@L7eE^Q@#@4&-j zMu~8?faqgIkM(Y&RWe@IbT@nJrjO2+Tc99K8{sV4$lV zP?7v=35!PSu=T?L2N_+wIUag>zJw$O`O#PH4~qP1Be+w%y>!KhxrujlAV{`D;|z(= z>TA6cx$5ve`B&E-BN3%4${M13pbXqij_>?9ENKVRJ z@)3KXy*D$xjGN<4W`AL69O*<)oHQbsHaak8RN}YFJ#PG&ad!aqKq2;=uZ{b*Mz>Cv zY_+FAEvf`F?Anz4wwJH@bJNNE4tDNq-Tp6LJt%Bxw#G01W1_h=*K!APW$!K|1y}{Z zx76D6U!Gk=cAhffaTXz^X+$7W3*K-uD zwN7JJv2m}m{YxCxs&yYvV-CDLSX7^^JNq_F^s6v*bruzg1~}`T^z+F-OE;io2}FdJ z8}l++P-FImv;ET4zRk%?5{@lW?E-P>EEHC~A) ziUF223)UQ42i+Pm_T9y!{%lN6?g-D@d@4RFGrP@;C?fqdOR>Z0P54fy58Yc4>*ZXT zwUXklS7t9H`Qs@=AKTYfF%3zrb?hrpx;h`>G~4YcxoW5`S}%(JOpAgAQ1;~=HBk1r zL}zb$+kY31d#<)3@cK|AOLYk2{QM2R4{gKV$^Sp=REsC2KyuH@gP2F0+u!B`Y3v8s0LI&b?2J*_ILH4sPnZ%lLI}D)B6ZaCFTQy{gv-@#K^mD`A}#3+1f?a4Ws z_~yi3e=F!{^uqi5QBNH}@{W4+$%wZKptU9hFT(?is$JW{yWw~-+nz*Wp+YWC+N;-X(t z0iWPHmHl`G(s=lF%IYNb-|$wXW@=CTSEEB?|&9C^QhVfy@`%n0gOB!e&%o0RY0Bb`n|SA=5=D zDs=`VA26MvE?#2K@CtjX92hPi#~%5LkYv?q8@{lzw3l2t#i}Q!Jd4qcqxUJnSl0dJ zo|vT~lN4|lD=-Lt@{N?}8JxYBgklo&4O763xtA~yH(no>Rg-tK9_gr(*iwvLY3#Qs zd3HmOwOir8IeX0R{5T?}_Iags+k}E~4f^yEuV&K%#cEQ9{jR&(?tCg-EP_SeOWHHB zyy;W#b7-XM*2F&?OvshWH@Cy-o7gq@Euf#7V`3dj`8y4gc6WZi(EP|`Pwp*>pxxH7 z{-)TQJHQ>^CAhpZbL@Rdm^*CuhCOu>zE3iM1A_n~M~nl%jd)iGc7E=Bj!zKw%Bse3 z#ULY?9&1A)Q4!bCRs)J7R+q;ILU6Y*f8cO((iIbw<9oYrq8-3n{27@F!Vo_Qbks-@rOlF9?NQ(Fen+DD9W>FoMayP%D zGIG2cNDQRC9&GRafM04%mL|Y{!pXhD6mi4wEdq_%Y5I&qk%1bJSph}W9lK@w&uz@t zWP7(~P;U0oeV0|AjHTgnjdS5KQ+8_}V^H09_CZ)Umih+Kks@YBoYck`Q>@YwgDT_; zw&|J7ln^juww!xt&4TkeK6R)G4mQ%KRZZom;aYO3;Km_a?m>KPr)$)%+$puqmZ4bT zG$zsyscolZr^1xW>h#V(c3>B>H?v+Dv7D&M^YL1`01pVI>EyNkLhR*i0lhRwk$${R z75#AMFzDs1g;PyS$rbrNXe1VZeI&WDiw3KnB@o`ETYPyfcHDYI$i~e;m z1xf2FDZp!48I;XvqG+-^?UQDuwu}Ac*ymfZtePQ1VCzGSl%knlY~^PC8J3un?*ng0&zx>E=o zeGZLK3=99A9=rXYgT=U<@&yi@y*i7$yLgn)cX!GkYEP12q&yOdtkn9>CVR$w;co`Z z4_DRWaxJ_NOff|RY?ma4ZP;G)<;Yc2d6!BW@Z-MAktm2BYAbD}OsTWq^p5i`v)N{b zFiA7LjnR# zjQK&?_jHz4q@}JuYd;IUQnDIZ;n!rWr_L26d#YJ$=2%@ZGc|JW#P^}>0bS6s({|k?*Z)J+Sw*!OeOWxgt$1+@?poYkiWPS$&`>DFiv$Vo z5FCn2ixhYFLXe_G3lw(^?$cQ_v)25-r~CXp+;jIi`?n8}^Zm_-tdYgz^QnU;*ow%F!-LHvvlUv6BzUP|!r$^rt9kYguT}VKV59x=IG;7|BlVXP zs@mT>llD~)^a-vWpypN_mBE|lLlfGD=ZnrFpVUKy@9*6>y^ntrRHNX-%k$SeF{|`W zFJmouj0vW_t<_iarMR2EvBQZmSC^idVjAjud`Ch1x6%)f|KM1Ou9=(vPsIM~2Zu|Z zrT={r=D(C1UV~!)rm!1}Ao2*zYXu6ubEz$CN{jQgV`7@il*q0TMjFEyS|<`jC%4@B zD>`7^W%uwpgdpD0v^c2p8_+&Qg$Oo_&KvSsG=rdPNG-j3^rA+)!7x&Gk#)PtB;ioe z&G)vcw4qEn_tbYWI-=hKgCL|6^)MG`byav4)sRCO2{4U9eB@79?BYS*am z<&!=|F)k!W40S<)eX5D>?}M_*#mJCwhzhX|y$5k8-%q7w0{@(GLznYES)e0@XaPhs zXbzMKwJ#(=Np#YH^*wNRYz$9H=<7TEN~N6x@K3}$`}`4f;zpN=Qt%t9}G?}THC$6CK59V z2$Nu;7=5fTj72^d3rxp^$A1F(J((@kX6i# zU0(X+C9Jdt%zOSlG>1&Y>e3{tDRj1jCj#&sB@ca0c0Hu$J!w&5B?2CQuQFA4Jm0&# zbl!wJ2Oj=oP~sJ|mzO$=B-kDMz5YJuUX+Nqih!#11{cYFI01cjK_)hN$Rp)j_i|~K z;DdR8rZ3$E=TMiL(3LbpTr26P@?kQVK{p;F-rz}+d{HGtLPEDQ9>m5d0og6h`vhk( zo>|?lJF&A^d>FG}t5uMg5isfojt+2}c^?C527{~`BVh1^~3aTPX_-=^oyO!u5 znqkvTxq+dRld9xA0mEiJ9+{TcsrA*TqB8Pi3lQL;#4r@H$AZDZ`4zZ(X3|RBa(nQW zM}UDk?NtIjqW{z1j%`;}dw#fRhmWRWPX*iVudoBWy~egeeDebv&Q>6Q*>2)en}S8Q zi6Lla9Mk=~YAgNwPpSq@hxDpxsVGlxU!K#$^IkS4B1;!(E&LB{h6{>B6l_;2P}O}7S-;-vXNeQaEl9qnfwtEp;WN@RhF?1 z@81H)-9gDf>Eh&dmB*K>U5-s1qivg4>S08L;dY~29PU4LKJ3^@A`qvI4H$S49Ajc& z9)hnjkYRz%D;ynqg|pUc8e~U{EN2|c=V`oMAR^219WD&fve(~~2R;k)WGnbX(c-mY zo`*n^m5OzI`S6XqMeH!Bh=#Om-SlDUu`$dcb$%_sJ>BiqlJb|((0*iA>rV@g7sMgp ztE}=_NU>eM#N^k}OK%{Ka`@LjfY|`O>rS>cE#or0Jj!b~V_Z=b^1cosjAZb=32^&OvWAAJ7*!+(KLO8|h z>F}{NY6$-oUkeHL&GWfC`C(PSWU6tu5!Ax;DD~s;dRV%P#|eQO%hYM;dlN~042gfU zix3G>5)5m&Se)UXD2b=7Z5R3p)!o@BYamu|5EF*tzSwwvU$(<^0$yy65^2qNk21sl zfS9&+Qz!DJoj<8_`JUquUMwFnl^e6lK)XG7reG)H5Ob@BH->Fa+jkNSC8SB z%-0m#Kp*b@5XG?WKIAPl2#OLuR$kgGo2qb|gKO@lk+c8oN@ z+Iw4rV2hvF0$^pL7__2Vw^4rxJL19PmtJ|-zxvy+Ve=_SE zn|&tao56X7FNGElQwH;*V%|95XS0{{`UA1*vX1KA*aeCH_5)j_VoO8u?=%jbX)Jz5 z@P-O%P?)%%830kihKXrr&F-Y0?5+vndNa&RxO*~Se1hjY;=|dYtgN*1cadef6#BbS zdiJ9Jvpel!TUprR(w=Wg0QtSBrH|$KyYY!yb=Z@_j`#jhB-d{7l8ky+<9yhJ>Kt30 z^g`sQzk=#s-f|3^dZo>0Bac@vyk8t76ei&Abrj)eXGT0eVw$p*+qjmyo#h?I_8~)} zq*GlfIp?7PZy1=(Or293CuSEWTE=83F=4;obyCx8Z6Y?ne zEEu&l^V{#os(&_Z#}?NcIdv(`MIKILI}XnO1ZKfoXqX)t+a2fy%Lo$3F;Wwc$n3=0(W zwc-x?@5AjL;jMD_gS1Lm@O32fr>n_ziei&}fbE&O8UqTD%nuH=-<&!mM1ONny`|7Y z%GpB=o;T6QB`~0<96%kQ!&gg6z5uO~nx(iTp<#G`PW{zuqsJQZT4{xZS9XOb)qZKc zRl7;FLi;l{am&|TrWGDk1iM;Gfg-NOdt{Mpan5ut6h)6c3RCPp5}71GqEXb_#u)`% zS=OMA_|z-=-tCrQtSJx(G1f zO8Rkg{k-2lnQs({$skQQg&~-5yAuSDc7rd1VHdJ#*`9Ea7KRTY)!#n`hM0=)Ru{SZ^9dylH^a^>7`q3N z84X55`o-V%$~OjyQM108jjDJM-xpv6*ph=fj)s9gg>tnUp^o)Tm2f-}@}7~)=pNdF zpe-Vh#8BGSt~LeKyz7H&%L9S~?b8?HBy5+LRjx2!LL(IG`r1aZN80Wi$mjm=eMT#R zx8B}YSB4R%Pis!QJ%HbTb#k$3BQHNicDr{FVKf)w+fv2j>5sRo?@o|w5N>Q3L_f|W$uS4%FLJ~>Ul?76~y?_ z2?@QPi<#udsZ@-M*{Wov*L9EUz#5;YH{Pst@AV_b^k5@IN3wlK(#+HCVOSgw6=E4e2_1!pSnA=R`f;R&iGORgb7lQ{N@CJKV@&hOl(R`^o1fG@M zn*aJQ*>^;1VV;#8k{ygltZ4bRRCiWbJ@OU_CI`qO5zBV3x~zU(nDA)VLgQeQPz+3K zQfTD*#rs>+?%SKE$AtR}Q_IY4K&u>-&a#JkJ{`O*DJal8ZlWvm^EPMxGWVfzmz;I$ zxnjR#J-RF6%a?`paoNeOpi==c>2rjOF-W@ORDH1bbv5zaG}2c>U-r#@n-4lHANR_b5qm4O%L+qudWZu>k(hLqd>zyKk|i@;y6jEqo(o zfC{MmeKr1Y=-gMB%q+`lxn%JS%PV%p)3bPET?T)XM%JE$bI;ia8v~ZXmXVMK8|OKS z$#ArSUuOYUUq7yLvl+r9WSW`)3m`-zX1De;qfd|(qf1To)fTbj&)>Pb*(_+1jx{_M z?^M~fzQshk!+#tIC$yU2IecO)sJSL<3;8vsX3`_O`-``yy3N4o&7AEIrHc7a_Ivnd zPUJ46jtG=#p)+lsfpE8sYagPH8cc(?sD(=)jf-ja8Z z@|dvlLo)uU{Hw8<5PtR7^SfN#zw0HLGDa17y=mi>6{~m6D^=K?vado2d?&gk*w%bW z2D;KF>~)2wRl4RY*j-YLCEDEljlP@lH$_PmOaF=d1%pSum}DmIIl@nsG^o)KyZmnPkDo^MyhQMGw6bGFPa91+yMMON%G1g~ z(vUlm1lQ@o&2{<5>X`kf{o%z@L=*q@_>pKUxAfCdfFu)$zKVQt>cLme%g!m=H%Q&H z>>YDgQ*J+u%Y3aZeK=xv|LHhuR$T1uILqqAmGcRZKXvQz$_&XJbBu{Mz30CVezus8 zMSq{r4I+a^MUNJihSqTDT!^_-RFkYp4XnQ{lJKLwRkPkuCw?t;GHTFMVYiJc#x?TY z_1OpsnfNw>pAci#v-YzY3bHchUmYyow2MlN9b#f55YPv~i7deCx@=>fJ(DbRgA`D6 zeIq+{GaurCg_iF=j%~_*kqje-dMK$m`7qSrO(yEFU=?%ayxrXKVLg{(Cbt?9=AJL% zJ5ijoD>FjJjWFI21K<&BbHG`z1}>GVK+y^WI1{M!N7(95bJ8!@XHTboTA&;cGD94< zDLh;!PkB02gEGbeDSc#k1kl)(aRP6|f}o{_3olAOY|70qFtwc?3dAGioXcZ7nw?6N z@igw_!RWXu2$3M#TF2iBGQY=B-%Q+C> zJZe^eRRG`u8z{lzfv7qELYqNrcCCrK>@h`% zti%oSe`~Fct^S`Ez+XTAK3*;;kum4YT)0_L2J`4{AGk<9Wv)cxY{fw{V|4@zUap9!h)ss=R%lTh=!Y%>#w#>F8(D&MtlAR5 z*@t8!bVnbV(HE=%s<~V&3rK%`5)Jvs7!gc=G*!S@ueN_h(ua>nir_vEns&ELo2Q^0 z@Z3F9i!9d-F$f)cZy#DiKSoxNlQw%ziF5^-Y0~X5`z_VMPd7sM_iRJ^xBnID`WVK#8@HP}NC}>deE08%KOM~$LV&Z>pEa)h zt1^zaJVbTc%QnN8;&*?oJ`4DFi!3iL(mW#`=re48wlirT=uMculXe<@pKiwDjg-i; zWyFZTs!4TEWn# zR>>>^FFXm9vJz=s5ljQ5SXuRSGKptq>ANFSg}nT@{ov8oKI}d14y2CH#AN!=D9NCV z?-pu63OQ?($^Ma)#F6`a1VG6D>qI#jUC~?v0t4Fzeioj;2E_w{+utQ5Qw49{Tf3xK zs<8IRMDhgrGe5OxzI>uP#6qB3ajZF1M`7|{Fze*Y{krJ!00w6a1zwE4e5?f09#1&4 zVfu!I;R5y0FQyKz!b`&;+Z@YQ!~w_O1dW zdI=zBfHLTwbbdMR9mvUQ^XsqO5`SBTQU9x&zet+4j-JL_P#4QBVVdkRn~3&}5!|4# zMz(gHh;B8J*MN)PVYDFu717M1(Vw#5&En_TH+_k?neVjTZHwS$)}@kBo!`{t75 zIk6?l>{9a*6J?%=t5+Se3)qXvTfjnvzsd-E5efW7Uo{cMgT4iD_sux9)%YqCnJh}_ zn22iURHN^S?PoBzt8^QxI|`4{eOtecYmVuV2=Zf=w~pN+Ji8fZiV^nuqDH0HZ2a05b=qFyOV4#@qH?o z8B{ZAYH)cMO!Vt5k(*vs!{0!N#qaD87w~$ocaM;u67DE(5k}(M#J}f&AV$z-Y6pdW z+}p6nq*iqCWDn)AtdyalpM{s4`()TjK^xT3DDNH`n=3y#@FYj=JURjUR@*AWnGtkd)jukj{n#vnGSCQsL&!&yur^?xTLQ&!TYo34AOtENj zR@m$H!lt?e5@kypoHj5q_(> zN^7Q_hC@W>7qm`bAw-^M3_$`tv~hNBbM2l`2KwfTyHU=T51&YT{(ZnqHu_U?1h;OZ zxqM)p8(;c-dQD-&SGb;?(o_u1&Qxdfe)U7taH1Bh(g;=xK9ikue4Dd7+4LzQX!5Y} zBKNmRFhEV?(uW>}`B;P2m(r?wf*j#5rE-^f=4ohU?#rY_d)+S;jRnJWLN#Z z<3k8k3sc~7IQL5~f+j#Rp}Om&{$sLb=invP6J0Qa!cHu4t0qi+w1(#3uzs+?ur$uq zAu!XoMt#1Td$&y)9_ym^hkx7=G>_hWzu1bdk`QzE_dg{qi1F;|@7-yolc}9Df&7XS z?@u)e8O#VG;{6s6aaUH5*8%>7pyu?vTFfdkp|Yxc?|@t`9#W}m<$7LS;V{Tz0v*4i zfB74pvgrO6os}TRuwrG>E=_a;;t27LKV)FvWmuB6*3a247a5rDQvECSY9vYxh@w8U zutA%EjO&ZJLTCp=@f=r0@@A`9TCW?Nks+2+`~2fTZ=M~3o5LCwAcsL8;!lO*fogCo zMMft8>@Y9_wulfWW`8}v1}KM5d`ws9=6rAUE+W#||6w9R`emk@EEh|}5;Z05Y9qMM zAiE4FDUO+23@TU0+)t$4X+!kdu!sjPXeycovFbU4d_a!?8#m)_Xhd)#b<&Dg7|+6+UknxM*{~-XDRK zl=5S1u?vIYr!pyDFzEo=Q*qOJki6W*tL;RxxhAx*%z1Y~DUXR)vta?NhJ+r3Q$&cU zbL`AIR(@>KE2j>>%SZohIZ>wC=B@Vc60b8cM+g}1k|HH8zbPclhee`xcwoFn#U+AL z^aZUlXG$1!Qu&^((*2E=3Gh{L6Bk*y=tXt39WkBrULceW_smOJ`)U)58sSJdT+dyN z)x%O@;4@9A>d2ugx;3%-oZDYlDZXX6Q{2g7gvb6}5>zwJ*bW})M#5}lBiz~+Z^sI` z{vA3pw=;gG5(fn#)E1h7Mp$#L!8~VqJm2J zZpR^buj`*ZytlX0BgEUqlfrk%tzX`x2kd~Qq#w7m0@bYDn!^8hS$wfbK@D>B4p4ER z2w@KqJl%kA87Je97wNc)!xAy^d+ZH@=tC)s$4%1YOXkUoo%#wmS)RJ^`fHQl!02LZ zM$pzS3hL$*=3W z2HoDX@T1i11ArlWZ&PDl1^)LQ@z*Oy`T!49Qw5`hhjfPd{|G8WqN2R~8dTy?(Yu8- zfMqL#_DbmALT%1!0)d!yw0j5aF+mBQFuOpmNxo`bmVob9R}Wt~HakC6=(`*&=l@$O zh>0&wuAY~9?9TZ&YP$0{*us8@ZEayd?;j(Ied>?8m0exqsl$6Xa4>Q_m1J4us5yDshK?GX?(;CNohX}odShJa6Z}{I5Xf1hn^s9 z?Yall!v@+zU6LY6gUOK;AP>`N80bFTvcHiW9AH++b)i)C&J3C<^>Tu5R|o>f{TmZ&RlR1)Llr{*9AMw7!9@ zB!bc5-$zy!jizauM2;$A_R_)M+zV=Ntf|&&vO@2p(bXqrC`hJy>x?MQK9t3f@&#_b zl563x-Iz2y=*MoAJcF>|W$e=5eY+}sHJwLS%@p&t@n61jbpmSTy2(~5p{;)4XPi^E z*zL{J$DcJnv@?V;_}K9;H}f9K*6Ux!Cve+uEM}#6bW~>tLKX`8DK>s>@RPSybo)(! zC2{N1-bC^K<7DC^cxf*J3FnsX$aB-1g13q8vho~yr=?I9=-<=N~icNeOTXk~IWI6z@~DQlTSD)2|iD zVI38zH84J_&#&0AcGcqqJ*K0s{=qKMR)e%wKQa4`f8_P6m<>nKSwwuzzV|cY^|rTS zPP6>12Xv>RAWWbI4DcXTp@lc7XIG`yd5ARM8-~vs9KSo`Dl&3WWaD8U04QU;ZvG=| z^6QPr2YIp1FWC-K|MW3uF(Q}$6$XYGDy&0q%#~iVVwnG8ZFv7oE8sLiBOseCJCrLv zd&sVL?u_wb8Q(i5RWj|Q1ZkvM^@J091Ual*jN!b&q5ZpKv^Zg8!QmOFHud?=T94er z@Gt8+r4ld17XZ6_aAHFW6=_T;a+2U466O!PxQY5R5jx|2BI94;fuZ;584Cas4t&Xm zKUiK{s3OhmP^h*V>s07R`elOS9-FN+cv#%44k@^`8@~jE-5E3SpY_Yxq!mq~;PWLO zRKQ<80KJ1CTUs#=Wvs;C8*?pZLq36XQJC0b(=3-z0a{?-Ey=4u7Y`#3CAZ+-g2Qgr zHK{PyK>wJMaq47AeCpZ!g!+^t$sNmcbEVyxdoKv=THlm?_c( zm@bZB8}HN32P}av_BhT{``tT{+;7V)6ECoaLGlN zh!~7y?U~sPBf9&r0_8V~I18%Lp}(h27NT#_6WYX+=_=t@z*t+-O_Tw%uYCuU>I<$_ zsg(T7yU&6fO&Kji?mZSdx!xQ17hLxxIj#U&LxM^4gJEW{`0 zR}WttxU^Kec7B@>ZjRiq;wu>L=xmhoyT{HWmwFM9w(B`dHMA7QP%FZr*vPT-;*SgH zY?!Sq-j|R7Afed@PcQg#4|Olf{(UP)eQdnyhd-guK&Bnzq4J|cbwNVLc&-qdDYXsB z>4V4@Yy$i}v8j^f_3iX$uPTrMfZ>UdU1d�&vY4Be4mzuA);>4Y?(eHhQ*xUcP$2 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

Gmw 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®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 z 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%0D55x%#KS+R3o)pQ z*u^~70{*1GZdI(v`Ub};v*Wh#Kak0mr;4Af{8}}uQ}Hxg@pW0$0j}^JI)E!Vf<|j~ z>q`DRtWZ)wBfMfp-(j?rOF<(Hqkcf! zwEU0_{~Bc7y;#ak)F%o66gjlZfm9zd^ia_m|H$#%;Sb^jN1vro=vCGiOhMecPgS%C zbS2*WK(nk)n|p)w&2?6>B8DR|hkh@3_M(#N7aMRS*Nb0}HJo1~W}~v|OU!7WPAKQK zfSPvt*UYg7Ebri1G{9*NyfNS^&^ccTg}~EP355cF=0756&wBL)WC4U?DxtMgbs`v-^6gIPci%P}i)><8=O&NHCG~I`tx9>xx zUsvG5L|Qv#J-vo5Ze?Q=ehKP|v$P3(fd}J2NtK%(39u4mP_DMZlXFJcK5ck~VJG>h zehxGmlei5nUkT7yRJ3i1XN<qLi!2LWr#u+^2wmeG z$V}6;O1Rb^TTNWm;4z6)$zl8szI*Ux-#cs1-g!`wWU<3R$$&MO1L{2Jw^W zO60njJY{^3>YOuoBvTl~>kJQ{QJ`6(9Lg;tefRfKOz&CK>(Vofxz8LgFh^TtF)5%p zGCQP`X~XmwZ4rITz!0w6A|^$`evo|v$P^=F)aXgFFxP?eSsGd>t9P5Q>}1SQBY7U) z5*PKHDUcHsv5-XtI6DWQtGx#78?E1m^_k)??aEd2cRu#RsWtuF6G`~rt}3=OwA~Y5 zM$ejL1Koz^sIqn2lzco8Xy{A2jZ;4YROym00P5F#mUkl!M*~>%CzkjY(?Mowoi<{u&>lM`f&x1C$*c`1~n(y}X7{eLC2J5!j65!@Ce( z?-n{CabJ%HLIswMDpt(VoV@!7?Ow^XH=-eNDY~G@WN^<+l5&Ee@t+wo$2Qh{VA5;K z2MwCoJ@O`jt*ka$eWpiPw_1o~|F~iYg#r6{zWMfXcJOm83{s-Ahc9(4AGDx0R9ue7 zhh9f747Xliemb;(``dyY4 ztqZR(w;lNgUuBWD#z-5zQze7f&o~Y6Lr=d(ydGRU4X@M5okqbJ%X=zj{3gK;2dV2l z%N93E1y5U2z+xqidbf>($58=;QdkYpyd_I`mEYz%<-n6Hi6O=6t+oHuZmaN^c~RbW zHX@hS_iv|_%B&JhQ}U}93-&8VOj6y~m;BiK|EIR(`~$&u2?}rCa0CMjhXMqbbQ}c# zJkATq+2%d*{e@S6rd8`Rcuq5|{gw5$0?xB}E^Q%0G>?2GdzW#Fu7%rQ|eQUG1rU zdsCNon0aU&%~`|1-*4;HbfkZJMI&uvno~@*a5K(|Y z5h=2lig@%ZKBW{jS|vQZ(P=alfoQ_IoUYr~4{2gJ`y4>{$JY{Eige#zs%AZlvXlV( z*ocI!Qq1t!!^v_?P4`^k)aGDRHhSBOR6$CFQxN}K$6SUxyo1C-PRl}N&XTXCzKdjK z%m;K;VfqESq2IvLRwa+n5#S!kg`wa|KjG^1j8+lRf5%7sS&x3?BIh%9$T%OHx112b*q1Iaom$Bit6jL}kkb+AP6|uwH{+h2p}0g2HJ3Ee z{OC3Vo10u*ZOXnX1gNSiTEwoJ$l++$^4B>QXvl2guEr^)IpB`OmGIVP>dD_d59_MQ z-ER~AnYxFaWx6t<=(Dr?!Uu&BPNp)J!i`3{CS#QGfmaOzn8~~C3!z0ggD6Z-Vw#9@ zdK*6|cYx}SJo!pvej;g|Ru_d2cuQ*)Q35;8|k}He^9Xnc_8XG6wzWsdx^u*a1feuhUmLuE`5}$RmHT?fr7esY4GEylHSQi<=J8Cv<{Vq_*CkmtpTNjF2-gwD-_!~ zNiJ2L7AuKbiuJrUM-vTZ)lS%XKHW-OOvYr;WrecdKl8dpuCn!yZA|5&2UCG`oKQKG=Ng%m75-g(C&< z#rIxnW43T%n;Y6KqC*oQSX9x*C_))34pf7DOp`LUG}t4jB`Z8P_UHttqb`CwGj5+@ zGBSj3+a^yaH^r}1b~^)h%=VwdHQB~~dpTg#ScTzvH-;sw%yINIVYg{G2ye zoPL?T!~jrqf61QJq703ORQTw=>7p%Lfyq^1OsJ<~W!w}hlcwru)r&AXvjg62*GS>? zMM(MpL~wncdbl>|Rb;0RXE+uGf%4>BDnKMDfo#~8uD8*?S3Cf1h~MyJ9rf%O_1f5em9V+ zg7Vbl@8%U`WD6$?dK){Hzk}&Un&z^3fV{g|J4vyL3IL;D-niNb*fcP0_M5Q;o;Nzl z8q}d$p}?+bnVx%b5TM)sxX><)4`U_+!~K7N35p-rg)EYNQeAgNT8nQeN{*c$>C8Hs zDZSs*c5T{TB*p_d*?j>dC*Uib;2ruS9bf#uha&0Vw>X!&pN)-VxXk#ZRntD#HMFu= zsZLwq@`g5Q%dQjF$kjBZTba70fYwJ-5)3r6(YC_CxWD6n+$Y75ng)0*MZa^z!V=|I zX+zh8L~i@1ja#6&IR~9s(bV5iyT*C=>pSe6JWz;0uh>F!Ubm}E$aLE#7p-fS9OE4f?$(rz+bUv1Q~v)4$7KFN7s((w1x&cwOqW72wv5&Hg^J?r z%?3j1j@j_LO_x!4j$|qdhpJZh2;rl8&c=)-TBYzb<6Suu@B;p%eQeRWnW&Fc*Zw{Y zt)wAfes}U={wPI?bSGo?nf5y(hhYORejw_#A&%Co+5~p=g+;kt$(e%WewRrwwsKIl zC7hh(6=;+NY5WPGTHRaDpM$B{a~GJ?lVpjeI(r)c3}4&gVBXVH4p$-CWC2#Xq{TlJ zxKDUMc*v~UJ{$Wd8*8Y<IvFS8i%b6?zg zi+uW}9M4xA50tKIf7G0yaN7O}jou+84mH0KRiwl{(VwKa3Tym3yc*X;M{+bPS!4lT7SWLyW#GxX%O2le+2~8!3l@PQmxMDz9O)+I&BQ%z zAG$~Pxc+))4l2}&X-{Y(l{3<$OY^90?wU^Mu%Cjt$I8K~Iz zJo{4B^Ghjlj&i6oAhTMRG!&Eijsz=#sMi7P@G)MI_6U9eh`+trug-i_ah z)r}eVp&KvMcLxA@bN%LiJrnWy;uVIR>^q5_^!GB+92{&D9aHwPQpD8P!51V|5d9_h z+>`aR`TgOodLxN`oCLy4Nz{||hIGh;twwBaHvt>W`2b+07;!&(E1ACt%y$Yagi_ZX zXk43>$9b<_3v5gR8z+${3UDzfq3mV^xpYvJlT#nx6-dNdIz;1p1C|(Fnc_vtn?ecM z51{uGuSU+ON%$$Rjf0M*96EjZxnm!xiK29J{q+*R@?SQF1JYb&+p9>du-*>L9t#^7>l2Ot$_;FoA6+aO_9whuD!Bl9%AFkY zuLZ8G=#%{<8ix4ICyYC2)R#Z3CG zI|to0Z%b{cruMdQ#b2043>e1YrTE7R449X0W#jFFn3eENec)84ZiUSC_4J**#6bz! z7AJZM5!~8@L!BD$w8!dNT=N=O0!n1E?|MzRc>-6XojVE_d-S|c+f1dOqR-B8Rk`=s`P^wb>f6lpv&!Nkbb743JTypdbC0;&2u*L1KzCMFiG>nL3})Z}3P%5Wy<_FCsrhXg zpdkEwj5;Oo49Au)`6f({{X1zHuV2c5keAX$k@(LKoRyt1_F%@T0Z-eKpSZok;Q`Ev zMl!XlZ%*Xa$S_sH^;j!*=dl#7%}>mfZas?>m3*U+Sze)%JDFuUhFLxPXZY8&~@ ze3v`kNE^v89PjM4*v;=TOFA}bUk*>51Mth8d2pVKywupLq1oqb97CEmRi&G}|9dL9 zs??1e{>^U=5k}(wz=T2c)%xJ(gIOO-I<+S+p6p)L6JqFOn%*(SknZ}=uyjT9lNv>a z>%z|OA!bM3)aNf`65Jo2hC*hoR(%X_xmQg-roZZIpKK+g#^Cz`@~l2y+Vv-*tde55 zP?Uzi7e6g9>;9HeN$qW8$KDqYW!up2(V@Lk2`y-J=CK89;3GFVc;3aPqx>)qNkZkQ zeQIjw1zbyTlwKGUCS)~EzPb2T-mnOtujQA0I8rUOI0`xg z3sNgwqI(e*LOLSH`x|enFdvsxCe-ftH#FYHGTfplpl9C7#RcdQQmfw>dr%-?%9gH3 z)o&29p5`j5r>>$Z6I+(gp&#-bc?>fvuigxU_H)}(^``$F%q|r(ws1MOGfB`WiYg+> zkxf*FOr;fmPDWdK8}3A^tvXUYu*uo~3S07N{-Tm#Zf=HYewm0Uec8obPQ$Kg7!l<) zz}n0V4~eOJ7C-!Fub(g`j=&R+T_JrrRX9Uz$@D~!udX$+kJ1dnjrcb2_*GNzt~+R* zi=BAW*IyE4T+Aj-kD{(l<0W_2M|xyV7~npN33K~6gl!p!X#TY0^IfVc`EGq*6*dN}?%B7FrsgBsXkz+H?lwZetTJ@(C)k->)2>no z8)nGe)Hbg@EJ<0Wbe~aJQRNSFWd{gW-+!%1vp7uAcCtsVN9pTpQ$XmS9Wgun7PdrHHP_(Xdqdi(Y@CuOYCU&Advyrm56A2fm>@!x9i1!F%$6Iq4V9PtX& zkCj?*hr6UmoUSEcmQUQ$G6tNUwS8lt2~^$YP&-k72zMAiO!?HleKByolbyH8RHij&v^pXiETE z_v63km8Y3l2j}s@qr}j~=Uto0L`xuO6g7U?<9f_ORz1R1V4X%&eE{~70bRg8vT>No zWhr0sqg~Re7&(&pi7if7HHfyGWM?-VL4nych)pV;XARS1Tq&eL*ZbsjA$F z+-OC@X#yuJQzeR)Z&s^%lJR7Uu{v)V6C zNO300k=Psn%p5SeyjwH6f{RNwO)0d}zbjA}J0;_l5YEz=ZvUD0<(TAEs4zuTY*Ut3 zrdf>bLriFNEe4VNNg4ShU;X@U=pU5YtOYeo=awL<0kI8HK}pf76xtl~eyAy~+_)(X zPIIis*-20TwDoAYGZ5;*%x1PCFhG&>wx|*7%LB=x2_c-=%s}2Wd9L${h->hV{Jehd zWLnT??M9u16oKI%m0yCiQU@L%qHDZOU+~Yg@s}7g$G=`-(lK^Rq5k$;nOz5Xy?aM8 zjxAEWYP`0+$TwX3mO2=plM>lOK3Z~vGGK<{o8Sk8Ra;iq@}8w>sVQixt_+jwjVnJHSJKU~6s zGcac$rR5DkKR==SSKgr!|T$;JjY|)};~- z*Ff6TIAzjUFvSAW7=2N?wxdFN4zs{hfF;c*xpyZ-_ACj9L%?;kwq4iw;zLyggh3kH zW}$anG_XOGQwcv<_d2)#`&ns!mj}JQcyi(m1m&Wced= z&P@E0Z%$3S9wR%tqAW>;>Jm}+`4d>=-2RFL`Z)MnjzDS$1y?wAdDANBgzwC7S=7DC z+)a8(nz6Z0J*Jqsmm>UgeskdmvMJ|+L#;T0fXV5hiHPTRiT2N3CAA!YBm&LyiWSJ( z^^_X_tFCW0c%uysTu&uvn(2m5;yb8D>$Wr^Afy!)B~1f)r{jnV2@=+<3j0Gt4DKd@ zv0DeZLbGXFxp^s>AP^v%$r<;lKXprt@wv>$B>HWTA$Rx|vy;AAh(p;d_cI5_uGnJYd3L|EN>Q|Vdb<29IRVMK zK1?_-Pk6L&rX(j%0N3Dj-o+1*%Gls>)|K_;lnl*hJ=(g7JNlcY!UiAg3pKV}mkK_| zw|hC`8NFGdlfw}%pOtTX!pXN;&3st8tlO;e#G9^TM=Pvg)KECyM}>k)yt3E__fj+o zE8#*|_lUZXyV&2mbD#g=zGu;oRJ+n~p9^7cMx0!f>TcTX`2CHEC}QLCkP9)=o@9&F z`2IZ^7L|LZb=z69ivUP!Ym>O5k*Hy>pb~~Vn-wv4< zX`)3xPQB*(0l2S{%^5{){Eu+|-va)Xs(7@Vb{Ix=T^1QBV^YI<8oejIlE;f8*1+C~p}4WQBOScS zMczTXYOpYs)pNO$t>Kdu?aq78fX8-1V8bn6<|Y4y;>4`2Qc;pTDF!ssvgpK{pbwV> zh3Zm%QH=1zJYOwHSuGFOMJQj<9Gil6WqXS# zP`4syu+Q?7EXdMYt;;OuV|dnf@Vozx?_NBTKQv*F~(-)Oe zGX$|`W3^g4#Nrg{F))1yULos4uoH3zLxn0poFHu*92z5g6t7Y%{17s`E}M#*)x$n7Jum1c?~pWNjdLGqmVz(r4{TO` zd_e(?nwu!X<~$4BDwDoGyFr6eZvj`y+paoCw+|mL14s6U0xx%W(0K&T0wrZ{wYvsLiF#VXnbz5=U$Dp?UEi1YEDvc@lL3M;p_|u>*xq z-B87#c<#?_mFoNW`%8dP;}{Vm=~S%gs5&&9m;Vc-Lc&zNy8oIQ(z2fcp?}qEyNSRX z9@k}Fjr+7nZV}-Ev5w{!U_8NyvTO}=4a2h62934;l3tw}%~q?gEdw%%>ZDy8)LvV1 zBG+futJ=>PNkw_*7Z&{HE#r%UjkGZ=_^wN@+0sX1C?4FpYEU@)JW~t4Yp=CbV0Ndp zUzo$>xZJc|tsa#|8jm7^T)2@bDJ2yKKZ)ICnpcvI^WLs?df$8KgbLG~l8u}Q)WrJ! zPVflCZQAjiB%I2t*-#zm=5>QWXI+)=oH*XeIQs-*shFVt416?4E>rYd?3LOT)-*xe z7;v_%T(S_F>~Ck@yq3UW?)h+T7B*v=j~kC)%~L8$4j<#fui%b1*g(^d_l~>NwC{E` zEG6%HX5U&3Qv4P9Eovcst*+xo)Y9+uuyC4?F-)Nnye`kL*Xxq>5tcMx7;!c<{e6$# zkjQE&qu-eaB6a@$xGd6T^&}z75vXLOiv*4_LW-fV(1gAcnQ)}gKv3>#nBuqGsNV(| zfZ6v9i6M-XR8~PzEaW*P0Nsh7;l=MfDTnYZ-t(d`hrl;~k0gipm-#|g?+!p#goy0S zMb?l#yPrVD!Xm4_Ez74PRzvM=ZlV!K83GQsJsw0xuZw6)Wf4w41?PF&l=5{a ziUeOelVT;r0+Gg~>yatvJ*NodrCW3HRk*xdi}XM;68#A-qv*G5KMtdRVF z8Xv0`^dlF-o0zcR&ouQ>3@0#ob}UDTUEfOC2`c?x~Z#zHXZ`_*5fN+#E;>4rI7!~sF$6h3v0j3Xf*PkUzTYF5HBB`jb%W`);4tOSOIQf{A-#tsBP37KWfC~2=%J&D+7wPCjRn$|vS6MPc@zu^WnK@4fASYXtZfufmZ5>fnjsswuTUIFtc2?56kr zBcT;2Qu8d|#@6Tj*Q&t;rP8myP%7hZhnt!NNX#Cm>kY9yr&Y#xe+c&u967OQ&zi%o zg%R6NXkc~-tW)bj^Z(QZlOK6Sp5lm#Q|{w6J*`qfE90U2^wx^vZ6d{>7Vz|0Ka;d> zSeq7diwZUO({6D*7lHrr*|E^b@{wgxp}{K8LNki%cvJ?p!TxYpNW`yRFDVl|YUD03 zzN_2>ui%b|)DFjw$^H@97OGEfTeJpM2M870JKFSfV`&3OWJ4Ab?aHO^-|idua`+56 zcvenUgw9Zv0!yT1-ZcC;a-WKFN@ z_r5>mdDd}WuzsrvHa$0{5kc+=&VOT-qCz@OKfMq4d)zX3R#(;qEwSSNG|Kb>*KL6*1BQRgKr+bZw+yMh+VvPkND_m!xHb^j(I5?D96RHIg ze){puL@sJf2QpvBMx54#xTrzy(;$oZAFfU61W^R~mZE?*k9MB3L^vqO4gTx2^Znu_Blr;GmOIkA-THMFp z2WCD0%laQi@L~xj(lBr>|E`ey9of7|ZhDbKIT`Kw!jeFppIhTL-tZo*wsvqA9iNwi` zAKuock-}j(AT*E4sArPs`n*a-T=i&f9yNV`=3P9K zX)L!b5osDak0-FX8lh_Qwf5=|{lpWbr2laG6B!{Xv=54OvMS`Dc@1)92N7Il`<1fk zduVj(ai~mP6`%P1-^MBIpX*v=Z(}kKxBj3*>)P~AU8^~JRtnh(S3NFNHu-~ zn1u|wj{i4U*GNyCb*}%u`=I9#p^j`)wTD&zvLWFWT%R2_k|6Y8yiBCJ02=%R4Q`Ec z%|#5AVCnG5s)x(b)sCyP6SBXM05&b>?y&H67&!o45s{Az3zjww=ywqf8`NE-cip2v zB)&)<_^VO8dhzp7`xb6G_)o~F_fL2X`mjb2%jcbS$?SifcVn{tND;ZHLRkDiP(JVAYvCzfk;25~k*35QDd{0u0$ z{eHb3Z;cs#A?W{E`H5B_^f=@LB|v~<7!Oh8q9I5gnU29Bz!`yhsNw3ycYC@+01KSm z>K#goG47$gKx50(yY43LvjK}i+@s*dQ@WrJ+UJ?&TQ+9ut)`(vWDd?s+H4# zLU~H~M5+Cc%_aZpddCKb%e`zj={GM5NUc}h9BJs_2$zcf+~b>hWv;gOTJVzJQJ%J> zY4d(T;;HVPKDUM$eeGk#@xt$gu@VYsJ}pcaa1op}g?(7Haw@Pq#rvVBnm*TK)x*w% zQ*e^PT0Kg7C8-Ch;X`tMQ)hApGVOG%sE8IW0=l%OIgV{j^|&zS%R5yP=o_t79#)f( zCp;r3rvK+@{Rbbd2YUQGZ-2U0{prYc0VN^lvB{lhjMvowG@os8d5r%HgM@dK!e9M? zFx3Kr1l2ZHOTY`IDYb8aKdU1CO87Cj=hpP+YLv2t!B$ozUs>M*L=Xv1HopC537hMY zgKfMMjNzO`J|ks4-$3)PERR^i%{K$qhUs5OI@<>-`4WOA~1853Hbd6R2vj;!QR5ZAIy z%oh;#bY=7HUmAcQ6zu%rc8W* zXb|8%ee zY;9l&x+ZnN{RsTe0vn@{AQSpY*$WMaw z7>$qpO0LnygqQszW4)hSJF7igZl3c}rs-K71+u2So*?A7{?m-ZF0C<+H6wEU(v;upXi-cse(uy&+$R1mxZ7Z(Ia2CpKKxXY!dFf8Z-gqS7Ma_RsQ`6=F1u|Qf-CkIskeUE~LqT(DqHk zCTZb#Llm7ER8ozm2P&#q?*J*s;QrBXENshThH;&!bXHSqmcHJ#J5xvvmsR7t?%^$m zKh5Nx-pw@ZKz9S1N&l8hZ5`5d!0`L>1WB9|Kk#B)!m`XWW_`)H&|dxX7&j^M{IX)c&xmK%F_vc8#$!e+yRrZbYi z>jPS{TpP%ge}X!Wo)%pKHspWn1_TuqK$vlu$F<)Ar+wUT`TRXGB$tievM(0=tg&9f=&rC|{Qg9`7TU zCKJ*ELzV=P#Go5~_X=&oZb5K)>ui4^8v-OX34JAs(DD3zY(wL#r&L>o&tRJ@zPb}5agr0 zxLGt_hQf4oy}Yrvg=M_?irmX+H@#O(k`5?{yyB*J)cyYowg2fO53x?xlG|STGaUWG zhs9Ah*HzW<-l~B#p>EgCC2}Qj?VPI78MPR9h%gHD9ufHWPMT}f@@4z|un8A7wi^|x zGb1)vJ3Mv{oH3Niy#t0@7eyfd`2ZV?=IT4X-?&qH?gDn0uq;~!FcWgu&OV{MH^q-8 z7n2x$JFO0dCMbm*&QvS!E{S{GU@4aUE4g;{Lqj9d`Z`tLu?@*wIri0~m9tvTWIo)* zo{_@=XK!0Vuk5T+SV#V(j{QnR#yJzZZkM-HgU4u$TLTcwpQmP+jK2Cn=6Z}S&E+s+ z-Jh?`3@8QfPVQhitX{eUV`!VFfHvHlTT6FHN@9kG`m(YP_Tqecpyl{g~)tuIWEVB}3X%r4+ zoPWSqO}=z`R4jm5GZD_orUtdxX!m9`ORHKmC7jNg7K3O@ir=|lbCM2w*N=gUk0@mu5F<3N^lSE5Q@7)1qo7|7Wd*>XtClJ+@&o}Demr4 z910Y7cP&ud{mY*D_L;NaGtZATlUcu39=q?$dNI-wRi`GOB~wc*{PCPJ*w)>C0`bw1 z{XeG!B{U$IWpl}Uyf*U+psrbKny~8)d9yhMP_{N#A5SOAsR0o81^xBGaHXf2FbNWb zo+)c!&_FR2&6HTw*9W0NY0I+vYLL#%D(L;DRQ`asp^x*sq4-|YAvo^u!kjdy%VnmB z?Lq=AV@P-V_0Ak~q5Q>#GMGr~avPCLtgrP4U$@EQ`wOOdqff{%ckcD{9#+@|wx^cP z8%_AhllJdcj{l?AL~LNLD0+t@jP~6$K!2VOPRO|UTQ&&Luf8R1zsbXmy8kpD`&^341#GC1xsFSw*HupHuCC&?F3^LWUX;!HrAJ1YUa3+*P&=@OC3@?z>uNS(Q4hc?Z9iWbIOM?ZBW}1soW# zEaXB`UT8V?l%nB;p;2XhB4K{M$igL$t`sj6yPM|&kFignVgK2HYQh`odIf7?FU7%jxwY5(H&|B<8Qq4b4UAPWGKAiB6-uwB|f3upXiSG-@~m zBWmgY8EX@z0O#DVFT{;K2s*q2_(1%Op6|6YlURZ^?(k#7Gt;oqlLdK>uFzw}a~-d0 zpEw1D`1AR<4?1!C*M9A_Rqu{-Xq64X>h``hTlOtqCwcSkkK7cGkDm=?*xA3Or+x3D zc9Xk3XnWV}_c%LoOD}-DdKz<6mmV|KcK<8y>~J*(RYpRu{po;^yKKIpP1ER&i0@KV zBo+lU{rTQ6@A))#(E5{d_4&D4%lSLj*0Y3&`x{GW||!VOVh8Tzz~)&E2=1 z$ZHv2{@8)1wB&b*V;{#$Dc*jm&v#AP?%x|Kcq${6e?`4YmoVFI7{TpZbs-j|TcaaO z8b#-Jk{NG!$;K*j-4uR$^CtXbAKI@EMUQKE3i%oYG|p76X(C4C0s`j<+qpdLc0H$A z1OD5?#y?GKSnfxx)nW8gp$y1*GWW+CBCYRYJ z^^QK3Zk0DH=uD0msjEF#(SHBe=EE0gE3Ldyg)Mgd%I2x>xv*~k;rN+z8PD5znXE?J zfR6tqUK%F|Zm0LNVCwrX4A>mZqtEa8dF%bkB`Ko8nlRh4PkaFMb7$K;bRgjk;5~Ox zZiO6FOy=Wh67DXdc@qGq>wStwcLYFOam%p}?Fv!AKOw*b72O||@&{L7chPGimbnwF zvVyNc?z*&pydl9fcSo?uu|eGN!v%Q+m}p@V5Xfex1abv>f)(Dpl$@49HnMId?)>IX z(SiqSbgOB@C^N)^ZLGOIN0;LF89FZ(845fsh>e5@+e*4;6_dAwn7!x52nK#~e2I}D zuL_XE>jF(`SWQ+67p~`6DQ}}ZPPaWAzVRhhKtmYMg@E^C+DfCFC*T%Z&T|O2|97~D zDT#Y2YPnj*&Q*~=aD2HFOBUjVUs2QBl$C=*zI<)}`t=1xIyMQj1Iu5Iz0!Y8o*5hl zqTJhWx2$205^vaXWD77uaI6aX(O);7Jn(m#m)=5yxJ08`*)8CBG~Al>KUB(VE~{|U z^2~6A`#k}cU zip|EZeCDWD_iVfhDQn(JOu|oAOQ2gDv4LkiT$HvvjBqCe-Yl_8`kVc8jCzc5O%fFh zUT9~%$Q~py9E5v%wf>$>Am@(_Rlb#$iE4!)_*_P;e5$uuZ*<&P_mK83nTwNUtEtqxuCFxp!rDX z;Oyev+rCsV**lPF@9#^_ToassmwyAPFgv|F@Y5$X08fJoveZ(_601oUE`He3Vj)2_ zjA>P=E9d{sU&{iMdZ64KYg%d>;xaLS;A^JzfQi`~Fw#w^;Zvf%`In8LDZl-K+_Q?O z1fur8k-66me(ZSh)4^%Ab0A2KHH$3k;2 z&XNx5WeeVyEF=4^V#0|&w`zvWG?zS%xTS_XXnO}A(fds*H-Dmq*FFvUeSK=ZRv_=7 z#~S1DyinbHxXn;J&3NQ50u&rnfwQVuc~ps9yL#s+1H`BAO6&Bw-aBu_^Ho8`6X(zr zxNX{sdpq8KQ2q%iu1L65-aq^^8jtZ+lCL};AeS~BbHDf8EzS}Tje~yqlf(3R{q{vI ztM^{g0GUJ4wVNMv;QevZ9__Q^pAT-!&5M1OyWn&c-Fx9@nJo3ajA!Sv!L`W@Er)I6 z@$VogvS6OyDR=IJrcvJJ2?$+c5Pdk4mqN45=uuPDsHs3yneII<#Ht3NM2~z>UkBsb z3xnj4NYw0a^NhaI-ew&q3O`@yZv~I~8G_*=5B+9m)T{UOXFtWCsE6)q9WKDrmIOf4 zLAlrVidQ={h<4;ELL~^Yb+V4+wD?K5f^zvS2sS5@AN*~BxKj-y`Y*a%VQROIsZIM! zeAmyCmFWvFWaCU@c|ur_nJk4w`C*9Lb8)#2Y4c}}FahHabWus|9j7`ho4u6X1ozC7 zuTlDYfgq_^XjnBNfA=aHz2%G_+t3FivIYYLhEcE3O8n;{raOCJPAeK>z?D)yMOk3+ z=`yT#;nSX|%6G4)buIv+(*t;Jg?Q)|8i2N?2wnJvzOYv_@$*|0y(7*wIvg-YofUEF z480lB7n}Urgj9pB&kc2_8p{!mt6NCD`1t8|sJlcZbjyN*!wj{iXHY7qmSx>Lso1P( zFaIF-m&Uh!4kw=c$gc|7v4^j9-WFzs+AvV@_0Z<&!h3l~JxED((2cE-1hML58f^LG zYqKIk?C>xlPo=XYnZL;@gFk+a(z}Wh3`>W10|J1OjxD(hR+&?>JW|2{SzlCzYT`${ zxewdGt2j~3H35z8n<-(v~q{Iv9yjo3VLs!qyi>ckbOSvD(0#W=bEre1M_chF)kAMfY{aG62 zs1xxdyl*!2t<$LiUQCD~mM@YoJECctpTJI4ZTm0HOlaU6LIB80C4{Vm%aRKo92R4G zCOotQg{i|KLLYm-p*Zicv*VB$XrUdRU3m6X3ZX$i|I;Fu5=>s1_Hev+2=Cyje{y2O z``|_om=d!#zhjeCLRxQ4ef6u=ISX*Sc4U({yWzn4Uo;xgrpi+VEzqmqR*kRDB=xHH zhb$<&Hb$Q+V2F7?>wK(Y@7qmu*^L~aViDlu=Wq7$n?EyXxo(}f6@QkE<^JVnf1xIs z2a2byQ32u0e9{J~J$&O~y;M;_Zmf)pf@3#V0I`K%Tg7o0ro+8_MHM%V{VT8!Vqn9<+csyAFo+N!L-dkCiDeV2z@856)lfztClp?mP7xZ5- zChT}sqD3649gf?t*L>T>uQZ)I>Pjd!4~WL#2jmTW<}_$rEr-`j{_~F#t ze>d6jB00-m4HmEO4n0D>a|E?io4diKohSSqvUr$rsy~Z~gG!LTm;*-cDfRE@pOGRG zK=npwn!14>?@lg-2O~4i!Mb`sk`#g^c87>fNWx$B9mU!@HOPr(ZVHTjCID1FIGlC>>QOS>uZY zsxyr%0e~J+jN?+sI8fmc&C2@>Z6J}UO)BpG7;yr3Rphs>y{}j6HtRE|n2{Y1NQuRK znMss#UuQ&ErGWLkl&%O&JeIV78##V%8ye@s!b$#1%cnwl(#W=YS5|CD2dsY!RwkOw z010I2nKJ|CBz;Ma{vGaSQ!6*Uh#n%MJR6 zhDq_e9KMh|+4DpDq*nkw8saL%t_L4?vO5y?oBSdE%g%*MulWq}_WnQA&bUxo zU!|3kM{%~*+h^Yz@5kA;yOy8LgQ#%tYuUpgA0Z!QBvnwbrfDUA9*JzrDE^DNzM_7W z0vRk09lIpDZ@(`*kmQt{=R}W)pdT-#pxKL2{-LVQjeslv{fa+H&WmuVaWkMBk79Ce zBLA0UWFs$iaNS~WEr{+kZ=J$4LZ-#5$=;v1tgIsX_!`rWgT)baU@!|1)co8D8EY$c z#x#xA6bbl;{V?(`)^)eGHjy^IkJel6ov)?lK(t5G=R4P?vtG)ryEn)12#Kw!@jmn0 z^?M7F&bC&Q4{Z(z|0}R=4{aD+;kIq)U&^;h=8O(BT^t8fntDBEKwAc#y+W5AfeXU$ zyBOcQpnBWwr}&G^*eg<38e^`RV0L8TedB8=;5heUbNW3US^1SsVjASd>b-NOQ;7P9 zUOzC-3>keQcp_VbpYzpDu<;x6#eZAP8W}uxKR(hf7+&71)JY3!cV!vT!|`4Fy^{C3 znetR`Pgn)o1*cNAbjT=yeqf$9C#nj;zz=|~dG{+JWMbBjf<3%K?=ynF*|1O#ncCyk zs0EJgq>Q#n{d7J!`bQ4muDXp=tPBNFQ;$1%y#u&=wtR|>A)8sTs^ru5p9iEDcIA*<%B`N^O9cS97 zBa}qmz1QUV1CE?A*U;H}Y0WQ_ZMo{KQ55|zP5ZfuXkJ?PGJv|o5BrJtV6!-P&8Lf+ z{5pZkX2El??A9C<7Dy(~Uh>CkT35Ttr%5EPu#FX^-+at0^9A0d0oKfZ^z3a=$6aBF zC$0xKzZpM-9pef+jBjnCGYXw7p9rejiU0xIXR}{>Rya%i-KBslxl;y({@-pUf`}rA z0tO^fCdr|-^r=tb8DZ}b#T(@wBk=7^+t20VCKo%d>G{qm@7~IfiMmugwD&Q0`v*8q z{84=mc9;e97>!XCNtmek9@^#wiC}5M0qIIsBSd3ZuTB~X6W`MMh8+52DWncpdR-q* z4%Ol1f5Wah=eV75itRHmQk0)noZUBd^ySm1++tUgyE79$t8({jgZ`%n3^*fbe zvx?%A>>i*-uELCo!r>OD1U9DV5KIgN8x0}4|7l2VkE}Z9y&d@Pv*$c@xudNnr&%E# zy4g~8w1^fI1y(!1YZ1p%nuTf6Rs9Os1C?h0);ir{nJQ$G;UL=*t=%YWJ!TX2gs&;G zB<6=$K6^si7I@`*d5fRFiH^1_2M)*jozb7&v}U{|Z05W#*NuPrS4_2Xop2WH=P4Xd zW41Sy2`;1k&R*f}Pxb1_&FN;KWb5d?D0T;|PDX}C+)*Ka*JD-hi3d)jeZ7+r4```GTlr^+E#vv_cLvZ>{1C)dK zOtAj~16rOu=p;vkUKF5SFi8M?yc-r|fxX+*xg&vZ#if1w{>JFc!s!6P)@@Ya6Xs6< zpkD|21ic)~U6x$O4_+jkX2T9x0oXxLm8~k~@pCsLz+I`e(hCy<*G0QUy z#OMusvqo7le9ZhmFWihoyBf$xe^;zjInapLb?5&tN8~@NgUjGQ>!D0g9XwC*oBN)x z%o|mUaGt$lDnpj}eKD9JwlsvUn#Xc%Z3H^@BXY3H;g-xh%7eCe0R9*+8IB=#g9(F# zDeG*I%o15yq9F|}S0|v5)CeXMe$#^UP?{Zv`n{~ybt2KxEEGWP$Fg|}eTGgS-_q>S z#lJz*?4JkXSmEJvpa8!fA%JiKkr|zJf=$XCq@vFPj~o8jw~KBOf+rH^PD=Fi(XOaV zC}L0=rJwdGOOj0!?mnosn;q=ngqmDH4E5Q{tF7cjt&D|Wj-Gdz{o!3(;qv?(cPp6? zjU_SbO~zuI`uwz7;zL^2d*cj1Nssbfn~wJoE5-h*t4i8&q*l*z4UR#MITJo&5A`p9gT> zE0()qUK&@vlw9tu?A#Xy;mw%a995QjuOl3R~lt$e70(bhKC0>Riv~^Cc|)$Sv8thbCu$VzHz|8N1v&DxJ7Y^UDA!$L$*%Ox4mMtLiuyTyTD zvgTl07_q|vps$W1lNB#)AVle&3?11B^~}OYdKC1AbKB9-yZ|4cgfTzr{C)pv1konltTKCRuZ z&O#S*Xer*ArX>*Z;^pPttm5f!ZlMCy`%<6hYen*X3bw!rK-yW#_sS~o=39~+9yuQf zZh-1G7`X-EvIM%YZ<=HE7AMR zuSIbu|El<-S)Ple!uE?1P*=y-TV6pN7t_sLA>kr-vWo@xa+bUSoqRlw_0f=!(jNw2 zT}z5EqqwBTv?(oxTJ=yaGfCEecotOlLrYsCcX(+!g{*Lg2Y%|~$&qWRJ}MY;7OhoV zP)w>gIEe1}SqCN%;5=~0RysZo^#lb)+2(>jvS7oV0)NO;=Gi%TJ>BcFy#4Z`2}i~f zX)&0A{R{99_}D23a>3A~nYWoUU+>wC3lCU3SH;JKz@tpsUXbfJ;@;f4U*MO?9=m8@14sUU9UHLU&H`sqzB z-h+%uv>WBi*6A2-`G-K9{DFhIFL0adV`t&>`(xv$TuolgO!pa4K{-8)jo5WNKA6(x zN>CpqCDRJwP|RgBJ@UG9qqR4JZl*;G|Eq(J#ni}E-g?%5r7iz`DprCKUD4dCtasa}Y12DKiRgR3wn_G$H^niD z!9$PzG_M%~M}4(Y``wZQssps%y#uLL`EPi$5`)OMe8;Y=0f?IKHalbJYz)ME_#@x8 z%YV55ZvzK-2c2DhHSs0z2OQr@C_n5)HL z$53?0Y^Sx!M;JZ)-tq3NkK_qh%erqvSdnN^@~iBhh~yUMg$W0emdt^GI{mmPHj?S2;iPtgMf$($bQ!Kdhz&#aPGK|!~I-Y zRrC?*NmetcF6%69^VPk_77_%F0iA>Di|SvK&al<6nAq(u5afBODZiltAg3gN5(9DL zmHwVrSpk`Mrcev>Pg{|2+~KMpci3kzF{g&1HTat$401tL`i>|QZ|DoJ zE@Ir7c8>{TC+{%^MyCSgV-sx;`c zSruCW&4wb$AkMH*GhX-4_DoZ<&R*iUpW9u`N#Gckh0MlK0sm_tU% zeOU@r$T_mRkvPISAIICGjJsH6W?C^CUXli})G|;mIpbMQT`~OfYv0KyGP=mNRyWh} zaG(yz=S?jN(%Y_h)I+hji&eG@)MXq2N5-nYQnSKEZ$kr|ik2z3S56IwfFR9Z2hP_6 zqt6@q+vnFJ(EF>SugC6>!h^!T%eOeNU0>nqjx#!RP`~9#;Ntuz;Ow)G@$Ej=Y@@I) znzatQ`5X+C4e1i7^T|Vt9b|=30pood;U?fPWy2uzHi^h{uw~R`!lc^`zI5}7{rNOQ&^*`41<;TL1=A7d=YuhAPpE-mf0Ro z++B1tzBdt2dDYY_(K`qOu;wvFy0zR>OcX}O!P37 zstrCy)XH*-=t?6=0`KEkEERtZL8PFFSYP}Z?cc?ge&z}m$kh!NC=#clI{q$W^PhJH zCW4YQ2@?&ZVDS|m!@?lAh;qK8frnSw{$*lwy>+X_lo%xvq~@Jdc!K!B&k5V8K`qR< zG9rr4gOo)SuEl^nS}-L_RNMV5EfLLpIk*QD9t{ulGBgR+v{Xs?9b7N}(ZqrnY6ENt zPcZ8mf651V9eSvKGbDFho4u|GIG}Ke^t<>Dk~?d>!Bybe8@t?kiMUZlG3sJ}=3)Xi z0`X{ne98q>GtDFly~_L^5b*-ugTZM3w{+s_#6$+1Fn-qZY!w)y@Ks)8Di#9lV`%70 z#$9{r&9F2J_)GK&gdj+E<%h(LX zBGmle^D}z_t7xJaRI+_KktCi{6m~3o+%Ef$s>w*krvnKb<*UzG0-?(;j-)e|B|+lM z3aR}uu&yIhIZFXW{*gkZ;jZ#yyx~eysx+x$D;Erj3;vxzl-1#1oQrK+Xh3YTqmr6hV^$cDJ$6P-giPgfcbdJgBJ0`0jLa8A}h%~nIl z3p@4xyI)hS_<^oV^%i3SAYA|WGy%b`BWV2${(b@qvmL!(Z9ryNncLhENI+YfzoWiG zhgN%3mypXrX6H4hSEJMg8xL8w)-L@K%~i?iIIl7cX<;nYv^LpR;nenWu?ByXM0I}h zx4Kk!Wp$TgTQiTJGbVjJ9T=j8mJk|ANw20aC=Cc>iu9X1y2JLNqa2IY?Zj7Kce}vs zs(5Y>E5Z9ecUyZogEG0W7y{^K!0b5jLsey=Dj>K!sq6o^1^T){xf%H7LQJI{rXof%tkmzhQg-QU`wWf#8WoYs18-7ncWMTwFlIC(OnO|3=gudQMD%3p>DDOr(WRwQm7~~UCF63Os zzrfVo;JxReug}X4>V#8^(x8cnXu>q?EA|dkJyYegKgKuWP}(oPQFrxPaI$K=HP$>6 z4NAew`Vkb61K*rh`Mf*>fg=^8Am_L(DC@p)R!Y>4>8vkisw1}af}XTsMY6wCtXnvo za|#KC?^vf$`v}luNTD-Qt(k<#;ddZ?R#8hSw>Ct}LaXlnN~?w<&C|I?MQ`+7HeZIs zWc_o#P(?dF9p+SonO&6sc5U_4?)d#s_veU3Dp35s2XkE4lk?E+nu(dx5tSRSub#>2 ztHhW^KL5S`hsxz;3DWm~DI6CR2SbtEMspIc?tlLK;^xOdteyWp9*Y#9qDA{q`eol% zB?3DSiDx3{wRzaTIGGZ9Mji9k4dRNg`sMAo^(Mp*Kehi_meV^QU8HU&xAs;em~qV! zQez)b!|dy}GOk^qW?-IEql5DJ=qb#n=H?i+o=Z0{twU}@#qa}0#p&$%to$75p61sX z?w%6~q}s_b*-$HDwUv8%$EZfJA9W;dn(2B)|^gkl_7wOox zm3A#cBM!BG`_?-9>aB0TAjSH^MaY@|=B%-;_w1OHEpILw0+q9EE>`Oq8JU@3Pd%<` zX25_&VfF}ArZ)$r3EcBA^2PlQq<6h??J~robnH9kXvm)3Kr;euVA}I3ev4j5NI;Ha z{X2u+l%cKpYW9s^n()6ZVFg1bmyfQ!0H})R1t39DkXMfYbdXPSbkP6_S8d9x@2y-f zWwnvAFqpDN!8{V(-&6uRBA!+813r-gl>MXw)(?1D*sK~6YC(ruB%>CmA1b&zaKVrf zM3$uPT0V|R)T_`>f15T-J--xSaH5M{{1|5rzomv#*@aZ2;(nG^0J}DOJm|bnc+qHi zV?iYF*?)SvV{7osLgjG)TRz%$ALN!+!_i!!W}-ln0q>xMZw)PQO!cXEQ})EA!ZPXt zBs)WvimOH%x*9r2t zYV`81Mj31<>B83U4x-hE%J4|UUS}XoOfsElNk+!W@ZxTs!gVmd5kXJ?<@K?G|92$m zA#?cvPP7UJYw!Nl=Aj$Z;={weaoQMc6cMiG7jb{Xj<1xyk{^Pq7w4kb{NIv|&B;7= zw&8-|5QAj4o^O9XTaF+L35Qbc<8{RwAn4M_O>FWJ@E2$#$Q+CbGRVT%l{}MuxTW!l zm!BX#H0oJu|D@=!_-+un%mgc*cKLH*8g!{-ql;$03?-R=9vl)uqoQ`0g^%JrcO^uu z<;(CN)B_qYR?PyRP~)L2fzttaQ#<4xA<8#yFdyE3UHi6Do@Bo$$JNt+Z=En*HRz}D z1?~3kcq-awR7j+B*76cQ`6T8`(kiovYfK0F7U=9?Lc4-URVao#9DW$maM*7bQ?qIU?FN9M*t%(M|EjVB!a^HB}TX(t6`5ll0 z^g%@XdbC+U69fptczo1=n$Irj zTQ-<02v!KlGgfZ+aZYR!`Ty@2qys030Qghhv_HjsUJY3^_bLj21sNh$xVH#eo4@Gp zQu=S9IJJFUeDqM#J3V?#w?jjL|SGsvO3ko24_v0J){d?{>b>{MT-JWR1N_5!E{0{dQ87back+yVP&h>R$>e#~@ zE+z-BCmL_`xM_)I{93#UEUH^x%rp|{ytyL9u+<`*2EpeN(y|Ln7Yf<@@@7kC2{q6q z993un8;EI>Xak+BduTwpj@TOa4(ikDV?9;0+{?sCmJ_+Y@(CMN)6NQY<#tA&hYtG^ zrwKJ9zDE=dX|U%kj31Ecg9k^pyk11U8I*HmE*}gv($tF#ZKU&_N0W|?Engm;Z3>I0 zpOGo2VZAatw)llA&aLeif9-5o%3xSTr2Vp?6fjwAznEe#?n=GNL(ly`!{7^k;{^!) znMaN-F7mTUJ}4BO;Zjx))9l6A0Ubzh1ezCiXoH-5VQT7GuxJQCn110vr7hs-lF2PI zXIfXyY<$U~SU@K+6jQNsb%1dj=usX}=KLo0oe!vbb9TtJz6^#Sal8dg8LN`FxY&ey zL2+b-?*DKsp*FO=Vl?orp9Fzx-1tb4_9war@vWtFo{pEH@Xne*1zJveRA;KHn={?ggT%AH~-0QwD*sp=>*X(bq zqG6L8D@nm2WGQRH#u%{Szy?1ZEt(s2J=tQaV!SbY6lfY^3w^t|J2RV$;=teTt=4vP z%N-}X?9dvJgNn1FOQJOE#p9%XVi5sZl>tEzVe+%Nzf=H*tGyFPOZpgsr#Gzr#I)Z< zSD1n9!z6eQqR(PGf!vbnAsZJc@9YzbY+ZazaE=)c>Sy8UHu;AFuyzNW?baq8PCQBK zHkS3-y*1E>Da zJL*nk4lg4kc0p-fwf1_`&iJGy5PkA z52>b7WkCt6i3EpiDPr_2RI$-Tccn~T;K6v0tqU_Xrp6pMx`#NKry&-bT>`zYY|ru` zHm~IFWpD3De{~RvCXJGs6bONs^gU?jC^kx>p!>R`c_M9>{CnpZ$o!z75%}C67xPb} zO2s3PKNLX`Og0@q3T6cxDlhFH|;*1ypK+QKnR6&c>|2>Y;YW1BUdr zm)gyZEVb-YEtC3m*x5M85$+pwJm8PQ?Au+hUlxFA#PdBcrO<{KTo>S}G(t|Nl>{VyJ@;3R2e zCKRaOSyy|VleVX93o9>`8jBoy$f}(7u0>^XRo~74gxmkOS?Ic;eTfQ~eF@{8Cg41h z!uI0A20~vbWDUY+<*p4PBs>ST-85_C*4=*w@jIftK&JBHEU3fSyqw>$`!cR&YE1#nS`N`ejtlHFh3%sR zL{{4}5_BeeshFPZI554R#scn9eGJgJ62rBMhD*NQLmbfFHjN2SF+{)8^qtE3OO`oB zO4Gs6%3N^V{$6WziT+WjO&_1Z5eZr}$#4D?296WjXB34We|R*J^0eN>k9DsV*;N;p zdiTLConyEYEeJCe4rq+$iV2{?Hq2W~;`!qG9PO*f+}1P=2tD55e=NLdaADpq+DL5Z zz%+6mmq6t3Ehf%j+H+}YBFo`lAOCTSF(Z25O6n+9D?fQO&MSso2Mi$D3b1sd^XW*I zWfr36ExtVWF4?wdays|C>?G3#M;`9Ip-=l0&_&ns{xNlP*3|%vb&Qlzpvqg!<*!Lq z+jh+V(&UtDbd^L9P23ku%$}Cn_eAS>%Wi1v`mXV$I?ID3)*95ySSgUrh!Tbbv2Ay+ z2@-#gpn^7i{rP_nFatgOMsI}5O3;4qLNO5-901+ntOQC1#czZju3XojWkP0R%YSYj|V(N>b69Tnh->=7mGMP@pjv5Ef4TiN0tF3YavNh{f#6#Nwq1AAB$7 z4h3QJfFimG68Fc|bX95~`GG878fmp>Q6S`i+zEvz57TU9*8zeA!e}c0xdYdb`$}0E zbOZ!Ut#9)}FKjv{kqYc;e^q-PMcI}A>~ty3jwhYwrlZEg`-Un4^K|YruX)8uc|!22 zrXJUU59|CUm4l1+`+Kk6n(ZoKQN4FmZ@?%x0J>Qe@9Y7<%fhUM0y}ddnvq8VPTlQJ z8~dH+G2s75;O;#de?ZV~kEU&~zPqC1 z{~kb!Y+x@GSTfNN5j97+1{hkNsq$7<9<(7Z6^ub7U_3a*;68-hlvFqnPeu$#k2>oR zv>rJi?&K#r+~dDUAo^ ztW|+4WesUkj~1*=^TKY~f40~AAK1B>n{7s2WI33~SK!snskd?Eue2kA zI$s0p>YAwZKe?Sn#||dO}MC_K;wRE-O10 z*=~c{AN;N+1S>eR15q!X1*g&ce^&Mdz8tWXoze9L^xruW$_T#4fw`ww+0=p{C4WX4 zM28#s;}9j6ANprc?N&)5zoFtMSFUYZExkcwIL&Uz_96hGi0aEL*)T8YBv#y>H?wRy zx3l*B34*LHA^*hC?gCb%Mzrhr)N1GFBJ)0moJ!Ee8X|Tnxt}4YN_63?;`b6Mwx!wc zlf7p>Ra9UIdX%L4DS4ucq>=KCk&1-GbhqWTL{upbF*3B@fe^ztzAHc&J%Qv9cfh#H z8j(!-Vdhr$-c$JXnl#!+{H_?Wc$yDg5Eb-0Plzi-j)kSu)&-8Q=~|d1t8x@)qv`@y z$%Y5YTh#{>Vpt^eOy{!3({Kd-zC!!BhFuu&Pq@U)=9WEvU}8&%W>&SnxFj#45l`mt z1sD`n==?!xbTc(GPU26=@H>4W5dZ7OD=|&lRvZKVgJl4PWRx{RPp|)5N za8xoA$ENml_ls47&pl0`A(;{UF4f_(EuqQN1F4C`RBh_Gx9T9g6o`ivFve~Ke=}Bo zDbIfS_q-p;{2J)#vj(j7QP4MY4>FsP6JuTtg~lEx{q%fWd&T6}FE|Y!h{^cyB$m-K zJtY|d`=8NaC=F{bsfp(kWm7GJs^1>J-3-l)Mr=o&47qgwEu0J}@aNb8wJX381wBVP z7}g;r9IfX{!ZCzm;~(BNbkg#JA@QM#T$As_hGMQ2GV~a zmU##PBk!Xnc9_nyr{=xS>CvDZh@H6$Ni0yCbYXct#X>DVP**2-sn3fS_tPIYIwvLD zwkz?B@Gk5`k!|FYag>HDkY^p`N$qVDtQPn;Y`Y@4;YiZI^P5hfm|{*9HXbn{OF{7C z!!mppEz<8aS!@RRdxDR_wI$^k((Du#EZ8Uv!@(0luxdyxE-_NZMVv*<(us){)IaGD z$ehz25g6yCCSH=2$aaxaw~IFYOby?!vH07aD2i_9<+OIC(j6X+xQd+0Ow&DS9dc4+ zI8lmzJ<})}JYM`#2Em>8@Rh-ZdE*g_=p&Q`ZBT$cS~P?m7h#5_sLiW8`bzz?je~%e z|B1V}(f9q=igzIcTqOfY478hC2p$|OF;7;@>SCh`5H!2x2RO~AynolG89i_M-6+Q> zFc9j~CIxKlk`PgplVN;s<^;l(#!41gOO)q!xqZ)0&j>^-c3XCKum?8ZJ~O3jOYPj!l>VQ2*AWbcqRL?#H)2Y!2d;?P|8e4U z*;a_j1YXeslE1@O^^bh??pp|dxcy9{^C%TrSKxtVy@D+lO3tZ0u^9wC=(S2 zl{P#@Ofh-fe@E0&Z-!t5N+Y2K;tW_PWEHbEEitPs9@~{R#k@$dkoaiHTQ;WWP-H-` z@P*zkgoY~CtSIa+HXwPz=t$9F?sCbo1~w*K2Mvwtf^E_Nc1~z}Q*kM3(mt5Z2OrC# zu|-0v{^3jqf&(km84=}AmI4l299KMDOdvXaoGI^$tL5b%t!hQ%* zR{Gr+LZ-jWx%HJS>~Ky8;jcp9_jz;*Jhvipn70WtF3g+udMPbT9N$^46-*#oXIsgq z7pG++pE5LXe|TSERSe|c=iE+`Nn_IEt=uMdQ0Tt<*wbfl@@vF!IUJn3q=C(nY`r_B zyRi(C!zHaI(D{j8p$3l!(C^J?-@=V^!bC;gIW=fOfx6WhaWSWi=5#+yH)z#84l?59qkxG`i)gb1aRnou1YA0 zA@TqJR~#H=j4ObC7Cgu>bFpklLg>a0qQb`1BMA%l(hUEH4R7S5R}ZqLrE~1-!(=EV zMl0RR60kXH~?Cw!u8W>+0<4kzkTtlaR63cr3FZlqn=|AP@+m^b`K7gnS>DN;5mo(NvE! zH?AIxPLS%J9+zDqvmd0X;n}zgCT2{GGY`-LX)h}+qd{3jGV=dvl$?0J;{PBpr~Vh; zSEnB9-kRY3Jbv^#1}q;G9s-AcV1ZGv_}B4S%c14XFIeZkf#ac%80ozP17}1Y56ZFM zw)0Q`!ov4Fcp3`=MDQtmaRXT$MGK(oCFI)$zP*olqX2R&w>FUdF`b$P_Ry-QNiqPE zGa{C$zuH&1{L+|Awg~V&7(m5QNOg6YeQ}Ye1KaJniGeOYr_*`_Azi0O+^QZC6Ziik z>n+2gT%)$(dthj!I|m7Aq(OsUi^;< znfdRV*b@Bnn*7I~+NvSqvqYe;Tj-0HLeobT(!dG|gOxfpR$HWb1X zUD_)gCKjl7mFac64;Hj^A?}@SB?q6x7PPcW$sy5D)9>12?v1ik5Y`%Q zAqryMVitWc`snSW>>4<+e;IMYA0@O{Ts;JFjMF@Y`BEe@bjl0hJAUiiG;mTOdK;pw z(-DP^{T(#OS=B~#ySL&M>RnchrAN)0!HcxfOK>k~Gimkluux%`t)F4QrUpmmE7b*1 z1o}adVwCtoWCiWCkK8eqR+>m%mM6;feTJExO-Px=w39u$#DXXS)1%CaN-ZpWS}1p@ zt0tc4^IPqb;Kr@o+7}vrFWoiJW1AGzFM2hF9D3A$hac8P5F#%kw1+xQ(^r&czyW3_ zaqoxo^RdVC14}FxP4vO0j|$_)KI2UW!csYdWAr7(ITIet1dz=}F$*1_kZ|p!pyZJ6 zcNv&y^x~{|irx8qkP4FUAO%Qn#a4!q6{*(06v>_cb=LV&DD5>$<-BilWR>$Pk zTif;3hEgz;J+ncMRuNa`pO3&g?koqeiW8JnUeF;%k!^$7s%9t_%p~ef-QMvQK>e-J zEdxW;(J93IIaatpK=0{yiPT5%{8CNxGkiicpIM7#2xQ*3vIM$J%`v)LbL>%|`)+Mm z3^y~>@$a@ka142wRJ52`nJUuQ6dejG*g}jS+`ZJypL8t3%SKEHDfLJmb-x_0bgA?Xnee@>Cdi>T_ZpQrs6UDcH)6uj{9!RKYNCg5Ve^rS(_f% z!S#k|kldqMRH)~-_b&7%>lCrfV(;Ck2P#*Z%-9*?ol~1cX$8c9?iFQRkn77Fwv9kC zGM^f;gZ?0mLesv_gC@@2062l%EiI7%U5NH? zCg|)|9$=2VTSn^Pm-qi1fYoRy3jc}Qaov7*6FuOAC?l|1CNojZc{p{u%(ej(i&L@1`QtZ=#q8GsFeOA&ISFu| z(s^6bz{=$(d0QPhk>-De0zp}jf0?e+aC(jA*^x`l!k_+AGcjo^`>}6u4ae6Uhpp{( znJ`Q1y9oRYmSBE(z5o$1HBjl|#W_QY!o;ot&V+qTgoQZs;9HjC=#NMTt< z$|4D{aKATaSMUetfCc4Ywjim?p!)WIZ)}8cmzP4*(hedm+X!hD;WKh(3(xg`9cL$j ze=`6{U6vA0X%ma;`P|3n@wr5BKn^=Iw*sugeW8qMQEEE&m5TCb*2~TTb&Fk`);%~Z zqM%IFEaFj?H0**Txl}Ga z4cMG#B%Pen4$6T_a0t`tbHS6lK3vl+YVQh`{W-r5)g0}kLZ`6YqpBUGxVM+~N~;M!a{wpcSt@zSszf$AAuSkR z-6i=7Ii_=`7P}&7bjN?>RJ-_{lXdJR@c<@LD>e%oQlWS`t~hq$jHy`{7fG6z7vlm9 zovtmG)nwpIoiKpYnu(4ArO*@-P&eOshj=ifa$4-Ksx1MHDVjrKghtC*dcE};7WDAv z$&WNE6LJ?9c`WGdznIadm5yPRppmFIQI-K|!ytw|QG2piQdKAiyhHZ;)N#Yk9?N@5 zGb$!U9s|OvG(lC?ucUo_w?v?AqlAg*G2Hraeh_9N>?JZ+&b11KTI z%5PcJ_O$gVLJ>IZe~XxLS%fAjsk(=HYNaN}EXZ3V2upuz*a&31${JNPU#GgAH_TTN z{+QS|`uj{|V55BC4#Sn06t?%OC|N=6wbWUKA{s08jQd7SEr6r75LAYqU;5nC{OF=- zC@Jc7JU$C~sumEtdOUwk~-LrrN4F8zvdNRFs@}O`A7#_dWXgmoicorR6Y7mI;dw&Dqgi_l%z5pceo@HWq zS^9YxzEr{HiiRIw-weJMAaz?@K^%shRXq*Hd zU?dsJm;NH~tR4$!z%CYD?TWVuY`mdJ^qA|ivMYh1QHLF65pcHmyOe5;26>BaON(!3 z@8VucxVkR-l;M0Dz$eQ@skUvS+EkvaW$=}#N`eI*2hk^cWbm}VJ14Lcdl1{`ol?L* zNlm1Qr{+b7)rs#wz}(4Z)oc{R=00Z`+8d+V%F~RC|%OT<* z>7R*iMqt$eAWsQlb)w{0WHPS9^Kn*PqGjoJ-WK>0!@FlQC@^5w*Q@hP9qtz9QckF5 z)~zSziEG2SwH#oaDvx`_*3{m7uc6Pt;^%k74bUjGKf$*(kr=P<8-pIcmk&C*C7d>_ z=H*-d#b-hHzjgF<@pQD8QC7sF=`Q{qUYzFMKofR8+gw&X>!LEK|Ks$ID!1_u!?4?a zZELfL2q?BWdRyej48n2!-Xe@x^^FlrwpEL|Qe|biJ%7&o3i&}~%ir5c@CY!E$%ZG3uC3ZzbFm=fp`*we zluaAH?(T1Y{aU8XVc4ZvDGS-OhvNT;>@BYU$}de^ekRy@zh>+zD~~v*BEqwdt8YTB;MLhT8!a3ojz)&Ur{) z|BTJy3+|w!2zwGS{da7ocW`uf2AfeG^SgB}D6fFPN@ z-|PtVVt89uVk!UL|D?w2i-;zyUNU6IGA4=AGUWX5fh$ZT3B6}mKMmfS7_{u(gJg8X z)batQo(huP;*+ku#pp#p0FV4@5(t$z-{)=40_DJZx1NaakSr6flL&gO!V2L|?xiZI ziWUeM&0cx9dU0I2p+<8cppLuTs`NrhHTq*=NCI-)KO?RalQhf^v3tprW5ZUs&~|NU zvB}!u+wZ)F=#0y1qh5NT%INc-Tz524k@NA!s`WniVXl+Y!cc=GNT0jET=~ECa$f?> z@Su8}NZdTA>V(c|2TS32Gh2RVT92Dh{rtz+nWrU6)pY}U*Oz2cMy7aguCw!|eGP)- z(s&|8>HYgAuqKvavP?c+Td%GC9OZE4kgF0d3dEh#Jsmzk?Q7-?{;qy+mmM!x|MquQ zQZK0nLS%3EKukT`gDGX%WN#sw)2HUAvCw?K+fJEq2k{%=DMnZCmYk)k){}_AN!fkM ziefR2L18dO!0wpe361~pPBAn@1oj3+(%*<($33EFX#WeZI-&8g{EN(z8$m#>F-kbF2b6ww^5anA5$1#RO+$%e=*@5^?iE>;>91Usr(S zAJClJW|GmZ^NTh>qoxc)Ri{>mO>O<NF7bwF2o0U=*|LS{_}&h@&GG-IySGx4UP z+*=kO)IpL-0Yw+8pg`KFb?hi%Rtjj_9wKokWM&9cLT@dWjSuXft;21Rr3l|J0VYBx ztS8sZ+bg}Zwt8A`G)PNHE*a^6?2}0NI+JgiAu?u9Ua-^{o8M5Je z-t>~D!Kb%136p)bKI|0aX57UJDcB8fo|zEeLgH* zMRRmwT@MRgno|%5$huOZP%gsZU@zpJ^H#m<6-9bfm#`PS&;EAT%U`0~@{G{o^cHbh z79`AUJ7qAmR3XvRxeJgCq=H2-l*vb6pg@F%m+aJE(>079#0$??gb)%cnh3Iy2A9A!p^HGY**z8`TNFOm(mA$D zH&&0#wwRN6@`?=>cPbx{v!)`Nvb^N~u%QS-HL`4A_rra_g>9#zg}X3pauX`m+gd?4 zFnn#Uvr)nT4+Sw?E?z%^knPBcf+uNw`bwh2JZ`%Ijo#?NqPUrXqP?=X{0$_X$2r4HXsu0jlVfo!FNxJ8^YjBUHu5Hst zEe%LElTb97KT;;f z`-}366zC-?vYjO_W zji$PB=m0ySUj1|HYfN7fhzS}iLsGLOmTkav#T)hT08Xc7V5aX!;`deCXJM)UblGSk z2*DiSJ|_cYd>lxrAaFGeYa1%198Mur(`K>?D347m`xqp2e@kwT3z)wJp(;+Ph?J=R zv{%lRj$n$N{or6XazWTyrz7|M+OW<|hvrY1sp`efGJVB;O*1^SB6VbS#QX}biMW4Z zoEV#>3|h6pQd-cnt`-WjfWxhz{L}LfJnv8t8ns~CjcnW&)EBZD^w+tF@E0&g)%=`# ztRP_ir^o<$EPTE?<~{^(0bEd-V#QFnr#_hTjzfP;CVf!nkRnF^WwKLc|c zJt4>!G3S=nz8iI)A24xL_y6<=cLw6NE?fJ$bx{RC9zvQr(7K00LbgaU#hPt-swn%Z4h6QH%p7+Leq)uUdKFC?Z5i z02bv8NDe*)IVZxUkCk}Z*%L~6a%hCf=lUFb8#5zIWp65cvh(D_6fb}J1-l|ik~n5l z)^?klg(b8U9O$K$acw_)<#M>R#QtH)6Qd&WD(W_Lsx=+-XIPa2dPD+^X3PJ&MWO6RwhQ_{Cx%Zo(2TT5_G}IKHT> zFsPyCY^Fh9A>=k(^rI#|%f#Lh38M2e%^6!B8Z#+a!Ath-qBnuAZuP&oOtv;Lyc`6BC6YGX0u5 zy-=l{>S2@y2&bn5WJX$aeNWJ&^M19{QVo+wZgb1`;70qI%(_|SmE(#o0~lh_9oGFk zei1zj1m?QKf*v+;dymCi3JWXY3gp3iD#dSaDJR)+!pE1IZxefv)0j{$-v zzZh%X>9LF3e1+v@$l(caX&WTC{xw}g1UDqth8iAgR6Q~&rCIeU(j6oc#VLHqffU63 z%l*OuF?cIw3h-SzxFFk1a3DE)jvLuF@yg0;yzwZ-p%bdb)4WN-FV--iX>Y7DJ3I3# z*oAV%ZLU}1di7y)bCid>iW4(5(dM4jpA+1D>cuB7`Ym{qyf5@_-E~$K8KNHVu?4M-!T0fsTEQ^-svpCs6m3ZWN8=*HbZ`ju(sR5p!*B50u z^6O1AKU*-U8aEKbR{l_k5GWTTQW>0SS+Is>*_7C7fX%-tA)Hc-yenfR{sf2y7ePcr z1U+TE9ZSn|)_)Zw{O+Je($$nt5FuK76FA1KL_j`ejN-1aPO^RG*C7^ zP5tT-fC}xDA4u7T8b!~w-nt9ao077^VwgPqF$`9AN}z-szEAZ+~yISqsXDl3ECdF>-t*WU*BBYKmUtwn>5(xpm zxA6WuEYV;R&$bZ>$CTie_IKfaON~4gEZwJ@MRM_Gm??n<^eyVVtRQnWtfp~x1UcG5ZY2u4n-KZiz0(EULJ82P>>7$CJ`Ju~|wA1Hg>132Y0GgwkL zsU0>PG@rH!f9RWYy+V*w=v*>0uwnE>+Hx&Y!d5OoU!0HtI{R?_gh>G?<{pKv)vZ^Yh#QhQ)!G+2{lNynx9Q z7I$C5!n-O=sGSe1a!3WZMNk>oT(?q7f|e zmUU2H3dfCVQO4`WPA7`Y&co}h)*mkd;VAC7u=NYxFaOS-4brgiwh|@7%5o!gQy?cI z62KCgvrom@98WoagQxrO+D;}H2xF1HB!jK@JF7))lOR-7oD>d;fl&EbS`$h*uakiw z5%QmYn1D$KJKyRr5_9IL6F}0IH~4$9ItLk_r7^e{4|ZMemVRAMg!Sj|#aHfUYqL%M-`r)xnXN-}|=oCW`IjdsG<8D|T7Y0_wE-_nL_4Ix^ z8^M=*PE0gFk_OpFwm`ohAz!-S)(J4>vS#qnkdmB6iJG%z^poPiPR_=OLGAl1dahL&I7E!TTtjfz%F-x(|dd8yc|jvG{QuAN@5`74*OeF2e9 zUkoh!Ua_8wE@%f%Q|4GpU>lh5rg#HPs2nB1$7`Ku&J7@((1@R#P4DBGU#@;JfFEJ% zZ>{oxq(AOsIVQcgPZx7cX~tKQ@b-d)73PG2iN{(k*e9|j6J?m)<8Ha!*3r{q2j^>+ zC}|PZO?Zrh1-eBTGPV$;Wa;70iJmN3j9(M0_tpowE#afj!$waR9k#<9H+U%z>7$>g zk8asXyAnXh?XE!&U0cW8m`=4fH(4B$O1@RKY9#Vjo+}?)waEDYnA>Lxv&f6ycX9=v zy${5T)j%aOJjJsXT0#418)l{pcRhda*rF419Ge=D1@7f}nEDn?p|w(-vzsdVxMs1E z&oPXp_f(YiWs$9}Z#CvVY)XD3^_Kc3>~g8`fKMZZudMOyJELQSqT$h)PZkS)G;b!A z9}Jv>6+{oLx$c^_vd^>W6-mCqjf@9Y{hp3)o6g|g!Uu4hbmW&!S+Bg*3q)_?@_pB$ zs!rsm{r1>fH+fY%ofmZfIvMm}_s)7Bx>jdj>ks)1&-4vdXC@pNbwA5npJUU> z)d~N6s`o_PQ{eqJc9TL`%WhX6#_g8h1HUKXY3{1FXC2XM_vJH2}S&yKR~xf2c0mu7U0 zbs!(tn(7oyNZjDk?!%EBe>I_0mZLn4a+&7R;lo#2=BI(idcfl0ocux>i&Y_fHJCeTVJ8^MBLe=+WPQ1&Wo?m6|%ko%IiY|`@A(|pX zl6Hc{*JH0sa*;A(8s5L~RMzrHH;cQveps$7R{gTB+&3~i&(D4P{uova=Kc2SYJtge z>8{-6a^&Os`RyNbVW75ezb)uuJhW;?qpWEYLmHK+Q|Hv>i32hAHNDrYSOAZo?<;`VMQKrHSEHK*bdq_v zThwh#&%~e+oU<7ag^ahmU=tacs(&Tf9N>TKNM_PGm7v9JRfw2p9`4%o)(J0*d*40( ztn7pAkeYyhkoxVq0#5=?~li! zy%P#X3HO;tU)|Ur3q`xXea1h_yH-6(jSqJ_>;15O*3;{gKJ=V#?&Dd@ z-4DNjjFc@Q6btk;FQ00o>tHT0BSfJ%0{$)&(Lxy?tmtUzT>o{{nR+rleYqrbzw(*D$npX58#P;Ceb2deNzduD|Svr~g%3C)R0~C~|tL z*@ZGIo_2_Bx+6bNXNK|M^?Jctj*z;JUdg95Ek$oh(^PIWYJhUXqROQLK29uV6;aM+ zC0IxBH%Fg=A*6+4d;R#WmA$g=!`YL}z^V;qC|HPx+?7XL;}(KDCw;oVaQCP<;(gp% z_46?{U8mJZtWWNaNA69#CD@`o1YOMIJD=79t8@6yODdJwLiBOpz?82`oQJIbu5I^q z3Dan817y=~p}Kmt1p#ET&7uIbaPwr{De!|F{uHhUPCy%`50v(O2Oca&glZ=3rFfQ3 zysw$qZR86JfmT-Xnu7G#bxbiIht}3rVmyKJqFUFB`pU9QGS(rVcIRg8N_w%0}BeF9qphK`zNHWfl z9kdb4+42qn;|aWy=Ex67J}|GkXnF840i+f%LnO8l6qtIAnS4`W@jRUQu}rIrC6=*4 z-)+ZBGK&geKmxP)Ex6yam1wBOdfX*EQs1_)-$t&_P~CRJkrj*s8`&laO@xwC2CLSG zgNa+Xp%ZQS$BbfuBf#WBV417JHZgsmeHg33APTCW2|3u6nKqR6yX&Ym+ui2y-VfdRccjz@7q zZiVBzr|lSXG#i|!P?NQq@`T0jbpxj{PxTNrHG%1NIStm{?yz#VrxR)mL{7c?%%jh* zmZgL&!K{05A1Z_rCTMiAebh-?E6CO8VLCXeNK>cNGji$5r|Qy7ltCU|Sh?If4!bO< zgVgP^oGkdDMIr0Ck&hFj|~v*#*4l~Fy8@0HicmUl|i;g%6ojQ4t{ zyWi(6=bqq~Vp|oeXr*V#=@^~^aFw1&3uD=Gq!pJ~Yi#wGTe*Kw$NC@7+rY;fFU2@s z%nxb_S{o>!K=wJb+>_CRKFqqFy?&&GnNyJy0$syZyp`Rqw6wO4k^Q)8o*rLPP*y|a z>7u6Y1sGMTS^^RBz6v>iU45vhd3ELqa$1LnUwncKa$bh`)T4Kq4OYEzFfA(&Rn>7u zD{Tft_B$13Um!vfGI32Ft7g|gYqQe(dyFwPk1N=H5=YHCe42p7FRJ*2XZJs-za)$> z$D$1X+Ck~~p2Q~H>Y7$zMgUaOF+H0S#~ z#OPuamZ>-JTdJ>;MzkOHCY`b9@Px#`s7OaAm z(3JcnnGK-xiaN4*h{>Y&2UJqvo<>ix2-q)&7q8~-Vr=QuSV&^0uTb%~uA5&2RlILe zKu}YQH|`mPd3Ny#UFEGpp>QG?rX5lR9NP(!Yq;%b61}HDN%Zs+1Xe^)()7f_qlVfx ztpIT(ne3RCZ$z&u7@?Q~ENuCAu`SvZqYZwWW;PUZrRcg`4?8Ewa(hJ|2GVuHV&0jZUsaaKDONjosh=K{{_7GC1`$srFxmyeIEzFUYrSyK!KIl=) zd_FvSjj7Yl8L4c8Bj@z`YL!@?I{-=JK(m`mqzp6soVROtq0T$9SofU@7b`M`dZRLk z%k5&ic(q7$-$bv>hXA12-d%D_O5~wMwf63KVRg4Ki&Dq*W9Am_4@@6_XS!2K0{ii_ zTaKCda6cLe4whMfm#Nb9uNB+EIWlfKDOLSW!nQ@lF4{GZutw;G)O+t$t=ia$-K;O-qGLJ?2 zBT&cSfrLZj?e0vN_p;{agoNhs1(CXm|Ak*U;PC5b84^cRZWWZB^?#Sp@~#UVkI((W!FobFnN2rzFv6KosNKbOoLZC$~6uDEqor)5iF8nQiotQ!(^L zQ@7tmZB%#MJ~JLE8=ql~yB178of(L2$8Wq5+NcbRe3_sDv4E&J)Lp;IYX3!5*~iCo zxK)opTgyPYlxh9O!{>yA&{#@MkJUdRNxwJ%Z858EB?52KSx2^B1qg}&YoJN_q@f4h zu~udladp(+%o9yZc~o}_zOZG|a_!P03g!%W*}@;9G;Q(S+m6sIY%M9_E+QsUt~A(; z5>_#t)80UdgZNE<$0RG`aq&~{&PGYqp2~%ktOj@0J)y?)OXSh7as;%Yq>n#4V~W?@ z7Ow?|Z(__;RFf!(fG?i#M4M!2mfv`!I-2qZh%1uL`z*4ha01bM#ezf4O8F8nL1Qk) z9B84b*|10n4Gm>sD;A>FH^~9kT}8FXj@OLm7=l3_zK46QB5H-DVxFAAlK1z1caGyW zL)6h^THa0@yogOWErqL~7V_N(e^n!OZv{$G_G)-U&X>d;?RP6#;%+jYjb1DL13bhgfz$PAqt!~5bBP&*+S7<|EQX!PAoOPb$otz! zOaMI`Qw4dXJoPxnYe2J@0A^-4k~QSbIQouxzw6Km1hC*~WUDsmk@K03r}*FE_J0n8 z08X(m)ziA=VB_QJu*(6jmId*#!P1kNhp(#P>8c~E{uFh~gKigS?jXrscO@& zjwsTl2Skn}i+Bs~3#I#Ia}bHMJ6sEa|7#Edwy#*o?#)u?bIz`_G%HjdO}x3a{u#UR zuxUi`#ecG}bR+O3B24>+DUVra4He#wuK3E!Z4Dr?$r60&(XlR~M2MY@?8IAXSE5^Z z7@jeMgHQ5vkxYv2@E#1VYqk~q6b_NZB1BL|Q(F~*7`FBF5+mY7hW75=17W?XtsG#$ z`X#ORVQG5H&C<41pxF3&TW@wV`|F3YUWezGf+(36~5Csb@@tPA$Pfn zE_M10?m|l7lbU85K!p2A$mpK^y<;bVw7MzDtn!BRapH=tAy-tsmsM(+98O|q$4~NO zfe!3=U$UG$!Xc<}m%W72>{M(P7sh?1=Y&7uXM4X08ZT8;Z{LW5?!w7#}d;d zQZI9l%vv026W-*d6$X04{WZ9umX7~Qr-76 zJ{gJc$x6#vN|!|iQmBy!sCkveWks((YnRjP9EE!&TAbo(pQn7qgMIZE!RJ<%-QEHZ zO@A{+&dfmU7C(A8npwZ$dY}iy>l-Y)gg({zu6eKjkzgH0*y5_fPYyO�Q=K3g}O-^-l!>0HScvv4B0 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

  • r3X}6T+D@F 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

    tn@zCT))^(ItB4 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

    gLI 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

    2sC?@0)t%2=ypK8e;HuImHy-N%(kw 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�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 BrAYt) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9fe3701c..82e1b0cb 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -13,9 +13,12 @@ jobs: with: python-version: '3.10' - run: pip install flake8 + - run: pip install flake8-import-order - run: pip install mypy - - run: flake8 run.py facefusion tests - - run: mypy run.py facefusion tests + - run: flake8 facefusion.py install.py + - run: flake8 facefusion tests + - run: mypy facefusion.py install.py + - run: mypy facefusion tests test: strategy: matrix: @@ -24,7 +27,7 @@ jobs: steps: - name: Checkout uses: actions/checkout@v4 - - name: Set up FFMpeg + - name: Set up FFmpeg uses: FedericoCarboni/setup-ffmpeg@v3 - name: Set up Python 3.10 uses: actions/setup-python@v5 @@ -33,3 +36,23 @@ jobs: - run: python install.py --onnxruntime default --skip-conda - run: pip install pytest - run: pytest + report: + needs: test + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Set up FFmpeg + uses: FedericoCarboni/setup-ffmpeg@v3 + - name: Set up Python 3.10 + uses: actions/setup-python@v5 + with: + python-version: '3.10' + - run: python install.py --onnxruntime default --skip-conda + - run: pip install coveralls + - run: pip install pytest + - run: pip install pytest-cov + - run: pytest tests --cov facefusion + - run: coveralls --service github + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.gitignore b/.gitignore index 66381e31..40bebe79 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,5 @@ .assets +.caches +.jobs .idea .vscode diff --git a/.install/LICENSE.md b/.install/LICENSE.md deleted file mode 100644 index ef02a652..00000000 --- a/.install/LICENSE.md +++ /dev/null @@ -1,3 +0,0 @@ -CC BY-NC license - -Copyright (c) 2024 Henry Ruhs diff --git a/.install/facefusion.ico b/.install/facefusion.ico deleted file mode 100644 index a4fc026be1ee0f62ed4cd8bcaecfa371d93b45e6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16958 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 EZ;Mx*qW}N^ diff --git a/.install/facefusion.nsi b/.install/facefusion.nsi deleted file mode 100644 index f840f877..00000000 --- a/.install/facefusion.nsi +++ /dev/null @@ -1,183 +0,0 @@ -!include MUI2.nsh -!include nsDialogs.nsh -!include LogicLib.nsh - -RequestExecutionLevel admin -ManifestDPIAware true - -Name 'FaceFusion 2.6.1' -OutFile 'FaceFusion_2.6.1.exe' - -!define MUI_ICON 'facefusion.ico' - -!insertmacro MUI_PAGE_DIRECTORY -Page custom InstallPage PostInstallPage -!insertmacro MUI_PAGE_INSTFILES -!insertmacro MUI_LANGUAGE English - -Var UseDefault -Var UseCuda -Var UseDirectMl -Var UseOpenVino - -Function .onInit - StrCpy $INSTDIR 'C:\FaceFusion' -FunctionEnd - -Function InstallPage - nsDialogs::Create 1018 - !insertmacro MUI_HEADER_TEXT 'Choose Your Accelerator' 'Choose your accelerator based on the graphics card.' - - ${NSD_CreateRadioButton} 0 40u 100% 10u 'Default' - Pop $UseDefault - - ${NSD_CreateRadioButton} 0 55u 100% 10u 'CUDA (NVIDIA)' - Pop $UseCuda - - ${NSD_CreateRadioButton} 0 70u 100% 10u 'DirectML (AMD, Intel, NVIDIA)' - Pop $UseDirectMl - - ${NSD_CreateRadioButton} 0 85u 100% 10u 'OpenVINO (Intel)' - Pop $UseOpenVino - - ${NSD_Check} $UseDefault - - nsDialogs::Show -FunctionEnd - -Function PostInstallPage - ${NSD_GetState} $UseDefault $UseDefault - ${NSD_GetState} $UseCuda $UseCuda - ${NSD_GetState} $UseDirectMl $UseDirectMl - ${NSD_GetState} $UseOpenVino $UseOpenVino -FunctionEnd - -Function Destroy - ${If} ${Silent} - Quit - ${Else} - Abort - ${EndIf} -FunctionEnd - -Section 'Prepare Your Platform' - DetailPrint 'Install GIT' - inetc::get 'https://github.com/git-for-windows/git/releases/download/v2.45.2.windows.1/Git-2.45.2-64-bit.exe' '$TEMP\Git.exe' - ExecWait '$TEMP\Git.exe /CURRENTUSER /VERYSILENT /DIR=$LOCALAPPDATA\Programs\Git' $0 - Delete '$TEMP\Git.exe' - - ${If} $0 > 0 - DetailPrint 'Git installation aborted with error code $0' - Call Destroy - ${EndIf} - - DetailPrint 'Uninstall Conda' - ExecWait '$LOCALAPPDATA\Programs\Miniconda3\Uninstall-Miniconda3.exe /S _?=$LOCALAPPDATA\Programs\Miniconda3' - RMDir /r '$LOCALAPPDATA\Programs\Miniconda3' - - DetailPrint 'Install Conda' - inetc::get 'https://repo.anaconda.com/miniconda/Miniconda3-py310_24.3.0-0-Windows-x86_64.exe' '$TEMP\Miniconda3.exe' - ExecWait '$TEMP\Miniconda3.exe /InstallationType=JustMe /AddToPath=1 /S /D=$LOCALAPPDATA\Programs\Miniconda3' $1 - Delete '$TEMP\Miniconda3.exe' - - ${If} $1 > 0 - DetailPrint 'Conda installation aborted with error code $1' - Call Destroy - ${EndIf} -SectionEnd - -Section 'Download Your Copy' - SetOutPath $INSTDIR - - DetailPrint 'Download Your Copy' - RMDir /r $INSTDIR - nsExec::Exec '$LOCALAPPDATA\Programs\Git\cmd\git.exe clone https://github.com/facefusion/facefusion --branch 2.6.1 .' -SectionEnd - -Section 'Setup Your Environment' - DetailPrint 'Setup Your Environment' - nsExec::Exec '$LOCALAPPDATA\Programs\Miniconda3\Scripts\conda.exe init --all' - nsExec::Exec '$LOCALAPPDATA\Programs\Miniconda3\Scripts\conda.exe create --name facefusion python=3.10 --yes' -SectionEnd - -Section 'Create Install Batch' - SetOutPath $INSTDIR - - FileOpen $0 install-ffmpeg.bat w - FileOpen $1 install-accelerator.bat w - FileOpen $2 install-application.bat w - - FileWrite $0 '@echo off && conda activate facefusion && conda install conda-forge::ffmpeg=7.0.1 --yes' - ${If} $UseCuda == 1 - FileWrite $1 '@echo off && conda activate facefusion && conda install cudatoolkit=11.8 cudnn=8.9.2.26 conda-forge::gputil=1.4.0 conda-forge::zlib-wapi --yes' - FileWrite $2 '@echo off && conda activate facefusion && python install.py --onnxruntime cuda-11.8' - ${ElseIf} $UseDirectMl == 1 - FileWrite $2 '@echo off && conda activate facefusion && python install.py --onnxruntime directml' - ${ElseIf} $UseOpenVino == 1 - FileWrite $1 '@echo off && conda activate facefusion && conda install conda-forge::openvino=2023.1.0 --yes' - FileWrite $2 '@echo off && conda activate facefusion && python install.py --onnxruntime openvino' - ${Else} - FileWrite $2 '@echo off && conda activate facefusion && python install.py --onnxruntime default' - ${EndIf} - - FileClose $0 - FileClose $1 - FileClose $2 -SectionEnd - -Section 'Install Your FFmpeg' - SetOutPath $INSTDIR - - DetailPrint 'Install Your FFmpeg' - nsExec::ExecToLog 'install-ffmpeg.bat' -SectionEnd - -Section 'Install Your Accelerator' - SetOutPath $INSTDIR - - DetailPrint 'Install Your Accelerator' - nsExec::ExecToLog 'install-accelerator.bat' -SectionEnd - -Section 'Install The Application' - SetOutPath $INSTDIR - - DetailPrint 'Install The Application' - nsExec::ExecToLog 'install-application.bat' -SectionEnd - -Section 'Create Run Batch' - SetOutPath $INSTDIR - FileOpen $0 run.bat w - FileWrite $0 '@echo off && conda activate facefusion && python run.py %*' - FileClose $0 -SectionEnd - -Section 'Register The Application' - DetailPrint 'Register The Application' - - CreateDirectory $SMPROGRAMS\FaceFusion - CreateShortcut '$SMPROGRAMS\FaceFusion\FaceFusion.lnk' $INSTDIR\run.bat '--open-browser' $INSTDIR\.install\facefusion.ico - CreateShortcut '$SMPROGRAMS\FaceFusion\FaceFusion Benchmark.lnk' $INSTDIR\run.bat '--ui-layouts benchmark --open-browser' $INSTDIR\.install\facefusion.ico - CreateShortcut '$SMPROGRAMS\FaceFusion\FaceFusion Webcam.lnk' $INSTDIR\run.bat '--ui-layouts webcam --open-browser' $INSTDIR\.install\facefusion.ico - - CreateShortcut $DESKTOP\FaceFusion.lnk $INSTDIR\run.bat '--open-browser' $INSTDIR\.install\facefusion.ico - - WriteUninstaller $INSTDIR\Uninstall.exe - - WriteRegStr HKLM SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\FaceFusion DisplayName 'FaceFusion' - WriteRegStr HKLM SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\FaceFusion DisplayVersion '2.6.0' - WriteRegStr HKLM SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\FaceFusion Publisher 'Henry Ruhs' - WriteRegStr HKLM SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\FaceFusion InstallLocation $INSTDIR - WriteRegStr HKLM SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\FaceFusion UninstallString $INSTDIR\uninstall.exe -SectionEnd - -Section 'Uninstall' - nsExec::Exec '$LOCALAPPDATA\Programs\Miniconda3\Scripts\conda.exe env remove --name facefusion --yes' - - Delete $DESKTOP\FaceFusion.lnk - RMDir /r $SMPROGRAMS\FaceFusion - RMDir /r $INSTDIR - - DeleteRegKey HKLM SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\FaceFusion -SectionEnd diff --git a/README.md b/README.md index 66fd662f..a524ae9d 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,10 @@ FaceFusion ========== -> Next generation face swapper and enhancer. +> Industry leading face manipulation platform. [![Build Status](https://img.shields.io/github/actions/workflow/status/facefusion/facefusion/ci.yml.svg?branch=master)](https://github.com/facefusion/facefusion/actions?query=workflow:ci) +[![Coverage Status](https://img.shields.io/coveralls/facefusion/facefusion.svg)](https://coveralls.io/r/facefusion/facefusion) ![License](https://img.shields.io/badge/license-MIT-green) @@ -16,7 +17,7 @@ Preview Installation ------------ -Be aware, the [installation](https://docs.facefusion.io/installation) needs technical skills and is not recommended for beginners. In case you are not comfortable using a terminal, our [Windows Installer](https://buymeacoffee.com/henryruhs/e/251939) can have you up and running in minutes. +Be aware, the [installation](https://docs.facefusion.io/installation) needs technical skills and is not recommended for beginners. In case you are not comfortable using a terminal, our [Windows Installer](https://windows-installer.facefusion.io) and [macOS Installer](https://macos-installer.facefusion.io) get you started. Usage @@ -25,85 +26,30 @@ Usage Run the command: ``` -python run.py [options] +python facefusion.py [commands] [options] options: - -h, --help show this help message and exit - -c CONFIG_PATH, --config CONFIG_PATH choose the config file to override defaults - -s SOURCE_PATHS, --source SOURCE_PATHS choose single or multiple source images or audios - -t TARGET_PATH, --target TARGET_PATH choose single target image or video - -o OUTPUT_PATH, --output OUTPUT_PATH specify the output file or directory - -v, --version show program's version number and exit + -h, --help show this help message and exit + -v, --version show program's version number and exit -misc: - --force-download force automate downloads and exit - --skip-download omit automate downloads and remote lookups - --headless run the program without a user interface - --log-level {error,warn,info,debug} adjust the message severity displayed in the terminal - -execution: - --execution-device-id EXECUTION_DEVICE_ID specify the device used for processing - --execution-providers EXECUTION_PROVIDERS [EXECUTION_PROVIDERS ...] accelerate the model inference using different providers (choices: cpu, ...) - --execution-thread-count [1-128] specify the amount of parallel threads while processing - --execution-queue-count [1-32] specify the amount of frames each thread is processing - -memory: - --video-memory-strategy {strict,moderate,tolerant} balance fast frame processing and low VRAM usage - --system-memory-limit [0-128] limit the available RAM that can be used while processing - -face analyser: - --face-analyser-order {left-right,right-left,top-bottom,bottom-top,small-large,large-small,best-worst,worst-best} specify the order in which the face analyser detects faces - --face-analyser-age {child,teen,adult,senior} filter the detected faces based on their age - --face-analyser-gender {female,male} filter the detected faces based on their gender - --face-detector-model {many,retinaface,scrfd,yoloface,yunet} choose the model responsible for detecting the face - --face-detector-size FACE_DETECTOR_SIZE specify the size of the frame provided to the face detector - --face-detector-score [0.0-0.95] filter the detected faces base on the confidence score - --face-landmarker-score [0.0-0.95] filter the detected landmarks base on the confidence score - -face selector: - --face-selector-mode {many,one,reference} use reference based tracking or simple matching - --reference-face-position REFERENCE_FACE_POSITION specify the position used to create the reference face - --reference-face-distance [0.0-1.45] specify the desired similarity between the reference face and target face - --reference-frame-number REFERENCE_FRAME_NUMBER specify the frame used to create the reference face - -face mask: - --face-mask-types FACE_MASK_TYPES [FACE_MASK_TYPES ...] mix and match different face mask types (choices: box, occlusion, region) - --face-mask-blur [0.0-0.95] specify the degree of blur applied the box mask - --face-mask-padding FACE_MASK_PADDING [FACE_MASK_PADDING ...] apply top, right, bottom and left padding to the box mask - --face-mask-regions FACE_MASK_REGIONS [FACE_MASK_REGIONS ...] choose the facial features used for the region mask (choices: skin, left-eyebrow, right-eyebrow, left-eye, right-eye, glasses, nose, mouth, upper-lip, lower-lip) - -frame extraction: - --trim-frame-start TRIM_FRAME_START specify the the start frame of the target video - --trim-frame-end TRIM_FRAME_END specify the the end frame of the target video - --temp-frame-format {bmp,jpg,png} specify the temporary resources format - --keep-temp keep the temporary resources after processing - -output creation: - --output-image-quality [0-100] specify the image quality which translates to the compression factor - --output-image-resolution OUTPUT_IMAGE_RESOLUTION specify the image output resolution based on the target image - --output-video-encoder {libx264,libx265,libvpx-vp9,h264_nvenc,hevc_nvenc,h264_amf,hevc_amf} specify the encoder use for the video compression - --output-video-preset {ultrafast,superfast,veryfast,faster,fast,medium,slow,slower,veryslow} balance fast video processing and video file size - --output-video-quality [0-100] specify the video quality which translates to the compression factor - --output-video-resolution OUTPUT_VIDEO_RESOLUTION specify the video output resolution based on the target video - --output-video-fps OUTPUT_VIDEO_FPS specify the video output fps based on the target video - --skip-audio omit the audio from the target video - -frame processors: - --frame-processors FRAME_PROCESSORS [FRAME_PROCESSORS ...] load a single or multiple frame processors. (choices: face_debugger, face_enhancer, face_swapper, frame_colorizer, frame_enhancer, lip_syncer, ...) - --face-debugger-items FACE_DEBUGGER_ITEMS [FACE_DEBUGGER_ITEMS ...] load a single or multiple frame processors (choices: bounding-box, face-landmark-5, face-landmark-5/68, face-landmark-68, face-landmark-68/5, face-mask, face-detector-score, face-landmarker-score, age, gender) - --face-enhancer-model {codeformer,gfpgan_1.2,gfpgan_1.3,gfpgan_1.4,gpen_bfr_256,gpen_bfr_512,gpen_bfr_1024,gpen_bfr_2048,restoreformer_plus_plus} choose the model responsible for enhancing the face - --face-enhancer-blend [0-100] blend the enhanced into the previous face - --face-swapper-model {blendswap_256,inswapper_128,inswapper_128_fp16,simswap_256,simswap_512_unofficial,uniface_256} choose the model responsible for swapping the face - --frame-colorizer-model {ddcolor,ddcolor_artistic,deoldify,deoldify_artistic,deoldify_stable} choose the model responsible for colorizing the frame - --frame-colorizer-blend [0-100] blend the colorized into the previous frame - --frame-colorizer-size {192x192,256x256,384x384,512x512} specify the size of the frame provided to the frame colorizer - --frame-enhancer-model {clear_reality_x4,lsdir_x4,nomos8k_sc_x4,real_esrgan_x2,real_esrgan_x2_fp16,real_esrgan_x4,real_esrgan_x4_fp16,real_hatgan_x4,span_kendata_x4,ultra_sharp_x4} choose the model responsible for enhancing the frame - --frame-enhancer-blend [0-100] blend the enhanced into the previous frame - --lip-syncer-model {wav2lip_gan} choose the model responsible for syncing the lips - -uis: - --open-browser open the browser once the program is ready - --ui-layouts UI_LAYOUTS [UI_LAYOUTS ...] launch a single or multiple UI layouts (choices: benchmark, default, webcam, ...) +commands: + run run the program + headless-run run the program in headless mode + force-download force automate downloads and exit + 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-list list jobs by status + 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 ``` diff --git a/facefusion.ico b/facefusion.ico new file mode 100755 index 0000000000000000000000000000000000000000..24ce60043123c6ee5140e17315433a27ac61392d GIT binary patch literal 270398 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 PMPBAOKZcK~)6xD5j;eV{ literal 0 HcmV?d00001 diff --git a/facefusion.ini b/facefusion.ini index dcb08f29..bba59217 100644 --- a/facefusion.ini +++ b/facefusion.ini @@ -1,40 +1,31 @@ -[general] +[paths] +jobs_path = source_paths = target_path = output_path = -[misc] -force_download = -skip_download = -headless = -log_level = - -[execution] -execution_device_id = -execution_providers = -execution_thread_count = -execution_queue_count = - -[memory] -video_memory_strategy = -system_memory_limit = - -[face_analyser] -face_analyser_order = -face_analyser_age = -face_analyser_gender = +[face_detector] face_detector_model = +face_detector_angles = face_detector_size = face_detector_score = + +[face_landmarker] +face_landmarker_model = face_landmarker_score = [face_selector] face_selector_mode = +face_selector_order = +face_selector_gender = +face_selector_race = +face_selector_age_start = +face_selector_age_end = reference_face_position = reference_face_distance = reference_frame_number = -[face_mask] +[face_masker] face_mask_types = face_mask_blur = face_mask_padding = @@ -49,6 +40,7 @@ keep_temp = [output_creation] output_image_quality = output_image_resolution = +output_audio_encoder = output_video_encoder = output_video_preset = output_video_quality = @@ -56,12 +48,32 @@ output_video_resolution = output_video_fps = skip_audio = -[frame_processors] -frame_processors = +[processors] +processors = +age_modifier_model = +age_modifier_direction = +expression_restorer_model = +expression_restorer_factor = face_debugger_items = +face_editor_model = +face_editor_eyebrow_direction = +face_editor_eye_gaze_horizontal = +face_editor_eye_gaze_vertical = +face_editor_eye_open_ratio = +face_editor_lip_open_ratio = +face_editor_mouth_grim = +face_editor_mouth_pout = +face_editor_mouth_purse = +face_editor_mouth_smile = +face_editor_mouth_position_horizontal = +face_editor_mouth_position_vertical = +face_editor_head_pitch = +face_editor_head_yaw = +face_editor_head_roll = face_enhancer_model = face_enhancer_blend = face_swapper_model = +face_swapper_pixel_boost = frame_colorizer_model = frame_colorizer_blend = frame_colorizer_size = @@ -72,3 +84,18 @@ lip_syncer_model = [uis] open_browser = ui_layouts = +ui_workflow = + +[execution] +execution_device_id = +execution_providers = +execution_thread_count = +execution_queue_count = + +[memory] +video_memory_strategy = +system_memory_limit = + +[misc] +skip_download = +log_level = diff --git a/run.py b/facefusion.py similarity index 65% rename from run.py rename to facefusion.py index 1c2a8bd9..98a865c7 100755 --- a/run.py +++ b/facefusion.py @@ -1,5 +1,9 @@ #!/usr/bin/env python3 +import os + +os.environ['OMP_NUM_THREADS'] = '1' + from facefusion import core if __name__ == '__main__': diff --git a/facefusion/app_context.py b/facefusion/app_context.py new file mode 100644 index 00000000..f1a273af --- /dev/null +++ b/facefusion/app_context.py @@ -0,0 +1,16 @@ +import os +import sys + +from facefusion.typing import AppContext + + +def detect_app_context() -> AppContext: + frame = sys._getframe(1) + + while frame: + if os.path.join('facefusion', 'jobs') in frame.f_code.co_filename: + return 'cli' + if os.path.join('facefusion', 'uis') in frame.f_code.co_filename: + return 'ui' + frame = frame.f_back + return 'cli' diff --git a/facefusion/args.py b/facefusion/args.py new file mode 100644 index 00000000..8ab29d34 --- /dev/null +++ b/facefusion/args.py @@ -0,0 +1,118 @@ +from facefusion import state_manager +from facefusion.filesystem import is_image, is_video, list_directory +from facefusion.jobs import job_store +from facefusion.normalizer import normalize_fps, normalize_padding +from facefusion.processors.core import get_processors_modules +from facefusion.typing import ApplyStateItem, Args +from facefusion.vision import create_image_resolutions, create_video_resolutions, detect_image_resolution, detect_video_fps, detect_video_resolution, pack_resolution + + +def reduce_step_args(args : Args) -> Args: + step_args =\ + { + key: args[key] for key in args if key in job_store.get_step_keys() + } + return step_args + + +def collect_step_args() -> Args: + step_args =\ + { + key: state_manager.get_item(key) for key in job_store.get_step_keys() #type:ignore[arg-type] + } + return step_args + + +def collect_job_args() -> Args: + job_args =\ + { + key: state_manager.get_item(key) for key in job_store.get_job_keys() #type:ignore[arg-type] + } + return job_args + + +def apply_args(args : Args, apply_state_item : ApplyStateItem) -> None: + # general + apply_state_item('command', args.get('command')) + # paths + apply_state_item('jobs_path', args.get('jobs_path')) + apply_state_item('source_paths', args.get('source_paths')) + apply_state_item('target_path', args.get('target_path')) + apply_state_item('output_path', args.get('output_path')) + # face detector + apply_state_item('face_detector_model', args.get('face_detector_model')) + apply_state_item('face_detector_size', args.get('face_detector_size')) + apply_state_item('face_detector_angles', args.get('face_detector_angles')) + apply_state_item('face_detector_score', args.get('face_detector_score')) + # face landmarker + apply_state_item('face_landmarker_model', args.get('face_landmarker_model')) + apply_state_item('face_landmarker_score', args.get('face_landmarker_score')) + # face selector + state_manager.init_item('face_selector_mode', args.get('face_selector_mode')) + state_manager.init_item('face_selector_order', args.get('face_selector_order')) + state_manager.init_item('face_selector_gender', args.get('face_selector_gender')) + state_manager.init_item('face_selector_race', args.get('face_selector_race')) + state_manager.init_item('face_selector_age_start', args.get('face_selector_age_start')) + state_manager.init_item('face_selector_age_end', args.get('face_selector_age_end')) + state_manager.init_item('reference_face_position', args.get('reference_face_position')) + state_manager.init_item('reference_face_distance', args.get('reference_face_distance')) + state_manager.init_item('reference_frame_number', args.get('reference_frame_number')) + # face masker + apply_state_item('face_mask_types', args.get('face_mask_types')) + apply_state_item('face_mask_blur', args.get('face_mask_blur')) + apply_state_item('face_mask_padding', normalize_padding(args.get('face_mask_padding'))) + apply_state_item('face_mask_regions', args.get('face_mask_regions')) + # frame extraction + apply_state_item('trim_frame_start', args.get('trim_frame_start')) + apply_state_item('trim_frame_end', args.get('trim_frame_end')) + apply_state_item('temp_frame_format', args.get('temp_frame_format')) + apply_state_item('keep_temp', args.get('keep_temp')) + # output creation + apply_state_item('output_image_quality', args.get('output_image_quality')) + if is_image(args.get('target_path')): + output_image_resolution = detect_image_resolution(args.get('target_path')) + output_image_resolutions = create_image_resolutions(output_image_resolution) + if args.get('output_image_resolution') in output_image_resolutions: + apply_state_item('output_image_resolution', args.get('output_image_resolution')) + else: + apply_state_item('output_image_resolution', pack_resolution(output_image_resolution)) + apply_state_item('output_audio_encoder', args.get('output_audio_encoder')) + apply_state_item('output_video_encoder', args.get('output_video_encoder')) + apply_state_item('output_video_preset', args.get('output_video_preset')) + apply_state_item('output_video_quality', args.get('output_video_quality')) + if is_video(args.get('target_path')): + output_video_resolution = detect_video_resolution(args.get('target_path')) + output_video_resolutions = create_video_resolutions(output_video_resolution) + if args.get('output_video_resolution') in output_video_resolutions: + apply_state_item('output_video_resolution', args.get('output_video_resolution')) + else: + apply_state_item('output_video_resolution', pack_resolution(output_video_resolution)) + if args.get('output_video_fps') or is_video(args.get('target_path')): + output_video_fps = normalize_fps(args.get('output_video_fps')) or detect_video_fps(args.get('target_path')) + apply_state_item('output_video_fps', output_video_fps) + apply_state_item('skip_audio', args.get('skip_audio')) + # processors + available_processors = list_directory('facefusion/processors/modules') + apply_state_item('processors', args.get('processors')) + for processor_module in get_processors_modules(available_processors): + processor_module.apply_args(args, apply_state_item) + # uis + if args.get('command') == 'run': + apply_state_item('open_browser', args.get('open_browser')) + apply_state_item('ui_layouts', args.get('ui_layouts')) + apply_state_item('ui_workflow', args.get('ui_workflow')) + # execution + apply_state_item('execution_device_id', args.get('execution_device_id')) + apply_state_item('execution_providers', args.get('execution_providers')) + apply_state_item('execution_thread_count', args.get('execution_thread_count')) + apply_state_item('execution_queue_count', args.get('execution_queue_count')) + # memory + apply_state_item('video_memory_strategy', args.get('video_memory_strategy')) + apply_state_item('system_memory_limit', args.get('system_memory_limit')) + # misc + apply_state_item('skip_download', args.get('skip_download')) + apply_state_item('log_level', args.get('log_level')) + # jobs + apply_state_item('job_id', args.get('job_id')) + apply_state_item('job_status', args.get('job_status')) + apply_state_item('step_index', args.get('step_index')) diff --git a/facefusion/audio.py b/facefusion/audio.py index de800502..abe52c88 100644 --- a/facefusion/audio.py +++ b/facefusion/audio.py @@ -1,11 +1,13 @@ -from typing import Optional, Any, List from functools import lru_cache +from typing import Any, List, Optional + import numpy import scipy +from numpy._typing import NDArray -from facefusion.filesystem import is_audio from facefusion.ffmpeg import read_audio_buffer -from facefusion.typing import Fps, Audio, AudioFrame, Spectrogram, MelFilterBank +from facefusion.filesystem import is_audio +from facefusion.typing import Audio, AudioFrame, Fps, Mel, MelFilterBank, Spectrogram from facefusion.voice_extractor import batch_extract_voice @@ -36,8 +38,8 @@ def read_static_voice(audio_path : str, fps : Fps) -> Optional[List[AudioFrame]] def read_voice(audio_path : str, fps : Fps) -> Optional[List[AudioFrame]]: sample_rate = 48000 channel_total = 2 - chunk_size = 1024 * 240 - step_size = 1024 * 180 + chunk_size = 240 * 1024 + step_size = 180 * 1024 if is_audio(audio_path): audio_buffer = read_audio_buffer(audio_path, sample_rate, channel_total) @@ -73,7 +75,7 @@ def create_empty_audio_frame() -> AudioFrame: return audio_frame -def prepare_audio(audio : numpy.ndarray[Any, Any]) -> Audio: +def prepare_audio(audio : Audio) -> Audio: if audio.ndim > 1: audio = numpy.mean(audio, axis = 1) audio = audio / numpy.max(numpy.abs(audio), axis = 0) @@ -81,7 +83,7 @@ def prepare_audio(audio : numpy.ndarray[Any, Any]) -> Audio: return audio -def prepare_voice(audio : numpy.ndarray[Any, Any]) -> Audio: +def prepare_voice(audio : Audio) -> Audio: sample_rate = 48000 resample_rate = 16000 @@ -94,7 +96,7 @@ def convert_hertz_to_mel(hertz : float) -> float: return 2595 * numpy.log10(1 + hertz / 700) -def convert_mel_to_hertz(mel : numpy.ndarray[Any, Any]) -> numpy.ndarray[Any, Any]: +def convert_mel_to_hertz(mel : Mel) -> NDArray[Any]: return 700 * (10 ** (mel / 2595) - 1) diff --git a/facefusion/choices.py b/facefusion/choices.py index e5587b85..15a8cc5e 100755 --- a/facefusion/choices.py +++ b/facefusion/choices.py @@ -1,37 +1,64 @@ -from typing import List, Dict +import logging +from typing import List, Sequence -from facefusion.typing import VideoMemoryStrategy, FaceSelectorMode, FaceAnalyserOrder, FaceAnalyserAge, FaceAnalyserGender, FaceDetectorModel, FaceMaskType, FaceMaskRegion, TempFrameFormat, OutputVideoEncoder, OutputVideoPreset -from facefusion.common_helper import create_int_range, create_float_range +from facefusion.common_helper import create_float_range, create_int_range +from facefusion.typing import Angle, ExecutionProviderSet, FaceDetectorSet, FaceLandmarkerModel, FaceMaskRegion, FaceMaskType, FaceSelectorMode, FaceSelectorOrder, Gender, JobStatus, LogLevelSet, OutputAudioEncoder, OutputVideoEncoder, OutputVideoPreset, Race, Score, TempFrameFormat, UiWorkflow, VideoMemoryStrategy video_memory_strategies : List[VideoMemoryStrategy] = [ 'strict', 'moderate', 'tolerant' ] -face_analyser_orders : List[FaceAnalyserOrder] = [ 'left-right', 'right-left', 'top-bottom', 'bottom-top', 'small-large', 'large-small', 'best-worst', 'worst-best' ] -face_analyser_ages : List[FaceAnalyserAge] = [ 'child', 'teen', 'adult', 'senior' ] -face_analyser_genders : List[FaceAnalyserGender] = [ 'female', 'male' ] -face_detector_set : Dict[FaceDetectorModel, List[str]] =\ + +face_detector_set : FaceDetectorSet =\ { 'many': [ '640x640' ], 'retinaface': [ '160x160', '320x320', '480x480', '512x512', '640x640' ], 'scrfd': [ '160x160', '320x320', '480x480', '512x512', '640x640' ], - 'yoloface': [ '640x640' ], - 'yunet': [ '160x160', '320x320', '480x480', '512x512', '640x640', '768x768', '960x960', '1024x1024' ] + 'yoloface': [ '640x640' ] } +face_landmarker_models : List[FaceLandmarkerModel] = [ 'many', '2dfan4', 'peppa_wutz' ] face_selector_modes : List[FaceSelectorMode] = [ 'many', 'one', 'reference' ] +face_selector_orders : List[FaceSelectorOrder] = [ 'left-right', 'right-left', 'top-bottom', 'bottom-top', 'small-large', 'large-small', 'best-worst', 'worst-best' ] +face_selector_genders : List[Gender] = ['female', 'male'] +face_selector_races : List[Race] = ['white', 'black', 'latino', 'asian', 'indian', 'arabic'] face_mask_types : List[FaceMaskType] = [ 'box', 'occlusion', 'region' ] face_mask_regions : List[FaceMaskRegion] = [ 'skin', 'left-eyebrow', 'right-eyebrow', 'left-eye', 'right-eye', 'glasses', 'nose', 'mouth', 'upper-lip', 'lower-lip' ] temp_frame_formats : List[TempFrameFormat] = [ 'bmp', 'jpg', 'png' ] -output_video_encoders : List[OutputVideoEncoder] = [ 'libx264', 'libx265', 'libvpx-vp9', 'h264_nvenc', 'hevc_nvenc', 'h264_amf', 'hevc_amf' ] +output_audio_encoders : List[OutputAudioEncoder] = [ 'aac', 'libmp3lame', 'libopus', 'libvorbis' ] +output_video_encoders : List[OutputVideoEncoder] = [ 'libx264', 'libx265', 'libvpx-vp9', 'h264_nvenc', 'hevc_nvenc', 'h264_amf', 'hevc_amf', 'h264_videotoolbox', 'hevc_videotoolbox' ] output_video_presets : List[OutputVideoPreset] = [ 'ultrafast', 'superfast', 'veryfast', 'faster', 'fast', 'medium', 'slow', 'slower', 'veryslow' ] image_template_sizes : List[float] = [ 0.25, 0.5, 0.75, 1, 1.5, 2, 2.5, 3, 3.5, 4 ] video_template_sizes : List[int] = [ 240, 360, 480, 540, 720, 1080, 1440, 2160, 4320 ] -execution_thread_count_range : List[int] = create_int_range(1, 128, 1) -execution_queue_count_range : List[int] = create_int_range(1, 32, 1) -system_memory_limit_range : List[int] = create_int_range(0, 128, 1) -face_detector_score_range : List[float] = create_float_range(0.0, 1.0, 0.05) -face_landmarker_score_range : List[float] = create_float_range(0.0, 1.0, 0.05) -face_mask_blur_range : List[float] = create_float_range(0.0, 1.0, 0.05) -face_mask_padding_range : List[int] = create_int_range(0, 100, 1) -reference_face_distance_range : List[float] = create_float_range(0.0, 1.5, 0.05) -output_image_quality_range : List[int] = create_int_range(0, 100, 1) -output_video_quality_range : List[int] = create_int_range(0, 100, 1) +log_level_set : LogLevelSet =\ +{ + 'error': logging.ERROR, + 'warn': logging.WARNING, + 'info': logging.INFO, + 'debug': logging.DEBUG +} + +execution_provider_set : ExecutionProviderSet =\ +{ + 'cpu': 'CPUExecutionProvider', + 'coreml': 'CoreMLExecutionProvider', + 'cuda': 'CUDAExecutionProvider', + 'directml': 'DmlExecutionProvider', + 'openvino': 'OpenVINOExecutionProvider', + 'rocm': 'ROCMExecutionProvider', + 'tensorrt': 'TensorrtExecutionProvider' +} + +ui_workflows : List[UiWorkflow] = [ 'instant_runner', 'job_runner', 'job_manager' ] +job_statuses : List[JobStatus] = [ 'drafted', 'queued', 'completed', 'failed' ] + +execution_thread_count_range : Sequence[int] = create_int_range(1, 32, 1) +execution_queue_count_range : Sequence[int] = create_int_range(1, 4, 1) +system_memory_limit_range : Sequence[int] = create_int_range(0, 128, 4) +face_detector_angles : Sequence[Angle] = create_int_range(0, 270, 90) +face_detector_score_range : Sequence[Score] = create_float_range(0.0, 1.0, 0.05) +face_landmarker_score_range : Sequence[Score] = create_float_range(0.0, 1.0, 0.05) +face_mask_blur_range : Sequence[float] = create_float_range(0.0, 1.0, 0.05) +face_mask_padding_range : Sequence[int] = create_int_range(0, 100, 1) +face_selector_age_range : Sequence[int] = create_int_range(0, 100, 1) +reference_face_distance_range : Sequence[float] = create_float_range(0.0, 1.5, 0.05) +output_image_quality_range : Sequence[int] = create_int_range(0, 100, 1) +output_video_quality_range : Sequence[int] = create_int_range(0, 100, 1) diff --git a/facefusion/common_helper.py b/facefusion/common_helper.py index d37419bc..e8d9e4ba 100644 --- a/facefusion/common_helper.py +++ b/facefusion/common_helper.py @@ -1,12 +1,28 @@ -from typing import List, Any import platform +from typing import Any, Sequence -def create_metavar(ranges : List[Any]) -> str: - return '[' + str(ranges[0]) + '-' + str(ranges[-1]) + ']' +def is_linux() -> bool: + return platform.system().lower() == 'linux' -def create_int_range(start : int, end : int, step : int) -> List[int]: +def is_macos() -> bool: + return platform.system().lower() == 'darwin' + + +def is_windows() -> bool: + return platform.system().lower() == 'windows' + + +def create_int_metavar(int_range : Sequence[int]) -> str: + return '[' + str(int_range[0]) + '..' + str(int_range[-1]) + ':' + str(calc_int_step(int_range)) + ']' + + +def create_float_metavar(float_range : Sequence[float]) -> str: + return '[' + str(float_range[0]) + '..' + str(float_range[-1]) + ':' + str(calc_float_step(float_range)) + ']' + + +def create_int_range(start : int, end : int, step : int) -> Sequence[int]: int_range = [] current = start @@ -16,7 +32,7 @@ def create_int_range(start : int, end : int, step : int) -> List[int]: return int_range -def create_float_range(start : float, end : float, step : float) -> List[float]: +def create_float_range(start : float, end : float, step : float) -> Sequence[float]: float_range = [] current = start @@ -26,21 +42,17 @@ def create_float_range(start : float, end : float, step : float) -> List[float]: return float_range -def is_linux() -> bool: - return to_lower_case(platform.system()) == 'linux' +def calc_int_step(int_range : Sequence[int]) -> int: + return int_range[1] - int_range[0] -def is_macos() -> bool: - return to_lower_case(platform.system()) == 'darwin' - - -def is_windows() -> bool: - return to_lower_case(platform.system()) == 'windows' - - -def to_lower_case(__string__ : Any) -> str: - return str(__string__).lower() +def calc_float_step(float_range : Sequence[float]) -> float: + return round(float_range[1] - float_range[0], 2) def get_first(__list__ : Any) -> Any: return next(iter(__list__), None) + + +def get_last(__list__ : Any) -> Any: + return next(reversed(__list__), None) diff --git a/facefusion/config.py b/facefusion/config.py index c8407647..928052b0 100644 --- a/facefusion/config.py +++ b/facefusion/config.py @@ -1,7 +1,7 @@ from configparser import ConfigParser -from typing import Any, Optional, List +from typing import Any, List, Optional -import facefusion.globals +from facefusion import state_manager CONFIG = None @@ -11,7 +11,7 @@ def get_config() -> ConfigParser: if CONFIG is None: CONFIG = ConfigParser() - CONFIG.read(facefusion.globals.config_path, encoding = 'utf-8') + CONFIG.read(state_manager.get_item('config_path'), encoding = 'utf-8') return CONFIG diff --git a/facefusion/content_analyser.py b/facefusion/content_analyser.py index 5cc5a184..998e560c 100644 --- a/facefusion/content_analyser.py +++ b/facefusion/content_analyser.py @@ -1,27 +1,38 @@ -from typing import Any from functools import lru_cache -from time import sleep + import cv2 import numpy -import onnxruntime from tqdm import tqdm -import facefusion.globals -from facefusion import process_manager, wording -from facefusion.thread_helper import thread_lock, conditional_thread_semaphore -from facefusion.typing import VisionFrame, ModelSet, Fps -from facefusion.execution import apply_execution_provider_options -from facefusion.vision import get_video_frame, count_video_frame_total, read_image, detect_video_fps -from facefusion.filesystem import resolve_relative_path, is_file -from facefusion.download import conditional_download +from facefusion import inference_manager, state_manager, wording +from facefusion.download import conditional_download_hashes, conditional_download_sources +from facefusion.filesystem import resolve_relative_path +from facefusion.thread_helper import conditional_thread_semaphore +from facefusion.typing import Fps, InferencePool, ModelOptions, ModelSet, VisionFrame +from facefusion.vision import count_video_frame_total, detect_video_fps, get_video_frame, read_image -CONTENT_ANALYSER = None -MODELS : ModelSet =\ +MODEL_SET : ModelSet =\ { 'open_nsfw': { - 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models/open_nsfw.onnx', - 'path': resolve_relative_path('../.assets/models/open_nsfw.onnx') + 'hashes': + { + 'content_analyser': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/open_nsfw.hash', + 'path': resolve_relative_path('../.assets/models/open_nsfw.hash') + } + }, + 'sources': + { + 'content_analyser': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/open_nsfw.onnx', + 'path': resolve_relative_path('../.assets/models/open_nsfw.onnx') + } + }, + 'size': (224, 224), + 'mean': [ 104, 117, 123 ] } } PROBABILITY_LIMIT = 0.80 @@ -29,34 +40,25 @@ RATE_LIMIT = 10 STREAM_COUNTER = 0 -def get_content_analyser() -> Any: - global CONTENT_ANALYSER - - with thread_lock(): - while process_manager.is_checking(): - sleep(0.5) - if CONTENT_ANALYSER is None: - model_path = MODELS.get('open_nsfw').get('path') - CONTENT_ANALYSER = onnxruntime.InferenceSession(model_path, providers = apply_execution_provider_options(facefusion.globals.execution_device_id, facefusion.globals.execution_providers)) - return CONTENT_ANALYSER +def get_inference_pool() -> InferencePool: + model_sources = get_model_options().get('sources') + return inference_manager.get_inference_pool(__name__, model_sources) -def clear_content_analyser() -> None: - global CONTENT_ANALYSER +def clear_inference_pool() -> None: + inference_manager.clear_inference_pool(__name__) - CONTENT_ANALYSER = None + +def get_model_options() -> ModelOptions: + return MODEL_SET.get('open_nsfw') def pre_check() -> bool: download_directory_path = resolve_relative_path('../.assets/models') - model_url = MODELS.get('open_nsfw').get('url') - model_path = MODELS.get('open_nsfw').get('path') + model_hashes = get_model_options().get('hashes') + model_sources = get_model_options().get('sources') - if not facefusion.globals.skip_download: - process_manager.check() - conditional_download(download_directory_path, [ model_url ]) - process_manager.end() - return is_file(model_path) + return conditional_download_hashes(download_directory_path, model_hashes) and conditional_download_sources(download_directory_path, model_sources) def analyse_stream(vision_frame : VisionFrame, video_fps : Fps) -> bool: @@ -69,19 +71,29 @@ def analyse_stream(vision_frame : VisionFrame, video_fps : Fps) -> bool: def analyse_frame(vision_frame : VisionFrame) -> bool: - content_analyser = get_content_analyser() vision_frame = prepare_frame(vision_frame) - with conditional_thread_semaphore(facefusion.globals.execution_providers): - probability = content_analyser.run(None, - { - content_analyser.get_inputs()[0].name: vision_frame - })[0][0][1] + probability = forward(vision_frame) + return probability > PROBABILITY_LIMIT +def forward(vision_frame : VisionFrame) -> float: + content_analyser = get_inference_pool().get('content_analyser') + + with conditional_thread_semaphore(): + probability = content_analyser.run(None, + { + 'input': vision_frame + })[0][0][1] + + return probability + + def prepare_frame(vision_frame : VisionFrame) -> VisionFrame: - vision_frame = cv2.resize(vision_frame, (224, 224)).astype(numpy.float32) - vision_frame -= numpy.array([ 104, 117, 123 ]).astype(numpy.float32) + model_size = get_model_options().get('size') + model_mean = get_model_options().get('mean') + vision_frame = cv2.resize(vision_frame, model_size).astype(numpy.float32) + vision_frame -= numpy.array(model_mean).astype(numpy.float32) vision_frame = numpy.expand_dims(vision_frame, axis = 0) return vision_frame @@ -100,7 +112,7 @@ def analyse_video(video_path : str, start_frame : int, end_frame : int) -> bool: rate = 0.0 counter = 0 - with tqdm(total = len(frame_range), desc = wording.get('analysing'), unit = 'frame', ascii = ' =', disable = facefusion.globals.log_level in [ 'warn', 'error' ]) as progress: + with tqdm(total = len(frame_range), desc = wording.get('analysing'), unit = 'frame', ascii = ' =', disable = state_manager.get_item('log_level') in [ 'warn', 'error' ]) as progress: for frame_number in frame_range: if frame_number % int(video_fps) == 0: frame = get_video_frame(video_path, frame_number) diff --git a/facefusion/core.py b/facefusion/core.py index e69139c7..3bf2033f 100755 --- a/facefusion/core.py +++ b/facefusion/core.py @@ -1,437 +1,445 @@ -import os - -os.environ['OMP_NUM_THREADS'] = '1' - +import shutil import signal import sys -import warnings -import shutil +from time import time + import numpy -import onnxruntime -from time import sleep, time -from argparse import ArgumentParser, HelpFormatter -import facefusion.choices -import facefusion.globals -from facefusion.face_analyser import get_one_face, get_average_face -from facefusion.face_store import get_reference_faces, append_reference_face -from facefusion import face_analyser, face_masker, content_analyser, config, process_manager, metadata, logger, wording, voice_extractor +from facefusion import content_analyser, face_classifier, face_detector, face_landmarker, face_masker, face_recognizer, logger, process_manager, state_manager, voice_extractor, wording +from facefusion.args import apply_args, collect_job_args, reduce_step_args +from facefusion.common_helper import get_first from facefusion.content_analyser import analyse_image, analyse_video -from facefusion.processors.frame.core import get_frame_processors_modules, load_frame_processor_module -from facefusion.common_helper import create_metavar, get_first -from facefusion.execution import encode_execution_providers, decode_execution_providers -from facefusion.normalizer import normalize_output_path, normalize_padding, normalize_fps +from facefusion.download import conditional_download_hashes, conditional_download_sources +from facefusion.exit_helper import conditional_exit, graceful_exit, hard_exit +from facefusion.face_analyser import get_average_face, get_many_faces, get_one_face +from facefusion.face_selector import sort_and_filter_faces +from facefusion.face_store import append_reference_face, clear_reference_faces, get_reference_faces +from facefusion.ffmpeg import copy_image, extract_frames, finalize_image, merge_video, replace_audio, restore_audio +from facefusion.filesystem import filter_audio_paths, is_image, is_video, list_directory, resolve_relative_path +from facefusion.jobs import job_helper, job_manager, job_runner +from facefusion.jobs.job_list import compose_job_list from facefusion.memory import limit_system_memory +from facefusion.processors.core import get_processors_modules +from facefusion.program import create_program +from facefusion.program_helper import validate_args from facefusion.statistics import conditional_log_statistics -from facefusion.download import conditional_download -from facefusion.filesystem import get_temp_frame_paths, get_temp_file_path, create_temp, move_temp, clear_temp, is_image, is_video, filter_audio_paths, resolve_relative_path, list_directory -from facefusion.ffmpeg import extract_frames, merge_video, copy_image, finalize_image, restore_audio, replace_audio -from facefusion.vision import read_image, read_static_images, detect_image_resolution, restrict_video_fps, create_image_resolutions, get_video_frame, detect_video_resolution, detect_video_fps, restrict_video_resolution, restrict_image_resolution, create_video_resolutions, pack_resolution, unpack_resolution - -onnxruntime.set_default_logger_severity(3) -warnings.filterwarnings('ignore', category = UserWarning, module = 'gradio') +from facefusion.temp_helper import clear_temp_directory, create_temp_directory, get_temp_file_path, get_temp_frame_paths, move_temp_file +from facefusion.typing import Args, ErrorCode +from facefusion.vision import get_video_frame, pack_resolution, read_image, read_static_images, restrict_image_resolution, restrict_video_fps, restrict_video_resolution, unpack_resolution def cli() -> None: - signal.signal(signal.SIGINT, lambda signal_number, frame: destroy()) - program = ArgumentParser(formatter_class = lambda prog: HelpFormatter(prog, max_help_position = 200), add_help = False) - # general - program.add_argument('-c', '--config', help = wording.get('help.config'), dest = 'config_path', default = 'facefusion.ini') - apply_config(program) - program.add_argument('-s', '--source', help = wording.get('help.source'), action = 'append', dest = 'source_paths', default = config.get_str_list('general.source_paths')) - program.add_argument('-t', '--target', help = wording.get('help.target'), dest = 'target_path', default = config.get_str_value('general.target_path')) - program.add_argument('-o', '--output', help = wording.get('help.output'), dest = 'output_path', default = config.get_str_value('general.output_path')) - program.add_argument('-v', '--version', version = metadata.get('name') + ' ' + metadata.get('version'), action = 'version') - # misc - group_misc = program.add_argument_group('misc') - group_misc.add_argument('--force-download', help = wording.get('help.force_download'), action = 'store_true', default = config.get_bool_value('misc.force_download')) - group_misc.add_argument('--skip-download', help = wording.get('help.skip_download'), action = 'store_true', default = config.get_bool_value('misc.skip_download')) - group_misc.add_argument('--headless', help = wording.get('help.headless'), action = 'store_true', default = config.get_bool_value('misc.headless')) - group_misc.add_argument('--log-level', help = wording.get('help.log_level'), default = config.get_str_value('misc.log_level', 'info'), choices = logger.get_log_levels()) - # execution - execution_providers = encode_execution_providers(onnxruntime.get_available_providers()) - group_execution = program.add_argument_group('execution') - group_execution.add_argument('--execution-device-id', help = wording.get('help.execution_device_id'), default = config.get_str_value('execution.face_detector_size', '0')) - group_execution.add_argument('--execution-providers', help = wording.get('help.execution_providers').format(choices = ', '.join(execution_providers)), default = config.get_str_list('execution.execution_providers', 'cpu'), choices = execution_providers, nargs = '+', metavar = 'EXECUTION_PROVIDERS') - group_execution.add_argument('--execution-thread-count', help = wording.get('help.execution_thread_count'), type = int, default = config.get_int_value('execution.execution_thread_count', '4'), choices = facefusion.choices.execution_thread_count_range, metavar = create_metavar(facefusion.choices.execution_thread_count_range)) - group_execution.add_argument('--execution-queue-count', help = wording.get('help.execution_queue_count'), type = int, default = config.get_int_value('execution.execution_queue_count', '1'), choices = facefusion.choices.execution_queue_count_range, metavar = create_metavar(facefusion.choices.execution_queue_count_range)) - # memory - group_memory = program.add_argument_group('memory') - group_memory.add_argument('--video-memory-strategy', help = wording.get('help.video_memory_strategy'), default = config.get_str_value('memory.video_memory_strategy', 'strict'), choices = facefusion.choices.video_memory_strategies) - group_memory.add_argument('--system-memory-limit', help = wording.get('help.system_memory_limit'), type = int, default = config.get_int_value('memory.system_memory_limit', '0'), choices = facefusion.choices.system_memory_limit_range, metavar = create_metavar(facefusion.choices.system_memory_limit_range)) - # face analyser - group_face_analyser = program.add_argument_group('face analyser') - group_face_analyser.add_argument('--face-analyser-order', help = wording.get('help.face_analyser_order'), default = config.get_str_value('face_analyser.face_analyser_order', 'left-right'), choices = facefusion.choices.face_analyser_orders) - group_face_analyser.add_argument('--face-analyser-age', help = wording.get('help.face_analyser_age'), default = config.get_str_value('face_analyser.face_analyser_age'), choices = facefusion.choices.face_analyser_ages) - group_face_analyser.add_argument('--face-analyser-gender', help = wording.get('help.face_analyser_gender'), default = config.get_str_value('face_analyser.face_analyser_gender'), choices = facefusion.choices.face_analyser_genders) - group_face_analyser.add_argument('--face-detector-model', help = wording.get('help.face_detector_model'), default = config.get_str_value('face_analyser.face_detector_model', 'yoloface'), choices = facefusion.choices.face_detector_set.keys()) - group_face_analyser.add_argument('--face-detector-size', help = wording.get('help.face_detector_size'), default = config.get_str_value('face_analyser.face_detector_size', '640x640')) - group_face_analyser.add_argument('--face-detector-score', help = wording.get('help.face_detector_score'), type = float, default = config.get_float_value('face_analyser.face_detector_score', '0.5'), choices = facefusion.choices.face_detector_score_range, metavar = create_metavar(facefusion.choices.face_detector_score_range)) - group_face_analyser.add_argument('--face-landmarker-score', help = wording.get('help.face_landmarker_score'), type = float, default = config.get_float_value('face_analyser.face_landmarker_score', '0.5'), choices = facefusion.choices.face_landmarker_score_range, metavar = create_metavar(facefusion.choices.face_landmarker_score_range)) - # face selector - group_face_selector = program.add_argument_group('face selector') - group_face_selector.add_argument('--face-selector-mode', help = wording.get('help.face_selector_mode'), default = config.get_str_value('face_selector.face_selector_mode', 'reference'), choices = facefusion.choices.face_selector_modes) - group_face_selector.add_argument('--reference-face-position', help = wording.get('help.reference_face_position'), type = int, default = config.get_int_value('face_selector.reference_face_position', '0')) - group_face_selector.add_argument('--reference-face-distance', help = wording.get('help.reference_face_distance'), type = float, default = config.get_float_value('face_selector.reference_face_distance', '0.6'), choices = facefusion.choices.reference_face_distance_range, metavar = create_metavar(facefusion.choices.reference_face_distance_range)) - group_face_selector.add_argument('--reference-frame-number', help = wording.get('help.reference_frame_number'), type = int, default = config.get_int_value('face_selector.reference_frame_number', '0')) - # face mask - group_face_mask = program.add_argument_group('face mask') - group_face_mask.add_argument('--face-mask-types', help = wording.get('help.face_mask_types').format(choices = ', '.join(facefusion.choices.face_mask_types)), default = config.get_str_list('face_mask.face_mask_types', 'box'), choices = facefusion.choices.face_mask_types, nargs = '+', metavar = 'FACE_MASK_TYPES') - group_face_mask.add_argument('--face-mask-blur', help = wording.get('help.face_mask_blur'), type = float, default = config.get_float_value('face_mask.face_mask_blur', '0.3'), choices = facefusion.choices.face_mask_blur_range, metavar = create_metavar(facefusion.choices.face_mask_blur_range)) - group_face_mask.add_argument('--face-mask-padding', help = wording.get('help.face_mask_padding'), type = int, default = config.get_int_list('face_mask.face_mask_padding', '0 0 0 0'), nargs = '+') - group_face_mask.add_argument('--face-mask-regions', help = wording.get('help.face_mask_regions').format(choices = ', '.join(facefusion.choices.face_mask_regions)), default = config.get_str_list('face_mask.face_mask_regions', ' '.join(facefusion.choices.face_mask_regions)), choices = facefusion.choices.face_mask_regions, nargs = '+', metavar = 'FACE_MASK_REGIONS') - # frame extraction - group_frame_extraction = program.add_argument_group('frame extraction') - group_frame_extraction.add_argument('--trim-frame-start', help = wording.get('help.trim_frame_start'), type = int, default = facefusion.config.get_int_value('frame_extraction.trim_frame_start')) - group_frame_extraction.add_argument('--trim-frame-end', help = wording.get('help.trim_frame_end'), type = int, default = facefusion.config.get_int_value('frame_extraction.trim_frame_end')) - group_frame_extraction.add_argument('--temp-frame-format', help = wording.get('help.temp_frame_format'), default = config.get_str_value('frame_extraction.temp_frame_format', 'png'), choices = facefusion.choices.temp_frame_formats) - group_frame_extraction.add_argument('--keep-temp', help = wording.get('help.keep_temp'), action = 'store_true', default = config.get_bool_value('frame_extraction.keep_temp')) - # output creation - group_output_creation = program.add_argument_group('output creation') - group_output_creation.add_argument('--output-image-quality', help = wording.get('help.output_image_quality'), type = int, default = config.get_int_value('output_creation.output_image_quality', '80'), choices = facefusion.choices.output_image_quality_range, metavar = create_metavar(facefusion.choices.output_image_quality_range)) - group_output_creation.add_argument('--output-image-resolution', help = wording.get('help.output_image_resolution'), default = config.get_str_value('output_creation.output_image_resolution')) - group_output_creation.add_argument('--output-video-encoder', help = wording.get('help.output_video_encoder'), default = config.get_str_value('output_creation.output_video_encoder', 'libx264'), choices = facefusion.choices.output_video_encoders) - group_output_creation.add_argument('--output-video-preset', help = wording.get('help.output_video_preset'), default = config.get_str_value('output_creation.output_video_preset', 'veryfast'), choices = facefusion.choices.output_video_presets) - group_output_creation.add_argument('--output-video-quality', help = wording.get('help.output_video_quality'), type = int, default = config.get_int_value('output_creation.output_video_quality', '80'), choices = facefusion.choices.output_video_quality_range, metavar = create_metavar(facefusion.choices.output_video_quality_range)) - group_output_creation.add_argument('--output-video-resolution', help = wording.get('help.output_video_resolution'), default = config.get_str_value('output_creation.output_video_resolution')) - group_output_creation.add_argument('--output-video-fps', help = wording.get('help.output_video_fps'), type = float, default = config.get_str_value('output_creation.output_video_fps')) - group_output_creation.add_argument('--skip-audio', help = wording.get('help.skip_audio'), action = 'store_true', default = config.get_bool_value('output_creation.skip_audio')) - # frame processors - available_frame_processors = list_directory('facefusion/processors/frame/modules') - program = ArgumentParser(parents = [ program ], formatter_class = program.formatter_class, add_help = True) - group_frame_processors = program.add_argument_group('frame processors') - group_frame_processors.add_argument('--frame-processors', help = wording.get('help.frame_processors').format(choices = ', '.join(available_frame_processors)), default = config.get_str_list('frame_processors.frame_processors', 'face_swapper'), nargs = '+') - for frame_processor in available_frame_processors: - frame_processor_module = load_frame_processor_module(frame_processor) - frame_processor_module.register_args(group_frame_processors) - # uis - available_ui_layouts = list_directory('facefusion/uis/layouts') - group_uis = program.add_argument_group('uis') - group_uis.add_argument('--open-browser', help=wording.get('help.open_browser'), action = 'store_true', default = config.get_bool_value('uis.open_browser')) - group_uis.add_argument('--ui-layouts', help = wording.get('help.ui_layouts').format(choices = ', '.join(available_ui_layouts)), default = config.get_str_list('uis.ui_layouts', 'default'), nargs = '+') - run(program) + signal.signal(signal.SIGINT, lambda signal_number, frame: graceful_exit(0)) + program = create_program() + if validate_args(program): + args = vars(program.parse_args()) + apply_args(args, state_manager.init_item) -def apply_config(program : ArgumentParser) -> None: - known_args = program.parse_known_args() - facefusion.globals.config_path = get_first(known_args).config_path - - -def validate_args(program : ArgumentParser) -> None: - try: - for action in program._actions: - if action.default: - if isinstance(action.default, list): - for default in action.default: - program._check_value(action, default) - else: - program._check_value(action, action.default) - except Exception as exception: - program.error(str(exception)) - - -def apply_args(program : ArgumentParser) -> None: - args = program.parse_args() - # general - facefusion.globals.source_paths = args.source_paths - facefusion.globals.target_path = args.target_path - facefusion.globals.output_path = args.output_path - # misc - facefusion.globals.force_download = args.force_download - facefusion.globals.skip_download = args.skip_download - facefusion.globals.headless = args.headless - facefusion.globals.log_level = args.log_level - # execution - facefusion.globals.execution_device_id = args.execution_device_id - facefusion.globals.execution_providers = decode_execution_providers(args.execution_providers) - facefusion.globals.execution_thread_count = args.execution_thread_count - facefusion.globals.execution_queue_count = args.execution_queue_count - # memory - facefusion.globals.video_memory_strategy = args.video_memory_strategy - facefusion.globals.system_memory_limit = args.system_memory_limit - # face analyser - facefusion.globals.face_analyser_order = args.face_analyser_order - facefusion.globals.face_analyser_age = args.face_analyser_age - facefusion.globals.face_analyser_gender = args.face_analyser_gender - facefusion.globals.face_detector_model = args.face_detector_model - if args.face_detector_size in facefusion.choices.face_detector_set[args.face_detector_model]: - facefusion.globals.face_detector_size = args.face_detector_size - else: - facefusion.globals.face_detector_size = '640x640' - facefusion.globals.face_detector_score = args.face_detector_score - facefusion.globals.face_landmarker_score = args.face_landmarker_score - # face selector - facefusion.globals.face_selector_mode = args.face_selector_mode - facefusion.globals.reference_face_position = args.reference_face_position - facefusion.globals.reference_face_distance = args.reference_face_distance - facefusion.globals.reference_frame_number = args.reference_frame_number - # face mask - facefusion.globals.face_mask_types = args.face_mask_types - facefusion.globals.face_mask_blur = args.face_mask_blur - facefusion.globals.face_mask_padding = normalize_padding(args.face_mask_padding) - facefusion.globals.face_mask_regions = args.face_mask_regions - # frame extraction - facefusion.globals.trim_frame_start = args.trim_frame_start - facefusion.globals.trim_frame_end = args.trim_frame_end - facefusion.globals.temp_frame_format = args.temp_frame_format - facefusion.globals.keep_temp = args.keep_temp - # output creation - facefusion.globals.output_image_quality = args.output_image_quality - if is_image(args.target_path): - output_image_resolution = detect_image_resolution(args.target_path) - output_image_resolutions = create_image_resolutions(output_image_resolution) - if args.output_image_resolution in output_image_resolutions: - facefusion.globals.output_image_resolution = args.output_image_resolution + if state_manager.get_item('command'): + logger.init(state_manager.get_item('log_level')) + route(args) else: - facefusion.globals.output_image_resolution = pack_resolution(output_image_resolution) - facefusion.globals.output_video_encoder = args.output_video_encoder - facefusion.globals.output_video_preset = args.output_video_preset - facefusion.globals.output_video_quality = args.output_video_quality - if is_video(args.target_path): - output_video_resolution = detect_video_resolution(args.target_path) - output_video_resolutions = create_video_resolutions(output_video_resolution) - if args.output_video_resolution in output_video_resolutions: - facefusion.globals.output_video_resolution = args.output_video_resolution - else: - facefusion.globals.output_video_resolution = pack_resolution(output_video_resolution) - if args.output_video_fps or is_video(args.target_path): - facefusion.globals.output_video_fps = normalize_fps(args.output_video_fps) or detect_video_fps(args.target_path) - facefusion.globals.skip_audio = args.skip_audio - # frame processors - available_frame_processors = list_directory('facefusion/processors/frame/modules') - facefusion.globals.frame_processors = args.frame_processors - for frame_processor in available_frame_processors: - frame_processor_module = load_frame_processor_module(frame_processor) - frame_processor_module.apply_args(program) - # uis - facefusion.globals.open_browser = args.open_browser - facefusion.globals.ui_layouts = args.ui_layouts + program.print_help() -def run(program : ArgumentParser) -> None: - validate_args(program) - apply_args(program) - logger.init(facefusion.globals.log_level) - - if facefusion.globals.system_memory_limit > 0: - limit_system_memory(facefusion.globals.system_memory_limit) - if facefusion.globals.force_download: - force_download() - return - if not pre_check() or not content_analyser.pre_check() or not face_analyser.pre_check() or not face_masker.pre_check() or not voice_extractor.pre_check(): - return - for frame_processor_module in get_frame_processors_modules(facefusion.globals.frame_processors): - if not frame_processor_module.pre_check(): - return - if facefusion.globals.headless: - conditional_process() - else: +def route(args : Args) -> None: + system_memory_limit = state_manager.get_item('system_memory_limit') + if system_memory_limit and system_memory_limit > 0: + limit_system_memory(system_memory_limit) + if state_manager.get_item('command') == 'force-download': + error_code = force_download() + return conditional_exit(error_code) + if state_manager.get_item('command') in [ 'job-create', 'job-submit', 'job-submit-all', 'job-delete', 'job-delete-all', 'job-add-step', 'job-remix-step', 'job-insert-step', 'job-remove-step', 'job-list' ]: + if not job_manager.init_jobs(state_manager.get_item('jobs_path')): + hard_exit(1) + error_code = route_job_manager(args) + hard_exit(error_code) + if not pre_check(): + return conditional_exit(2) + if state_manager.get_item('command') == 'run': import facefusion.uis.core as ui - for ui_layout in ui.get_ui_layouts_modules(facefusion.globals.ui_layouts): + if not common_pre_check() or not processors_pre_check(): + return conditional_exit(2) + for ui_layout in ui.get_ui_layouts_modules(state_manager.get_item('ui_layouts')): if not ui_layout.pre_check(): - return + return conditional_exit(2) ui.launch() - - -def destroy() -> None: - process_manager.stop() - while process_manager.is_processing(): - sleep(0.5) - if facefusion.globals.target_path: - clear_temp(facefusion.globals.target_path) - sys.exit(0) + if state_manager.get_item('command') == 'headless-run': + if not job_manager.init_jobs(state_manager.get_item('jobs_path')): + hard_exit(1) + error_core = process_headless(args) + hard_exit(error_core) + if state_manager.get_item('command') in [ 'job-run', 'job-run-all', 'job-retry', 'job-retry-all' ]: + if not job_manager.init_jobs(state_manager.get_item('jobs_path')): + hard_exit(1) + error_code = route_job_runner() + hard_exit(error_code) def pre_check() -> bool: if sys.version_info < (3, 9): - logger.error(wording.get('python_not_supported').format(version = '3.9'), __name__.upper()) + logger.error(wording.get('python_not_supported').format(version = '3.9'), __name__) + return False + if not shutil.which('curl'): + logger.error(wording.get('curl_not_installed'), __name__) return False if not shutil.which('ffmpeg'): - logger.error(wording.get('ffmpeg_not_installed'), __name__.upper()) + logger.error(wording.get('ffmpeg_not_installed'), __name__) return False return True -def conditional_process() -> None: +def common_pre_check() -> bool: + modules =\ + [ + content_analyser, + face_classifier, + face_detector, + face_landmarker, + face_masker, + face_recognizer, + voice_extractor + ] + + return all(module.pre_check() for module in modules) + + +def processors_pre_check() -> bool: + for processor_module in get_processors_modules(state_manager.get_item('processors')): + if not processor_module.pre_check(): + return False + return True + + +def conditional_process() -> ErrorCode: start_time = time() - for frame_processor_module in get_frame_processors_modules(facefusion.globals.frame_processors): - while not frame_processor_module.post_check(): - logger.disable() - sleep(0.5) - logger.enable() - if not frame_processor_module.pre_process('output'): - return + for processor_module in get_processors_modules(state_manager.get_item('processors')): + if not processor_module.pre_process('output'): + return 2 conditional_append_reference_faces() - if is_image(facefusion.globals.target_path): - process_image(start_time) - if is_video(facefusion.globals.target_path): - process_video(start_time) + if is_image(state_manager.get_item('target_path')): + return process_image(start_time) + if is_video(state_manager.get_item('target_path')): + return process_video(start_time) + return 0 def conditional_append_reference_faces() -> None: - if 'reference' in facefusion.globals.face_selector_mode and not get_reference_faces(): - source_frames = read_static_images(facefusion.globals.source_paths) - source_face = get_average_face(source_frames) - if is_video(facefusion.globals.target_path): - reference_frame = get_video_frame(facefusion.globals.target_path, facefusion.globals.reference_frame_number) + if 'reference' in state_manager.get_item('face_selector_mode') and not get_reference_faces(): + source_frames = read_static_images(state_manager.get_item('source_paths')) + source_faces = get_many_faces(source_frames) + source_face = get_average_face(source_faces) + if is_video(state_manager.get_item('target_path')): + reference_frame = get_video_frame(state_manager.get_item('target_path'), state_manager.get_item('reference_frame_number')) else: - reference_frame = read_image(facefusion.globals.target_path) - reference_face = get_one_face(reference_frame, facefusion.globals.reference_face_position) + reference_frame = read_image(state_manager.get_item('target_path')) + reference_faces = sort_and_filter_faces(get_many_faces([ reference_frame ])) + reference_face = get_one_face(reference_faces, state_manager.get_item('reference_face_position')) append_reference_face('origin', reference_face) + if source_face and reference_face: - for frame_processor_module in get_frame_processors_modules(facefusion.globals.frame_processors): - abstract_reference_frame = frame_processor_module.get_reference_frame(source_face, reference_face, reference_frame) + for processor_module in get_processors_modules(state_manager.get_item('processors')): + abstract_reference_frame = processor_module.get_reference_frame(source_face, reference_face, reference_frame) if numpy.any(abstract_reference_frame): - reference_frame = abstract_reference_frame - reference_face = get_one_face(reference_frame, facefusion.globals.reference_face_position) - append_reference_face(frame_processor_module.__name__, reference_face) + abstract_reference_faces = sort_and_filter_faces(get_many_faces([ abstract_reference_frame ])) + abstract_reference_face = get_one_face(abstract_reference_faces, state_manager.get_item('reference_face_position')) + append_reference_face(processor_module.__name__, abstract_reference_face) -def force_download() -> None: +def force_download() -> ErrorCode: download_directory_path = resolve_relative_path('../.assets/models') - available_frame_processors = list_directory('facefusion/processors/frame/modules') - model_list =\ + available_processors = list_directory('facefusion/processors/modules') + common_modules =\ [ - content_analyser.MODELS, - face_analyser.MODELS, - face_masker.MODELS, - voice_extractor.MODELS + content_analyser, + face_classifier, + face_detector, + face_landmarker, + face_recognizer, + face_masker, + voice_extractor ] + processor_modules = get_processors_modules(available_processors) - for frame_processor_module in get_frame_processors_modules(available_frame_processors): - if hasattr(frame_processor_module, 'MODELS'): - model_list.append(frame_processor_module.MODELS) - model_urls = [ models[model].get('url') for models in model_list for model in models ] - conditional_download(download_directory_path, model_urls) + for module in common_modules + processor_modules: + if hasattr(module, 'MODEL_SET'): + for model in module.MODEL_SET.values(): + model_hashes = model.get('hashes') + model_sources = model.get('sources') + + if model_hashes and model_sources: + if not conditional_download_hashes(download_directory_path, model_hashes) or not conditional_download_sources(download_directory_path, model_sources): + return 1 + + return 0 -def process_image(start_time : float) -> None: - normed_output_path = normalize_output_path(facefusion.globals.target_path, facefusion.globals.output_path) - if analyse_image(facefusion.globals.target_path): - return +def route_job_manager(args : Args) -> ErrorCode: + if state_manager.get_item('command') == 'job-create': + if job_manager.create_job(state_manager.get_item('job_id')): + logger.info(wording.get('job_created').format(job_id = state_manager.get_item('job_id')), __name__) + return 0 + logger.error(wording.get('job_not_created').format(job_id = state_manager.get_item('job_id')), __name__) + return 1 + if state_manager.get_item('command') == 'job-submit': + if job_manager.submit_job(state_manager.get_item('job_id')): + logger.info(wording.get('job_submitted').format(job_id = state_manager.get_item('job_id')), __name__) + return 0 + logger.error(wording.get('job_not_submitted').format(job_id = state_manager.get_item('job_id')), __name__) + return 1 + if state_manager.get_item('command') == 'job-submit-all': + if job_manager.submit_jobs(): + logger.info(wording.get('job_all_submitted'), __name__) + return 0 + logger.error(wording.get('job_all_not_submitted'), __name__) + return 1 + if state_manager.get_item('command') == 'job-delete': + if job_manager.delete_job(state_manager.get_item('job_id')): + logger.info(wording.get('job_deleted').format(job_id = state_manager.get_item('job_id')), __name__) + return 0 + logger.error(wording.get('job_not_deleted').format(job_id = state_manager.get_item('job_id')), __name__) + return 1 + if state_manager.get_item('command') == 'job-delete-all': + if job_manager.delete_jobs(): + logger.info(wording.get('job_all_deleted'), __name__) + return 0 + logger.error(wording.get('job_all_not_deleted'), __name__) + return 1 + if state_manager.get_item('command') == 'job-list': + job_headers, job_contents = compose_job_list(state_manager.get_item('job_status')) + + if job_contents: + logger.table(job_headers, job_contents) + return 0 + return 1 + if state_manager.get_item('command') == 'job-add-step': + step_args = reduce_step_args(args) + + if job_manager.add_step(state_manager.get_item('job_id'), step_args): + logger.info(wording.get('job_step_added').format(job_id = state_manager.get_item('job_id')), __name__) + return 0 + logger.error(wording.get('job_step_not_added').format(job_id = state_manager.get_item('job_id')), __name__) + return 1 + if state_manager.get_item('command') == 'job-remix-step': + step_args = reduce_step_args(args) + + if job_manager.remix_step(state_manager.get_item('job_id'), state_manager.get_item('step_index'), step_args): + logger.info(wording.get('job_remix_step_added').format(job_id = state_manager.get_item('job_id'), step_index = state_manager.get_item('step_index')), __name__) + return 0 + logger.error(wording.get('job_remix_step_not_added').format(job_id = state_manager.get_item('job_id'), step_index = state_manager.get_item('step_index')), __name__) + return 1 + if state_manager.get_item('command') == 'job-insert-step': + step_args = reduce_step_args(args) + + if job_manager.insert_step(state_manager.get_item('job_id'), state_manager.get_item('step_index'), step_args): + logger.info(wording.get('job_step_inserted').format(job_id = state_manager.get_item('job_id'), step_index = state_manager.get_item('step_index')), __name__) + return 0 + logger.error(wording.get('job_step_not_inserted').format(job_id = state_manager.get_item('job_id'), step_index = state_manager.get_item('step_index')), __name__) + return 1 + if state_manager.get_item('command') == 'job-remove-step': + if job_manager.remove_step(state_manager.get_item('job_id'), state_manager.get_item('step_index')): + logger.info(wording.get('job_step_removed').format(job_id = state_manager.get_item('job_id'), step_index = state_manager.get_item('step_index')), __name__) + return 0 + logger.error(wording.get('job_step_not_removed').format(job_id = state_manager.get_item('job_id'), step_index = state_manager.get_item('step_index')), __name__) + return 1 + return 1 + + +def route_job_runner() -> ErrorCode: + if state_manager.get_item('command') == 'job-run': + logger.info(wording.get('running_job').format(job_id = state_manager.get_item('job_id')), __name__) + if job_runner.run_job(state_manager.get_item('job_id'), process_step): + logger.info(wording.get('processing_job_succeed').format(job_id = state_manager.get_item('job_id')), __name__) + return 0 + logger.info(wording.get('processing_job_failed').format(job_id = state_manager.get_item('job_id')), __name__) + return 1 + if state_manager.get_item('command') == 'job-run-all': + logger.info(wording.get('running_jobs'), __name__) + if job_runner.run_jobs(process_step): + logger.info(wording.get('processing_jobs_succeed'), __name__) + return 0 + logger.info(wording.get('processing_jobs_failed'), __name__) + return 1 + if state_manager.get_item('command') == 'job-retry': + logger.info(wording.get('retrying_job').format(job_id = state_manager.get_item('job_id')), __name__) + if job_runner.retry_job(state_manager.get_item('job_id'), process_step): + logger.info(wording.get('processing_job_succeed').format(job_id = state_manager.get_item('job_id')), __name__) + return 0 + logger.info(wording.get('processing_job_failed').format(job_id = state_manager.get_item('job_id')), __name__) + return 1 + if state_manager.get_item('command') == 'job-retry-all': + logger.info(wording.get('retrying_jobs'), __name__) + if job_runner.retry_jobs(process_step): + logger.info(wording.get('processing_jobs_succeed'), __name__) + return 0 + logger.info(wording.get('processing_jobs_failed'), __name__) + return 1 + return 2 + + +def process_step(job_id : str, step_index : int, step_args : Args) -> bool: + clear_reference_faces() + step_total = job_manager.count_step_total(job_id) + step_args.update(collect_job_args()) + apply_args(step_args, state_manager.set_item) + + logger.info(wording.get('processing_step').format(step_current = step_index + 1, step_total = step_total), __name__) + if common_pre_check() and processors_pre_check(): + error_code = conditional_process() + return error_code == 0 + return False + + +def process_headless(args : Args) -> ErrorCode: + job_id = job_helper.suggest_job_id('headless') + step_args = reduce_step_args(args) + + if job_manager.create_job(job_id) and job_manager.add_step(job_id, step_args) and job_manager.submit_job(job_id) and job_runner.run_job(job_id, process_step): + return 0 + return 1 + + +def process_image(start_time : float) -> ErrorCode: + if analyse_image(state_manager.get_item('target_path')): + return 3 # clear temp - logger.debug(wording.get('clearing_temp'), __name__.upper()) - clear_temp(facefusion.globals.target_path) + logger.debug(wording.get('clearing_temp'), __name__) + clear_temp_directory(state_manager.get_item('target_path')) # create temp - logger.debug(wording.get('creating_temp'), __name__.upper()) - create_temp(facefusion.globals.target_path) + logger.debug(wording.get('creating_temp'), __name__) + create_temp_directory(state_manager.get_item('target_path')) # copy image process_manager.start() - temp_image_resolution = pack_resolution(restrict_image_resolution(facefusion.globals.target_path, unpack_resolution(facefusion.globals.output_image_resolution))) - logger.info(wording.get('copying_image').format(resolution = temp_image_resolution), __name__.upper()) - if copy_image(facefusion.globals.target_path, temp_image_resolution): - logger.debug(wording.get('copying_image_succeed'), __name__.upper()) + temp_image_resolution = pack_resolution(restrict_image_resolution(state_manager.get_item('target_path'), unpack_resolution(state_manager.get_item('output_image_resolution')))) + logger.info(wording.get('copying_image').format(resolution = temp_image_resolution), __name__) + if copy_image(state_manager.get_item('target_path'), temp_image_resolution): + logger.debug(wording.get('copying_image_succeed'), __name__) else: - logger.error(wording.get('copying_image_failed'), __name__.upper()) - return + logger.error(wording.get('copying_image_failed'), __name__) + process_manager.end() + return 1 # process image - temp_file_path = get_temp_file_path(facefusion.globals.target_path) - for frame_processor_module in get_frame_processors_modules(facefusion.globals.frame_processors): - logger.info(wording.get('processing'), frame_processor_module.NAME) - frame_processor_module.process_image(facefusion.globals.source_paths, temp_file_path, temp_file_path) - frame_processor_module.post_process() + temp_file_path = get_temp_file_path(state_manager.get_item('target_path')) + for processor_module in get_processors_modules(state_manager.get_item('processors')): + logger.info(wording.get('processing'), processor_module.__name__) + processor_module.process_image(state_manager.get_item('source_paths'), temp_file_path, temp_file_path) + processor_module.post_process() if is_process_stopping(): - return + process_manager.end() + return 4 # finalize image - logger.info(wording.get('finalizing_image').format(resolution = facefusion.globals.output_image_resolution), __name__.upper()) - if finalize_image(facefusion.globals.target_path, normed_output_path, facefusion.globals.output_image_resolution): - logger.debug(wording.get('finalizing_image_succeed'), __name__.upper()) + logger.info(wording.get('finalizing_image').format(resolution = state_manager.get_item('output_image_resolution')), __name__) + if finalize_image(state_manager.get_item('target_path'), state_manager.get_item('output_path'), state_manager.get_item('output_image_resolution')): + logger.debug(wording.get('finalizing_image_succeed'), __name__) else: - logger.warn(wording.get('finalizing_image_skipped'), __name__.upper()) + logger.warn(wording.get('finalizing_image_skipped'), __name__) # clear temp - logger.debug(wording.get('clearing_temp'), __name__.upper()) - clear_temp(facefusion.globals.target_path) + logger.debug(wording.get('clearing_temp'), __name__) + clear_temp_directory(state_manager.get_item('target_path')) # validate image - if is_image(normed_output_path): + if is_image(state_manager.get_item('output_path')): seconds = '{:.2f}'.format((time() - start_time) % 60) - logger.info(wording.get('processing_image_succeed').format(seconds = seconds), __name__.upper()) + logger.info(wording.get('processing_image_succeed').format(seconds = seconds), __name__) conditional_log_statistics() else: - logger.error(wording.get('processing_image_failed'), __name__.upper()) + logger.error(wording.get('processing_image_failed'), __name__) + process_manager.end() + return 1 process_manager.end() + return 0 -def process_video(start_time : float) -> None: - normed_output_path = normalize_output_path(facefusion.globals.target_path, facefusion.globals.output_path) - if analyse_video(facefusion.globals.target_path, facefusion.globals.trim_frame_start, facefusion.globals.trim_frame_end): - return +def process_video(start_time : float) -> ErrorCode: + if analyse_video(state_manager.get_item('target_path'), state_manager.get_item('trim_frame_start'), state_manager.get_item('trim_frame_end')): + return 3 # clear temp - logger.debug(wording.get('clearing_temp'), __name__.upper()) - clear_temp(facefusion.globals.target_path) + logger.debug(wording.get('clearing_temp'), __name__) + clear_temp_directory(state_manager.get_item('target_path')) # create temp - logger.debug(wording.get('creating_temp'), __name__.upper()) - create_temp(facefusion.globals.target_path) + logger.debug(wording.get('creating_temp'), __name__) + create_temp_directory(state_manager.get_item('target_path')) # extract frames process_manager.start() - temp_video_resolution = pack_resolution(restrict_video_resolution(facefusion.globals.target_path, unpack_resolution(facefusion.globals.output_video_resolution))) - temp_video_fps = restrict_video_fps(facefusion.globals.target_path, facefusion.globals.output_video_fps) - logger.info(wording.get('extracting_frames').format(resolution = temp_video_resolution, fps = temp_video_fps), __name__.upper()) - if extract_frames(facefusion.globals.target_path, temp_video_resolution, temp_video_fps): - logger.debug(wording.get('extracting_frames_succeed'), __name__.upper()) + temp_video_resolution = pack_resolution(restrict_video_resolution(state_manager.get_item('target_path'), unpack_resolution(state_manager.get_item('output_video_resolution')))) + temp_video_fps = restrict_video_fps(state_manager.get_item('target_path'), state_manager.get_item('output_video_fps')) + logger.info(wording.get('extracting_frames').format(resolution = temp_video_resolution, fps = temp_video_fps), __name__) + if extract_frames(state_manager.get_item('target_path'), temp_video_resolution, temp_video_fps): + logger.debug(wording.get('extracting_frames_succeed'), __name__) else: if is_process_stopping(): - return - logger.error(wording.get('extracting_frames_failed'), __name__.upper()) - return + process_manager.end() + return 4 + logger.error(wording.get('extracting_frames_failed'), __name__) + process_manager.end() + return 1 # process frames - temp_frame_paths = get_temp_frame_paths(facefusion.globals.target_path) + temp_frame_paths = get_temp_frame_paths(state_manager.get_item('target_path')) if temp_frame_paths: - for frame_processor_module in get_frame_processors_modules(facefusion.globals.frame_processors): - logger.info(wording.get('processing'), frame_processor_module.NAME) - frame_processor_module.process_video(facefusion.globals.source_paths, temp_frame_paths) - frame_processor_module.post_process() + for processor_module in get_processors_modules(state_manager.get_item('processors')): + logger.info(wording.get('processing'), processor_module.__name__) + processor_module.process_video(state_manager.get_item('source_paths'), temp_frame_paths) + processor_module.post_process() if is_process_stopping(): - return + return 4 else: - logger.error(wording.get('temp_frames_not_found'), __name__.upper()) - return + logger.error(wording.get('temp_frames_not_found'), __name__) + process_manager.end() + return 1 # merge video - logger.info(wording.get('merging_video').format(resolution = facefusion.globals.output_video_resolution, fps = facefusion.globals.output_video_fps), __name__.upper()) - if merge_video(facefusion.globals.target_path, facefusion.globals.output_video_resolution, facefusion.globals.output_video_fps): - logger.debug(wording.get('merging_video_succeed'), __name__.upper()) + logger.info(wording.get('merging_video').format(resolution = state_manager.get_item('output_video_resolution'), fps = state_manager.get_item('output_video_fps')), __name__) + if merge_video(state_manager.get_item('target_path'), state_manager.get_item('output_video_resolution'), state_manager.get_item('output_video_fps')): + logger.debug(wording.get('merging_video_succeed'), __name__) else: if is_process_stopping(): - return - logger.error(wording.get('merging_video_failed'), __name__.upper()) - return + process_manager.end() + return 4 + logger.error(wording.get('merging_video_failed'), __name__) + process_manager.end() + return 1 # handle audio - if facefusion.globals.skip_audio: - logger.info(wording.get('skipping_audio'), __name__.upper()) - move_temp(facefusion.globals.target_path, normed_output_path) + if state_manager.get_item('skip_audio'): + logger.info(wording.get('skipping_audio'), __name__) + move_temp_file(state_manager.get_item('target_path'), state_manager.get_item('output_path')) else: - if 'lip_syncer' in facefusion.globals.frame_processors: - source_audio_path = get_first(filter_audio_paths(facefusion.globals.source_paths)) - if source_audio_path and replace_audio(facefusion.globals.target_path, source_audio_path, normed_output_path): - logger.debug(wording.get('restoring_audio_succeed'), __name__.upper()) + if 'lip_syncer' in state_manager.get_item('processors'): + source_audio_path = get_first(filter_audio_paths(state_manager.get_item('source_paths'))) + if source_audio_path and replace_audio(state_manager.get_item('target_path'), source_audio_path, state_manager.get_item('output_path')): + logger.debug(wording.get('restoring_audio_succeed'), __name__) else: if is_process_stopping(): - return - logger.warn(wording.get('restoring_audio_skipped'), __name__.upper()) - move_temp(facefusion.globals.target_path, normed_output_path) + process_manager.end() + return 4 + logger.warn(wording.get('restoring_audio_skipped'), __name__) + move_temp_file(state_manager.get_item('target_path'), state_manager.get_item('output_path')) else: - if restore_audio(facefusion.globals.target_path, normed_output_path, facefusion.globals.output_video_fps): - logger.debug(wording.get('restoring_audio_succeed'), __name__.upper()) + if restore_audio(state_manager.get_item('target_path'), state_manager.get_item('output_path'), state_manager.get_item('output_video_fps')): + logger.debug(wording.get('restoring_audio_succeed'), __name__) else: if is_process_stopping(): - return - logger.warn(wording.get('restoring_audio_skipped'), __name__.upper()) - move_temp(facefusion.globals.target_path, normed_output_path) + process_manager.end() + return 4 + logger.warn(wording.get('restoring_audio_skipped'), __name__) + move_temp_file(state_manager.get_item('target_path'), state_manager.get_item('output_path')) # clear temp - logger.debug(wording.get('clearing_temp'), __name__.upper()) - clear_temp(facefusion.globals.target_path) + logger.debug(wording.get('clearing_temp'), __name__) + clear_temp_directory(state_manager.get_item('target_path')) # validate video - if is_video(normed_output_path): + if is_video(state_manager.get_item('output_path')): seconds = '{:.2f}'.format((time() - start_time)) - logger.info(wording.get('processing_video_succeed').format(seconds = seconds), __name__.upper()) + logger.info(wording.get('processing_video_succeed').format(seconds = seconds), __name__) conditional_log_statistics() else: - logger.error(wording.get('processing_video_failed'), __name__.upper()) + logger.error(wording.get('processing_video_failed'), __name__) + process_manager.end() + return 1 process_manager.end() + return 0 def is_process_stopping() -> bool: if process_manager.is_stopping(): process_manager.end() - logger.info(wording.get('processing_stopped'), __name__.upper()) + logger.info(wording.get('processing_stopped'), __name__) return process_manager.is_pending() diff --git a/facefusion/date_helper.py b/facefusion/date_helper.py new file mode 100644 index 00000000..c60e2f61 --- /dev/null +++ b/facefusion/date_helper.py @@ -0,0 +1,28 @@ +from datetime import datetime, timedelta +from typing import Optional, Tuple + +from facefusion import wording + + +def get_current_date_time() -> datetime: + return datetime.now().astimezone() + + +def split_time_delta(time_delta : timedelta) -> Tuple[int, int, int, int]: + days, hours = divmod(time_delta.total_seconds(), 86400) + hours, minutes = divmod(hours, 3600) + minutes, seconds = divmod(minutes, 60) + return int(days), int(hours), int(minutes), int(seconds) + + +def describe_time_ago(date_time : datetime) -> Optional[str]: + time_ago = datetime.now(date_time.tzinfo) - date_time + days, hours, minutes, _ = split_time_delta(time_ago) + + if timedelta(days = 1) < time_ago: + return wording.get('time_ago_days').format(days = days, hours = hours, minutes = minutes) + if timedelta(hours = 1) < time_ago: + return wording.get('time_ago_hours').format(hours = hours, minutes = minutes) + if timedelta(minutes = 1) < time_ago: + return wording.get('time_ago_minutes').format(minutes = minutes) + return wording.get('time_ago_now') diff --git a/facefusion/download.py b/facefusion/download.py index 1e417573..43c92a0e 100644 --- a/facefusion/download.py +++ b/facefusion/download.py @@ -1,15 +1,19 @@ import os -import subprocess +import shutil import ssl +import subprocess import urllib.request -from typing import List from functools import lru_cache +from typing import List, Tuple +from urllib.parse import urlparse + from tqdm import tqdm -import facefusion.globals -from facefusion import wording +from facefusion import logger, process_manager, state_manager, wording from facefusion.common_helper import is_macos -from facefusion.filesystem import get_file_size, is_file +from facefusion.filesystem import get_file_size, is_file, remove_file +from facefusion.hash_helper import validate_hash +from facefusion.typing import DownloadSet if is_macos(): ssl._create_default_https_context = ssl._create_unverified_context @@ -17,28 +21,30 @@ if is_macos(): def conditional_download(download_directory_path : str, urls : List[str]) -> None: for url in urls: - download_file_path = os.path.join(download_directory_path, os.path.basename(url)) + download_file_name = os.path.basename(urlparse(url).path) + download_file_path = os.path.join(download_directory_path, download_file_name) initial_size = get_file_size(download_file_path) download_size = get_download_size(url) + if initial_size < download_size: - with tqdm(total = download_size, initial = initial_size, desc = wording.get('downloading'), unit = 'B', unit_scale = True, unit_divisor = 1024, ascii = ' =', disable = facefusion.globals.log_level in [ 'warn', 'error' ]) as progress: - subprocess.Popen([ 'curl', '--create-dirs', '--silent', '--insecure', '--location', '--continue-at', '-', '--output', download_file_path, url ]) + with tqdm(total = download_size, initial = initial_size, desc = wording.get('downloading'), unit = 'B', unit_scale = True, unit_divisor = 1024, ascii = ' =', disable = state_manager.get_item('log_level') in [ 'warn', 'error' ]) as progress: + subprocess.Popen([ shutil.which('curl'), '--create-dirs', '--silent', '--insecure', '--location', '--continue-at', '-', '--output', download_file_path, url ]) current_size = initial_size + + progress.set_postfix(file = download_file_name) while current_size < download_size: if is_file(download_file_path): current_size = get_file_size(download_file_path) progress.update(current_size - progress.n) - if download_size and not is_download_done(url, download_file_path): - os.remove(download_file_path) - conditional_download(download_directory_path, [ url ]) @lru_cache(maxsize = None) def get_download_size(url : str) -> int: try: response = urllib.request.urlopen(url, timeout = 10) - return int(response.getheader('Content-Length')) - except (OSError, ValueError): + content_length = response.headers.get('Content-Length') + return int(content_length) + except (OSError, TypeError, ValueError): return 0 @@ -46,3 +52,80 @@ def is_download_done(url : str, file_path : str) -> bool: if is_file(file_path): return get_download_size(url) == get_file_size(file_path) return False + + +def conditional_download_hashes(download_directory_path : str, hashes : DownloadSet) -> bool: + hash_paths = [ hashes.get(hash_key).get('path') for hash_key in hashes.keys() ] + + process_manager.check() + if not state_manager.get_item('skip_download'): + _, invalid_hash_paths = validate_hash_paths(hash_paths) + if invalid_hash_paths: + for index in hashes: + if hashes.get(index).get('path') in invalid_hash_paths: + invalid_hash_url = hashes.get(index).get('url') + conditional_download(download_directory_path, [ invalid_hash_url ]) + + valid_hash_paths, invalid_hash_paths = validate_hash_paths(hash_paths) + for valid_hash_path in valid_hash_paths: + valid_hash_file_name, _ = os.path.splitext(os.path.basename(valid_hash_path)) + logger.debug(wording.get('validating_hash_succeed').format(hash_file_name = valid_hash_file_name), __name__) + for invalid_hash_path in invalid_hash_paths: + invalid_hash_file_name, _ = os.path.splitext(os.path.basename(invalid_hash_path)) + logger.error(wording.get('validating_hash_failed').format(hash_file_name = invalid_hash_file_name), __name__) + + if not invalid_hash_paths: + process_manager.end() + return not invalid_hash_paths + + +def conditional_download_sources(download_directory_path : str, sources : DownloadSet) -> bool: + source_paths = [ sources.get(source_key).get('path') for source_key in sources.keys() ] + + process_manager.check() + if not state_manager.get_item('skip_download'): + _, invalid_source_paths = validate_source_paths(source_paths) + if invalid_source_paths: + for index in sources: + if sources.get(index).get('path') in invalid_source_paths: + invalid_source_url = sources.get(index).get('url') + conditional_download(download_directory_path, [ invalid_source_url ]) + + valid_source_paths, invalid_source_paths = validate_source_paths(source_paths) + for valid_source_path in valid_source_paths: + valid_source_file_name, _ = os.path.splitext(os.path.basename(valid_source_path)) + logger.debug(wording.get('validating_source_succeed').format(source_file_name = valid_source_file_name), __name__) + for invalid_source_path in invalid_source_paths: + invalid_source_file_name, _ = os.path.splitext(os.path.basename(invalid_source_path)) + logger.error(wording.get('validating_source_failed').format(source_file_name = invalid_source_file_name), __name__) + + if remove_file(invalid_source_path): + logger.error(wording.get('deleting_corrupt_source').format(source_file_name = invalid_source_file_name), __name__) + + if not invalid_source_paths: + process_manager.end() + return not invalid_source_paths + + +def validate_hash_paths(hash_paths : List[str]) -> Tuple[List[str], List[str]]: + valid_hash_paths = [] + invalid_hash_paths = [] + + for hash_path in hash_paths: + if is_file(hash_path): + valid_hash_paths.append(hash_path) + else: + invalid_hash_paths.append(hash_path) + return valid_hash_paths, invalid_hash_paths + + +def validate_source_paths(source_paths : List[str]) -> Tuple[List[str], List[str]]: + valid_source_paths = [] + invalid_source_paths = [] + + for source_path in source_paths: + if validate_hash(source_path): + valid_source_paths.append(source_path) + else: + invalid_source_paths.append(source_path) + return valid_source_paths, invalid_source_paths diff --git a/facefusion/execution.py b/facefusion/execution.py index 42b0ce10..771923e4 100644 --- a/facefusion/execution.py +++ b/facefusion/execution.py @@ -1,28 +1,40 @@ -from typing import List, Any -from functools import lru_cache import subprocess import xml.etree.ElementTree as ElementTree -import onnxruntime +from functools import lru_cache +from typing import Any, List -from facefusion.typing import ExecutionDevice, ValueAndUnit +from onnxruntime import get_available_providers, set_default_logger_severity + +from facefusion.choices import execution_provider_set +from facefusion.typing import ExecutionDevice, ExecutionProviderKey, ExecutionProviderSet, ExecutionProviderValue, ValueAndUnit + +set_default_logger_severity(3) -def encode_execution_providers(execution_providers : List[str]) -> List[str]: - return [ execution_provider.replace('ExecutionProvider', '').lower() for execution_provider in execution_providers ] +def get_execution_provider_choices() -> List[ExecutionProviderKey]: + return list(get_available_execution_provider_set().keys()) -def decode_execution_providers(execution_providers : List[str]) -> List[str]: - available_execution_providers = onnxruntime.get_available_providers() - encoded_execution_providers = encode_execution_providers(available_execution_providers) - - return [ execution_provider for execution_provider, encoded_execution_provider in zip(available_execution_providers, encoded_execution_providers) if any(execution_provider in encoded_execution_provider for execution_provider in execution_providers) ] +def has_execution_provider(execution_provider_key : ExecutionProviderKey) -> bool: + return execution_provider_key in get_execution_provider_choices() -def has_execution_provider(execution_provider : str) -> bool: - return execution_provider in onnxruntime.get_available_providers() +def get_available_execution_provider_set() -> ExecutionProviderSet: + available_execution_providers = get_available_providers() + available_execution_provider_set : ExecutionProviderSet = {} + + for execution_provider_key, execution_provider_value in execution_provider_set.items(): + if execution_provider_value in available_execution_providers: + available_execution_provider_set[execution_provider_key] = execution_provider_value + return available_execution_provider_set -def apply_execution_provider_options(execution_device_id : str, execution_providers : List[str]) -> List[Any]: +def extract_execution_providers(execution_provider_keys : List[ExecutionProviderKey]) -> List[ExecutionProviderValue]: + return [ execution_provider_set[execution_provider_key] for execution_provider_key in execution_provider_keys if execution_provider_key in execution_provider_set ] + + +def create_execution_providers(execution_device_id : str, execution_provider_keys : List[ExecutionProviderKey]) -> List[Any]: + execution_providers = extract_execution_providers(execution_provider_keys) execution_providers_with_options : List[Any] = [] for execution_provider in execution_providers: @@ -32,19 +44,33 @@ def apply_execution_provider_options(execution_device_id : str, execution_provid 'device_id': execution_device_id, 'cudnn_conv_algo_search': 'EXHAUSTIVE' if use_exhaustive() else 'DEFAULT' })) - elif execution_provider == 'OpenVINOExecutionProvider': + if execution_provider == 'TensorrtExecutionProvider': execution_providers_with_options.append((execution_provider, { 'device_id': execution_device_id, - 'device_type': execution_device_id + '_FP32' + 'trt_engine_cache_enable': True, + 'trt_engine_cache_path': '.caches', + 'trt_timing_cache_enable': True, + 'trt_timing_cache_path': '.caches', + 'trt_builder_optimization_level': 5 })) - elif execution_provider in [ 'DmlExecutionProvider', 'ROCMExecutionProvider' ]: + if execution_provider == 'OpenVINOExecutionProvider': + execution_providers_with_options.append((execution_provider, + { + 'device_type': 'GPU.' + execution_device_id, + 'precision': 'FP32' + })) + if execution_provider in [ 'DmlExecutionProvider', 'ROCMExecutionProvider' ]: execution_providers_with_options.append((execution_provider, { 'device_id': execution_device_id })) - else: + if execution_provider == 'CoreMLExecutionProvider': execution_providers_with_options.append(execution_provider) + + if 'CPUExecutionProvider' in execution_providers: + execution_providers_with_options.append('CPUExecutionProvider') + return execution_providers_with_options @@ -67,6 +93,7 @@ def detect_static_execution_devices() -> List[ExecutionDevice]: def detect_execution_devices() -> List[ExecutionDevice]: execution_devices : List[ExecutionDevice] = [] + try: output, _ = run_nvidia_smi().communicate() root_element = ElementTree.fromstring(output) @@ -105,8 +132,8 @@ def create_value_and_unit(text : str) -> ValueAndUnit: value, unit = text.split() value_and_unit : ValueAndUnit =\ { - 'value': value, - 'unit': unit + 'value': int(value), + 'unit': str(unit) } return value_and_unit diff --git a/facefusion/exit_helper.py b/facefusion/exit_helper.py new file mode 100644 index 00000000..e2991b43 --- /dev/null +++ b/facefusion/exit_helper.py @@ -0,0 +1,24 @@ +import sys +from time import sleep + +from facefusion import process_manager, state_manager +from facefusion.temp_helper import clear_temp_directory +from facefusion.typing import ErrorCode + + +def hard_exit(error_code : ErrorCode) -> None: + sys.exit(error_code) + + +def conditional_exit(error_code : ErrorCode) -> None: + if state_manager.get_item('command') == 'headless-run': + hard_exit(error_code) + + +def graceful_exit(error_code : ErrorCode) -> None: + process_manager.stop() + while process_manager.is_processing(): + sleep(0.5) + if state_manager.get_item('target_path'): + clear_temp_directory(state_manager.get_item('target_path')) + hard_exit(error_code) diff --git a/facefusion/face_analyser.py b/facefusion/face_analyser.py index c9fee571..8e870d62 100644 --- a/facefusion/face_analyser.py +++ b/facefusion/face_analyser.py @@ -1,586 +1,124 @@ -from typing import Any, Optional, List, Tuple -from time import sleep -import cv2 +from typing import List, Optional + import numpy -import onnxruntime -import facefusion.globals -from facefusion import process_manager +from facefusion import state_manager from facefusion.common_helper import get_first -from facefusion.face_helper import estimate_matrix_by_face_landmark_5, warp_face_by_face_landmark_5, warp_face_by_translation, create_static_anchors, distance_to_face_landmark_5, distance_to_bounding_box, convert_face_landmark_68_to_5, apply_nms, categorize_age, categorize_gender +from facefusion.face_classifier import classify_face +from facefusion.face_detector import detect_faces, detect_rotated_faces +from facefusion.face_helper import apply_nms, convert_to_face_landmark_5, estimate_face_angle, get_nms_threshold +from facefusion.face_landmarker import detect_face_landmarks, estimate_face_landmark_68_5 +from facefusion.face_recognizer import calc_embedding from facefusion.face_store import get_static_faces, set_static_faces -from facefusion.execution import apply_execution_provider_options -from facefusion.download import conditional_download -from facefusion.filesystem import resolve_relative_path, is_file -from facefusion.thread_helper import thread_lock, thread_semaphore, conditional_thread_semaphore -from facefusion.typing import VisionFrame, Face, FaceSet, FaceAnalyserOrder, FaceAnalyserAge, FaceAnalyserGender, ModelSet, BoundingBox, FaceLandmarkSet, FaceLandmark5, FaceLandmark68, Score, FaceScoreSet, Embedding -from facefusion.vision import resize_frame_resolution, unpack_resolution - -FACE_ANALYSER = None -MODELS : ModelSet =\ -{ - 'face_detector_retinaface': - { - 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models/retinaface_10g.onnx', - 'path': resolve_relative_path('../.assets/models/retinaface_10g.onnx') - }, - 'face_detector_scrfd': - { - 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models/scrfd_2.5g.onnx', - 'path': resolve_relative_path('../.assets/models/scrfd_2.5g.onnx') - }, - 'face_detector_yoloface': - { - 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models/yoloface_8n.onnx', - 'path': resolve_relative_path('../.assets/models/yoloface_8n.onnx') - }, - 'face_detector_yunet': - { - 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models/yunet_2023mar.onnx', - 'path': resolve_relative_path('../.assets/models/yunet_2023mar.onnx') - }, - 'face_recognizer_arcface_blendswap': - { - 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models/arcface_w600k_r50.onnx', - 'path': resolve_relative_path('../.assets/models/arcface_w600k_r50.onnx') - }, - 'face_recognizer_arcface_inswapper': - { - 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models/arcface_w600k_r50.onnx', - 'path': resolve_relative_path('../.assets/models/arcface_w600k_r50.onnx') - }, - 'face_recognizer_arcface_simswap': - { - 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models/arcface_simswap.onnx', - 'path': resolve_relative_path('../.assets/models/arcface_simswap.onnx') - }, - 'face_recognizer_arcface_uniface': - { - 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models/arcface_w600k_r50.onnx', - 'path': resolve_relative_path('../.assets/models/arcface_w600k_r50.onnx') - }, - 'face_landmarker_68': - { - 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models/2dfan4.onnx', - 'path': resolve_relative_path('../.assets/models/2dfan4.onnx') - }, - 'face_landmarker_68_5': - { - 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models/face_landmarker_68_5.onnx', - 'path': resolve_relative_path('../.assets/models/face_landmarker_68_5.onnx') - }, - 'gender_age': - { - 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models/gender_age.onnx', - 'path': resolve_relative_path('../.assets/models/gender_age.onnx') - } -} +from facefusion.typing import BoundingBox, Face, FaceLandmark5, FaceLandmarkSet, FaceScoreSet, Score, VisionFrame -def get_face_analyser() -> Any: - global FACE_ANALYSER - - face_detectors = {} - face_landmarkers = {} - - with thread_lock(): - while process_manager.is_checking(): - sleep(0.5) - if FACE_ANALYSER is None: - if facefusion.globals.face_detector_model in [ 'many', 'retinaface' ]: - face_detectors['retinaface'] = onnxruntime.InferenceSession(MODELS.get('face_detector_retinaface').get('path'), providers = apply_execution_provider_options(facefusion.globals.execution_device_id, facefusion.globals.execution_providers)) - if facefusion.globals.face_detector_model in [ 'many', 'scrfd' ]: - face_detectors['scrfd'] = onnxruntime.InferenceSession(MODELS.get('face_detector_scrfd').get('path'), providers = apply_execution_provider_options(facefusion.globals.execution_device_id, facefusion.globals.execution_providers)) - if facefusion.globals.face_detector_model in [ 'many', 'yoloface' ]: - face_detectors['yoloface'] = onnxruntime.InferenceSession(MODELS.get('face_detector_yoloface').get('path'), providers = apply_execution_provider_options(facefusion.globals.execution_device_id, facefusion.globals.execution_providers)) - if facefusion.globals.face_detector_model in [ 'yunet' ]: - face_detectors['yunet'] = cv2.FaceDetectorYN.create(MODELS.get('face_detector_yunet').get('path'), '', (0, 0)) - if facefusion.globals.face_recognizer_model == 'arcface_blendswap': - face_recognizer = onnxruntime.InferenceSession(MODELS.get('face_recognizer_arcface_blendswap').get('path'), providers = apply_execution_provider_options(facefusion.globals.execution_device_id, facefusion.globals.execution_providers)) - if facefusion.globals.face_recognizer_model == 'arcface_inswapper': - face_recognizer = onnxruntime.InferenceSession(MODELS.get('face_recognizer_arcface_inswapper').get('path'), providers = apply_execution_provider_options(facefusion.globals.execution_device_id, facefusion.globals.execution_providers)) - if facefusion.globals.face_recognizer_model == 'arcface_simswap': - face_recognizer = onnxruntime.InferenceSession(MODELS.get('face_recognizer_arcface_simswap').get('path'), providers = apply_execution_provider_options(facefusion.globals.execution_device_id, facefusion.globals.execution_providers)) - if facefusion.globals.face_recognizer_model == 'arcface_uniface': - face_recognizer = onnxruntime.InferenceSession(MODELS.get('face_recognizer_arcface_uniface').get('path'), providers = apply_execution_provider_options(facefusion.globals.execution_device_id, facefusion.globals.execution_providers)) - face_landmarkers['68'] = onnxruntime.InferenceSession(MODELS.get('face_landmarker_68').get('path'), providers = apply_execution_provider_options(facefusion.globals.execution_device_id, facefusion.globals.execution_providers)) - face_landmarkers['68_5'] = onnxruntime.InferenceSession(MODELS.get('face_landmarker_68_5').get('path'), providers = apply_execution_provider_options(facefusion.globals.execution_device_id, facefusion.globals.execution_providers)) - gender_age = onnxruntime.InferenceSession(MODELS.get('gender_age').get('path'), providers = apply_execution_provider_options(facefusion.globals.execution_device_id, facefusion.globals.execution_providers)) - FACE_ANALYSER =\ - { - 'face_detectors': face_detectors, - 'face_recognizer': face_recognizer, - 'face_landmarkers': face_landmarkers, - 'gender_age': gender_age - } - return FACE_ANALYSER - - -def clear_face_analyser() -> Any: - global FACE_ANALYSER - - FACE_ANALYSER = None - - -def pre_check() -> bool: - download_directory_path = resolve_relative_path('../.assets/models') - model_urls =\ - [ - MODELS.get('face_landmarker_68').get('url'), - MODELS.get('face_landmarker_68_5').get('url'), - MODELS.get('gender_age').get('url') - ] - model_paths =\ - [ - MODELS.get('face_landmarker_68').get('path'), - MODELS.get('face_landmarker_68_5').get('path'), - MODELS.get('gender_age').get('path') - ] - - if facefusion.globals.face_detector_model in [ 'many', 'retinaface' ]: - model_urls.append(MODELS.get('face_detector_retinaface').get('url')) - model_paths.append(MODELS.get('face_detector_retinaface').get('path')) - if facefusion.globals.face_detector_model in [ 'many', 'scrfd' ]: - model_urls.append(MODELS.get('face_detector_scrfd').get('url')) - model_paths.append(MODELS.get('face_detector_scrfd').get('path')) - if facefusion.globals.face_detector_model in [ 'many', 'yoloface' ]: - model_urls.append(MODELS.get('face_detector_yoloface').get('url')) - model_paths.append(MODELS.get('face_detector_yoloface').get('path')) - if facefusion.globals.face_detector_model in [ 'yunet' ]: - model_urls.append(MODELS.get('face_detector_yunet').get('url')) - model_paths.append(MODELS.get('face_detector_yunet').get('path')) - if facefusion.globals.face_recognizer_model == 'arcface_blendswap': - model_urls.append(MODELS.get('face_recognizer_arcface_blendswap').get('url')) - model_paths.append(MODELS.get('face_recognizer_arcface_blendswap').get('path')) - if facefusion.globals.face_recognizer_model == 'arcface_inswapper': - model_urls.append(MODELS.get('face_recognizer_arcface_inswapper').get('url')) - model_paths.append(MODELS.get('face_recognizer_arcface_inswapper').get('path')) - if facefusion.globals.face_recognizer_model == 'arcface_simswap': - model_urls.append(MODELS.get('face_recognizer_arcface_simswap').get('url')) - model_paths.append(MODELS.get('face_recognizer_arcface_simswap').get('path')) - if facefusion.globals.face_recognizer_model == 'arcface_uniface': - model_urls.append(MODELS.get('face_recognizer_arcface_uniface').get('url')) - model_paths.append(MODELS.get('face_recognizer_arcface_uniface').get('path')) - - if not facefusion.globals.skip_download: - process_manager.check() - conditional_download(download_directory_path, model_urls) - process_manager.end() - return all(is_file(model_path) for model_path in model_paths) - - -def detect_with_retinaface(vision_frame : VisionFrame, face_detector_size : str) -> Tuple[List[BoundingBox], List[FaceLandmark5], List[Score]]: - face_detector = get_face_analyser().get('face_detectors').get('retinaface') - face_detector_width, face_detector_height = unpack_resolution(face_detector_size) - temp_vision_frame = resize_frame_resolution(vision_frame, (face_detector_width, face_detector_height)) - ratio_height = vision_frame.shape[0] / temp_vision_frame.shape[0] - ratio_width = vision_frame.shape[1] / temp_vision_frame.shape[1] - feature_strides = [ 8, 16, 32 ] - feature_map_channel = 3 - anchor_total = 2 - bounding_box_list = [] - face_landmark_5_list = [] - score_list = [] - - detect_vision_frame = prepare_detect_frame(temp_vision_frame, face_detector_size) - with thread_semaphore(): - detections = face_detector.run(None, - { - face_detector.get_inputs()[0].name: detect_vision_frame - }) - for index, feature_stride in enumerate(feature_strides): - keep_indices = numpy.where(detections[index] >= facefusion.globals.face_detector_score)[0] - if keep_indices.any(): - stride_height = face_detector_height // feature_stride - stride_width = face_detector_width // feature_stride - anchors = create_static_anchors(feature_stride, anchor_total, stride_height, stride_width) - bounding_box_raw = detections[index + feature_map_channel] * feature_stride - face_landmark_5_raw = detections[index + feature_map_channel * 2] * feature_stride - for bounding_box in distance_to_bounding_box(anchors, bounding_box_raw)[keep_indices]: - bounding_box_list.append(numpy.array( - [ - bounding_box[0] * ratio_width, - bounding_box[1] * ratio_height, - bounding_box[2] * ratio_width, - bounding_box[3] * ratio_height - ])) - for face_landmark_5 in distance_to_face_landmark_5(anchors, face_landmark_5_raw)[keep_indices]: - face_landmark_5_list.append(face_landmark_5 * [ ratio_width, ratio_height ]) - for score in detections[index][keep_indices]: - score_list.append(score[0]) - return bounding_box_list, face_landmark_5_list, score_list - - -def detect_with_scrfd(vision_frame : VisionFrame, face_detector_size : str) -> Tuple[List[BoundingBox], List[FaceLandmark5], List[Score]]: - face_detector = get_face_analyser().get('face_detectors').get('scrfd') - face_detector_width, face_detector_height = unpack_resolution(face_detector_size) - temp_vision_frame = resize_frame_resolution(vision_frame, (face_detector_width, face_detector_height)) - ratio_height = vision_frame.shape[0] / temp_vision_frame.shape[0] - ratio_width = vision_frame.shape[1] / temp_vision_frame.shape[1] - feature_strides = [ 8, 16, 32 ] - feature_map_channel = 3 - anchor_total = 2 - bounding_box_list = [] - face_landmark_5_list = [] - score_list = [] - - detect_vision_frame = prepare_detect_frame(temp_vision_frame, face_detector_size) - with thread_semaphore(): - detections = face_detector.run(None, - { - face_detector.get_inputs()[0].name: detect_vision_frame - }) - for index, feature_stride in enumerate(feature_strides): - keep_indices = numpy.where(detections[index] >= facefusion.globals.face_detector_score)[0] - if keep_indices.any(): - stride_height = face_detector_height // feature_stride - stride_width = face_detector_width // feature_stride - anchors = create_static_anchors(feature_stride, anchor_total, stride_height, stride_width) - bounding_box_raw = detections[index + feature_map_channel] * feature_stride - face_landmark_5_raw = detections[index + feature_map_channel * 2] * feature_stride - for bounding_box in distance_to_bounding_box(anchors, bounding_box_raw)[keep_indices]: - bounding_box_list.append(numpy.array( - [ - bounding_box[0] * ratio_width, - bounding_box[1] * ratio_height, - bounding_box[2] * ratio_width, - bounding_box[3] * ratio_height - ])) - for face_landmark_5 in distance_to_face_landmark_5(anchors, face_landmark_5_raw)[keep_indices]: - face_landmark_5_list.append(face_landmark_5 * [ ratio_width, ratio_height ]) - for score in detections[index][keep_indices]: - score_list.append(score[0]) - return bounding_box_list, face_landmark_5_list, score_list - - -def detect_with_yoloface(vision_frame : VisionFrame, face_detector_size : str) -> Tuple[List[BoundingBox], List[FaceLandmark5], List[Score]]: - face_detector = get_face_analyser().get('face_detectors').get('yoloface') - face_detector_width, face_detector_height = unpack_resolution(face_detector_size) - temp_vision_frame = resize_frame_resolution(vision_frame, (face_detector_width, face_detector_height)) - ratio_height = vision_frame.shape[0] / temp_vision_frame.shape[0] - ratio_width = vision_frame.shape[1] / temp_vision_frame.shape[1] - bounding_box_list = [] - face_landmark_5_list = [] - score_list = [] - - detect_vision_frame = prepare_detect_frame(temp_vision_frame, face_detector_size) - with thread_semaphore(): - detections = face_detector.run(None, - { - face_detector.get_inputs()[0].name: detect_vision_frame - }) - detections = numpy.squeeze(detections).T - bounding_box_raw, score_raw, face_landmark_5_raw = numpy.split(detections, [ 4, 5 ], axis = 1) - keep_indices = numpy.where(score_raw > facefusion.globals.face_detector_score)[0] - if keep_indices.any(): - bounding_box_raw, face_landmark_5_raw, score_raw = bounding_box_raw[keep_indices], face_landmark_5_raw[keep_indices], score_raw[keep_indices] - for bounding_box in bounding_box_raw: - bounding_box_list.append(numpy.array( - [ - (bounding_box[0] - bounding_box[2] / 2) * ratio_width, - (bounding_box[1] - bounding_box[3] / 2) * ratio_height, - (bounding_box[0] + bounding_box[2] / 2) * ratio_width, - (bounding_box[1] + bounding_box[3] / 2) * ratio_height - ])) - face_landmark_5_raw[:, 0::3] = (face_landmark_5_raw[:, 0::3]) * ratio_width - face_landmark_5_raw[:, 1::3] = (face_landmark_5_raw[:, 1::3]) * ratio_height - for face_landmark_5 in face_landmark_5_raw: - face_landmark_5_list.append(numpy.array(face_landmark_5.reshape(-1, 3)[:, :2])) - score_list = score_raw.ravel().tolist() - return bounding_box_list, face_landmark_5_list, score_list - - -def detect_with_yunet(vision_frame : VisionFrame, face_detector_size : str) -> Tuple[List[BoundingBox], List[FaceLandmark5], List[Score]]: - face_detector = get_face_analyser().get('face_detectors').get('yunet') - face_detector_width, face_detector_height = unpack_resolution(face_detector_size) - temp_vision_frame = resize_frame_resolution(vision_frame, (face_detector_width, face_detector_height)) - ratio_height = vision_frame.shape[0] / temp_vision_frame.shape[0] - ratio_width = vision_frame.shape[1] / temp_vision_frame.shape[1] - bounding_box_list = [] - face_landmark_5_list = [] - score_list = [] - - face_detector.setInputSize((temp_vision_frame.shape[1], temp_vision_frame.shape[0])) - face_detector.setScoreThreshold(facefusion.globals.face_detector_score) - with thread_semaphore(): - _, detections = face_detector.detect(temp_vision_frame) - if numpy.any(detections): - for detection in detections: - bounding_box_list.append(numpy.array( - [ - detection[0] * ratio_width, - detection[1] * ratio_height, - (detection[0] + detection[2]) * ratio_width, - (detection[1] + detection[3]) * ratio_height - ])) - face_landmark_5_list.append(detection[4:14].reshape((5, 2)) * [ ratio_width, ratio_height ]) - score_list.append(detection[14]) - return bounding_box_list, face_landmark_5_list, score_list - - -def prepare_detect_frame(temp_vision_frame : VisionFrame, face_detector_size : str) -> VisionFrame: - face_detector_width, face_detector_height = unpack_resolution(face_detector_size) - detect_vision_frame = numpy.zeros((face_detector_height, face_detector_width, 3)) - detect_vision_frame[:temp_vision_frame.shape[0], :temp_vision_frame.shape[1], :] = temp_vision_frame - detect_vision_frame = (detect_vision_frame - 127.5) / 128.0 - detect_vision_frame = numpy.expand_dims(detect_vision_frame.transpose(2, 0, 1), axis = 0).astype(numpy.float32) - return detect_vision_frame - - -def create_faces(vision_frame : VisionFrame, bounding_box_list : List[BoundingBox], face_landmark_5_list : List[FaceLandmark5], score_list : List[Score]) -> List[Face]: +def create_faces(vision_frame : VisionFrame, bounding_boxes : List[BoundingBox], face_scores : List[Score], face_landmarks_5 : List[FaceLandmark5]) -> List[Face]: faces = [] - if facefusion.globals.face_detector_score > 0: - sort_indices = numpy.argsort(-numpy.array(score_list)) - bounding_box_list = [ bounding_box_list[index] for index in sort_indices ] - face_landmark_5_list = [face_landmark_5_list[index] for index in sort_indices] - score_list = [ score_list[index] for index in sort_indices ] - iou_threshold = 0.1 if facefusion.globals.face_detector_model == 'many' else 0.4 - keep_indices = apply_nms(bounding_box_list, iou_threshold) - for index in keep_indices: - bounding_box = bounding_box_list[index] - face_landmark_5_68 = face_landmark_5_list[index] - face_landmark_68_5 = expand_face_landmark_68_from_5(face_landmark_5_68) - face_landmark_68 = face_landmark_68_5 - face_landmark_68_score = 0.0 - if facefusion.globals.face_landmarker_score > 0: - face_landmark_68, face_landmark_68_score = detect_face_landmark_68(vision_frame, bounding_box) - if face_landmark_68_score > facefusion.globals.face_landmarker_score: - face_landmark_5_68 = convert_face_landmark_68_to_5(face_landmark_68) - landmarks : FaceLandmarkSet =\ - { - '5': face_landmark_5_list[index], - '5/68': face_landmark_5_68, - '68': face_landmark_68, - '68/5': face_landmark_68_5 - } - scores : FaceScoreSet = \ - { - 'detector': score_list[index], - 'landmarker': face_landmark_68_score - } - embedding, normed_embedding = calc_embedding(vision_frame, landmarks.get('5/68')) - gender, age = detect_gender_age(vision_frame, bounding_box) - faces.append(Face( - bounding_box = bounding_box, - landmarks = landmarks, - scores = scores, - embedding = embedding, - normed_embedding = normed_embedding, - gender = gender, - age = age - )) + nms_threshold = get_nms_threshold(state_manager.get_item('face_detector_model'), state_manager.get_item('face_detector_angles')) + keep_indices = apply_nms(bounding_boxes, face_scores, state_manager.get_item('face_detector_score'), nms_threshold) + + for index in keep_indices: + bounding_box = bounding_boxes[index] + face_score = face_scores[index] + face_landmark_5 = face_landmarks_5[index] + face_landmark_5_68 = face_landmark_5 + face_landmark_68_5 = estimate_face_landmark_68_5(face_landmark_5_68) + face_landmark_68 = face_landmark_68_5 + face_landmark_score_68 = 0.0 + face_angle = estimate_face_angle(face_landmark_68_5) + + if state_manager.get_item('face_landmarker_score') > 0: + face_landmark_68, face_landmark_score_68 = detect_face_landmarks(vision_frame, bounding_box, face_angle) + if face_landmark_score_68 > state_manager.get_item('face_landmarker_score'): + face_landmark_5_68 = convert_to_face_landmark_5(face_landmark_68) + + face_landmark_set : FaceLandmarkSet =\ + { + '5': face_landmark_5, + '5/68': face_landmark_5_68, + '68': face_landmark_68, + '68/5': face_landmark_68_5 + } + face_score_set : FaceScoreSet =\ + { + 'detector': face_score, + 'landmarker': face_landmark_score_68 + } + embedding, normed_embedding = calc_embedding(vision_frame, face_landmark_set.get('5/68')) + gender, age, race = classify_face(vision_frame, face_landmark_set.get('5/68')) + faces.append(Face( + bounding_box = bounding_box, + score_set = face_score_set, + landmark_set = face_landmark_set, + angle = face_angle, + embedding = embedding, + normed_embedding = normed_embedding, + gender = gender, + age = age, + race = race + )) return faces -def calc_embedding(temp_vision_frame : VisionFrame, face_landmark_5 : FaceLandmark5) -> Tuple[Embedding, Embedding]: - face_recognizer = get_face_analyser().get('face_recognizer') - crop_vision_frame, matrix = warp_face_by_face_landmark_5(temp_vision_frame, face_landmark_5, 'arcface_112_v2', (112, 112)) - crop_vision_frame = crop_vision_frame / 127.5 - 1 - crop_vision_frame = crop_vision_frame[:, :, ::-1].transpose(2, 0, 1).astype(numpy.float32) - crop_vision_frame = numpy.expand_dims(crop_vision_frame, axis = 0) - with conditional_thread_semaphore(facefusion.globals.execution_providers): - embedding = face_recognizer.run(None, - { - face_recognizer.get_inputs()[0].name: crop_vision_frame - })[0] - embedding = embedding.ravel() - normed_embedding = embedding / numpy.linalg.norm(embedding) - return embedding, normed_embedding - - -def detect_face_landmark_68(temp_vision_frame : VisionFrame, bounding_box : BoundingBox) -> Tuple[FaceLandmark68, Score]: - face_landmarker = get_face_analyser().get('face_landmarkers').get('68') - scale = 195 / numpy.subtract(bounding_box[2:], bounding_box[:2]).max() - translation = (256 - numpy.add(bounding_box[2:], bounding_box[:2]) * scale) * 0.5 - crop_vision_frame, affine_matrix = warp_face_by_translation(temp_vision_frame, translation, scale, (256, 256)) - crop_vision_frame = cv2.cvtColor(crop_vision_frame, cv2.COLOR_RGB2Lab) - if numpy.mean(crop_vision_frame[:, :, 0]) < 30: - crop_vision_frame[:, :, 0] = cv2.createCLAHE(clipLimit = 2).apply(crop_vision_frame[:, :, 0]) - crop_vision_frame = cv2.cvtColor(crop_vision_frame, cv2.COLOR_Lab2RGB) - crop_vision_frame = crop_vision_frame.transpose(2, 0, 1).astype(numpy.float32) / 255.0 - with conditional_thread_semaphore(facefusion.globals.execution_providers): - face_landmark_68, face_heatmap = face_landmarker.run(None, - { - face_landmarker.get_inputs()[0].name: [ crop_vision_frame ] - }) - face_landmark_68 = face_landmark_68[:, :, :2][0] / 64 - face_landmark_68 = face_landmark_68.reshape(1, -1, 2) * 256 - face_landmark_68 = cv2.transform(face_landmark_68, cv2.invertAffineTransform(affine_matrix)) - face_landmark_68 = face_landmark_68.reshape(-1, 2) - face_landmark_68_score = numpy.amax(face_heatmap, axis = (2, 3)) - face_landmark_68_score = numpy.mean(face_landmark_68_score) - return face_landmark_68, face_landmark_68_score - - -def expand_face_landmark_68_from_5(face_landmark_5 : FaceLandmark5) -> FaceLandmark68: - face_landmarker = get_face_analyser().get('face_landmarkers').get('68_5') - affine_matrix = estimate_matrix_by_face_landmark_5(face_landmark_5, 'ffhq_512', (1, 1)) - face_landmark_5 = cv2.transform(face_landmark_5.reshape(1, -1, 2), affine_matrix).reshape(-1, 2) - with conditional_thread_semaphore(facefusion.globals.execution_providers): - face_landmark_68_5 = face_landmarker.run(None, - { - face_landmarker.get_inputs()[0].name: [ face_landmark_5 ] - })[0][0] - face_landmark_68_5 = cv2.transform(face_landmark_68_5.reshape(1, -1, 2), cv2.invertAffineTransform(affine_matrix)).reshape(-1, 2) - return face_landmark_68_5 - - -def detect_gender_age(temp_vision_frame : VisionFrame, bounding_box : BoundingBox) -> Tuple[int, int]: - gender_age = get_face_analyser().get('gender_age') - bounding_box = bounding_box.reshape(2, -1) - scale = 64 / numpy.subtract(*bounding_box[::-1]).max() - translation = 48 - bounding_box.sum(axis = 0) * scale * 0.5 - crop_vision_frame, affine_matrix = warp_face_by_translation(temp_vision_frame, translation, scale, (96, 96)) - crop_vision_frame = crop_vision_frame[:, :, ::-1].transpose(2, 0, 1).astype(numpy.float32) - crop_vision_frame = numpy.expand_dims(crop_vision_frame, axis = 0) - with conditional_thread_semaphore(facefusion.globals.execution_providers): - prediction = gender_age.run(None, - { - gender_age.get_inputs()[0].name: crop_vision_frame - })[0][0] - gender = int(numpy.argmax(prediction[:2])) - age = int(numpy.round(prediction[2] * 100)) - return gender, age - - -def get_one_face(vision_frame : VisionFrame, position : int = 0) -> Optional[Face]: - many_faces = get_many_faces(vision_frame) - if many_faces: - try: - return many_faces[position] - except IndexError: - return many_faces[-1] +def get_one_face(faces : List[Face], position : int = 0) -> Optional[Face]: + if faces: + position = min(position, len(faces) - 1) + return faces[position] return None -def get_average_face(vision_frames : List[VisionFrame], position : int = 0) -> Optional[Face]: - average_face = None - faces = [] - embedding_list = [] - normed_embedding_list = [] +def get_average_face(faces : List[Face]) -> Optional[Face]: + embeddings = [] + normed_embeddings = [] - for vision_frame in vision_frames: - face = get_one_face(vision_frame, position) - if face: - faces.append(face) - embedding_list.append(face.embedding) - normed_embedding_list.append(face.normed_embedding) if faces: first_face = get_first(faces) - average_face = Face( + + for face in faces: + embeddings.append(face.embedding) + normed_embeddings.append(face.normed_embedding) + + return Face( bounding_box = first_face.bounding_box, - landmarks = first_face.landmarks, - scores = first_face.scores, - embedding = numpy.mean(embedding_list, axis = 0), - normed_embedding = numpy.mean(normed_embedding_list, axis = 0), + score_set = first_face.score_set, + landmark_set = first_face.landmark_set, + angle = first_face.angle, + embedding = numpy.mean(embeddings, axis = 0), + normed_embedding = numpy.mean(normed_embeddings, axis = 0), gender = first_face.gender, - age = first_face.age + age = first_face.age, + race = first_face.race ) - return average_face + return None -def get_many_faces(vision_frame : VisionFrame) -> List[Face]: - faces = [] - try: - faces_cache = get_static_faces(vision_frame) - if faces_cache: - faces = faces_cache - else: - bounding_box_list = [] - face_landmark_5_list = [] - score_list = [] +def get_many_faces(vision_frames : List[VisionFrame]) -> List[Face]: + many_faces : List[Face] = [] - if facefusion.globals.face_detector_model in [ 'many', 'retinaface']: - bounding_box_list_retinaface, face_landmark_5_list_retinaface, score_list_retinaface = detect_with_retinaface(vision_frame, facefusion.globals.face_detector_size) - bounding_box_list.extend(bounding_box_list_retinaface) - face_landmark_5_list.extend(face_landmark_5_list_retinaface) - score_list.extend(score_list_retinaface) - if facefusion.globals.face_detector_model in [ 'many', 'scrfd' ]: - bounding_box_list_scrfd, face_landmark_5_list_scrfd, score_list_scrfd = detect_with_scrfd(vision_frame, facefusion.globals.face_detector_size) - bounding_box_list.extend(bounding_box_list_scrfd) - face_landmark_5_list.extend(face_landmark_5_list_scrfd) - score_list.extend(score_list_scrfd) - if facefusion.globals.face_detector_model in [ 'many', 'yoloface' ]: - bounding_box_list_yoloface, face_landmark_5_list_yoloface, score_list_yoloface = detect_with_yoloface(vision_frame, facefusion.globals.face_detector_size) - bounding_box_list.extend(bounding_box_list_yoloface) - face_landmark_5_list.extend(face_landmark_5_list_yoloface) - score_list.extend(score_list_yoloface) - if facefusion.globals.face_detector_model in [ 'yunet' ]: - bounding_box_list_yunet, face_landmark_5_list_yunet, score_list_yunet = detect_with_yunet(vision_frame, facefusion.globals.face_detector_size) - bounding_box_list.extend(bounding_box_list_yunet) - face_landmark_5_list.extend(face_landmark_5_list_yunet) - score_list.extend(score_list_yunet) - if bounding_box_list and face_landmark_5_list and score_list: - faces = create_faces(vision_frame, bounding_box_list, face_landmark_5_list, score_list) - if faces: - set_static_faces(vision_frame, faces) - if facefusion.globals.face_analyser_order: - faces = sort_by_order(faces, facefusion.globals.face_analyser_order) - if facefusion.globals.face_analyser_age: - faces = filter_by_age(faces, facefusion.globals.face_analyser_age) - if facefusion.globals.face_analyser_gender: - faces = filter_by_gender(faces, facefusion.globals.face_analyser_gender) - except (AttributeError, ValueError): - pass - return faces + for vision_frame in vision_frames: + if numpy.any(vision_frame): + static_faces = get_static_faces(vision_frame) + if static_faces: + many_faces.extend(static_faces) + else: + all_bounding_boxes = [] + all_face_scores = [] + all_face_landmarks_5 = [] + for face_detector_angle in state_manager.get_item('face_detector_angles'): + if face_detector_angle == 0: + bounding_boxes, face_scores, face_landmarks_5 = detect_faces(vision_frame) + else: + bounding_boxes, face_scores, face_landmarks_5 = detect_rotated_faces(vision_frame, face_detector_angle) + all_bounding_boxes.extend(bounding_boxes) + all_face_scores.extend(face_scores) + all_face_landmarks_5.extend(face_landmarks_5) -def find_similar_faces(reference_faces : FaceSet, vision_frame : VisionFrame, face_distance : float) -> List[Face]: - similar_faces : List[Face] = [] - many_faces = get_many_faces(vision_frame) + if all_bounding_boxes and all_face_scores and all_face_landmarks_5 and state_manager.get_item('face_detector_score') > 0: + faces = create_faces(vision_frame, all_bounding_boxes, all_face_scores, all_face_landmarks_5) - if reference_faces: - for reference_set in reference_faces: - if not similar_faces: - for reference_face in reference_faces[reference_set]: - for face in many_faces: - if compare_faces(face, reference_face, face_distance): - similar_faces.append(face) - return similar_faces - - -def compare_faces(face : Face, reference_face : Face, face_distance : float) -> bool: - current_face_distance = calc_face_distance(face, reference_face) - return current_face_distance < face_distance - - -def calc_face_distance(face : Face, reference_face : Face) -> float: - if hasattr(face, 'normed_embedding') and hasattr(reference_face, 'normed_embedding'): - return 1 - numpy.dot(face.normed_embedding, reference_face.normed_embedding) - return 0 - - -def sort_by_order(faces : List[Face], order : FaceAnalyserOrder) -> List[Face]: - if order == 'left-right': - return sorted(faces, key = lambda face: face.bounding_box[0]) - if order == 'right-left': - return sorted(faces, key = lambda face: face.bounding_box[0], reverse = True) - if order == 'top-bottom': - return sorted(faces, key = lambda face: face.bounding_box[1]) - if order == 'bottom-top': - return sorted(faces, key = lambda face: face.bounding_box[1], reverse = True) - if order == 'small-large': - return sorted(faces, key = lambda face: (face.bounding_box[2] - face.bounding_box[0]) * (face.bounding_box[3] - face.bounding_box[1])) - if order == 'large-small': - return sorted(faces, key = lambda face: (face.bounding_box[2] - face.bounding_box[0]) * (face.bounding_box[3] - face.bounding_box[1]), reverse = True) - if order == 'best-worst': - return sorted(faces, key = lambda face: face.scores.get('detector'), reverse = True) - if order == 'worst-best': - return sorted(faces, key = lambda face: face.scores.get('detector')) - return faces - - -def filter_by_age(faces : List[Face], age : FaceAnalyserAge) -> List[Face]: - filter_faces = [] - for face in faces: - if categorize_age(face.age) == age: - filter_faces.append(face) - return filter_faces - - -def filter_by_gender(faces : List[Face], gender : FaceAnalyserGender) -> List[Face]: - filter_faces = [] - for face in faces: - if categorize_gender(face.gender) == gender: - filter_faces.append(face) - return filter_faces + if faces: + many_faces.extend(faces) + set_static_faces(vision_frame, faces) + return many_faces diff --git a/facefusion/face_classifier.py b/facefusion/face_classifier.py new file mode 100644 index 00000000..2addbe4b --- /dev/null +++ b/facefusion/face_classifier.py @@ -0,0 +1,128 @@ +from typing import List, Tuple + +import numpy + +from facefusion import inference_manager +from facefusion.download import conditional_download_hashes, conditional_download_sources +from facefusion.face_helper import warp_face_by_face_landmark_5 +from facefusion.filesystem import resolve_relative_path +from facefusion.thread_helper import conditional_thread_semaphore +from facefusion.typing import Age, FaceLandmark5, Gender, InferencePool, ModelOptions, ModelSet, Race, VisionFrame + +MODEL_SET : ModelSet =\ +{ + 'fairface': + { + 'hashes': + { + 'face_classifier': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/fairface.hash', + 'path': resolve_relative_path('../.assets/models/fairface.hash') + } + }, + 'sources': + { + 'face_classifier': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/fairface.onnx', + 'path': resolve_relative_path('../.assets/models/fairface.onnx') + } + }, + 'template': 'arcface_112_v2', + 'size': (224, 224), + 'mean': [ 0.485, 0.456, 0.406 ], + 'standard_deviation': [ 0.229, 0.224, 0.225 ] + } +} + + +def get_inference_pool() -> InferencePool: + model_sources = get_model_options().get('sources') + return inference_manager.get_inference_pool(__name__, model_sources) + + +def clear_inference_pool() -> None: + inference_manager.clear_inference_pool(__name__) + + +def get_model_options() -> ModelOptions: + return MODEL_SET.get('fairface') + + +def pre_check() -> bool: + download_directory_path = resolve_relative_path('../.assets/models') + model_hashes = get_model_options().get('hashes') + model_sources = get_model_options().get('sources') + + return conditional_download_hashes(download_directory_path, model_hashes) and conditional_download_sources(download_directory_path, model_sources) + + +def classify_face(temp_vision_frame : VisionFrame, face_landmark_5 : FaceLandmark5) -> Tuple[Gender, Age, Race]: + model_template = get_model_options().get('template') + model_size = get_model_options().get('size') + model_mean = get_model_options().get('mean') + model_standard_deviation = get_model_options().get('standard_deviation') + crop_vision_frame, _ = warp_face_by_face_landmark_5(temp_vision_frame, face_landmark_5, model_template, model_size) + crop_vision_frame = crop_vision_frame.astype(numpy.float32)[:, :, ::-1] / 255 + crop_vision_frame -= model_mean + crop_vision_frame /= model_standard_deviation + crop_vision_frame = crop_vision_frame.transpose(2, 0, 1) + crop_vision_frame = numpy.expand_dims(crop_vision_frame, axis = 0) + gender_id, age_id, race_id = forward(crop_vision_frame) + gender = categorize_gender(gender_id[0]) + age = categorize_age(age_id[0]) + race = categorize_race(race_id[0]) + return gender, age, race + + +def forward(crop_vision_frame : VisionFrame) -> Tuple[List[int], List[int], List[int]]: + face_classifier = get_inference_pool().get('face_classifier') + + with conditional_thread_semaphore(): + race_id, gender_id, age_id = face_classifier.run(None, + { + 'input': crop_vision_frame + }) + + return gender_id, age_id, race_id + + +def categorize_gender(gender_id : int) -> Gender: + if gender_id == 1: + return 'female' + return 'male' + + +def categorize_age(age_id : int) -> Age: + if age_id == 0: + return range(0, 2) + if age_id == 1: + return range(3, 9) + if age_id == 2: + return range(10, 19) + if age_id == 3: + return range(20, 29) + if age_id == 4: + return range(30, 39) + if age_id == 5: + return range(40, 49) + if age_id == 6: + return range(50, 59) + if age_id == 7: + return range(60, 69) + return range(70, 100) + + +def categorize_race(race_id : int) -> Race: + if race_id == 1: + return 'black' + if race_id == 2: + return 'latino' + if race_id == 3 or race_id == 4: + return 'asian' + if race_id == 5: + return 'indian' + if race_id == 6: + return 'arabic' + return 'white' diff --git a/facefusion/face_detector.py b/facefusion/face_detector.py new file mode 100644 index 00000000..09d104b2 --- /dev/null +++ b/facefusion/face_detector.py @@ -0,0 +1,309 @@ +from typing import List, Tuple + +import cv2 +import numpy + +from facefusion import inference_manager, state_manager +from facefusion.download import conditional_download_hashes, conditional_download_sources +from facefusion.face_helper import create_rotated_matrix_and_size, create_static_anchors, distance_to_bounding_box, distance_to_face_landmark_5, normalize_bounding_box, transform_bounding_box, transform_points +from facefusion.filesystem import resolve_relative_path +from facefusion.thread_helper import thread_semaphore +from facefusion.typing import Angle, BoundingBox, Detection, DownloadSet, FaceLandmark5, InferencePool, ModelSet, Score, VisionFrame +from facefusion.vision import resize_frame_resolution, unpack_resolution + +MODEL_SET : ModelSet =\ +{ + 'retinaface': + { + 'hashes': + { + 'retinaface': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/retinaface_10g.hash', + 'path': resolve_relative_path('../.assets/models/retinaface_10g.hash') + } + }, + 'sources': + { + 'retinaface': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/retinaface_10g.onnx', + 'path': resolve_relative_path('../.assets/models/retinaface_10g.onnx') + } + } + }, + 'scrfd': + { + 'hashes': + { + 'scrfd': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/scrfd_2.5g.hash', + 'path': resolve_relative_path('../.assets/models/scrfd_2.5g.hash') + } + }, + 'sources': + { + 'scrfd': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/scrfd_2.5g.onnx', + 'path': resolve_relative_path('../.assets/models/scrfd_2.5g.onnx') + } + } + }, + 'yoloface': + { + 'hashes': + { + 'yoloface': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/yoloface_8n.hash', + 'path': resolve_relative_path('../.assets/models/yoloface_8n.hash') + } + }, + 'sources': + { + 'yoloface': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/yoloface_8n.onnx', + 'path': resolve_relative_path('../.assets/models/yoloface_8n.onnx') + } + } + } +} + + +def get_inference_pool() -> InferencePool: + _, model_sources = collect_model_downloads() + model_context = __name__ + '.' + state_manager.get_item('face_detector_model') + return inference_manager.get_inference_pool(model_context, model_sources) + + +def clear_inference_pool() -> None: + model_context = __name__ + '.' + state_manager.get_item('face_detector_model') + inference_manager.clear_inference_pool(model_context) + + +def collect_model_downloads() -> Tuple[DownloadSet, DownloadSet]: + model_hashes = {} + model_sources = {} + + if state_manager.get_item('face_detector_model') in [ 'many', 'retinaface' ]: + model_hashes['retinaface'] = MODEL_SET.get('retinaface').get('hashes').get('retinaface') + model_sources['retinaface'] = MODEL_SET.get('retinaface').get('sources').get('retinaface') + if state_manager.get_item('face_detector_model') in [ 'many', 'scrfd' ]: + model_hashes['scrfd'] = MODEL_SET.get('scrfd').get('hashes').get('scrfd') + model_sources['scrfd'] = MODEL_SET.get('scrfd').get('sources').get('scrfd') + if state_manager.get_item('face_detector_model') in [ 'many', 'yoloface' ]: + model_hashes['yoloface'] = MODEL_SET.get('yoloface').get('hashes').get('yoloface') + model_sources['yoloface'] = MODEL_SET.get('yoloface').get('sources').get('yoloface') + return model_hashes, model_sources + + +def pre_check() -> bool: + download_directory_path = resolve_relative_path('../.assets/models') + model_hashes, model_sources = collect_model_downloads() + + return conditional_download_hashes(download_directory_path, model_hashes) and conditional_download_sources(download_directory_path, model_sources) + + +def detect_faces(vision_frame : VisionFrame) -> Tuple[List[BoundingBox], List[Score], List[FaceLandmark5]]: + all_bounding_boxes : List[BoundingBox] = [] + all_face_scores : List[Score] = [] + all_face_landmarks_5 : List[FaceLandmark5] = [] + + if state_manager.get_item('face_detector_model') in [ 'many', 'retinaface' ]: + bounding_boxes, face_scores, face_landmarks_5 = detect_with_retinaface(vision_frame, state_manager.get_item('face_detector_size')) + all_bounding_boxes.extend(bounding_boxes) + all_face_scores.extend(face_scores) + all_face_landmarks_5.extend(face_landmarks_5) + + if state_manager.get_item('face_detector_model') in [ 'many', 'scrfd' ]: + bounding_boxes, face_scores, face_landmarks_5 = detect_with_scrfd(vision_frame, state_manager.get_item('face_detector_size')) + all_bounding_boxes.extend(bounding_boxes) + all_face_scores.extend(face_scores) + all_face_landmarks_5.extend(face_landmarks_5) + + if state_manager.get_item('face_detector_model') in [ 'many', 'yoloface' ]: + bounding_boxes, face_scores, face_landmarks_5 = detect_with_yoloface(vision_frame, state_manager.get_item('face_detector_size')) + all_bounding_boxes.extend(bounding_boxes) + all_face_scores.extend(face_scores) + all_face_landmarks_5.extend(face_landmarks_5) + + all_bounding_boxes = [ normalize_bounding_box(all_bounding_box) for all_bounding_box in all_bounding_boxes ] + return all_bounding_boxes, all_face_scores, all_face_landmarks_5 + + +def detect_rotated_faces(vision_frame : VisionFrame, angle : Angle) -> Tuple[List[BoundingBox], List[Score], List[FaceLandmark5]]: + rotated_matrix, rotated_size = create_rotated_matrix_and_size(angle, vision_frame.shape[:2][::-1]) + rotated_vision_frame = cv2.warpAffine(vision_frame, rotated_matrix, rotated_size) + rotated_inverse_matrix = cv2.invertAffineTransform(rotated_matrix) + bounding_boxes, face_scores, face_landmarks_5 = detect_faces(rotated_vision_frame) + bounding_boxes = [ transform_bounding_box(bounding_box, rotated_inverse_matrix) for bounding_box in bounding_boxes ] + face_landmarks_5 = [ transform_points(face_landmark_5, rotated_inverse_matrix) for face_landmark_5 in face_landmarks_5 ] + return bounding_boxes, face_scores, face_landmarks_5 + + +def detect_with_retinaface(vision_frame : VisionFrame, face_detector_size : str) -> Tuple[List[BoundingBox], List[Score], List[FaceLandmark5]]: + bounding_boxes = [] + face_scores = [] + face_landmarks_5 = [] + feature_strides = [ 8, 16, 32 ] + feature_map_channel = 3 + anchor_total = 2 + face_detector_width, face_detector_height = unpack_resolution(face_detector_size) + temp_vision_frame = resize_frame_resolution(vision_frame, (face_detector_width, face_detector_height)) + ratio_height = vision_frame.shape[0] / temp_vision_frame.shape[0] + ratio_width = vision_frame.shape[1] / temp_vision_frame.shape[1] + detect_vision_frame = prepare_detect_frame(temp_vision_frame, face_detector_size) + detection = forward_with_retinaface(detect_vision_frame) + + for index, feature_stride in enumerate(feature_strides): + keep_indices = numpy.where(detection[index] >= state_manager.get_item('face_detector_score'))[0] + + if numpy.any(keep_indices): + stride_height = face_detector_height // feature_stride + stride_width = face_detector_width // feature_stride + anchors = create_static_anchors(feature_stride, anchor_total, stride_height, stride_width) + bounding_box_raw = detection[index + feature_map_channel] * feature_stride + face_landmark_5_raw = detection[index + feature_map_channel * 2] * feature_stride + + for bounding_box in distance_to_bounding_box(anchors, bounding_box_raw)[keep_indices]: + bounding_boxes.append(numpy.array( + [ + bounding_box[0] * ratio_width, + bounding_box[1] * ratio_height, + bounding_box[2] * ratio_width, + bounding_box[3] * ratio_height, + ])) + + for score in detection[index][keep_indices]: + face_scores.append(score[0]) + + for face_landmark_5 in distance_to_face_landmark_5(anchors, face_landmark_5_raw)[keep_indices]: + face_landmarks_5.append(face_landmark_5 * [ ratio_width, ratio_height ]) + + return bounding_boxes, face_scores, face_landmarks_5 + + +def detect_with_scrfd(vision_frame : VisionFrame, face_detector_size : str) -> Tuple[List[BoundingBox], List[Score], List[FaceLandmark5]]: + bounding_boxes = [] + face_scores = [] + face_landmarks_5 = [] + feature_strides = [ 8, 16, 32 ] + feature_map_channel = 3 + anchor_total = 2 + face_detector_width, face_detector_height = unpack_resolution(face_detector_size) + temp_vision_frame = resize_frame_resolution(vision_frame, (face_detector_width, face_detector_height)) + ratio_height = vision_frame.shape[0] / temp_vision_frame.shape[0] + ratio_width = vision_frame.shape[1] / temp_vision_frame.shape[1] + detect_vision_frame = prepare_detect_frame(temp_vision_frame, face_detector_size) + detection = forward_with_scrfd(detect_vision_frame) + + for index, feature_stride in enumerate(feature_strides): + keep_indices = numpy.where(detection[index] >= state_manager.get_item('face_detector_score'))[0] + + if numpy.any(keep_indices): + stride_height = face_detector_height // feature_stride + stride_width = face_detector_width // feature_stride + anchors = create_static_anchors(feature_stride, anchor_total, stride_height, stride_width) + bounding_box_raw = detection[index + feature_map_channel] * feature_stride + face_landmark_5_raw = detection[index + feature_map_channel * 2] * feature_stride + + for bounding_box in distance_to_bounding_box(anchors, bounding_box_raw)[keep_indices]: + bounding_boxes.append(numpy.array( + [ + bounding_box[0] * ratio_width, + bounding_box[1] * ratio_height, + bounding_box[2] * ratio_width, + bounding_box[3] * ratio_height, + ])) + + for score in detection[index][keep_indices]: + face_scores.append(score[0]) + + for face_landmark_5 in distance_to_face_landmark_5(anchors, face_landmark_5_raw)[keep_indices]: + face_landmarks_5.append(face_landmark_5 * [ ratio_width, ratio_height ]) + + return bounding_boxes, face_scores, face_landmarks_5 + + +def detect_with_yoloface(vision_frame : VisionFrame, face_detector_size : str) -> Tuple[List[BoundingBox], List[Score], List[FaceLandmark5]]: + bounding_boxes = [] + face_scores = [] + face_landmarks_5 = [] + face_detector_width, face_detector_height = unpack_resolution(face_detector_size) + temp_vision_frame = resize_frame_resolution(vision_frame, (face_detector_width, face_detector_height)) + ratio_height = vision_frame.shape[0] / temp_vision_frame.shape[0] + ratio_width = vision_frame.shape[1] / temp_vision_frame.shape[1] + detect_vision_frame = prepare_detect_frame(temp_vision_frame, face_detector_size) + detection = forward_with_yoloface(detect_vision_frame) + detection = numpy.squeeze(detection).T + bounding_box_raw, score_raw, face_landmark_5_raw = numpy.split(detection, [ 4, 5 ], axis = 1) + keep_indices = numpy.where(score_raw > state_manager.get_item('face_detector_score'))[0] + + if numpy.any(keep_indices): + bounding_box_raw, face_landmark_5_raw, score_raw = bounding_box_raw[keep_indices], face_landmark_5_raw[keep_indices], score_raw[keep_indices] + + for bounding_box in bounding_box_raw: + bounding_boxes.append(numpy.array( + [ + (bounding_box[0] - bounding_box[2] / 2) * ratio_width, + (bounding_box[1] - bounding_box[3] / 2) * ratio_height, + (bounding_box[0] + bounding_box[2] / 2) * ratio_width, + (bounding_box[1] + bounding_box[3] / 2) * ratio_height, + ])) + + face_scores = score_raw.ravel().tolist() + face_landmark_5_raw[:, 0::3] = (face_landmark_5_raw[:, 0::3]) * ratio_width + face_landmark_5_raw[:, 1::3] = (face_landmark_5_raw[:, 1::3]) * ratio_height + + for face_landmark_5 in face_landmark_5_raw: + face_landmarks_5.append(numpy.array(face_landmark_5.reshape(-1, 3)[:, :2])) + + return bounding_boxes, face_scores, face_landmarks_5 + + +def forward_with_retinaface(detect_vision_frame : VisionFrame) -> Detection: + face_detector = get_inference_pool().get('retinaface') + + with thread_semaphore(): + detection = face_detector.run(None, + { + 'input': detect_vision_frame + }) + + return detection + + +def forward_with_scrfd(detect_vision_frame : VisionFrame) -> Detection: + face_detector = get_inference_pool().get('scrfd') + + with thread_semaphore(): + detection = face_detector.run(None, + { + 'input': detect_vision_frame + }) + + return detection + + +def forward_with_yoloface(detect_vision_frame : VisionFrame) -> Detection: + face_detector = get_inference_pool().get('yoloface') + + with thread_semaphore(): + detection = face_detector.run(None, + { + 'input': detect_vision_frame + }) + + return detection + + +def prepare_detect_frame(temp_vision_frame : VisionFrame, face_detector_size : str) -> VisionFrame: + face_detector_width, face_detector_height = unpack_resolution(face_detector_size) + detect_vision_frame = numpy.zeros((face_detector_height, face_detector_width, 3)) + detect_vision_frame[:temp_vision_frame.shape[0], :temp_vision_frame.shape[1], :] = temp_vision_frame + detect_vision_frame = (detect_vision_frame - 127.5) / 128.0 + detect_vision_frame = numpy.expand_dims(detect_vision_frame.transpose(2, 0, 1), axis = 0).astype(numpy.float32) + return detect_vision_frame diff --git a/facefusion/face_helper.py b/facefusion/face_helper.py index 83eff56e..1265cac6 100644 --- a/facefusion/face_helper.py +++ b/facefusion/face_helper.py @@ -1,10 +1,11 @@ -from typing import Any, Tuple, List -from cv2.typing import Size from functools import lru_cache +from typing import List, Sequence, Tuple + import cv2 import numpy +from cv2.typing import Size -from facefusion.typing import BoundingBox, FaceLandmark5, FaceLandmark68, VisionFrame, Mask, Matrix, Translation, WarpTemplate, WarpTemplateSet, FaceAnalyserAge, FaceAnalyserGender +from facefusion.typing import Anchors, Angle, BoundingBox, Distance, FaceDetectorModel, FaceLandmark5, FaceLandmark68, Mask, Matrix, Points, Scale, Score, Translation, VisionFrame, WarpTemplate, WarpTemplateSet WARP_TEMPLATES : WarpTemplateSet =\ { @@ -86,7 +87,7 @@ def paste_back(temp_vision_frame : VisionFrame, crop_vision_frame : VisionFrame, @lru_cache(maxsize = None) -def create_static_anchors(feature_stride : int, anchor_total : int, stride_height : int, stride_width : int) -> numpy.ndarray[Any, Any]: +def create_static_anchors(feature_stride : int, anchor_total : int, stride_height : int, stride_width : int) -> Anchors: y, x = numpy.mgrid[:stride_height, :stride_width][::-1] anchors = numpy.stack((y, x), axis = -1) anchors = (anchors * feature_stride).reshape((-1, 2)) @@ -94,14 +95,50 @@ def create_static_anchors(feature_stride : int, anchor_total : int, stride_heigh return anchors -def create_bounding_box_from_face_landmark_68(face_landmark_68 : FaceLandmark68) -> BoundingBox: +def create_rotated_matrix_and_size(angle : Angle, size : Size) -> Tuple[Matrix, Size]: + rotated_matrix = cv2.getRotationMatrix2D((size[0] / 2, size[1] / 2), angle, 1) + rotated_size = numpy.dot(numpy.abs(rotated_matrix[:, :2]), size) + rotated_matrix[:, -1] += (rotated_size - size) * 0.5 #type:ignore[misc] + rotated_size = int(rotated_size[0]), int(rotated_size[1]) + return rotated_matrix, rotated_size + + +def create_bounding_box(face_landmark_68 : FaceLandmark68) -> BoundingBox: min_x, min_y = numpy.min(face_landmark_68, axis = 0) max_x, max_y = numpy.max(face_landmark_68, axis = 0) - bounding_box = numpy.array([ min_x, min_y, max_x, max_y ]).astype(numpy.int16) + bounding_box = normalize_bounding_box(numpy.array([ min_x, min_y, max_x, max_y ])) return bounding_box -def distance_to_bounding_box(points : numpy.ndarray[Any, Any], distance : numpy.ndarray[Any, Any]) -> BoundingBox: +def normalize_bounding_box(bounding_box : BoundingBox) -> BoundingBox: + x1, y1, x2, y2 = bounding_box + x1, x2 = sorted([ x1, x2 ]) + y1, y2 = sorted([ y1, y2 ]) + return numpy.array([ x1, y1, x2, y2 ]) + + +def transform_points(points : Points, matrix : Matrix) -> Points: + points = points.reshape(-1, 1, 2) + points = cv2.transform(points, matrix) #type:ignore[assignment] + points = points.reshape(-1, 2) + return points + + +def transform_bounding_box(bounding_box : BoundingBox, matrix : Matrix) -> BoundingBox: + points = numpy.array( + [ + [ bounding_box[0], bounding_box[1] ], + [ bounding_box[2], bounding_box[1] ], + [ bounding_box[2], bounding_box[3] ], + [ bounding_box[0], bounding_box[3] ] + ]) + points = transform_points(points, matrix) + x1, y1 = numpy.min(points, axis = 0) + x2, y2 = numpy.max(points, axis = 0) + return normalize_bounding_box(numpy.array([ x1, y1, x2, y2 ])) + + +def distance_to_bounding_box(points : Points, distance : Distance) -> BoundingBox: x1 = points[:, 0] - distance[:, 0] y1 = points[:, 1] - distance[:, 1] x2 = points[:, 0] + distance[:, 2] @@ -110,14 +147,21 @@ def distance_to_bounding_box(points : numpy.ndarray[Any, Any], distance : numpy. return bounding_box -def distance_to_face_landmark_5(points : numpy.ndarray[Any, Any], distance : numpy.ndarray[Any, Any]) -> FaceLandmark5: +def distance_to_face_landmark_5(points : Points, distance : Distance) -> FaceLandmark5: x = points[:, 0::2] + distance[:, 0::2] y = points[:, 1::2] + distance[:, 1::2] face_landmark_5 = numpy.stack((x, y), axis = -1) return face_landmark_5 -def convert_face_landmark_68_to_5(face_landmark_68 : FaceLandmark68) -> FaceLandmark5: +def scale_face_landmark_5(face_landmark_5 : FaceLandmark5, scale : Scale) -> FaceLandmark5: + face_landmark_5_scale = face_landmark_5 - face_landmark_5[2] + face_landmark_5_scale *= scale + face_landmark_5_scale += face_landmark_5[2] + return face_landmark_5_scale + + +def convert_to_face_landmark_5(face_landmark_68 : FaceLandmark68) -> FaceLandmark5: face_landmark_5 = numpy.array( [ numpy.mean(face_landmark_68[36:42], axis = 0), @@ -129,41 +173,38 @@ def convert_face_landmark_68_to_5(face_landmark_68 : FaceLandmark68) -> FaceLand return face_landmark_5 -def apply_nms(bounding_box_list : List[BoundingBox], iou_threshold : float) -> List[int]: - keep_indices = [] - dimension_list = numpy.reshape(bounding_box_list, (-1, 4)) - x1 = dimension_list[:, 0] - y1 = dimension_list[:, 1] - x2 = dimension_list[:, 2] - y2 = dimension_list[:, 3] - areas = (x2 - x1 + 1) * (y2 - y1 + 1) - indices = numpy.arange(len(bounding_box_list)) - while indices.size > 0: - index = indices[0] - remain_indices = indices[1:] - keep_indices.append(index) - xx1 = numpy.maximum(x1[index], x1[remain_indices]) - yy1 = numpy.maximum(y1[index], y1[remain_indices]) - xx2 = numpy.minimum(x2[index], x2[remain_indices]) - yy2 = numpy.minimum(y2[index], y2[remain_indices]) - width = numpy.maximum(0, xx2 - xx1 + 1) - height = numpy.maximum(0, yy2 - yy1 + 1) - iou = width * height / (areas[index] + areas[remain_indices] - width * height) - indices = indices[numpy.where(iou <= iou_threshold)[0] + 1] +def estimate_face_angle(face_landmark_68 : FaceLandmark68) -> Angle: + x1, y1 = face_landmark_68[0] + x2, y2 = face_landmark_68[16] + theta = numpy.arctan2(y2 - y1, x2 - x1) + theta = numpy.degrees(theta) % 360 + angles = numpy.linspace(0, 360, 5) + index = numpy.argmin(numpy.abs(angles - theta)) + face_angle = int(angles[index] % 360) + return face_angle + + +def apply_nms(bounding_boxes : List[BoundingBox], face_scores : List[Score], score_threshold : float, nms_threshold : float) -> Sequence[int]: + normed_bounding_boxes = [ (x1, y1, x2 - x1, y2 - y1) for (x1, y1, x2, y2) in bounding_boxes ] + keep_indices = cv2.dnn.NMSBoxes(normed_bounding_boxes, face_scores, score_threshold = score_threshold, nms_threshold = nms_threshold) return keep_indices -def categorize_age(age : int) -> FaceAnalyserAge: - if age < 13: - return 'child' - elif age < 19: - return 'teen' - elif age < 60: - return 'adult' - return 'senior' +def get_nms_threshold(face_detector_model : FaceDetectorModel, face_detector_angles : List[Angle]) -> float: + if face_detector_model == 'many': + return 0.1 + if len(face_detector_angles) == 2: + return 0.3 + if len(face_detector_angles) == 3: + return 0.2 + if len(face_detector_angles) == 4: + return 0.1 + return 0.4 -def categorize_gender(gender : int) -> FaceAnalyserGender: - if gender == 0: - return 'female' - return 'male' +def merge_matrix(matrices : List[Matrix]) -> Matrix: + merged_matrix = numpy.vstack([ matrices[0], [ 0, 0, 1 ] ]) + for matrix in matrices[1:]: + matrix = numpy.vstack([ matrix, [ 0, 0, 1 ] ]) + merged_matrix = numpy.dot(merged_matrix, matrix) + return merged_matrix[:2, :] diff --git a/facefusion/face_landmarker.py b/facefusion/face_landmarker.py new file mode 100644 index 00000000..6760c271 --- /dev/null +++ b/facefusion/face_landmarker.py @@ -0,0 +1,217 @@ +from typing import Tuple + +import cv2 +import numpy + +from facefusion import inference_manager, state_manager +from facefusion.download import conditional_download_hashes, conditional_download_sources +from facefusion.face_helper import create_rotated_matrix_and_size, estimate_matrix_by_face_landmark_5, transform_points, warp_face_by_translation +from facefusion.filesystem import resolve_relative_path +from facefusion.thread_helper import conditional_thread_semaphore +from facefusion.typing import Angle, BoundingBox, DownloadSet, FaceLandmark5, FaceLandmark68, InferencePool, ModelSet, Prediction, Score, VisionFrame + +MODEL_SET : ModelSet =\ +{ + '2dfan4': + { + 'hashes': + { + '2dfan4': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/2dfan4.hash', + 'path': resolve_relative_path('../.assets/models/2dfan4.hash') + } + }, + 'sources': + { + '2dfan4': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/2dfan4.onnx', + 'path': resolve_relative_path('../.assets/models/2dfan4.onnx') + } + }, + 'size': (256, 256) + }, + 'peppa_wutz': + { + 'hashes': + { + 'peppa_wutz': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/peppa_wutz.hash', + 'path': resolve_relative_path('../.assets/models/peppa_wutz.hash') + } + }, + 'sources': + { + 'peppa_wutz': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/peppa_wutz.onnx', + 'path': resolve_relative_path('../.assets/models/peppa_wutz.onnx') + } + }, + 'size': (256, 256) + }, + 'fan_68_5': + { + 'hashes': + { + 'fan_68_5': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/fan_68_5.hash', + 'path': resolve_relative_path('../.assets/models/fan_68_5.hash') + } + }, + 'sources': + { + 'fan_68_5': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/fan_68_5.onnx', + 'path': resolve_relative_path('../.assets/models/fan_68_5.onnx') + } + } + } +} + + +def get_inference_pool() -> InferencePool: + _, model_sources = collect_model_downloads() + model_context = __name__ + '.' + state_manager.get_item('face_landmarker_model') + return inference_manager.get_inference_pool(model_context, model_sources) + + +def clear_inference_pool() -> None: + model_context = __name__ + '.' + state_manager.get_item('face_landmarker_model') + inference_manager.clear_inference_pool(model_context) + + +def collect_model_downloads() -> Tuple[DownloadSet, DownloadSet]: + model_hashes =\ + { + 'fan_68_5': MODEL_SET.get('fan_68_5').get('hashes').get('fan_68_5') + } + model_sources =\ + { + 'fan_68_5': MODEL_SET.get('fan_68_5').get('sources').get('fan_68_5') + } + + if state_manager.get_item('face_landmarker_model') in [ 'many', '2dfan4' ]: + model_hashes['2dfan4'] = MODEL_SET.get('2dfan4').get('hashes').get('2dfan4') + model_sources['2dfan4'] = MODEL_SET.get('2dfan4').get('sources').get('2dfan4') + if state_manager.get_item('face_landmarker_model') in [ 'many', 'peppa_wutz' ]: + model_hashes['peppa_wutz'] = MODEL_SET.get('peppa_wutz').get('hashes').get('peppa_wutz') + model_sources['peppa_wutz'] = MODEL_SET.get('peppa_wutz').get('sources').get('peppa_wutz') + return model_hashes, model_sources + + +def pre_check() -> bool: + download_directory_path = resolve_relative_path('../.assets/models') + model_hashes, model_sources = collect_model_downloads() + + return conditional_download_hashes(download_directory_path, model_hashes) and conditional_download_sources(download_directory_path, model_sources) + + +def detect_face_landmarks(vision_frame : VisionFrame, bounding_box : BoundingBox, face_angle : Angle) -> Tuple[FaceLandmark68, Score]: + face_landmark_2dfan4 = None + face_landmark_peppa_wutz = None + face_landmark_score_2dfan4 = 0.0 + face_landmark_score_peppa_wutz = 0.0 + + if state_manager.get_item('face_landmarker_model') in [ 'many', '2dfan4' ]: + face_landmark_2dfan4, face_landmark_score_2dfan4 = detect_with_2dfan4(vision_frame, bounding_box, face_angle) + if state_manager.get_item('face_landmarker_model') in [ 'many', 'peppa_wutz' ]: + face_landmark_peppa_wutz, face_landmark_score_peppa_wutz = detect_with_peppa_wutz(vision_frame, bounding_box, face_angle) + + if face_landmark_score_2dfan4 > face_landmark_score_peppa_wutz - 0.2: + return face_landmark_2dfan4, face_landmark_score_2dfan4 + return face_landmark_peppa_wutz, face_landmark_score_peppa_wutz + + +def detect_with_2dfan4(temp_vision_frame: VisionFrame, bounding_box: BoundingBox, face_angle: Angle) -> Tuple[FaceLandmark68, Score]: + model_size = MODEL_SET.get('2dfan4').get('size') + scale = 195 / numpy.subtract(bounding_box[2:], bounding_box[:2]).max().clip(1, None) + translation = (model_size[0] - numpy.add(bounding_box[2:], bounding_box[:2]) * scale) * 0.5 + rotated_matrix, rotated_size = create_rotated_matrix_and_size(face_angle, model_size) + crop_vision_frame, affine_matrix = warp_face_by_translation(temp_vision_frame, translation, scale, model_size) + crop_vision_frame = cv2.warpAffine(crop_vision_frame, rotated_matrix, rotated_size) + crop_vision_frame = conditional_optimize_contrast(crop_vision_frame) + crop_vision_frame = crop_vision_frame.transpose(2, 0, 1).astype(numpy.float32) / 255.0 + face_landmark_68, face_heatmap = forward_with_2dfan4(crop_vision_frame) + face_landmark_68 = face_landmark_68[:, :, :2][0] / 64 * 256 + face_landmark_68 = transform_points(face_landmark_68, cv2.invertAffineTransform(rotated_matrix)) + face_landmark_68 = transform_points(face_landmark_68, cv2.invertAffineTransform(affine_matrix)) + face_landmark_score_68 = numpy.amax(face_heatmap, axis = (2, 3)) + face_landmark_score_68 = numpy.mean(face_landmark_score_68) + face_landmark_score_68 = numpy.interp(face_landmark_score_68, [ 0, 0.9 ], [ 0, 1 ]) + return face_landmark_68, face_landmark_score_68 + + +def detect_with_peppa_wutz(temp_vision_frame : VisionFrame, bounding_box : BoundingBox, face_angle : Angle) -> Tuple[FaceLandmark68, Score]: + model_size = MODEL_SET.get('peppa_wutz').get('size') + scale = 195 / numpy.subtract(bounding_box[2:], bounding_box[:2]).max().clip(1, None) + translation = (model_size[0] - numpy.add(bounding_box[2:], bounding_box[:2]) * scale) * 0.5 + rotated_matrix, rotated_size = create_rotated_matrix_and_size(face_angle, model_size) + crop_vision_frame, affine_matrix = warp_face_by_translation(temp_vision_frame, translation, scale, model_size) + crop_vision_frame = cv2.warpAffine(crop_vision_frame, rotated_matrix, rotated_size) + crop_vision_frame = conditional_optimize_contrast(crop_vision_frame) + crop_vision_frame = crop_vision_frame.transpose(2, 0, 1).astype(numpy.float32) / 255.0 + crop_vision_frame = numpy.expand_dims(crop_vision_frame, axis = 0) + prediction = forward_with_peppa_wutz(crop_vision_frame) + face_landmark_68 = prediction.reshape(-1, 3)[:, :2] / 64 * model_size[0] + face_landmark_68 = transform_points(face_landmark_68, cv2.invertAffineTransform(rotated_matrix)) + face_landmark_68 = transform_points(face_landmark_68, cv2.invertAffineTransform(affine_matrix)) + face_landmark_score_68 = prediction.reshape(-1, 3)[:, 2].mean() + face_landmark_score_68 = numpy.interp(face_landmark_score_68, [ 0, 0.95 ], [ 0, 1 ]) + return face_landmark_68, face_landmark_score_68 + + +def conditional_optimize_contrast(crop_vision_frame : VisionFrame) -> VisionFrame: + crop_vision_frame = cv2.cvtColor(crop_vision_frame, cv2.COLOR_RGB2Lab) + if numpy.mean(crop_vision_frame[:, :, 0]) < 30: # type:ignore[arg-type] + crop_vision_frame[:, :, 0] = cv2.createCLAHE(clipLimit = 2).apply(crop_vision_frame[:, :, 0]) + crop_vision_frame = cv2.cvtColor(crop_vision_frame, cv2.COLOR_Lab2RGB) + return crop_vision_frame + + +def estimate_face_landmark_68_5(face_landmark_5 : FaceLandmark5) -> FaceLandmark68: + affine_matrix = estimate_matrix_by_face_landmark_5(face_landmark_5, 'ffhq_512', (1, 1)) + face_landmark_5 = cv2.transform(face_landmark_5.reshape(1, -1, 2), affine_matrix).reshape(-1, 2) + face_landmark_68_5 = forward_fan_68_5(face_landmark_5) + face_landmark_68_5 = cv2.transform(face_landmark_68_5.reshape(1, -1, 2), cv2.invertAffineTransform(affine_matrix)).reshape(-1, 2) + return face_landmark_68_5 + + +def forward_with_2dfan4(crop_vision_frame : VisionFrame) -> Tuple[Prediction, Prediction]: + face_landmarker = get_inference_pool().get('2dfan4') + + with conditional_thread_semaphore(): + prediction = face_landmarker.run(None, + { + 'input': [ crop_vision_frame ] + }) + + return prediction + + +def forward_with_peppa_wutz(crop_vision_frame : VisionFrame) -> Prediction: + face_landmarker = get_inference_pool().get('peppa_wutz') + + with conditional_thread_semaphore(): + prediction = face_landmarker.run(None, + { + 'input': crop_vision_frame + })[0] + + return prediction + + +def forward_fan_68_5(face_landmark_5 : FaceLandmark5) -> FaceLandmark68: + face_landmarker = get_inference_pool().get('fan_68_5') + + with conditional_thread_semaphore(): + face_landmark_68_5 = face_landmarker.run(None, + { + 'input': [ face_landmark_5 ] + })[0][0] + + return face_landmark_68_5 diff --git a/facefusion/face_masker.py b/facefusion/face_masker.py index f606ab8c..deffdb72 100755 --- a/facefusion/face_masker.py +++ b/facefusion/face_masker.py @@ -1,32 +1,57 @@ -from typing import Any, Dict, List -from cv2.typing import Size from functools import lru_cache -from time import sleep +from typing import Dict, List, Tuple + import cv2 import numpy -import onnxruntime +from cv2.typing import Size -import facefusion.globals -from facefusion import process_manager -from facefusion.thread_helper import thread_lock, conditional_thread_semaphore -from facefusion.typing import FaceLandmark68, VisionFrame, Mask, Padding, FaceMaskRegion, ModelSet -from facefusion.execution import apply_execution_provider_options -from facefusion.filesystem import resolve_relative_path, is_file -from facefusion.download import conditional_download +from facefusion import inference_manager +from facefusion.download import conditional_download_hashes, conditional_download_sources +from facefusion.filesystem import resolve_relative_path +from facefusion.thread_helper import conditional_thread_semaphore +from facefusion.typing import DownloadSet, FaceLandmark68, FaceMaskRegion, InferencePool, Mask, ModelSet, Padding, VisionFrame -FACE_OCCLUDER = None -FACE_PARSER = None -MODELS : ModelSet =\ +MODEL_SET : ModelSet =\ { 'face_occluder': { - 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models/face_occluder.onnx', - 'path': resolve_relative_path('../.assets/models/face_occluder.onnx') + 'hashes': + { + 'face_occluder': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/dfl_xseg.hash', + 'path': resolve_relative_path('../.assets/models/dfl_xseg.hash') + } + }, + 'sources': + { + 'face_occluder': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/dfl_xseg.onnx', + 'path': resolve_relative_path('../.assets/models/dfl_xseg.onnx') + } + }, + 'size': (256, 256) }, 'face_parser': { - 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models/face_parser.onnx', - 'path': resolve_relative_path('../.assets/models/face_parser.onnx') + 'hashes': + { + 'face_parser': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/resnet_34.hash', + 'path': resolve_relative_path('../.assets/models/resnet_34.hash') + } + }, + 'sources': + { + 'face_parser': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/resnet_34.onnx', + 'path': resolve_relative_path('../.assets/models/resnet_34.onnx') + } + }, + 'size': (512, 512) } } FACE_MASK_REGIONS : Dict[FaceMaskRegion, int] =\ @@ -44,67 +69,41 @@ FACE_MASK_REGIONS : Dict[FaceMaskRegion, int] =\ } -def get_face_occluder() -> Any: - global FACE_OCCLUDER - - with thread_lock(): - while process_manager.is_checking(): - sleep(0.5) - if FACE_OCCLUDER is None: - model_path = MODELS.get('face_occluder').get('path') - FACE_OCCLUDER = onnxruntime.InferenceSession(model_path, providers = apply_execution_provider_options(facefusion.globals.execution_device_id, facefusion.globals.execution_providers)) - return FACE_OCCLUDER +def get_inference_pool() -> InferencePool: + _, model_sources = collect_model_downloads() + return inference_manager.get_inference_pool(__name__, model_sources) -def get_face_parser() -> Any: - global FACE_PARSER - - with thread_lock(): - while process_manager.is_checking(): - sleep(0.5) - if FACE_PARSER is None: - model_path = MODELS.get('face_parser').get('path') - FACE_PARSER = onnxruntime.InferenceSession(model_path, providers = apply_execution_provider_options(facefusion.globals.execution_device_id, facefusion.globals.execution_providers)) - return FACE_PARSER +def clear_inference_pool() -> None: + inference_manager.clear_inference_pool(__name__) -def clear_face_occluder() -> None: - global FACE_OCCLUDER - - FACE_OCCLUDER = None - - -def clear_face_parser() -> None: - global FACE_PARSER - - FACE_PARSER = None +def collect_model_downloads() -> Tuple[DownloadSet, DownloadSet]: + model_hashes =\ + { + 'face_occluder': MODEL_SET.get('face_occluder').get('hashes').get('face_occluder'), + 'face_parser': MODEL_SET.get('face_parser').get('hashes').get('face_parser') + } + model_sources =\ + { + 'face_occluder': MODEL_SET.get('face_occluder').get('sources').get('face_occluder'), + 'face_parser': MODEL_SET.get('face_parser').get('sources').get('face_parser') + } + return model_hashes, model_sources def pre_check() -> bool: download_directory_path = resolve_relative_path('../.assets/models') - model_urls =\ - [ - MODELS.get('face_occluder').get('url'), - MODELS.get('face_parser').get('url') - ] - model_paths =\ - [ - MODELS.get('face_occluder').get('path'), - MODELS.get('face_parser').get('path') - ] + model_hashes, model_sources = collect_model_downloads() - if not facefusion.globals.skip_download: - process_manager.check() - conditional_download(download_directory_path, model_urls) - process_manager.end() - return all(is_file(model_path) for model_path in model_paths) + return conditional_download_hashes(download_directory_path, model_hashes) and conditional_download_sources(download_directory_path, model_sources) @lru_cache(maxsize = None) def create_static_box_mask(crop_size : Size, face_mask_blur : float, face_mask_padding : Padding) -> Mask: blur_amount = int(crop_size[0] * 0.5 * face_mask_blur) blur_area = max(blur_amount // 2, 1) - box_mask : Mask = numpy.ones(crop_size, numpy.float32) + box_mask : Mask = numpy.ones(crop_size).astype(numpy.float32) box_mask[:max(blur_area, int(crop_size[1] * face_mask_padding[0] / 100)), :] = 0 box_mask[-max(blur_area, int(crop_size[1] * face_mask_padding[2] / 100)):, :] = 0 box_mask[:, :max(blur_area, int(crop_size[0] * face_mask_padding[3] / 100))] = 0 @@ -115,15 +114,11 @@ def create_static_box_mask(crop_size : Size, face_mask_blur : float, face_mask_p def create_occlusion_mask(crop_vision_frame : VisionFrame) -> Mask: - face_occluder = get_face_occluder() - prepare_vision_frame = cv2.resize(crop_vision_frame, face_occluder.get_inputs()[0].shape[1:3][::-1]) + model_size = MODEL_SET.get('face_occluder').get('size') + prepare_vision_frame = cv2.resize(crop_vision_frame, model_size) prepare_vision_frame = numpy.expand_dims(prepare_vision_frame, axis = 0).astype(numpy.float32) / 255 prepare_vision_frame = prepare_vision_frame.transpose(0, 1, 2, 3) - with conditional_thread_semaphore(facefusion.globals.execution_providers): - occlusion_mask : Mask = face_occluder.run(None, - { - face_occluder.get_inputs()[0].name: prepare_vision_frame - })[0][0] + occlusion_mask = forward_occlude_face(prepare_vision_frame) occlusion_mask = occlusion_mask.transpose(0, 1, 2).clip(0, 1).astype(numpy.float32) occlusion_mask = cv2.resize(occlusion_mask, crop_vision_frame.shape[:2][::-1]) occlusion_mask = (cv2.GaussianBlur(occlusion_mask.clip(0, 1), (0, 0), 5).clip(0.5, 1) - 0.5) * 2 @@ -131,15 +126,14 @@ def create_occlusion_mask(crop_vision_frame : VisionFrame) -> Mask: def create_region_mask(crop_vision_frame : VisionFrame, face_mask_regions : List[FaceMaskRegion]) -> Mask: - face_parser = get_face_parser() - prepare_vision_frame = cv2.flip(cv2.resize(crop_vision_frame, (512, 512)), 1) - prepare_vision_frame = numpy.expand_dims(prepare_vision_frame, axis = 0).astype(numpy.float32)[:, :, ::-1] / 127.5 - 1 + model_size = MODEL_SET.get('face_parser').get('size') + prepare_vision_frame = cv2.resize(crop_vision_frame, model_size) + prepare_vision_frame = prepare_vision_frame[:, :, ::-1].astype(numpy.float32) / 255 + prepare_vision_frame = numpy.subtract(prepare_vision_frame, numpy.array([ 0.485, 0.456, 0.406 ]).astype(numpy.float32)) + prepare_vision_frame = numpy.divide(prepare_vision_frame, numpy.array([ 0.229, 0.224, 0.225 ]).astype(numpy.float32)) + prepare_vision_frame = numpy.expand_dims(prepare_vision_frame, axis = 0) prepare_vision_frame = prepare_vision_frame.transpose(0, 3, 1, 2) - with conditional_thread_semaphore(facefusion.globals.execution_providers): - region_mask : Mask = face_parser.run(None, - { - face_parser.get_inputs()[0].name: prepare_vision_frame - })[0][0] + region_mask = forward_parse_face(prepare_vision_frame) region_mask = numpy.isin(region_mask.argmax(0), [ FACE_MASK_REGIONS[region] for region in face_mask_regions ]) region_mask = cv2.resize(region_mask.astype(numpy.float32), crop_vision_frame.shape[:2][::-1]) region_mask = (cv2.GaussianBlur(region_mask.clip(0, 1), (0, 0), 5).clip(0.5, 1) - 0.5) * 2 @@ -149,7 +143,31 @@ def create_region_mask(crop_vision_frame : VisionFrame, face_mask_regions : List def create_mouth_mask(face_landmark_68 : FaceLandmark68) -> Mask: convex_hull = cv2.convexHull(face_landmark_68[numpy.r_[3:14, 31:36]].astype(numpy.int32)) mouth_mask : Mask = numpy.zeros((512, 512)).astype(numpy.float32) - mouth_mask = cv2.fillConvexPoly(mouth_mask, convex_hull, 1.0) + mouth_mask = cv2.fillConvexPoly(mouth_mask, convex_hull, 1.0) #type:ignore[call-overload] mouth_mask = cv2.erode(mouth_mask.clip(0, 1), numpy.ones((21, 3))) mouth_mask = cv2.GaussianBlur(mouth_mask, (0, 0), sigmaX = 1, sigmaY = 15) return mouth_mask + + +def forward_occlude_face(prepare_vision_frame : VisionFrame) -> Mask: + face_occluder = get_inference_pool().get('face_occluder') + + with conditional_thread_semaphore(): + occlusion_mask : Mask = face_occluder.run(None, + { + 'input': prepare_vision_frame + })[0][0] + + return occlusion_mask + + +def forward_parse_face(prepare_vision_frame : VisionFrame) -> Mask: + face_parser = get_inference_pool().get('face_parser') + + with conditional_thread_semaphore(): + region_mask : Mask = face_parser.run(None, + { + 'input': prepare_vision_frame + })[0][0] + + return region_mask diff --git a/facefusion/face_recognizer.py b/facefusion/face_recognizer.py new file mode 100644 index 00000000..5ed85c42 --- /dev/null +++ b/facefusion/face_recognizer.py @@ -0,0 +1,81 @@ +from typing import Tuple + +import numpy + +from facefusion import inference_manager +from facefusion.download import conditional_download_hashes, conditional_download_sources +from facefusion.face_helper import warp_face_by_face_landmark_5 +from facefusion.filesystem import resolve_relative_path +from facefusion.thread_helper import conditional_thread_semaphore +from facefusion.typing import Embedding, FaceLandmark5, InferencePool, ModelOptions, ModelSet, VisionFrame + +MODEL_SET : ModelSet =\ +{ + 'arcface': + { + 'hashes': + { + 'face_recognizer': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/arcface_w600k_r50.hash', + 'path': resolve_relative_path('../.assets/models/arcface_w600k_r50.hash') + } + }, + 'sources': + { + 'face_recognizer': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/arcface_w600k_r50.onnx', + 'path': resolve_relative_path('../.assets/models/arcface_w600k_r50.onnx') + } + }, + 'template': 'arcface_112_v2', + 'size': (112, 112) + } +} + + +def get_inference_pool() -> InferencePool: + model_sources = get_model_options().get('sources') + return inference_manager.get_inference_pool(__name__, model_sources) + + +def clear_inference_pool() -> None: + inference_manager.clear_inference_pool(__name__) + + +def get_model_options() -> ModelOptions: + return MODEL_SET.get('arcface') + + +def pre_check() -> bool: + download_directory_path = resolve_relative_path('../.assets/models') + model_hashes = get_model_options().get('hashes') + model_sources = get_model_options().get('sources') + + return conditional_download_hashes(download_directory_path, model_hashes) and conditional_download_sources(download_directory_path, model_sources) + + +def calc_embedding(temp_vision_frame : VisionFrame, face_landmark_5 : FaceLandmark5) -> Tuple[Embedding, Embedding]: + model_template = get_model_options().get('template') + model_size = get_model_options().get('size') + crop_vision_frame, matrix = warp_face_by_face_landmark_5(temp_vision_frame, face_landmark_5, model_template, model_size) + crop_vision_frame = crop_vision_frame / 127.5 - 1 + crop_vision_frame = crop_vision_frame[:, :, ::-1].transpose(2, 0, 1).astype(numpy.float32) + crop_vision_frame = numpy.expand_dims(crop_vision_frame, axis = 0) + embedding = forward(crop_vision_frame) + embedding = embedding.ravel() + normed_embedding = embedding / numpy.linalg.norm(embedding) + return embedding, normed_embedding + + +def forward(crop_vision_frame : VisionFrame) -> Embedding: + face_recognizer = get_inference_pool().get('face_recognizer') + + with conditional_thread_semaphore(): + embedding = face_recognizer.run(None, + { + 'input': crop_vision_frame + })[0] + + return embedding diff --git a/facefusion/face_selector.py b/facefusion/face_selector.py new file mode 100644 index 00000000..a3385e96 --- /dev/null +++ b/facefusion/face_selector.py @@ -0,0 +1,91 @@ +from typing import List + +import numpy + +from facefusion import state_manager +from facefusion.typing import Face, FaceSelectorOrder, FaceSet, Gender, Race + + +def find_similar_faces(faces : List[Face], reference_faces : FaceSet, face_distance : float) -> List[Face]: + similar_faces : List[Face] = [] + + if faces and reference_faces: + for reference_set in reference_faces: + if not similar_faces: + for reference_face in reference_faces[reference_set]: + for face in faces: + if compare_faces(face, reference_face, face_distance): + similar_faces.append(face) + return similar_faces + + +def compare_faces(face : Face, reference_face : Face, face_distance : float) -> bool: + current_face_distance = calc_face_distance(face, reference_face) + return current_face_distance < face_distance + + +def calc_face_distance(face : Face, reference_face : Face) -> float: + if hasattr(face, 'normed_embedding') and hasattr(reference_face, 'normed_embedding'): + return 1 - numpy.dot(face.normed_embedding, reference_face.normed_embedding) + return 0 + + +def sort_and_filter_faces(faces : List[Face]) -> List[Face]: + if faces: + if state_manager.get_item('face_selector_order'): + faces = sort_by_order(faces, state_manager.get_item('face_selector_order')) + if state_manager.get_item('face_selector_gender'): + faces = filter_by_gender(faces, state_manager.get_item('face_selector_gender')) + if state_manager.get_item('face_selector_race'): + faces = filter_by_race(faces, state_manager.get_item('face_selector_race')) + if state_manager.get_item('face_selector_age_start') or state_manager.get_item('face_selector_age_end'): + faces = filter_by_age(faces, state_manager.get_item('face_selector_age_start'), state_manager.get_item('face_selector_age_end')) + return faces + + +def sort_by_order(faces : List[Face], order : FaceSelectorOrder) -> List[Face]: + if order == 'left-right': + return sorted(faces, key = lambda face: face.bounding_box[0]) + if order == 'right-left': + return sorted(faces, key = lambda face: face.bounding_box[0], reverse = True) + if order == 'top-bottom': + return sorted(faces, key = lambda face: face.bounding_box[1]) + if order == 'bottom-top': + return sorted(faces, key = lambda face: face.bounding_box[1], reverse = True) + if order == 'small-large': + return sorted(faces, key = lambda face: (face.bounding_box[2] - face.bounding_box[0]) * (face.bounding_box[3] - face.bounding_box[1])) + if order == 'large-small': + return sorted(faces, key = lambda face: (face.bounding_box[2] - face.bounding_box[0]) * (face.bounding_box[3] - face.bounding_box[1]), reverse = True) + if order == 'best-worst': + return sorted(faces, key = lambda face: face.score_set.get('detector'), reverse = True) + if order == 'worst-best': + return sorted(faces, key = lambda face: face.score_set.get('detector')) + return faces + + +def filter_by_gender(faces : List[Face], gender : Gender) -> List[Face]: + filter_faces = [] + + for face in faces: + if face.gender == gender: + filter_faces.append(face) + return filter_faces + + +def filter_by_age(faces : List[Face], face_selector_age_start : int, face_selector_age_end : int) -> List[Face]: + filter_faces = [] + age = range(face_selector_age_start, face_selector_age_end) + + for face in faces: + if set(face.age) & set(age): + filter_faces.append(face) + return filter_faces + + +def filter_by_race(faces : List[Face], race : Race) -> List[Face]: + filter_faces = [] + + for face in faces: + if face.race == race: + filter_faces.append(face) + return filter_faces diff --git a/facefusion/face_store.py b/facefusion/face_store.py index 7540bc9d..7957c50f 100644 --- a/facefusion/face_store.py +++ b/facefusion/face_store.py @@ -1,16 +1,21 @@ -from typing import Optional, List import hashlib +from typing import List, Optional + import numpy -from facefusion.typing import VisionFrame, Face, FaceStore, FaceSet +from facefusion.typing import Face, FaceSet, FaceStore, VisionFrame -FACE_STORE: FaceStore =\ +FACE_STORE : FaceStore =\ { 'static_faces': {}, 'reference_faces': {} } +def get_face_store() -> FaceStore: + return FACE_STORE + + def get_static_faces(vision_frame : VisionFrame) -> Optional[List[Face]]: frame_hash = create_frame_hash(vision_frame) if frame_hash in FACE_STORE['static_faces']: diff --git a/facefusion/ffmpeg.py b/facefusion/ffmpeg.py index f1e6724f..68107c51 100644 --- a/facefusion/ffmpeg.py +++ b/facefusion/ffmpeg.py @@ -1,32 +1,39 @@ -from typing import List, Optional import os +import shutil import subprocess +import tempfile +from typing import List, Optional + import filetype -import facefusion.globals -from facefusion import logger, process_manager -from facefusion.typing import OutputVideoPreset, Fps, AudioBuffer -from facefusion.filesystem import get_temp_frames_pattern, get_temp_file_path +from facefusion import logger, process_manager, state_manager +from facefusion.filesystem import remove_file +from facefusion.temp_helper import get_temp_file_path, get_temp_frames_pattern +from facefusion.typing import AudioBuffer, Fps, OutputVideoPreset from facefusion.vision import restrict_video_fps -def run_ffmpeg(args : List[str]) -> bool: - commands = [ 'ffmpeg', '-hide_banner', '-loglevel', 'error' ] +def run_ffmpeg(args : List[str]) -> subprocess.Popen[bytes]: + commands = [ shutil.which('ffmpeg'), '-hide_banner', '-loglevel', 'error' ] commands.extend(args) process = subprocess.Popen(commands, stderr = subprocess.PIPE, stdout = subprocess.PIPE) while process_manager.is_processing(): try: - if facefusion.globals.log_level == 'debug': + if state_manager.get_item('log_level') == 'debug': log_debug(process) - return process.wait(timeout = 0.5) == 0 + process.wait(timeout = 0.5) except subprocess.TimeoutExpired: continue - return process.returncode == 0 + return process + + if process_manager.is_stopping(): + process.terminate() + return process def open_ffmpeg(args : List[str]) -> subprocess.Popen[bytes]: - commands = [ 'ffmpeg', '-hide_banner', '-loglevel', 'quiet' ] + commands = [ shutil.which('ffmpeg'), '-hide_banner', '-loglevel', 'quiet' ] commands.extend(args) return subprocess.Popen(commands, stdin = subprocess.PIPE, stdout = subprocess.PIPE) @@ -37,66 +44,89 @@ def log_debug(process : subprocess.Popen[bytes]) -> None: for error in errors: if error.strip(): - logger.debug(error.strip(), __name__.upper()) + logger.debug(error.strip(), __name__) def extract_frames(target_path : str, temp_video_resolution : str, temp_video_fps : Fps) -> bool: - trim_frame_start = facefusion.globals.trim_frame_start - trim_frame_end = facefusion.globals.trim_frame_end - temp_frames_pattern = get_temp_frames_pattern(target_path, '%04d') + trim_frame_start = state_manager.get_item('trim_frame_start') + trim_frame_end = state_manager.get_item('trim_frame_end') + temp_frames_pattern = get_temp_frames_pattern(target_path, '%08d') commands = [ '-i', target_path, '-s', str(temp_video_resolution), '-q:v', '0' ] - if trim_frame_start is not None and trim_frame_end is not None: + if isinstance(trim_frame_start, int) and isinstance(trim_frame_end, int): commands.extend([ '-vf', 'trim=start_frame=' + str(trim_frame_start) + ':end_frame=' + str(trim_frame_end) + ',fps=' + str(temp_video_fps) ]) - elif trim_frame_start is not None: + elif isinstance(trim_frame_start, int): commands.extend([ '-vf', 'trim=start_frame=' + str(trim_frame_start) + ',fps=' + str(temp_video_fps) ]) - elif trim_frame_end is not None: + elif isinstance(trim_frame_end, int): commands.extend([ '-vf', 'trim=end_frame=' + str(trim_frame_end) + ',fps=' + str(temp_video_fps) ]) else: commands.extend([ '-vf', 'fps=' + str(temp_video_fps) ]) commands.extend([ '-vsync', '0', temp_frames_pattern ]) - return run_ffmpeg(commands) + return run_ffmpeg(commands).returncode == 0 def merge_video(target_path : str, output_video_resolution : str, output_video_fps : Fps) -> bool: temp_video_fps = restrict_video_fps(target_path, output_video_fps) temp_file_path = get_temp_file_path(target_path) - temp_frames_pattern = get_temp_frames_pattern(target_path, '%04d') - commands = [ '-r', str(temp_video_fps), '-i', temp_frames_pattern, '-s', str(output_video_resolution), '-c:v', facefusion.globals.output_video_encoder ] + temp_frames_pattern = get_temp_frames_pattern(target_path, '%08d') + commands = [ '-r', str(temp_video_fps), '-i', temp_frames_pattern, '-s', str(output_video_resolution), '-c:v', state_manager.get_item('output_video_encoder') ] - if facefusion.globals.output_video_encoder in [ 'libx264', 'libx265' ]: - output_video_compression = round(51 - (facefusion.globals.output_video_quality * 0.51)) - commands.extend([ '-crf', str(output_video_compression), '-preset', facefusion.globals.output_video_preset ]) - if facefusion.globals.output_video_encoder in [ 'libvpx-vp9' ]: - output_video_compression = round(63 - (facefusion.globals.output_video_quality * 0.63)) + if state_manager.get_item('output_video_encoder') in [ 'libx264', 'libx265' ]: + output_video_compression = round(51 - (state_manager.get_item('output_video_quality') * 0.51)) + commands.extend([ '-crf', str(output_video_compression), '-preset', state_manager.get_item('output_video_preset') ]) + if state_manager.get_item('output_video_encoder') in [ 'libvpx-vp9' ]: + output_video_compression = round(63 - (state_manager.get_item('output_video_quality') * 0.63)) commands.extend([ '-crf', str(output_video_compression) ]) - if facefusion.globals.output_video_encoder in [ 'h264_nvenc', 'hevc_nvenc' ]: - output_video_compression = round(51 - (facefusion.globals.output_video_quality * 0.51)) - commands.extend([ '-cq', str(output_video_compression), '-preset', map_nvenc_preset(facefusion.globals.output_video_preset) ]) - if facefusion.globals.output_video_encoder in [ 'h264_amf', 'hevc_amf' ]: - output_video_compression = round(51 - (facefusion.globals.output_video_quality * 0.51)) - commands.extend([ '-qp_i', str(output_video_compression), '-qp_p', str(output_video_compression), '-quality', map_amf_preset(facefusion.globals.output_video_preset) ]) + if state_manager.get_item('output_video_encoder') in [ 'h264_nvenc', 'hevc_nvenc' ]: + output_video_compression = round(51 - (state_manager.get_item('output_video_quality') * 0.51)) + commands.extend([ '-cq', str(output_video_compression), '-preset', map_nvenc_preset(state_manager.get_item('output_video_preset')) ]) + if state_manager.get_item('output_video_encoder') in [ 'h264_amf', 'hevc_amf' ]: + output_video_compression = round(51 - (state_manager.get_item('output_video_quality') * 0.51)) + commands.extend([ '-qp_i', str(output_video_compression), '-qp_p', str(output_video_compression), '-quality', map_amf_preset(state_manager.get_item('output_video_preset')) ]) + if state_manager.get_item('output_video_encoder') in [ 'h264_videotoolbox', 'hevc_videotoolbox' ]: + commands.extend([ '-q:v', str(state_manager.get_item('output_video_quality')) ]) commands.extend([ '-vf', 'framerate=fps=' + str(output_video_fps), '-pix_fmt', 'yuv420p', '-colorspace', 'bt709', '-y', temp_file_path ]) - return run_ffmpeg(commands) + return run_ffmpeg(commands).returncode == 0 + + +def concat_video(output_path : str, temp_output_paths : List[str]) -> bool: + concat_video_path = tempfile.mktemp() + + with open(concat_video_path, 'w') as concat_video_file: + for temp_output_path in temp_output_paths: + concat_video_file.write('file \'' + os.path.abspath(temp_output_path) + '\'' + os.linesep) + concat_video_file.flush() + concat_video_file.close() + commands = [ '-f', 'concat', '-safe', '0', '-i', concat_video_file.name, '-c:v', 'copy', '-c:a', state_manager.get_item('output_audio_encoder'), '-y', os.path.abspath(output_path) ] + process = run_ffmpeg(commands) + process.communicate() + remove_file(concat_video_path) + return process.returncode == 0 def copy_image(target_path : str, temp_image_resolution : str) -> bool: temp_file_path = get_temp_file_path(target_path) - is_webp = filetype.guess_mime(target_path) == 'image/webp' - temp_image_compression = 100 if is_webp else 0 + temp_image_compression = calc_image_compression(target_path, 100) commands = [ '-i', target_path, '-s', str(temp_image_resolution), '-q:v', str(temp_image_compression), '-y', temp_file_path ] - return run_ffmpeg(commands) + return run_ffmpeg(commands).returncode == 0 def finalize_image(target_path : str, output_path : str, output_image_resolution : str) -> bool: temp_file_path = get_temp_file_path(target_path) - output_image_compression = round(31 - (facefusion.globals.output_image_quality * 0.31)) + output_image_compression = calc_image_compression(target_path, state_manager.get_item('output_image_quality')) commands = [ '-i', temp_file_path, '-s', str(output_image_resolution), '-q:v', str(output_image_compression), '-y', output_path ] - return run_ffmpeg(commands) + return run_ffmpeg(commands).returncode == 0 + + +def calc_image_compression(image_path : str, image_quality : int) -> int: + is_webp = filetype.guess_mime(image_path) == 'image/webp' + if is_webp: + image_quality = 100 - image_quality + return round(31 - (image_quality * 0.31)) def read_audio_buffer(target_path : str, sample_rate : int, channel_total : int) -> Optional[AudioBuffer]: - commands = [ '-i', target_path, '-vn', '-f', 's16le', '-acodec', 'pcm_s16le', '-ar', str(sample_rate), '-ac', str(channel_total), '-'] + commands = [ '-i', target_path, '-vn', '-f', 's16le', '-acodec', 'pcm_s16le', '-ar', str(sample_rate), '-ac', str(channel_total), '-' ] process = open_ffmpeg(commands) audio_buffer, _ = process.communicate() if process.returncode == 0: @@ -105,25 +135,25 @@ def read_audio_buffer(target_path : str, sample_rate : int, channel_total : int) def restore_audio(target_path : str, output_path : str, output_video_fps : Fps) -> bool: - trim_frame_start = facefusion.globals.trim_frame_start - trim_frame_end = facefusion.globals.trim_frame_end + trim_frame_start = state_manager.get_item('trim_frame_start') + trim_frame_end = state_manager.get_item('trim_frame_end') temp_file_path = get_temp_file_path(target_path) commands = [ '-i', temp_file_path ] - if trim_frame_start is not None: + if isinstance(trim_frame_start, int): start_time = trim_frame_start / output_video_fps commands.extend([ '-ss', str(start_time) ]) - if trim_frame_end is not None: + if isinstance(trim_frame_end, int): end_time = trim_frame_end / output_video_fps commands.extend([ '-to', str(end_time) ]) - commands.extend([ '-i', target_path, '-c', 'copy', '-map', '0:v:0', '-map', '1:a:0', '-shortest', '-y', output_path ]) - return run_ffmpeg(commands) + commands.extend([ '-i', target_path, '-c:v', 'copy', '-c:a', state_manager.get_item('output_audio_encoder'), '-map', '0:v:0', '-map', '1:a:0', '-shortest', '-y', output_path ]) + return run_ffmpeg(commands).returncode == 0 def replace_audio(target_path : str, audio_path : str, output_path : str) -> bool: temp_file_path = get_temp_file_path(target_path) - commands = [ '-i', temp_file_path, '-i', audio_path, '-af', 'apad', '-shortest', '-y', output_path ] - return run_ffmpeg(commands) + commands = [ '-i', temp_file_path, '-i', audio_path, '-c:a', state_manager.get_item('output_audio_encoder'), '-af', 'apad', '-shortest', '-y', output_path ] + return run_ffmpeg(commands).returncode == 0 def map_nvenc_preset(output_video_preset : OutputVideoPreset) -> Optional[str]: diff --git a/facefusion/filesystem.py b/facefusion/filesystem.py index cacb7538..ac01c944 100644 --- a/facefusion/filesystem.py +++ b/facefusion/filesystem.py @@ -1,70 +1,34 @@ -from typing import List, Optional -import glob import os import shutil -import tempfile -import filetype from pathlib import Path +from typing import List, Optional + +import filetype -import facefusion.globals from facefusion.common_helper import is_windows if is_windows(): import ctypes -def get_temp_frame_paths(target_path : str) -> List[str]: - temp_frames_pattern = get_temp_frames_pattern(target_path, '*') - return sorted(glob.glob(temp_frames_pattern)) - - -def get_temp_frames_pattern(target_path : str, temp_frame_prefix : str) -> str: - temp_directory_path = get_temp_directory_path(target_path) - return os.path.join(temp_directory_path, temp_frame_prefix + '.' + facefusion.globals.temp_frame_format) - - -def get_temp_file_path(target_path : str) -> str: - _, target_extension = os.path.splitext(os.path.basename(target_path)) - temp_directory_path = get_temp_directory_path(target_path) - return os.path.join(temp_directory_path, 'temp' + target_extension) - - -def get_temp_directory_path(target_path : str) -> str: - target_name, _ = os.path.splitext(os.path.basename(target_path)) - temp_directory_path = os.path.join(tempfile.gettempdir(), 'facefusion') - return os.path.join(temp_directory_path, target_name) - - -def create_temp(target_path : str) -> None: - temp_directory_path = get_temp_directory_path(target_path) - Path(temp_directory_path).mkdir(parents = True, exist_ok = True) - - -def move_temp(target_path : str, output_path : str) -> None: - temp_file_path = get_temp_file_path(target_path) - - if is_file(temp_file_path): - if is_file(output_path): - os.remove(output_path) - shutil.move(temp_file_path, output_path) - - -def clear_temp(target_path : str) -> None: - temp_directory_path = get_temp_directory_path(target_path) - parent_directory_path = os.path.dirname(temp_directory_path) - - if not facefusion.globals.keep_temp and is_directory(temp_directory_path): - shutil.rmtree(temp_directory_path, ignore_errors = True) - if os.path.exists(parent_directory_path) and not os.listdir(parent_directory_path): - os.rmdir(parent_directory_path) - - def get_file_size(file_path : str) -> int: if is_file(file_path): return os.path.getsize(file_path) return 0 +def same_file_extension(file_paths : List[str]) -> bool: + file_extensions : List[str] = [] + + for file_path in file_paths: + _, file_extension = os.path.splitext(file_path.lower()) + + if file_extensions and file_extension not in file_extensions: + return False + file_extensions.append(file_extension) + return True + + def is_file(file_path : str) -> bool: return bool(file_path and os.path.isfile(file_path)) @@ -73,6 +37,12 @@ def is_directory(directory_path : str) -> bool: return bool(directory_path and os.path.isdir(directory_path)) +def in_directory(file_path : str) -> bool: + if file_path and not is_directory(file_path): + return is_directory(os.path.dirname(file_path)) + return False + + def is_audio(audio_path : str) -> bool: return is_file(audio_path) and filetype.helpers.is_audio(audio_path) @@ -113,6 +83,48 @@ def resolve_relative_path(path : str) -> str: return os.path.abspath(os.path.join(os.path.dirname(__file__), path)) +def sanitize_path_for_windows(full_path : str) -> Optional[str]: + buffer_size = 0 + + while True: + unicode_buffer = ctypes.create_unicode_buffer(buffer_size) + buffer_limit = ctypes.windll.kernel32.GetShortPathNameW(full_path, unicode_buffer, buffer_size) #type:ignore[attr-defined] + + if buffer_size > buffer_limit: + return unicode_buffer.value + if buffer_limit == 0: + return None + buffer_size = buffer_limit + + +def copy_file(file_path : str, move_path : str) -> bool: + if is_file(file_path): + shutil.copy(file_path, move_path) + return is_file(move_path) + return False + + +def move_file(file_path : str, move_path : str) -> bool: + if is_file(file_path): + shutil.move(file_path, move_path) + return not is_file(file_path) and is_file(move_path) + return False + + +def remove_file(file_path : str) -> bool: + if is_file(file_path): + os.remove(file_path) + return not is_file(file_path) + return False + + +def create_directory(directory_path : str) -> bool: + if directory_path and not is_file(directory_path): + Path(directory_path).mkdir(parents = True, exist_ok = True) + return is_directory(directory_path) + return False + + def list_directory(directory_path : str) -> Optional[List[str]]: if is_directory(directory_path): files = os.listdir(directory_path) @@ -121,15 +133,8 @@ def list_directory(directory_path : str) -> Optional[List[str]]: return None -def sanitize_path_for_windows(full_path : str) -> Optional[str]: - buffer_size = 0 - - while True: - unicode_buffer = ctypes.create_unicode_buffer(buffer_size) - buffer_threshold = ctypes.windll.kernel32.GetShortPathNameW(full_path, unicode_buffer, buffer_size) #type:ignore[attr-defined] - - if buffer_size > buffer_threshold: - return unicode_buffer.value - if buffer_threshold == 0: - return None - buffer_size = buffer_threshold +def remove_directory(directory_path : str) -> bool: + if is_directory(directory_path): + shutil.rmtree(directory_path, ignore_errors = True) + return not is_directory(directory_path) + return False diff --git a/facefusion/globals.py b/facefusion/globals.py deleted file mode 100755 index 062cbf23..00000000 --- a/facefusion/globals.py +++ /dev/null @@ -1,60 +0,0 @@ -from typing import List, Optional - -from facefusion.typing import LogLevel, VideoMemoryStrategy, FaceSelectorMode, FaceAnalyserOrder, FaceAnalyserAge, FaceAnalyserGender, FaceMaskType, FaceMaskRegion, OutputVideoEncoder, OutputVideoPreset, FaceDetectorModel, FaceRecognizerModel, TempFrameFormat, Padding - -# general -config_path : Optional[str] = None -source_paths : Optional[List[str]] = None -target_path : Optional[str] = None -output_path : Optional[str] = None -# misc -force_download : Optional[bool] = None -skip_download : Optional[bool] = None -headless : Optional[bool] = None -log_level : Optional[LogLevel] = None -# execution -execution_device_id : Optional[str] = None -execution_providers : List[str] = [] -execution_thread_count : Optional[int] = None -execution_queue_count : Optional[int] = None -# memory -video_memory_strategy : Optional[VideoMemoryStrategy] = None -system_memory_limit : Optional[int] = None -# face analyser -face_analyser_order : Optional[FaceAnalyserOrder] = None -face_analyser_age : Optional[FaceAnalyserAge] = None -face_analyser_gender : Optional[FaceAnalyserGender] = None -face_detector_model : Optional[FaceDetectorModel] = None -face_detector_size : Optional[str] = None -face_detector_score : Optional[float] = None -face_landmarker_score : Optional[float] = None -face_recognizer_model : Optional[FaceRecognizerModel] = None -# face selector -face_selector_mode : Optional[FaceSelectorMode] = None -reference_face_position : Optional[int] = None -reference_face_distance : Optional[float] = None -reference_frame_number : Optional[int] = None -# face mask -face_mask_types : Optional[List[FaceMaskType]] = None -face_mask_blur : Optional[float] = None -face_mask_padding : Optional[Padding] = None -face_mask_regions : Optional[List[FaceMaskRegion]] = None -# frame extraction -trim_frame_start : Optional[int] = None -trim_frame_end : Optional[int] = None -temp_frame_format : Optional[TempFrameFormat] = None -keep_temp : Optional[bool] = None -# output creation -output_image_quality : Optional[int] = None -output_image_resolution : Optional[str] = None -output_video_encoder : Optional[OutputVideoEncoder] = None -output_video_preset : Optional[OutputVideoPreset] = None -output_video_quality : Optional[int] = None -output_video_resolution : Optional[str] = None -output_video_fps : Optional[float] = None -skip_audio : Optional[bool] = None -# frame processors -frame_processors : List[str] = [] -# uis -open_browser : Optional[bool] = None -ui_layouts : List[str] = [] diff --git a/facefusion/hash_helper.py b/facefusion/hash_helper.py new file mode 100644 index 00000000..9d334b97 --- /dev/null +++ b/facefusion/hash_helper.py @@ -0,0 +1,32 @@ +import os +import zlib +from typing import Optional + +from facefusion.filesystem import is_file + + +def create_hash(content : bytes) -> str: + return format(zlib.crc32(content), '08x') + + +def validate_hash(validate_path : str) -> bool: + hash_path = get_hash_path(validate_path) + + if is_file(hash_path): + with open(hash_path, 'r') as hash_file: + hash_content = hash_file.read().strip() + + with open(validate_path, 'rb') as validate_file: + validate_content = validate_file.read() + + return create_hash(validate_content) == hash_content + return False + + +def get_hash_path(validate_path : str) -> Optional[str]: + if is_file(validate_path): + validate_directory_path, _ = os.path.split(validate_path) + validate_file_name, _ = os.path.splitext(_) + + return os.path.join(validate_directory_path, validate_file_name + '.hash') + return None diff --git a/facefusion/inference_manager.py b/facefusion/inference_manager.py new file mode 100644 index 00000000..76bb4556 --- /dev/null +++ b/facefusion/inference_manager.py @@ -0,0 +1,75 @@ +from functools import lru_cache +from time import sleep +from typing import List + +import onnx +from onnxruntime import InferenceSession + +from facefusion import process_manager, state_manager +from facefusion.app_context import detect_app_context +from facefusion.execution import create_execution_providers, has_execution_provider +from facefusion.thread_helper import thread_lock +from facefusion.typing import DownloadSet, ExecutionProviderKey, InferencePool, InferencePoolSet, ModelInitializer + +INFERENCE_POOLS : InferencePoolSet =\ +{ + 'cli': {}, # type:ignore[typeddict-item] + 'ui': {} # type:ignore[typeddict-item] +} + + +def get_inference_pool(model_context : str, model_sources : DownloadSet) -> InferencePool: + global INFERENCE_POOLS + + with thread_lock(): + while process_manager.is_checking(): + sleep(0.5) + app_context = detect_app_context() + inference_context = get_inference_context(model_context) + + if not INFERENCE_POOLS.get(app_context).get(inference_context): + execution_provider_keys = resolve_execution_provider_keys(model_context) + INFERENCE_POOLS[app_context][inference_context] = create_inference_pool(model_sources, state_manager.get_item('execution_device_id'), execution_provider_keys) + + return INFERENCE_POOLS.get(app_context).get(inference_context) + + +def create_inference_pool(model_sources : DownloadSet, execution_device_id : str, execution_provider_keys : List[ExecutionProviderKey]) -> InferencePool: + inference_pool : InferencePool = {} + + for model_name in model_sources.keys(): + inference_pool[model_name] = create_inference_session(model_sources.get(model_name).get('path'), execution_device_id, execution_provider_keys) + return inference_pool + + +def clear_inference_pool(model_context : str) -> None: + global INFERENCE_POOLS + + app_context = detect_app_context() + inference_context = get_inference_context(model_context) + + if INFERENCE_POOLS.get(app_context).get(inference_context): + del INFERENCE_POOLS[app_context][inference_context] + + +def create_inference_session(model_path : str, execution_device_id : str, execution_provider_keys : List[ExecutionProviderKey]) -> InferenceSession: + execution_providers = create_execution_providers(execution_device_id, execution_provider_keys) + return InferenceSession(model_path, providers = execution_providers) + + +@lru_cache(maxsize = None) +def get_static_model_initializer(model_path : str) -> ModelInitializer: + model = onnx.load(model_path) + return onnx.numpy_helper.to_array(model.graph.initializer[-1]) + + +def resolve_execution_provider_keys(model_context : str) -> List[ExecutionProviderKey]: + if has_execution_provider('coreml') and (model_context.startswith('facefusion.processors.modules.age_modifier') or model_context.startswith('facefusion.processors.modules.frame_colorizer')): + return [ 'cpu' ] + return state_manager.get_item('execution_providers') + + +def get_inference_context(model_context : str) -> str: + execution_provider_keys = resolve_execution_provider_keys(model_context) + inference_context = model_context + '.' + '_'.join(execution_provider_keys) + return inference_context diff --git a/facefusion/installer.py b/facefusion/installer.py index 4735dd4c..66a51feb 100644 --- a/facefusion/installer.py +++ b/facefusion/installer.py @@ -1,36 +1,33 @@ -from typing import Dict, Tuple -import sys import os -import tempfile +import shutil +import signal import subprocess -import inquirer +import sys +import tempfile from argparse import ArgumentParser, HelpFormatter +from typing import Dict, Tuple from facefusion import metadata, wording from facefusion.common_helper import is_linux, is_macos, is_windows -if is_macos(): - os.environ['SYSTEM_VERSION_COMPAT'] = '0' - ONNXRUNTIMES : Dict[str, Tuple[str, str]] = {} if is_macos(): - ONNXRUNTIMES['default'] = ('onnxruntime', '1.17.3') + ONNXRUNTIMES['default'] = ('onnxruntime', '1.19.2') else: - ONNXRUNTIMES['default'] = ('onnxruntime', '1.17.3') - ONNXRUNTIMES['cuda-12.2'] = ('onnxruntime-gpu', '1.17.1') - ONNXRUNTIMES['cuda-11.8'] = ('onnxruntime-gpu', '1.17.1') - ONNXRUNTIMES['openvino'] = ('onnxruntime-openvino', '1.15.0') + ONNXRUNTIMES['default'] = ('onnxruntime', '1.19.2') + ONNXRUNTIMES['cuda'] = ('onnxruntime-gpu', '1.19.2') + ONNXRUNTIMES['openvino'] = ('onnxruntime-openvino', '1.18.0') if is_linux(): - ONNXRUNTIMES['rocm-5.4.2'] = ('onnxruntime-rocm', '1.16.3') - ONNXRUNTIMES['rocm-5.6'] = ('onnxruntime-rocm', '1.16.3') + ONNXRUNTIMES['rocm'] = ('onnxruntime-rocm', '1.18.0') if is_windows(): - ONNXRUNTIMES['directml'] = ('onnxruntime-directml', '1.17.3') + ONNXRUNTIMES['directml'] = ('onnxruntime-directml', '1.19.2') def cli() -> None: - program = ArgumentParser(formatter_class = lambda prog: HelpFormatter(prog, max_help_position = 200)) - program.add_argument('--onnxruntime', help = wording.get('help.install_dependency').format(dependency = 'onnxruntime'), choices = ONNXRUNTIMES.keys()) + signal.signal(signal.SIGINT, lambda signal_number, frame: sys.exit(0)) + program = ArgumentParser(formatter_class = lambda prog: HelpFormatter(prog, max_help_position = 50)) + program.add_argument('--onnxruntime', help = wording.get('help.install_dependency').format(dependency = 'onnxruntime'), choices = ONNXRUNTIMES.keys(), required = True) program.add_argument('--skip-conda', help = wording.get('help.skip_conda'), action = 'store_true') program.add_argument('-v', '--version', version = metadata.get('name') + ' ' + metadata.get('version'), action = 'version') run(program) @@ -38,41 +35,59 @@ def cli() -> None: def run(program : ArgumentParser) -> None: args = program.parse_args() - python_id = 'cp' + str(sys.version_info.major) + str(sys.version_info.minor) + has_conda = 'CONDA_PREFIX' in os.environ + onnxruntime_name, onnxruntime_version = ONNXRUNTIMES.get(args.onnxruntime) - if not args.skip_conda and 'CONDA_PREFIX' not in os.environ: + if not args.skip_conda and not has_conda: sys.stdout.write(wording.get('conda_not_activated') + os.linesep) sys.exit(1) - if args.onnxruntime: - answers =\ - { - 'onnxruntime': args.onnxruntime - } - else: - answers = inquirer.prompt( - [ - inquirer.List('onnxruntime', message = wording.get('help.install_dependency').format(dependency = 'onnxruntime'), choices = list(ONNXRUNTIMES.keys())) - ]) - if answers: - onnxruntime = answers['onnxruntime'] - onnxruntime_name, onnxruntime_version = ONNXRUNTIMES[onnxruntime] - subprocess.call([ 'pip', 'install', '-r', 'requirements.txt', '--force-reinstall' ]) - if onnxruntime == 'rocm-5.4.2' or onnxruntime == 'rocm-5.6': - if python_id in [ 'cp39', 'cp310', 'cp311' ]: - rocm_version = onnxruntime.replace('-', '') - rocm_version = rocm_version.replace('.', '') - wheel_name = 'onnxruntime_training-' + onnxruntime_version + '+' + rocm_version + '-' + python_id + '-' + python_id + '-manylinux_2_17_x86_64.manylinux2014_x86_64.whl' - wheel_path = os.path.join(tempfile.gettempdir(), wheel_name) - wheel_url = 'https://download.onnxruntime.ai/' + wheel_name - subprocess.call([ 'curl', '--silent', '--location', '--continue-at', '-', '--output', wheel_path, wheel_url ]) - subprocess.call([ 'pip', 'uninstall', wheel_path, '-y', '-q' ]) - subprocess.call([ 'pip', 'install', wheel_path, '--force-reinstall' ]) - os.remove(wheel_path) - else: - subprocess.call([ 'pip', 'uninstall', 'onnxruntime', onnxruntime_name, '-y', '-q' ]) - if onnxruntime == 'cuda-12.2': - subprocess.call([ 'pip', 'install', onnxruntime_name + '==' + onnxruntime_version, '--extra-index-url', 'https://aiinfra.pkgs.visualstudio.com/PublicPackages/_packaging/onnxruntime-cuda-12/pypi/simple', '--force-reinstall' ]) - else: - subprocess.call([ 'pip', 'install', onnxruntime_name + '==' + onnxruntime_version, '--force-reinstall' ]) - subprocess.call([ 'pip', 'install', 'numpy==1.26.4', '--force-reinstall' ]) + subprocess.call([ shutil.which('pip'), 'install', '-r', 'requirements.txt', '--force-reinstall' ]) + + if args.onnxruntime == 'rocm': + python_id = 'cp' + str(sys.version_info.major) + str(sys.version_info.minor) + + if python_id == 'cp310': + wheel_name = 'onnxruntime_rocm-' + onnxruntime_version +'-' + python_id + '-' + python_id + '-linux_x86_64.whl' + wheel_path = os.path.join(tempfile.gettempdir(), wheel_name) + wheel_url = 'https://repo.radeon.com/rocm/manylinux/rocm-rel-6.2/' + wheel_name + subprocess.call([ shutil.which('curl'), '--silent', '--location', '--continue-at', '-', '--output', wheel_path, wheel_url ]) + subprocess.call([ shutil.which('pip'), 'uninstall', 'onnxruntime', wheel_path, '-y', '-q' ]) + subprocess.call([ shutil.which('pip'), 'install', wheel_path, '--force-reinstall' ]) + os.remove(wheel_path) + else: + subprocess.call([ shutil.which('pip'), 'uninstall', 'onnxruntime', onnxruntime_name, '-y', '-q' ]) + subprocess.call([ shutil.which('pip'), 'install', onnxruntime_name + '==' + onnxruntime_version, '--force-reinstall' ]) + + if args.onnxruntime == 'cuda' and has_conda: + library_paths = [] + + if is_linux(): + if os.getenv('LD_LIBRARY_PATH'): + library_paths = os.getenv('LD_LIBRARY_PATH').split(os.pathsep) + + python_id = 'python' + str(sys.version_info.major) + '.' + str(sys.version_info.minor) + library_paths.extend( + [ + os.path.join(os.getenv('CONDA_PREFIX'), 'lib'), + os.path.join(os.getenv('CONDA_PREFIX'), 'lib', python_id, 'site-packages', 'tensorrt_libs') + ]) + library_paths = [ library_path for library_path in library_paths if os.path.exists(library_path) ] + + subprocess.call([ shutil.which('conda'), 'env', 'config', 'vars', 'set', 'LD_LIBRARY_PATH=' + os.pathsep.join(library_paths) ]) + + if is_windows(): + if os.getenv('PATH'): + library_paths = os.getenv('PATH').split(os.pathsep) + + library_paths.extend( + [ + os.path.join(os.getenv('CONDA_PREFIX'), 'Lib'), + os.path.join(os.getenv('CONDA_PREFIX'), 'Lib', 'site-packages', 'tensorrt_libs') + ]) + library_paths = [ library_path for library_path in library_paths if os.path.exists(library_path) ] + + subprocess.call([ shutil.which('conda'), 'env', 'config', 'vars', 'set', 'PATH=' + os.pathsep.join(library_paths) ]) + + if onnxruntime_version == '1.18.0': + subprocess.call([ shutil.which('pip'), 'install', 'numpy==1.26.4', '--force-reinstall' ]) diff --git a/facefusion/processors/frame/__init__.py b/facefusion/jobs/__init__.py similarity index 100% rename from facefusion/processors/frame/__init__.py rename to facefusion/jobs/__init__.py diff --git a/facefusion/jobs/job_helper.py b/facefusion/jobs/job_helper.py new file mode 100644 index 00000000..26f468ef --- /dev/null +++ b/facefusion/jobs/job_helper.py @@ -0,0 +1,15 @@ +import os +from datetime import datetime +from typing import Optional + + +def get_step_output_path(job_id : str, step_index : int, output_path : str) -> Optional[str]: + if output_path: + output_directory_path, _ = os.path.split(output_path) + output_file_name, output_file_extension = os.path.splitext(_) + return os.path.join(output_directory_path, output_file_name + '-' + job_id + '-' + str(step_index) + output_file_extension) + return None + + +def suggest_job_id(job_prefix : str = 'job') -> str: + return job_prefix + '-' + datetime.now().strftime('%Y-%m-%d-%H-%M-%S') diff --git a/facefusion/jobs/job_list.py b/facefusion/jobs/job_list.py new file mode 100644 index 00000000..a7b6e841 --- /dev/null +++ b/facefusion/jobs/job_list.py @@ -0,0 +1,34 @@ +from datetime import datetime +from typing import Optional, Tuple + +from facefusion.date_helper import describe_time_ago +from facefusion.jobs import job_manager +from facefusion.typing import JobStatus, TableContents, TableHeaders + + +def compose_job_list(job_status : JobStatus) -> Tuple[TableHeaders, TableContents]: + jobs = job_manager.find_jobs(job_status) + job_headers : TableHeaders = [ 'job id', 'steps', 'date created', 'date updated', 'job status' ] + job_contents : TableContents = [] + + for index, job_id in enumerate(jobs): + if job_manager.validate_job(job_id): + job = jobs[job_id] + step_total = job_manager.count_step_total(job_id) + date_created = prepare_describe_datetime(job.get('date_created')) + date_updated = prepare_describe_datetime(job.get('date_updated')) + job_contents.append( + [ + job_id, + step_total, + date_created, + date_updated, + job_status + ]) + return job_headers, job_contents + + +def prepare_describe_datetime(date_time : Optional[str]) -> Optional[str]: + if date_time: + return describe_time_ago(datetime.fromisoformat(date_time)) + return None diff --git a/facefusion/jobs/job_manager.py b/facefusion/jobs/job_manager.py new file mode 100644 index 00000000..2e396b32 --- /dev/null +++ b/facefusion/jobs/job_manager.py @@ -0,0 +1,263 @@ +import glob +import os +from copy import copy +from typing import List, Optional + +from facefusion.choices import job_statuses +from facefusion.date_helper import get_current_date_time +from facefusion.filesystem import create_directory, is_directory, is_file, move_file, remove_directory, remove_file +from facefusion.jobs.job_helper import get_step_output_path +from facefusion.json import read_json, write_json +from facefusion.temp_helper import create_base_directory +from facefusion.typing import Args, Job, JobSet, JobStatus, JobStep, JobStepStatus + +JOBS_PATH : Optional[str] = None + + +def init_jobs(jobs_path : str) -> bool: + global JOBS_PATH + + JOBS_PATH = jobs_path + job_status_paths = [ os.path.join(JOBS_PATH, job_status) for job_status in job_statuses ] + + create_base_directory() + for job_status_path in job_status_paths: + create_directory(job_status_path) + return all(is_directory(status_path) for status_path in job_status_paths) + + +def clear_jobs(jobs_path : str) -> bool: + return remove_directory(jobs_path) + + +def create_job(job_id : str) -> bool: + job : Job =\ + { + 'version': '1', + 'date_created': get_current_date_time().isoformat(), + 'date_updated': None, + 'steps': [] + } + + return create_job_file(job_id, job) + + +def submit_job(job_id : str) -> bool: + drafted_job_ids = find_job_ids('drafted') + steps = get_steps(job_id) + + if job_id in drafted_job_ids and steps: + return set_steps_status(job_id, 'queued') and move_job_file(job_id, 'queued') + return False + + +def submit_jobs() -> bool: + drafted_job_ids = find_job_ids('drafted') + + if drafted_job_ids: + for job_id in drafted_job_ids: + if not submit_job(job_id): + return False + return True + return False + + +def delete_job(job_id : str) -> bool: + return delete_job_file(job_id) + + +def delete_jobs() -> bool: + job_ids = find_job_ids('drafted') + find_job_ids('queued') + find_job_ids('failed') + find_job_ids('completed') + + if job_ids: + for job_id in job_ids: + if not delete_job(job_id): + return False + return True + return False + + +def find_jobs(job_status : JobStatus) -> JobSet: + job_ids = find_job_ids(job_status) + jobs : JobSet = {} + + for job_id in job_ids: + jobs[job_id] = read_job_file(job_id) + return jobs + + +def find_job_ids(job_status : JobStatus) -> List[str]: + job_pattern = os.path.join(JOBS_PATH, job_status, '*.json') + job_files = glob.glob(job_pattern) + job_files.sort(key = os.path.getmtime) + job_ids = [] + + for job_file in job_files: + job_id, _ = os.path.splitext(os.path.basename(job_file)) + job_ids.append(job_id) + return job_ids + + +def validate_job(job_id : str) -> bool: + job = read_job_file(job_id) + return bool(job and 'version' in job and 'date_created' in job and 'date_updated' in job and 'steps' in job) + + +def has_step(job_id : str, step_index : int) -> bool: + step_total = count_step_total(job_id) + return step_index in range(step_total) + + +def add_step(job_id : str, step_args : Args) -> bool: + job = read_job_file(job_id) + + if job: + job.get('steps').append( + { + 'args': step_args, + 'status': 'drafted' + }) + return update_job_file(job_id, job) + return False + + +def remix_step(job_id : str, step_index : int, step_args : Args) -> bool: + steps = get_steps(job_id) + step_args = copy(step_args) + + if step_index and step_index < 0: + step_index = count_step_total(job_id) - 1 + + if has_step(job_id, step_index): + output_path = steps[step_index].get('args').get('output_path') + step_args['target_path'] = get_step_output_path(job_id, step_index, output_path) + return add_step(job_id, step_args) + return False + + +def insert_step(job_id : str, step_index : int, step_args : Args) -> bool: + job = read_job_file(job_id) + step_args = copy(step_args) + + if step_index and step_index < 0: + step_index = count_step_total(job_id) - 1 + + if job and has_step(job_id, step_index): + job.get('steps').insert(step_index, + { + 'args': step_args, + 'status': 'drafted' + }) + return update_job_file(job_id, job) + return False + + +def remove_step(job_id : str, step_index : int) -> bool: + job = read_job_file(job_id) + + if step_index and step_index < 0: + step_index = count_step_total(job_id) - 1 + + if job and has_step(job_id, step_index): + job.get('steps').pop(step_index) + return update_job_file(job_id, job) + return False + + +def get_steps(job_id : str) -> List[JobStep]: + job = read_job_file(job_id) + + if job: + return job.get('steps') + return [] + + +def count_step_total(job_id : str) -> int: + steps = get_steps(job_id) + + if steps: + return len(steps) + return 0 + + +def set_step_status(job_id : str, step_index : int, step_status : JobStepStatus) -> bool: + job = read_job_file(job_id) + + if job: + steps = job.get('steps') + + if has_step(job_id, step_index): + steps[step_index]['status'] = step_status + return update_job_file(job_id, job) + return False + + +def set_steps_status(job_id : str, step_status : JobStepStatus) -> bool: + job = read_job_file(job_id) + + if job: + for step in job.get('steps'): + step['status'] = step_status + return update_job_file(job_id, job) + return False + + +def read_job_file(job_id : str) -> Optional[Job]: + job_path = find_job_path(job_id) + return read_json(job_path) #type:ignore[return-value] + + +def create_job_file(job_id : str, job : Job) -> bool: + job_path = find_job_path(job_id) + + if not is_file(job_path): + job_create_path = suggest_job_path(job_id, 'drafted') + return write_json(job_create_path, job) #type:ignore[arg-type] + return False + + +def update_job_file(job_id : str, job : Job) -> bool: + job_path = find_job_path(job_id) + + if is_file(job_path): + job['date_updated'] = get_current_date_time().isoformat() + return write_json(job_path, job) #type:ignore[arg-type] + return False + + +def move_job_file(job_id : str, job_status : JobStatus) -> bool: + job_path = find_job_path(job_id) + job_move_path = suggest_job_path(job_id, job_status) + return move_file(job_path, job_move_path) + + +def delete_job_file(job_id : str) -> bool: + job_path = find_job_path(job_id) + return remove_file(job_path) + + +def suggest_job_path(job_id : str, job_status : JobStatus) -> Optional[str]: + job_file_name = get_job_file_name(job_id) + + if job_file_name: + return os.path.join(JOBS_PATH, job_status, job_file_name) + return None + + +def find_job_path(job_id : str) -> Optional[str]: + job_file_name = get_job_file_name(job_id) + + if job_file_name: + for job_status in job_statuses: + job_pattern = os.path.join(JOBS_PATH, job_status, job_file_name) + job_paths = glob.glob(job_pattern) + + for job_path in job_paths: + return job_path + return None + + +def get_job_file_name(job_id : str) -> Optional[str]: + if job_id: + return job_id + '.json' + return None diff --git a/facefusion/jobs/job_runner.py b/facefusion/jobs/job_runner.py new file mode 100644 index 00000000..e1adddb2 --- /dev/null +++ b/facefusion/jobs/job_runner.py @@ -0,0 +1,106 @@ +from facefusion.ffmpeg import concat_video +from facefusion.filesystem import is_image, is_video, move_file, remove_file +from facefusion.jobs import job_helper, job_manager +from facefusion.typing import JobOutputSet, JobStep, ProcessStep + + +def run_job(job_id : str, process_step : ProcessStep) -> bool: + queued_job_ids = job_manager.find_job_ids('queued') + + if job_id in queued_job_ids: + if run_steps(job_id, process_step) and finalize_steps(job_id): + clean_steps(job_id) + return job_manager.move_job_file(job_id, 'completed') + clean_steps(job_id) + job_manager.move_job_file(job_id, 'failed') + return False + + +def run_jobs(process_step : ProcessStep) -> bool: + queued_job_ids = job_manager.find_job_ids('queued') + + if queued_job_ids: + for job_id in queued_job_ids: + if not run_job(job_id, process_step): + return False + return True + return False + + +def retry_job(job_id : str, process_step : ProcessStep) -> bool: + failed_job_ids = job_manager.find_job_ids('failed') + + if job_id in failed_job_ids: + return job_manager.set_steps_status(job_id, 'queued') and job_manager.move_job_file(job_id, 'queued') and run_job(job_id, process_step) + return False + + +def retry_jobs(process_step : ProcessStep) -> bool: + failed_job_ids = job_manager.find_job_ids('failed') + + if failed_job_ids: + for job_id in failed_job_ids: + if not retry_job(job_id, process_step): + return False + return True + return False + + +def run_step(job_id : str, step_index : int, step : JobStep, process_step : ProcessStep) -> bool: + step_args = step.get('args') + + if job_manager.set_step_status(job_id, step_index, 'started') and process_step(job_id, step_index, step_args): + output_path = step_args.get('output_path') + step_output_path = job_helper.get_step_output_path(job_id, step_index, output_path) + + return move_file(output_path, step_output_path) and job_manager.set_step_status(job_id, step_index, 'completed') + job_manager.set_step_status(job_id, step_index, 'failed') + return False + + +def run_steps(job_id : str, process_step : ProcessStep) -> bool: + steps = job_manager.get_steps(job_id) + + if steps: + for index, step in enumerate(steps): + if not run_step(job_id, index, step, process_step): + return False + return True + return False + + +def finalize_steps(job_id : str) -> bool: + output_set = collect_output_set(job_id) + + for output_path, temp_output_paths in output_set.items(): + if all(map(is_video, temp_output_paths)): + if not concat_video(output_path, temp_output_paths): + return False + if any(map(is_image, temp_output_paths)): + for temp_output_path in temp_output_paths: + if not move_file(temp_output_path, output_path): + return False + return True + + +def clean_steps(job_id: str) -> bool: + output_set = collect_output_set(job_id) + + for temp_output_paths in output_set.values(): + for temp_output_path in temp_output_paths: + if not remove_file(temp_output_path): + return False + return True + + +def collect_output_set(job_id : str) -> JobOutputSet: + steps = job_manager.get_steps(job_id) + output_set : JobOutputSet = {} + + for index, step in enumerate(steps): + output_path = step.get('args').get('output_path') + + if output_path: + step_output_path = job_manager.get_step_output_path(job_id, index, output_path) + output_set.setdefault(output_path, []).append(step_output_path) + return output_set diff --git a/facefusion/jobs/job_store.py b/facefusion/jobs/job_store.py new file mode 100644 index 00000000..9d330d09 --- /dev/null +++ b/facefusion/jobs/job_store.py @@ -0,0 +1,27 @@ +from typing import List + +from facefusion.typing import JobStore + +JOB_STORE : JobStore =\ +{ + 'job_keys': [], + 'step_keys': [] +} + + +def get_job_keys() -> List[str]: + return JOB_STORE.get('job_keys') + + +def get_step_keys() -> List[str]: + return JOB_STORE.get('step_keys') + + +def register_job_keys(step_keys : List[str]) -> None: + for step_key in step_keys: + JOB_STORE['job_keys'].append(step_key) + + +def register_step_keys(job_keys : List[str]) -> None: + for job_key in job_keys: + JOB_STORE['step_keys'].append(job_key) diff --git a/facefusion/json.py b/facefusion/json.py new file mode 100644 index 00000000..dcb182c0 --- /dev/null +++ b/facefusion/json.py @@ -0,0 +1,22 @@ +import json +from json import JSONDecodeError +from typing import Optional + +from facefusion.filesystem import is_file +from facefusion.typing import Content + + +def read_json(json_path : str) -> Optional[Content]: + if is_file(json_path): + try: + with open(json_path, 'r') as json_file: + return json.load(json_file) + except JSONDecodeError: + pass + return None + + +def write_json(json_path : str, content : Content) -> bool: + with open(json_path, 'w') as json_file: + json.dump(content, json_file, indent = 4) + return is_file(json_path) diff --git a/facefusion/logger.py b/facefusion/logger.py index e6e3ba08..1ea484e0 100644 --- a/facefusion/logger.py +++ b/facefusion/logger.py @@ -1,32 +1,74 @@ -from typing import Dict -from logging import basicConfig, getLogger, Logger, DEBUG, INFO, WARNING, ERROR +from logging import Logger, basicConfig, getLogger +from typing import Tuple -from facefusion.typing import LogLevel +from facefusion.choices import log_level_set +from facefusion.common_helper import get_first, get_last +from facefusion.typing import LogLevel, TableContents, TableHeaders def init(log_level : LogLevel) -> None: - basicConfig(format = None) - get_package_logger().setLevel(get_log_levels()[log_level]) + basicConfig(format = '%(message)s') + get_package_logger().setLevel(log_level_set.get(log_level)) def get_package_logger() -> Logger: return getLogger('facefusion') -def debug(message : str, scope : str) -> None: - get_package_logger().debug('[' + scope + '] ' + message) +def debug(message : str, module_name : str) -> None: + get_package_logger().debug(create_message(message, module_name)) -def info(message : str, scope : str) -> None: - get_package_logger().info('[' + scope + '] ' + message) +def info(message : str, module_name : str) -> None: + get_package_logger().info(create_message(message, module_name)) -def warn(message : str, scope : str) -> None: - get_package_logger().warning('[' + scope + '] ' + message) +def warn(message : str, module_name : str) -> None: + get_package_logger().warning(create_message(message, module_name)) -def error(message : str, scope : str) -> None: - get_package_logger().error('[' + scope + '] ' + message) +def error(message : str, module_name : str) -> None: + get_package_logger().error(create_message(message, module_name)) + + +def create_message(message : str, module_name : str) -> str: + scopes = module_name.split('.') + first_scope = get_first(scopes) + last_scope = get_last(scopes) + + if first_scope and last_scope: + return '[' + first_scope.upper() + '.' + last_scope.upper() + '] ' + message + return message + + +def table(headers : TableHeaders, contents : TableContents) -> None: + package_logger = get_package_logger() + table_column, table_separator = create_table_parts(headers, contents) + + package_logger.info(table_separator) + package_logger.info(table_column.format(*headers)) + package_logger.info(table_separator) + + for content in contents: + package_logger.info(table_column.format(*content)) + + package_logger.info(table_separator) + + +def create_table_parts(headers : TableHeaders, contents : TableContents) -> Tuple[str, str]: + column_parts = [] + separator_parts = [] + widths = [ len(header) for header in headers ] + + for content in contents: + for index, value in enumerate(content): + widths[index] = max(widths[index], len(str(value))) + + for width in widths: + column_parts.append('{:<' + str(width) + '}') + separator_parts.append('-' * width) + + return '| ' + ' | '.join(column_parts) + ' |', '+-' + '-+-'.join(separator_parts) + '-+' def enable() -> None: @@ -35,13 +77,3 @@ def enable() -> None: def disable() -> None: get_package_logger().disabled = True - - -def get_log_levels() -> Dict[LogLevel, int]: - return\ - { - 'error': ERROR, - 'warn': WARNING, - 'info': INFO, - 'debug': DEBUG - } diff --git a/facefusion/metadata.py b/facefusion/metadata.py index 99e20c39..78b8aa74 100644 --- a/facefusion/metadata.py +++ b/facefusion/metadata.py @@ -1,13 +1,17 @@ +from typing import Optional + METADATA =\ { 'name': 'FaceFusion', - 'description': 'Next generation face swapper and enhancer', - 'version': '2.6.1', + 'description': 'Industry leading face manipulation platform', + 'version': '3.0.0', 'license': 'MIT', 'author': 'Henry Ruhs', 'url': 'https://facefusion.io' } -def get(key : str) -> str: - return METADATA[key] +def get(key : str) -> Optional[str]: + if key in METADATA: + return METADATA.get(key) + return None diff --git a/facefusion/normalizer.py b/facefusion/normalizer.py index 07b8071b..560dc5ff 100644 --- a/facefusion/normalizer.py +++ b/facefusion/normalizer.py @@ -1,24 +1,6 @@ from typing import List, Optional -import hashlib -import os -import facefusion.globals -from facefusion.filesystem import is_directory -from facefusion.typing import Padding, Fps - - -def normalize_output_path(target_path : Optional[str], output_path : Optional[str]) -> Optional[str]: - if target_path and output_path: - target_name, target_extension = os.path.splitext(os.path.basename(target_path)) - if is_directory(output_path): - output_hash = hashlib.sha1(str(facefusion.globals.__dict__).encode('utf-8')).hexdigest()[:8] - output_name = target_name + '-' + output_hash - return os.path.join(output_path, output_name + target_extension) - output_name, output_extension = os.path.splitext(os.path.basename(output_path)) - output_directory_path = os.path.dirname(output_path) - if is_directory(output_directory_path) and output_extension: - return os.path.join(output_directory_path, output_name + target_extension) - return None +from facefusion.typing import Fps, Padding def normalize_padding(padding : Optional[List[int]]) -> Optional[Padding]: @@ -34,6 +16,6 @@ def normalize_padding(padding : Optional[List[int]]) -> Optional[Padding]: def normalize_fps(fps : Optional[float]) -> Optional[Fps]: - if fps is not None: + if isinstance(fps, (int, float)): return max(1.0, min(fps, 60.0)) return None diff --git a/facefusion/process_manager.py b/facefusion/process_manager.py index 3d5cce0f..6ba526ad 100644 --- a/facefusion/process_manager.py +++ b/facefusion/process_manager.py @@ -1,6 +1,6 @@ from typing import Generator, List -from facefusion.typing import QueuePayload, ProcessState +from facefusion.typing import ProcessState, QueuePayload PROCESS_STATE : ProcessState = 'pending' diff --git a/facefusion/processors/choices.py b/facefusion/processors/choices.py new file mode 100755 index 00000000..9ab399eb --- /dev/null +++ b/facefusion/processors/choices.py @@ -0,0 +1,46 @@ +from typing import List, Sequence + +from facefusion.common_helper import create_float_range, create_int_range +from facefusion.processors.typing import AgeModifierModel, ExpressionRestorerModel, FaceDebuggerItem, FaceEditorModel, FaceEnhancerModel, FaceSwapperSet, FrameColorizerModel, FrameEnhancerModel, LipSyncerModel + +age_modifier_models : List[AgeModifierModel] = [ 'styleganex_age' ] +expression_restorer_models : List[ExpressionRestorerModel] = [ 'live_portrait' ] +face_debugger_items : List[FaceDebuggerItem] = [ 'bounding-box', 'face-landmark-5', 'face-landmark-5/68', 'face-landmark-68', 'face-landmark-68/5', 'face-mask', 'face-detector-score', 'face-landmarker-score', 'age', 'gender', 'race' ] +face_editor_models : List[FaceEditorModel] = [ 'live_portrait' ] +face_enhancer_models : List[FaceEnhancerModel] = [ 'codeformer', 'gfpgan_1.2', 'gfpgan_1.3', 'gfpgan_1.4', 'gpen_bfr_256', 'gpen_bfr_512', 'gpen_bfr_1024', 'gpen_bfr_2048', 'restoreformer_plus_plus' ] +face_swapper_set : FaceSwapperSet =\ +{ + 'blendswap_256': [ '256x256', '384x384', '512x512', '768x768', '1024x1024' ], + 'ghost_256_unet_1': [ '256x256', '512x512', '768x768', '1024x1024' ], + 'ghost_256_unet_2': [ '256x256', '512x512', '768x768', '1024x1024' ], + 'ghost_256_unet_3': [ '256x256', '512x512', '768x768', '1024x1024' ], + 'inswapper_128': [ '128x128', '256x256', '384x384', '512x512', '768x768', '1024x1024' ], + 'inswapper_128_fp16': [ '128x128', '256x256', '384x384', '512x512', '768x768', '1024x1024' ], + 'simswap_256': [ '256x256', '512x512', '768x768', '1024x1024' ], + 'simswap_512_unofficial': [ '512x512', '768x768', '1024x1024' ], + 'uniface_256': [ '256x256', '512x512', '768x768', '1024x1024' ] +} +frame_colorizer_models : List[FrameColorizerModel] = [ 'ddcolor', 'ddcolor_artistic', 'deoldify', 'deoldify_artistic', 'deoldify_stable' ] +frame_colorizer_sizes : List[str] = [ '192x192', '256x256', '384x384', '512x512' ] +frame_enhancer_models : List[FrameEnhancerModel] = [ 'clear_reality_x4', 'lsdir_x4', 'nomos8k_sc_x4', 'real_esrgan_x2', 'real_esrgan_x2_fp16', 'real_esrgan_x4', 'real_esrgan_x4_fp16', 'real_esrgan_x8', 'real_esrgan_x8_fp16', 'real_hatgan_x4', 'span_kendata_x4', 'ultra_sharp_x4' ] +lip_syncer_models : List[LipSyncerModel] = [ 'wav2lip', 'wav2lip_gan' ] + +age_modifier_direction_range : Sequence[int] = create_int_range(-100, 100, 1) +expression_restorer_factor_range : Sequence[int] = create_int_range(0, 100, 1) +face_editor_eyebrow_direction_range : Sequence[float] = create_float_range(-1.0, 1.0, 0.05) +face_editor_eye_gaze_horizontal_range : Sequence[float] = create_float_range(-1.0, 1.0, 0.05) +face_editor_eye_gaze_vertical_range : Sequence[float] = create_float_range(-1.0, 1.0, 0.05) +face_editor_eye_open_ratio_range : Sequence[float] = create_float_range(-1.0, 1.0, 0.05) +face_editor_lip_open_ratio_range : Sequence[float] = create_float_range(-1.0, 1.0, 0.05) +face_editor_mouth_grim_range : Sequence[float] = create_float_range(-1.0, 1.0, 0.05) +face_editor_mouth_pout_range : Sequence[float] = create_float_range(-1.0, 1.0, 0.05) +face_editor_mouth_purse_range : Sequence[float] = create_float_range(-1.0, 1.0, 0.05) +face_editor_mouth_smile_range : Sequence[float] = create_float_range(-1.0, 1.0, 0.05) +face_editor_mouth_position_horizontal_range : Sequence[float] = create_float_range(-1.0, 1.0, 0.05) +face_editor_mouth_position_vertical_range : Sequence[float] = create_float_range(-1.0, 1.0, 0.05) +face_editor_head_pitch_range : Sequence[float] = create_float_range(-1.0, 1.0, 0.05) +face_editor_head_yaw_range : Sequence[float] = create_float_range(-1.0, 1.0, 0.05) +face_editor_head_roll_range : Sequence[float] = create_float_range(-1.0, 1.0, 0.05) +face_enhancer_blend_range : Sequence[int] = create_int_range(0, 100, 1) +frame_colorizer_blend_range : Sequence[int] = create_int_range(0, 100, 1) +frame_enhancer_blend_range : Sequence[int] = create_int_range(0, 100, 1) diff --git a/facefusion/processors/core.py b/facefusion/processors/core.py new file mode 100644 index 00000000..7cff5ebf --- /dev/null +++ b/facefusion/processors/core.py @@ -0,0 +1,110 @@ +import importlib +import os +from concurrent.futures import ThreadPoolExecutor, as_completed +from queue import Queue +from types import ModuleType +from typing import Any, List + +from tqdm import tqdm + +from facefusion import logger, state_manager, wording +from facefusion.exit_helper import hard_exit +from facefusion.typing import ProcessFrames, QueuePayload + +PROCESSORS_METHODS =\ +[ + 'get_inference_pool', + 'clear_inference_pool', + 'register_args', + 'apply_args', + 'pre_check', + 'pre_process', + 'post_process', + 'get_reference_frame', + 'process_frame', + 'process_frames', + 'process_image', + 'process_video' +] + + +def load_processor_module(processor : str) -> Any: + try: + processor_module = importlib.import_module('facefusion.processors.modules.' + processor) + for method_name in PROCESSORS_METHODS: + if not hasattr(processor_module, method_name): + raise NotImplementedError + except ModuleNotFoundError as exception: + logger.error(wording.get('processor_not_loaded').format(processor = processor), __name__) + logger.debug(exception.msg, __name__) + hard_exit(1) + except NotImplementedError: + logger.error(wording.get('processor_not_implemented').format(processor = processor), __name__) + hard_exit(1) + return processor_module + + +def get_processors_modules(processors : List[str]) -> List[ModuleType]: + processor_modules = [] + + for processor in processors: + processor_module = load_processor_module(processor) + processor_modules.append(processor_module) + return processor_modules + + +def clear_processors_modules(processors : List[str]) -> None: + for processor in processors: + processor_module = load_processor_module(processor) + processor_module.clear_inference_pool() + + +def multi_process_frames(source_paths : List[str], temp_frame_paths : List[str], process_frames : ProcessFrames) -> None: + queue_payloads = create_queue_payloads(temp_frame_paths) + with tqdm(total = len(queue_payloads), desc = wording.get('processing'), unit = 'frame', ascii = ' =', disable = state_manager.get_item('log_level') in [ 'warn', 'error' ]) as progress: + progress.set_postfix( + { + 'execution_providers': state_manager.get_item('execution_providers'), + 'execution_thread_count': state_manager.get_item('execution_thread_count'), + 'execution_queue_count': state_manager.get_item('execution_queue_count') + }) + with ThreadPoolExecutor(max_workers = state_manager.get_item('execution_thread_count')) as executor: + futures = [] + queue : Queue[QueuePayload] = create_queue(queue_payloads) + queue_per_future = max(len(queue_payloads) // state_manager.get_item('execution_thread_count') * state_manager.get_item('execution_queue_count'), 1) + + while not queue.empty(): + future = executor.submit(process_frames, source_paths, pick_queue(queue, queue_per_future), progress.update) + futures.append(future) + + for future_done in as_completed(futures): + future_done.result() + + +def create_queue(queue_payloads : List[QueuePayload]) -> Queue[QueuePayload]: + queue : Queue[QueuePayload] = Queue() + for queue_payload in queue_payloads: + queue.put(queue_payload) + return queue + + +def pick_queue(queue : Queue[QueuePayload], queue_per_future : int) -> List[QueuePayload]: + queues = [] + for _ in range(queue_per_future): + if not queue.empty(): + queues.append(queue.get()) + return queues + + +def create_queue_payloads(temp_frame_paths : List[str]) -> List[QueuePayload]: + queue_payloads = [] + temp_frame_paths = sorted(temp_frame_paths, key = os.path.basename) + + for frame_number, frame_path in enumerate(temp_frame_paths): + frame_payload : QueuePayload =\ + { + 'frame_number': frame_number, + 'frame_path': frame_path + } + queue_payloads.append(frame_payload) + return queue_payloads diff --git a/facefusion/processors/frame/choices.py b/facefusion/processors/frame/choices.py deleted file mode 100755 index 4764f3e8..00000000 --- a/facefusion/processors/frame/choices.py +++ /dev/null @@ -1,16 +0,0 @@ -from typing import List - -from facefusion.common_helper import create_int_range -from facefusion.processors.frame.typings import FaceDebuggerItem, FaceEnhancerModel, FaceSwapperModel, FrameColorizerModel, FrameEnhancerModel, LipSyncerModel - -face_debugger_items : List[FaceDebuggerItem] = [ 'bounding-box', 'face-landmark-5', 'face-landmark-5/68', 'face-landmark-68', 'face-landmark-68/5', 'face-mask', 'face-detector-score', 'face-landmarker-score', 'age', 'gender' ] -face_enhancer_models : List[FaceEnhancerModel] = [ 'codeformer', 'gfpgan_1.2', 'gfpgan_1.3', 'gfpgan_1.4', 'gpen_bfr_256', 'gpen_bfr_512', 'gpen_bfr_1024', 'gpen_bfr_2048', 'restoreformer_plus_plus' ] -face_swapper_models : List[FaceSwapperModel] = [ 'blendswap_256', 'inswapper_128', 'inswapper_128_fp16', 'simswap_256', 'simswap_512_unofficial', 'uniface_256' ] -frame_colorizer_models : List[FrameColorizerModel] = [ 'ddcolor', 'ddcolor_artistic', 'deoldify', 'deoldify_artistic', 'deoldify_stable' ] -frame_colorizer_sizes : List[str] = [ '192x192', '256x256', '384x384', '512x512' ] -frame_enhancer_models : List[FrameEnhancerModel] = [ 'clear_reality_x4', 'lsdir_x4', 'nomos8k_sc_x4', 'real_esrgan_x2', 'real_esrgan_x2_fp16', 'real_esrgan_x4', 'real_esrgan_x4_fp16', 'real_hatgan_x4', 'span_kendata_x4', 'ultra_sharp_x4' ] -lip_syncer_models : List[LipSyncerModel] = [ 'wav2lip_gan' ] - -face_enhancer_blend_range : List[int] = create_int_range(0, 100, 1) -frame_colorizer_blend_range : List[int] = create_int_range(0, 100, 1) -frame_enhancer_blend_range : List[int] = create_int_range(0, 100, 1) diff --git a/facefusion/processors/frame/core.py b/facefusion/processors/frame/core.py deleted file mode 100644 index 8b3f12b6..00000000 --- a/facefusion/processors/frame/core.py +++ /dev/null @@ -1,116 +0,0 @@ -import os -import sys -import importlib -from concurrent.futures import ThreadPoolExecutor, as_completed -from queue import Queue -from types import ModuleType -from typing import Any, List -from tqdm import tqdm - -import facefusion.globals -from facefusion.typing import ProcessFrames, QueuePayload -from facefusion.execution import encode_execution_providers -from facefusion import logger, wording - -FRAME_PROCESSORS_MODULES : List[ModuleType] = [] -FRAME_PROCESSORS_METHODS =\ -[ - 'get_frame_processor', - 'clear_frame_processor', - 'get_options', - 'set_options', - 'register_args', - 'apply_args', - 'pre_check', - 'post_check', - 'pre_process', - 'post_process', - 'get_reference_frame', - 'process_frame', - 'process_frames', - 'process_image', - 'process_video' -] - - -def load_frame_processor_module(frame_processor : str) -> Any: - try: - frame_processor_module = importlib.import_module('facefusion.processors.frame.modules.' + frame_processor) - for method_name in FRAME_PROCESSORS_METHODS: - if not hasattr(frame_processor_module, method_name): - raise NotImplementedError - except ModuleNotFoundError as exception: - logger.error(wording.get('frame_processor_not_loaded').format(frame_processor = frame_processor), __name__.upper()) - logger.debug(exception.msg, __name__.upper()) - sys.exit(1) - except NotImplementedError: - logger.error(wording.get('frame_processor_not_implemented').format(frame_processor = frame_processor), __name__.upper()) - sys.exit(1) - return frame_processor_module - - -def get_frame_processors_modules(frame_processors : List[str]) -> List[ModuleType]: - global FRAME_PROCESSORS_MODULES - - if not FRAME_PROCESSORS_MODULES: - for frame_processor in frame_processors: - frame_processor_module = load_frame_processor_module(frame_processor) - FRAME_PROCESSORS_MODULES.append(frame_processor_module) - return FRAME_PROCESSORS_MODULES - - -def clear_frame_processors_modules() -> None: - global FRAME_PROCESSORS_MODULES - - for frame_processor_module in get_frame_processors_modules(facefusion.globals.frame_processors): - frame_processor_module.clear_frame_processor() - FRAME_PROCESSORS_MODULES = [] - - -def multi_process_frames(source_paths : List[str], temp_frame_paths : List[str], process_frames : ProcessFrames) -> None: - queue_payloads = create_queue_payloads(temp_frame_paths) - with tqdm(total = len(queue_payloads), desc = wording.get('processing'), unit = 'frame', ascii = ' =', disable = facefusion.globals.log_level in [ 'warn', 'error' ]) as progress: - progress.set_postfix( - { - 'execution_providers': encode_execution_providers(facefusion.globals.execution_providers), - 'execution_thread_count': facefusion.globals.execution_thread_count, - 'execution_queue_count': facefusion.globals.execution_queue_count - }) - with ThreadPoolExecutor(max_workers = facefusion.globals.execution_thread_count) as executor: - futures = [] - queue : Queue[QueuePayload] = create_queue(queue_payloads) - queue_per_future = max(len(queue_payloads) // facefusion.globals.execution_thread_count * facefusion.globals.execution_queue_count, 1) - while not queue.empty(): - future = executor.submit(process_frames, source_paths, pick_queue(queue, queue_per_future), progress.update) - futures.append(future) - for future_done in as_completed(futures): - future_done.result() - - -def create_queue(queue_payloads : List[QueuePayload]) -> Queue[QueuePayload]: - queue : Queue[QueuePayload] = Queue() - for queue_payload in queue_payloads: - queue.put(queue_payload) - return queue - - -def pick_queue(queue : Queue[QueuePayload], queue_per_future : int) -> List[QueuePayload]: - queues = [] - for _ in range(queue_per_future): - if not queue.empty(): - queues.append(queue.get()) - return queues - - -def create_queue_payloads(temp_frame_paths : List[str]) -> List[QueuePayload]: - queue_payloads = [] - temp_frame_paths = sorted(temp_frame_paths, key = os.path.basename) - - for frame_number, frame_path in enumerate(temp_frame_paths): - frame_payload : QueuePayload =\ - { - 'frame_number': frame_number, - 'frame_path': frame_path - } - queue_payloads.append(frame_payload) - return queue_payloads diff --git a/facefusion/processors/frame/globals.py b/facefusion/processors/frame/globals.py deleted file mode 100755 index 76ab2b2a..00000000 --- a/facefusion/processors/frame/globals.py +++ /dev/null @@ -1,14 +0,0 @@ -from typing import List, Optional - -from facefusion.processors.frame.typings import FaceDebuggerItem, FaceEnhancerModel, FaceSwapperModel, FrameColorizerModel, FrameEnhancerModel, LipSyncerModel - -face_debugger_items : Optional[List[FaceDebuggerItem]] = None -face_enhancer_model : Optional[FaceEnhancerModel] = None -face_enhancer_blend : Optional[int] = None -face_swapper_model : Optional[FaceSwapperModel] = None -frame_colorizer_model : Optional[FrameColorizerModel] = None -frame_colorizer_blend : Optional[int] = None -frame_colorizer_size : Optional[str] = None -frame_enhancer_model : Optional[FrameEnhancerModel] = None -frame_enhancer_blend : Optional[int] = None -lip_syncer_model : Optional[LipSyncerModel] = None diff --git a/facefusion/processors/frame/modules/face_debugger.py b/facefusion/processors/frame/modules/face_debugger.py deleted file mode 100755 index ded5c645..00000000 --- a/facefusion/processors/frame/modules/face_debugger.py +++ /dev/null @@ -1,192 +0,0 @@ -from typing import Any, List, Literal -from argparse import ArgumentParser -import cv2 -import numpy - -import facefusion.globals -import facefusion.processors.frame.core as frame_processors -from facefusion import config, process_manager, wording -from facefusion.face_analyser import get_one_face, get_many_faces, find_similar_faces, clear_face_analyser -from facefusion.face_masker import create_static_box_mask, create_occlusion_mask, create_region_mask, clear_face_occluder, clear_face_parser -from facefusion.face_helper import warp_face_by_face_landmark_5, categorize_age, categorize_gender -from facefusion.face_store import get_reference_faces -from facefusion.content_analyser import clear_content_analyser -from facefusion.typing import Face, VisionFrame, UpdateProgress, ProcessMode, QueuePayload -from facefusion.vision import read_image, read_static_image, write_image -from facefusion.processors.frame.typings import FaceDebuggerInputs -from facefusion.processors.frame import globals as frame_processors_globals, choices as frame_processors_choices - -NAME = __name__.upper() - - -def get_frame_processor() -> None: - pass - - -def clear_frame_processor() -> None: - pass - - -def get_options(key : Literal['model']) -> None: - pass - - -def set_options(key : Literal['model'], value : Any) -> None: - pass - - -def register_args(program : ArgumentParser) -> None: - program.add_argument('--face-debugger-items', help = wording.get('help.face_debugger_items').format(choices = ', '.join(frame_processors_choices.face_debugger_items)), default = config.get_str_list('frame_processors.face_debugger_items', 'face-landmark-5/68 face-mask'), choices = frame_processors_choices.face_debugger_items, nargs = '+', metavar = 'FACE_DEBUGGER_ITEMS') - - -def apply_args(program : ArgumentParser) -> None: - args = program.parse_args() - frame_processors_globals.face_debugger_items = args.face_debugger_items - - -def pre_check() -> bool: - return True - - -def post_check() -> bool: - return True - - -def pre_process(mode : ProcessMode) -> bool: - return True - - -def post_process() -> None: - read_static_image.cache_clear() - if facefusion.globals.video_memory_strategy == 'strict' or facefusion.globals.video_memory_strategy == 'moderate': - clear_frame_processor() - if facefusion.globals.video_memory_strategy == 'strict': - clear_face_analyser() - clear_content_analyser() - clear_face_occluder() - clear_face_parser() - - -def debug_face(target_face : Face, temp_vision_frame : VisionFrame) -> VisionFrame: - primary_color = (0, 0, 255) - secondary_color = (0, 255, 0) - tertiary_color = (255, 255, 0) - bounding_box = target_face.bounding_box.astype(numpy.int32) - temp_vision_frame = temp_vision_frame.copy() - has_face_landmark_5_fallback = numpy.array_equal(target_face.landmarks.get('5'), target_face.landmarks.get('5/68')) - has_face_landmark_68_fallback = numpy.array_equal(target_face.landmarks.get('68'), target_face.landmarks.get('68/5')) - - if 'bounding-box' in frame_processors_globals.face_debugger_items: - cv2.rectangle(temp_vision_frame, (bounding_box[0], bounding_box[1]), (bounding_box[2], bounding_box[3]), primary_color, 2) - if 'face-mask' in frame_processors_globals.face_debugger_items: - crop_vision_frame, affine_matrix = warp_face_by_face_landmark_5(temp_vision_frame, target_face.landmarks.get('5/68'), 'arcface_128_v2', (512, 512)) - inverse_matrix = cv2.invertAffineTransform(affine_matrix) - temp_size = temp_vision_frame.shape[:2][::-1] - crop_mask_list = [] - if 'box' in facefusion.globals.face_mask_types: - box_mask = create_static_box_mask(crop_vision_frame.shape[:2][::-1], 0, facefusion.globals.face_mask_padding) - crop_mask_list.append(box_mask) - if 'occlusion' in facefusion.globals.face_mask_types: - occlusion_mask = create_occlusion_mask(crop_vision_frame) - crop_mask_list.append(occlusion_mask) - if 'region' in facefusion.globals.face_mask_types: - region_mask = create_region_mask(crop_vision_frame, facefusion.globals.face_mask_regions) - crop_mask_list.append(region_mask) - crop_mask = numpy.minimum.reduce(crop_mask_list).clip(0, 1) - crop_mask = (crop_mask * 255).astype(numpy.uint8) - inverse_vision_frame = cv2.warpAffine(crop_mask, inverse_matrix, temp_size) - inverse_vision_frame = cv2.threshold(inverse_vision_frame, 100, 255, cv2.THRESH_BINARY)[1] - inverse_vision_frame[inverse_vision_frame > 0] = 255 - inverse_contours = cv2.findContours(inverse_vision_frame, cv2.RETR_LIST, cv2.CHAIN_APPROX_NONE)[0] - cv2.drawContours(temp_vision_frame, inverse_contours, -1, tertiary_color if has_face_landmark_5_fallback else secondary_color, 2) - if 'face-landmark-5' in frame_processors_globals.face_debugger_items and numpy.any(target_face.landmarks.get('5')): - face_landmark_5 = target_face.landmarks.get('5').astype(numpy.int32) - for index in range(face_landmark_5.shape[0]): - cv2.circle(temp_vision_frame, (face_landmark_5[index][0], face_landmark_5[index][1]), 3, primary_color, -1) - if 'face-landmark-5/68' in frame_processors_globals.face_debugger_items and numpy.any(target_face.landmarks.get('5/68')): - face_landmark_5_68 = target_face.landmarks.get('5/68').astype(numpy.int32) - for index in range(face_landmark_5_68.shape[0]): - cv2.circle(temp_vision_frame, (face_landmark_5_68[index][0], face_landmark_5_68[index][1]), 3, tertiary_color if has_face_landmark_5_fallback else secondary_color, -1) - if 'face-landmark-68' in frame_processors_globals.face_debugger_items and numpy.any(target_face.landmarks.get('68')): - face_landmark_68 = target_face.landmarks.get('68').astype(numpy.int32) - for index in range(face_landmark_68.shape[0]): - cv2.circle(temp_vision_frame, (face_landmark_68[index][0], face_landmark_68[index][1]), 3, tertiary_color if has_face_landmark_68_fallback else secondary_color, -1) - if 'face-landmark-68/5' in frame_processors_globals.face_debugger_items and numpy.any(target_face.landmarks.get('68')): - face_landmark_68 = target_face.landmarks.get('68/5').astype(numpy.int32) - for index in range(face_landmark_68.shape[0]): - cv2.circle(temp_vision_frame, (face_landmark_68[index][0], face_landmark_68[index][1]), 3, primary_color, -1) - if bounding_box[3] - bounding_box[1] > 50 and bounding_box[2] - bounding_box[0] > 50: - top = bounding_box[1] - left = bounding_box[0] - 20 - if 'face-detector-score' in frame_processors_globals.face_debugger_items: - face_score_text = str(round(target_face.scores.get('detector'), 2)) - top = top + 20 - cv2.putText(temp_vision_frame, face_score_text, (left, top), cv2.FONT_HERSHEY_SIMPLEX, 0.5, primary_color, 2) - if 'face-landmarker-score' in frame_processors_globals.face_debugger_items: - face_score_text = str(round(target_face.scores.get('landmarker'), 2)) - top = top + 20 - cv2.putText(temp_vision_frame, face_score_text, (left, top), cv2.FONT_HERSHEY_SIMPLEX, 0.5, tertiary_color if has_face_landmark_5_fallback else secondary_color, 2) - if 'age' in frame_processors_globals.face_debugger_items: - face_age_text = categorize_age(target_face.age) - top = top + 20 - cv2.putText(temp_vision_frame, face_age_text, (left, top), cv2.FONT_HERSHEY_SIMPLEX, 0.5, primary_color, 2) - if 'gender' in frame_processors_globals.face_debugger_items: - face_gender_text = categorize_gender(target_face.gender) - top = top + 20 - cv2.putText(temp_vision_frame, face_gender_text, (left, top), cv2.FONT_HERSHEY_SIMPLEX, 0.5, primary_color, 2) - return temp_vision_frame - - -def get_reference_frame(source_face : Face, target_face : Face, temp_vision_frame : VisionFrame) -> VisionFrame: - pass - - -def process_frame(inputs : FaceDebuggerInputs) -> VisionFrame: - reference_faces = inputs.get('reference_faces') - target_vision_frame = inputs.get('target_vision_frame') - - if facefusion.globals.face_selector_mode == 'many': - many_faces = get_many_faces(target_vision_frame) - if many_faces: - for target_face in many_faces: - target_vision_frame = debug_face(target_face, target_vision_frame) - if facefusion.globals.face_selector_mode == 'one': - target_face = get_one_face(target_vision_frame) - if target_face: - target_vision_frame = debug_face(target_face, target_vision_frame) - if facefusion.globals.face_selector_mode == 'reference': - similar_faces = find_similar_faces(reference_faces, target_vision_frame, facefusion.globals.reference_face_distance) - if similar_faces: - for similar_face in similar_faces: - target_vision_frame = debug_face(similar_face, target_vision_frame) - return target_vision_frame - - -def process_frames(source_paths : List[str], queue_payloads : List[QueuePayload], update_progress : UpdateProgress) -> None: - reference_faces = get_reference_faces() if 'reference' in facefusion.globals.face_selector_mode else None - - for queue_payload in process_manager.manage(queue_payloads): - target_vision_path = queue_payload['frame_path'] - target_vision_frame = read_image(target_vision_path) - output_vision_frame = process_frame( - { - 'reference_faces': reference_faces, - 'target_vision_frame': target_vision_frame - }) - write_image(target_vision_path, output_vision_frame) - update_progress(1) - - -def process_image(source_paths : List[str], target_path : str, output_path : str) -> None: - reference_faces = get_reference_faces() if 'reference' in facefusion.globals.face_selector_mode else None - target_vision_frame = read_static_image(target_path) - output_vision_frame = process_frame( - { - 'reference_faces': reference_faces, - 'target_vision_frame': target_vision_frame - }) - write_image(output_path, output_vision_frame) - - -def process_video(source_paths : List[str], temp_frame_paths : List[str]) -> None: - frame_processors.multi_process_frames(source_paths, temp_frame_paths, process_frames) diff --git a/facefusion/processors/frame/modules/face_enhancer.py b/facefusion/processors/frame/modules/face_enhancer.py deleted file mode 100755 index 2be9f971..00000000 --- a/facefusion/processors/frame/modules/face_enhancer.py +++ /dev/null @@ -1,301 +0,0 @@ -from typing import Any, List, Literal, Optional -from argparse import ArgumentParser -from time import sleep -import cv2 -import numpy -import onnxruntime - -import facefusion.globals -import facefusion.processors.frame.core as frame_processors -from facefusion import config, process_manager, logger, wording -from facefusion.face_analyser import get_many_faces, clear_face_analyser, find_similar_faces, get_one_face -from facefusion.face_masker import create_static_box_mask, create_occlusion_mask, clear_face_occluder -from facefusion.face_helper import warp_face_by_face_landmark_5, paste_back -from facefusion.execution import apply_execution_provider_options -from facefusion.content_analyser import clear_content_analyser -from facefusion.face_store import get_reference_faces -from facefusion.normalizer import normalize_output_path -from facefusion.thread_helper import thread_lock, thread_semaphore -from facefusion.typing import Face, VisionFrame, UpdateProgress, ProcessMode, ModelSet, OptionsWithModel, QueuePayload -from facefusion.common_helper import create_metavar -from facefusion.filesystem import is_file, is_image, is_video, resolve_relative_path -from facefusion.download import conditional_download, is_download_done -from facefusion.vision import read_image, read_static_image, write_image -from facefusion.processors.frame.typings import FaceEnhancerInputs -from facefusion.processors.frame import globals as frame_processors_globals -from facefusion.processors.frame import choices as frame_processors_choices - -FRAME_PROCESSOR = None -NAME = __name__.upper() -MODELS : ModelSet =\ -{ - 'codeformer': - { - 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models/codeformer.onnx', - 'path': resolve_relative_path('../.assets/models/codeformer.onnx'), - 'template': 'ffhq_512', - 'size': (512, 512) - }, - 'gfpgan_1.2': - { - 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models/gfpgan_1.2.onnx', - 'path': resolve_relative_path('../.assets/models/gfpgan_1.2.onnx'), - 'template': 'ffhq_512', - 'size': (512, 512) - }, - 'gfpgan_1.3': - { - 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models/gfpgan_1.3.onnx', - 'path': resolve_relative_path('../.assets/models/gfpgan_1.3.onnx'), - 'template': 'ffhq_512', - 'size': (512, 512) - }, - 'gfpgan_1.4': - { - 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models/gfpgan_1.4.onnx', - 'path': resolve_relative_path('../.assets/models/gfpgan_1.4.onnx'), - 'template': 'ffhq_512', - 'size': (512, 512) - }, - 'gpen_bfr_256': - { - 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models/gpen_bfr_256.onnx', - 'path': resolve_relative_path('../.assets/models/gpen_bfr_256.onnx'), - 'template': 'arcface_128_v2', - 'size': (256, 256) - }, - 'gpen_bfr_512': - { - 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models/gpen_bfr_512.onnx', - 'path': resolve_relative_path('../.assets/models/gpen_bfr_512.onnx'), - 'template': 'ffhq_512', - 'size': (512, 512) - }, - 'gpen_bfr_1024': - { - 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models/gpen_bfr_1024.onnx', - 'path': resolve_relative_path('../.assets/models/gpen_bfr_1024.onnx'), - 'template': 'ffhq_512', - 'size': (1024, 1024) - }, - 'gpen_bfr_2048': - { - 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models/gpen_bfr_2048.onnx', - 'path': resolve_relative_path('../.assets/models/gpen_bfr_2048.onnx'), - 'template': 'ffhq_512', - 'size': (2048, 2048) - }, - 'restoreformer_plus_plus': - { - 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models/restoreformer_plus_plus.onnx', - 'path': resolve_relative_path('../.assets/models/restoreformer_plus_plus.onnx'), - 'template': 'ffhq_512', - 'size': (512, 512) - } -} -OPTIONS : Optional[OptionsWithModel] = None - - -def get_frame_processor() -> Any: - global FRAME_PROCESSOR - - with thread_lock(): - while process_manager.is_checking(): - sleep(0.5) - if FRAME_PROCESSOR is None: - model_path = get_options('model').get('path') - FRAME_PROCESSOR = onnxruntime.InferenceSession(model_path, providers = apply_execution_provider_options(facefusion.globals.execution_device_id, facefusion.globals.execution_providers)) - return FRAME_PROCESSOR - - -def clear_frame_processor() -> None: - global FRAME_PROCESSOR - - FRAME_PROCESSOR = None - - -def get_options(key : Literal['model']) -> Any: - global OPTIONS - - if OPTIONS is None: - OPTIONS =\ - { - 'model': MODELS[frame_processors_globals.face_enhancer_model] - } - return OPTIONS.get(key) - - -def set_options(key : Literal['model'], value : Any) -> None: - global OPTIONS - - OPTIONS[key] = value - - -def register_args(program : ArgumentParser) -> None: - program.add_argument('--face-enhancer-model', help = wording.get('help.face_enhancer_model'), default = config.get_str_value('frame_processors.face_enhancer_model', 'gfpgan_1.4'), choices = frame_processors_choices.face_enhancer_models) - program.add_argument('--face-enhancer-blend', help = wording.get('help.face_enhancer_blend'), type = int, default = config.get_int_value('frame_processors.face_enhancer_blend', '80'), choices = frame_processors_choices.face_enhancer_blend_range, metavar = create_metavar(frame_processors_choices.face_enhancer_blend_range)) - - -def apply_args(program : ArgumentParser) -> None: - args = program.parse_args() - frame_processors_globals.face_enhancer_model = args.face_enhancer_model - frame_processors_globals.face_enhancer_blend = args.face_enhancer_blend - - -def pre_check() -> bool: - download_directory_path = resolve_relative_path('../.assets/models') - model_url = get_options('model').get('url') - model_path = get_options('model').get('path') - - if not facefusion.globals.skip_download: - process_manager.check() - conditional_download(download_directory_path, [ model_url ]) - process_manager.end() - return is_file(model_path) - - -def post_check() -> bool: - model_url = get_options('model').get('url') - model_path = get_options('model').get('path') - - if not facefusion.globals.skip_download and not is_download_done(model_url, model_path): - logger.error(wording.get('model_download_not_done') + wording.get('exclamation_mark'), NAME) - return False - if not is_file(model_path): - logger.error(wording.get('model_file_not_present') + wording.get('exclamation_mark'), NAME) - return False - return True - - -def pre_process(mode : ProcessMode) -> bool: - if mode in [ 'output', 'preview' ] and not is_image(facefusion.globals.target_path) and not is_video(facefusion.globals.target_path): - logger.error(wording.get('select_image_or_video_target') + wording.get('exclamation_mark'), NAME) - return False - if mode == 'output' and not normalize_output_path(facefusion.globals.target_path, facefusion.globals.output_path): - logger.error(wording.get('select_file_or_directory_output') + wording.get('exclamation_mark'), NAME) - return False - return True - - -def post_process() -> None: - read_static_image.cache_clear() - if facefusion.globals.video_memory_strategy == 'strict' or facefusion.globals.video_memory_strategy == 'moderate': - clear_frame_processor() - if facefusion.globals.video_memory_strategy == 'strict': - clear_face_analyser() - clear_content_analyser() - clear_face_occluder() - - -def enhance_face(target_face: Face, temp_vision_frame : VisionFrame) -> VisionFrame: - model_template = get_options('model').get('template') - model_size = get_options('model').get('size') - crop_vision_frame, affine_matrix = warp_face_by_face_landmark_5(temp_vision_frame, target_face.landmarks.get('5/68'), model_template, model_size) - box_mask = create_static_box_mask(crop_vision_frame.shape[:2][::-1], facefusion.globals.face_mask_blur, (0, 0, 0, 0)) - crop_mask_list =\ - [ - box_mask - ] - - if 'occlusion' in facefusion.globals.face_mask_types: - occlusion_mask = create_occlusion_mask(crop_vision_frame) - crop_mask_list.append(occlusion_mask) - crop_vision_frame = prepare_crop_frame(crop_vision_frame) - crop_vision_frame = apply_enhance(crop_vision_frame) - crop_vision_frame = normalize_crop_frame(crop_vision_frame) - crop_mask = numpy.minimum.reduce(crop_mask_list).clip(0, 1) - paste_vision_frame = paste_back(temp_vision_frame, crop_vision_frame, crop_mask, affine_matrix) - temp_vision_frame = blend_frame(temp_vision_frame, paste_vision_frame) - return temp_vision_frame - - -def apply_enhance(crop_vision_frame : VisionFrame) -> VisionFrame: - frame_processor = get_frame_processor() - frame_processor_inputs = {} - - for frame_processor_input in frame_processor.get_inputs(): - if frame_processor_input.name == 'input': - frame_processor_inputs[frame_processor_input.name] = crop_vision_frame - if frame_processor_input.name == 'weight': - weight = numpy.array([ 1 ]).astype(numpy.double) - frame_processor_inputs[frame_processor_input.name] = weight - with thread_semaphore(): - crop_vision_frame = frame_processor.run(None, frame_processor_inputs)[0][0] - return crop_vision_frame - - -def prepare_crop_frame(crop_vision_frame : VisionFrame) -> VisionFrame: - crop_vision_frame = crop_vision_frame[:, :, ::-1] / 255.0 - crop_vision_frame = (crop_vision_frame - 0.5) / 0.5 - crop_vision_frame = numpy.expand_dims(crop_vision_frame.transpose(2, 0, 1), axis = 0).astype(numpy.float32) - return crop_vision_frame - - -def normalize_crop_frame(crop_vision_frame : VisionFrame) -> VisionFrame: - crop_vision_frame = numpy.clip(crop_vision_frame, -1, 1) - crop_vision_frame = (crop_vision_frame + 1) / 2 - crop_vision_frame = crop_vision_frame.transpose(1, 2, 0) - crop_vision_frame = (crop_vision_frame * 255.0).round() - crop_vision_frame = crop_vision_frame.astype(numpy.uint8)[:, :, ::-1] - return crop_vision_frame - - -def blend_frame(temp_vision_frame : VisionFrame, paste_vision_frame : VisionFrame) -> VisionFrame: - face_enhancer_blend = 1 - (frame_processors_globals.face_enhancer_blend / 100) - temp_vision_frame = cv2.addWeighted(temp_vision_frame, face_enhancer_blend, paste_vision_frame, 1 - face_enhancer_blend, 0) - return temp_vision_frame - - -def get_reference_frame(source_face : Face, target_face : Face, temp_vision_frame : VisionFrame) -> VisionFrame: - return enhance_face(target_face, temp_vision_frame) - - -def process_frame(inputs : FaceEnhancerInputs) -> VisionFrame: - reference_faces = inputs.get('reference_faces') - target_vision_frame = inputs.get('target_vision_frame') - - if facefusion.globals.face_selector_mode == 'many': - many_faces = get_many_faces(target_vision_frame) - if many_faces: - for target_face in many_faces: - target_vision_frame = enhance_face(target_face, target_vision_frame) - if facefusion.globals.face_selector_mode == 'one': - target_face = get_one_face(target_vision_frame) - if target_face: - target_vision_frame = enhance_face(target_face, target_vision_frame) - if facefusion.globals.face_selector_mode == 'reference': - similar_faces = find_similar_faces(reference_faces, target_vision_frame, facefusion.globals.reference_face_distance) - if similar_faces: - for similar_face in similar_faces: - target_vision_frame = enhance_face(similar_face, target_vision_frame) - return target_vision_frame - - -def process_frames(source_path : List[str], queue_payloads : List[QueuePayload], update_progress : UpdateProgress) -> None: - reference_faces = get_reference_faces() if 'reference' in facefusion.globals.face_selector_mode else None - - for queue_payload in process_manager.manage(queue_payloads): - target_vision_path = queue_payload['frame_path'] - target_vision_frame = read_image(target_vision_path) - output_vision_frame = process_frame( - { - 'reference_faces': reference_faces, - 'target_vision_frame': target_vision_frame - }) - write_image(target_vision_path, output_vision_frame) - update_progress(1) - - -def process_image(source_path : str, target_path : str, output_path : str) -> None: - reference_faces = get_reference_faces() if 'reference' in facefusion.globals.face_selector_mode else None - target_vision_frame = read_static_image(target_path) - output_vision_frame = process_frame( - { - 'reference_faces': reference_faces, - 'target_vision_frame': target_vision_frame - }) - write_image(output_path, output_vision_frame) - - -def process_video(source_paths : List[str], temp_frame_paths : List[str]) -> None: - frame_processors.multi_process_frames(None, temp_frame_paths, process_frames) diff --git a/facefusion/processors/frame/modules/face_swapper.py b/facefusion/processors/frame/modules/face_swapper.py deleted file mode 100755 index 047fa1f7..00000000 --- a/facefusion/processors/frame/modules/face_swapper.py +++ /dev/null @@ -1,369 +0,0 @@ -from typing import Any, List, Literal, Optional -from argparse import ArgumentParser -from time import sleep -import numpy -import onnx -import onnxruntime -from onnx import numpy_helper - -import facefusion.globals -import facefusion.processors.frame.core as frame_processors -from facefusion import config, process_manager, logger, wording -from facefusion.execution import has_execution_provider, apply_execution_provider_options -from facefusion.face_analyser import get_one_face, get_average_face, get_many_faces, find_similar_faces, clear_face_analyser -from facefusion.face_masker import create_static_box_mask, create_occlusion_mask, create_region_mask, clear_face_occluder, clear_face_parser -from facefusion.face_helper import warp_face_by_face_landmark_5, paste_back -from facefusion.face_store import get_reference_faces -from facefusion.content_analyser import clear_content_analyser -from facefusion.normalizer import normalize_output_path -from facefusion.thread_helper import thread_lock, conditional_thread_semaphore -from facefusion.typing import Face, Embedding, VisionFrame, UpdateProgress, ProcessMode, ModelSet, OptionsWithModel, QueuePayload -from facefusion.filesystem import is_file, is_image, has_image, is_video, filter_image_paths, resolve_relative_path -from facefusion.download import conditional_download, is_download_done -from facefusion.vision import read_image, read_static_image, read_static_images, write_image -from facefusion.processors.frame.typings import FaceSwapperInputs -from facefusion.processors.frame import globals as frame_processors_globals -from facefusion.processors.frame import choices as frame_processors_choices - -FRAME_PROCESSOR = None -MODEL_INITIALIZER = None -NAME = __name__.upper() -MODELS : ModelSet =\ -{ - 'blendswap_256': - { - 'type': 'blendswap', - 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models/blendswap_256.onnx', - 'path': resolve_relative_path('../.assets/models/blendswap_256.onnx'), - 'template': 'ffhq_512', - 'size': (256, 256), - 'mean': [ 0.0, 0.0, 0.0 ], - 'standard_deviation': [ 1.0, 1.0, 1.0 ] - }, - 'inswapper_128': - { - 'type': 'inswapper', - 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models/inswapper_128.onnx', - 'path': resolve_relative_path('../.assets/models/inswapper_128.onnx'), - 'template': 'arcface_128_v2', - 'size': (128, 128), - 'mean': [ 0.0, 0.0, 0.0 ], - 'standard_deviation': [ 1.0, 1.0, 1.0 ] - }, - 'inswapper_128_fp16': - { - 'type': 'inswapper', - 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models/inswapper_128_fp16.onnx', - 'path': resolve_relative_path('../.assets/models/inswapper_128_fp16.onnx'), - 'template': 'arcface_128_v2', - 'size': (128, 128), - 'mean': [ 0.0, 0.0, 0.0 ], - 'standard_deviation': [ 1.0, 1.0, 1.0 ] - }, - 'simswap_256': - { - 'type': 'simswap', - 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models/simswap_256.onnx', - 'path': resolve_relative_path('../.assets/models/simswap_256.onnx'), - 'template': 'arcface_112_v1', - 'size': (256, 256), - 'mean': [ 0.485, 0.456, 0.406 ], - 'standard_deviation': [ 0.229, 0.224, 0.225 ] - }, - 'simswap_512_unofficial': - { - 'type': 'simswap', - 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models/simswap_512_unofficial.onnx', - 'path': resolve_relative_path('../.assets/models/simswap_512_unofficial.onnx'), - 'template': 'arcface_112_v1', - 'size': (512, 512), - 'mean': [ 0.0, 0.0, 0.0 ], - 'standard_deviation': [ 1.0, 1.0, 1.0 ] - }, - 'uniface_256': - { - 'type': 'uniface', - 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models/uniface_256.onnx', - 'path': resolve_relative_path('../.assets/models/uniface_256.onnx'), - 'template': 'ffhq_512', - 'size': (256, 256), - 'mean': [ 0.0, 0.0, 0.0 ], - 'standard_deviation': [ 1.0, 1.0, 1.0 ] - } -} -OPTIONS : Optional[OptionsWithModel] = None - - -def get_frame_processor() -> Any: - global FRAME_PROCESSOR - - with thread_lock(): - while process_manager.is_checking(): - sleep(0.5) - if FRAME_PROCESSOR is None: - model_path = get_options('model').get('path') - FRAME_PROCESSOR = onnxruntime.InferenceSession(model_path, providers = apply_execution_provider_options(facefusion.globals.execution_device_id, facefusion.globals.execution_providers)) - return FRAME_PROCESSOR - - -def clear_frame_processor() -> None: - global FRAME_PROCESSOR - - FRAME_PROCESSOR = None - - -def get_model_initializer() -> Any: - global MODEL_INITIALIZER - - with thread_lock(): - while process_manager.is_checking(): - sleep(0.5) - if MODEL_INITIALIZER is None: - model_path = get_options('model').get('path') - model = onnx.load(model_path) - MODEL_INITIALIZER = numpy_helper.to_array(model.graph.initializer[-1]) - return MODEL_INITIALIZER - - -def clear_model_initializer() -> None: - global MODEL_INITIALIZER - - MODEL_INITIALIZER = None - - -def get_options(key : Literal['model']) -> Any: - global OPTIONS - - if OPTIONS is None: - OPTIONS =\ - { - 'model': MODELS[frame_processors_globals.face_swapper_model] - } - return OPTIONS.get(key) - - -def set_options(key : Literal['model'], value : Any) -> None: - global OPTIONS - - OPTIONS[key] = value - - -def register_args(program : ArgumentParser) -> None: - if has_execution_provider('CoreMLExecutionProvider') or has_execution_provider('OpenVINOExecutionProvider'): - face_swapper_model_fallback = 'inswapper_128' - else: - face_swapper_model_fallback = 'inswapper_128_fp16' - program.add_argument('--face-swapper-model', help = wording.get('help.face_swapper_model'), default = config.get_str_value('frame_processors.face_swapper_model', face_swapper_model_fallback), choices = frame_processors_choices.face_swapper_models) - - -def apply_args(program : ArgumentParser) -> None: - args = program.parse_args() - frame_processors_globals.face_swapper_model = args.face_swapper_model - if args.face_swapper_model == 'blendswap_256': - facefusion.globals.face_recognizer_model = 'arcface_blendswap' - if args.face_swapper_model == 'inswapper_128' or args.face_swapper_model == 'inswapper_128_fp16': - facefusion.globals.face_recognizer_model = 'arcface_inswapper' - if args.face_swapper_model == 'simswap_256' or args.face_swapper_model == 'simswap_512_unofficial': - facefusion.globals.face_recognizer_model = 'arcface_simswap' - if args.face_swapper_model == 'uniface_256': - facefusion.globals.face_recognizer_model = 'arcface_uniface' - - -def pre_check() -> bool: - download_directory_path = resolve_relative_path('../.assets/models') - model_url = get_options('model').get('url') - model_path = get_options('model').get('path') - - if not facefusion.globals.skip_download: - process_manager.check() - conditional_download(download_directory_path, [ model_url ]) - process_manager.end() - return is_file(model_path) - - -def post_check() -> bool: - model_url = get_options('model').get('url') - model_path = get_options('model').get('path') - - if not facefusion.globals.skip_download and not is_download_done(model_url, model_path): - logger.error(wording.get('model_download_not_done') + wording.get('exclamation_mark'), NAME) - return False - if not is_file(model_path): - logger.error(wording.get('model_file_not_present') + wording.get('exclamation_mark'), NAME) - return False - return True - - -def pre_process(mode : ProcessMode) -> bool: - if not has_image(facefusion.globals.source_paths): - logger.error(wording.get('select_image_source') + wording.get('exclamation_mark'), NAME) - return False - source_image_paths = filter_image_paths(facefusion.globals.source_paths) - source_frames = read_static_images(source_image_paths) - for source_frame in source_frames: - if not get_one_face(source_frame): - logger.error(wording.get('no_source_face_detected') + wording.get('exclamation_mark'), NAME) - return False - if mode in [ 'output', 'preview' ] and not is_image(facefusion.globals.target_path) and not is_video(facefusion.globals.target_path): - logger.error(wording.get('select_image_or_video_target') + wording.get('exclamation_mark'), NAME) - return False - if mode == 'output' and not normalize_output_path(facefusion.globals.target_path, facefusion.globals.output_path): - logger.error(wording.get('select_file_or_directory_output') + wording.get('exclamation_mark'), NAME) - return False - return True - - -def post_process() -> None: - read_static_image.cache_clear() - if facefusion.globals.video_memory_strategy == 'strict' or facefusion.globals.video_memory_strategy == 'moderate': - clear_model_initializer() - clear_frame_processor() - if facefusion.globals.video_memory_strategy == 'strict': - clear_face_analyser() - clear_content_analyser() - clear_face_occluder() - clear_face_parser() - - -def swap_face(source_face : Face, target_face : Face, temp_vision_frame : VisionFrame) -> VisionFrame: - model_template = get_options('model').get('template') - model_size = get_options('model').get('size') - crop_vision_frame, affine_matrix = warp_face_by_face_landmark_5(temp_vision_frame, target_face.landmarks.get('5/68'), model_template, model_size) - crop_mask_list = [] - - if 'box' in facefusion.globals.face_mask_types: - box_mask = create_static_box_mask(crop_vision_frame.shape[:2][::-1], facefusion.globals.face_mask_blur, facefusion.globals.face_mask_padding) - crop_mask_list.append(box_mask) - if 'occlusion' in facefusion.globals.face_mask_types: - occlusion_mask = create_occlusion_mask(crop_vision_frame) - crop_mask_list.append(occlusion_mask) - crop_vision_frame = prepare_crop_frame(crop_vision_frame) - crop_vision_frame = apply_swap(source_face, crop_vision_frame) - crop_vision_frame = normalize_crop_frame(crop_vision_frame) - if 'region' in facefusion.globals.face_mask_types: - region_mask = create_region_mask(crop_vision_frame, facefusion.globals.face_mask_regions) - crop_mask_list.append(region_mask) - crop_mask = numpy.minimum.reduce(crop_mask_list).clip(0, 1) - temp_vision_frame = paste_back(temp_vision_frame, crop_vision_frame, crop_mask, affine_matrix) - return temp_vision_frame - - -def apply_swap(source_face : Face, crop_vision_frame : VisionFrame) -> VisionFrame: - frame_processor = get_frame_processor() - model_type = get_options('model').get('type') - frame_processor_inputs = {} - - for frame_processor_input in frame_processor.get_inputs(): - if frame_processor_input.name == 'source': - if model_type == 'blendswap' or model_type == 'uniface': - frame_processor_inputs[frame_processor_input.name] = prepare_source_frame(source_face) - else: - frame_processor_inputs[frame_processor_input.name] = prepare_source_embedding(source_face) - if frame_processor_input.name == 'target': - frame_processor_inputs[frame_processor_input.name] = crop_vision_frame - with conditional_thread_semaphore(facefusion.globals.execution_providers): - crop_vision_frame = frame_processor.run(None, frame_processor_inputs)[0][0] - return crop_vision_frame - - -def prepare_source_frame(source_face : Face) -> VisionFrame: - model_type = get_options('model').get('type') - source_vision_frame = read_static_image(facefusion.globals.source_paths[0]) - if model_type == 'blendswap': - source_vision_frame, _ = warp_face_by_face_landmark_5(source_vision_frame, source_face.landmarks.get('5/68'), 'arcface_112_v2', (112, 112)) - if model_type == 'uniface': - source_vision_frame, _ = warp_face_by_face_landmark_5(source_vision_frame, source_face.landmarks.get('5/68'), 'ffhq_512', (256, 256)) - source_vision_frame = source_vision_frame[:, :, ::-1] / 255.0 - source_vision_frame = source_vision_frame.transpose(2, 0, 1) - source_vision_frame = numpy.expand_dims(source_vision_frame, axis = 0).astype(numpy.float32) - return source_vision_frame - - -def prepare_source_embedding(source_face : Face) -> Embedding: - model_type = get_options('model').get('type') - if model_type == 'inswapper': - model_initializer = get_model_initializer() - source_embedding = source_face.embedding.reshape((1, -1)) - source_embedding = numpy.dot(source_embedding, model_initializer) / numpy.linalg.norm(source_embedding) - else: - source_embedding = source_face.normed_embedding.reshape(1, -1) - return source_embedding - - -def prepare_crop_frame(crop_vision_frame : VisionFrame) -> VisionFrame: - model_mean = get_options('model').get('mean') - model_standard_deviation = get_options('model').get('standard_deviation') - crop_vision_frame = crop_vision_frame[:, :, ::-1] / 255.0 - crop_vision_frame = (crop_vision_frame - model_mean) / model_standard_deviation - crop_vision_frame = crop_vision_frame.transpose(2, 0, 1) - crop_vision_frame = numpy.expand_dims(crop_vision_frame, axis = 0).astype(numpy.float32) - return crop_vision_frame - - -def normalize_crop_frame(crop_vision_frame : VisionFrame) -> VisionFrame: - crop_vision_frame = crop_vision_frame.transpose(1, 2, 0) - crop_vision_frame = (crop_vision_frame * 255.0).round() - crop_vision_frame = crop_vision_frame[:, :, ::-1] - return crop_vision_frame - - -def get_reference_frame(source_face : Face, target_face : Face, temp_vision_frame : VisionFrame) -> VisionFrame: - return swap_face(source_face, target_face, temp_vision_frame) - - -def process_frame(inputs : FaceSwapperInputs) -> VisionFrame: - reference_faces = inputs.get('reference_faces') - source_face = inputs.get('source_face') - target_vision_frame = inputs.get('target_vision_frame') - - if facefusion.globals.face_selector_mode == 'many': - many_faces = get_many_faces(target_vision_frame) - if many_faces: - for target_face in many_faces: - target_vision_frame = swap_face(source_face, target_face, target_vision_frame) - if facefusion.globals.face_selector_mode == 'one': - target_face = get_one_face(target_vision_frame) - if target_face: - target_vision_frame = swap_face(source_face, target_face, target_vision_frame) - if facefusion.globals.face_selector_mode == 'reference': - similar_faces = find_similar_faces(reference_faces, target_vision_frame, facefusion.globals.reference_face_distance) - if similar_faces: - for similar_face in similar_faces: - target_vision_frame = swap_face(source_face, similar_face, target_vision_frame) - return target_vision_frame - - -def process_frames(source_paths : List[str], queue_payloads : List[QueuePayload], update_progress : UpdateProgress) -> None: - reference_faces = get_reference_faces() if 'reference' in facefusion.globals.face_selector_mode else None - source_frames = read_static_images(source_paths) - source_face = get_average_face(source_frames) - - for queue_payload in process_manager.manage(queue_payloads): - target_vision_path = queue_payload['frame_path'] - target_vision_frame = read_image(target_vision_path) - output_vision_frame = process_frame( - { - 'reference_faces': reference_faces, - 'source_face': source_face, - 'target_vision_frame': target_vision_frame - }) - write_image(target_vision_path, output_vision_frame) - update_progress(1) - - -def process_image(source_paths : List[str], target_path : str, output_path : str) -> None: - reference_faces = get_reference_faces() if 'reference' in facefusion.globals.face_selector_mode else None - source_frames = read_static_images(source_paths) - source_face = get_average_face(source_frames) - target_vision_frame = read_static_image(target_path) - output_vision_frame = process_frame( - { - 'reference_faces': reference_faces, - 'source_face': source_face, - 'target_vision_frame': target_vision_frame - }) - write_image(output_path, output_vision_frame) - - -def process_video(source_paths : List[str], temp_frame_paths : List[str]) -> None: - frame_processors.multi_process_frames(source_paths, temp_frame_paths, process_frames) diff --git a/facefusion/processors/frame/modules/frame_colorizer.py b/facefusion/processors/frame/modules/frame_colorizer.py deleted file mode 100644 index 6125815a..00000000 --- a/facefusion/processors/frame/modules/frame_colorizer.py +++ /dev/null @@ -1,241 +0,0 @@ -from typing import Any, List, Literal, Optional -from argparse import ArgumentParser -from time import sleep -import cv2 -import numpy -import onnxruntime - -import facefusion.globals -import facefusion.processors.frame.core as frame_processors -from facefusion import config, process_manager, logger, wording -from facefusion.face_analyser import clear_face_analyser -from facefusion.content_analyser import clear_content_analyser -from facefusion.execution import apply_execution_provider_options -from facefusion.normalizer import normalize_output_path -from facefusion.thread_helper import thread_lock, thread_semaphore -from facefusion.typing import Face, VisionFrame, UpdateProgress, ProcessMode, ModelSet, OptionsWithModel, QueuePayload -from facefusion.common_helper import create_metavar -from facefusion.filesystem import is_file, resolve_relative_path, is_image, is_video -from facefusion.download import conditional_download, is_download_done -from facefusion.vision import read_image, read_static_image, write_image, unpack_resolution -from facefusion.processors.frame.typings import FrameColorizerInputs -from facefusion.processors.frame import globals as frame_processors_globals -from facefusion.processors.frame import choices as frame_processors_choices - -FRAME_PROCESSOR = None -NAME = __name__.upper() -MODELS : ModelSet =\ -{ - 'ddcolor': - { - 'type': 'ddcolor', - 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models/ddcolor.onnx', - 'path': resolve_relative_path('../.assets/models/ddcolor.onnx') - }, - 'ddcolor_artistic': - { - 'type': 'ddcolor', - 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models/ddcolor_artistic.onnx', - 'path': resolve_relative_path('../.assets/models/ddcolor_artistic.onnx') - }, - 'deoldify': - { - 'type': 'deoldify', - 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models/deoldify.onnx', - 'path': resolve_relative_path('../.assets/models/deoldify.onnx') - }, - 'deoldify_artistic': - { - 'type': 'deoldify', - 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models/deoldify_artistic.onnx', - 'path': resolve_relative_path('../.assets/models/deoldify_artistic.onnx') - }, - 'deoldify_stable': - { - 'type': 'deoldify', - 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models/deoldify_stable.onnx', - 'path': resolve_relative_path('../.assets/models/deoldify_stable.onnx') - } -} -OPTIONS : Optional[OptionsWithModel] = None - - -def get_frame_processor() -> Any: - global FRAME_PROCESSOR - - with thread_lock(): - while process_manager.is_checking(): - sleep(0.5) - if FRAME_PROCESSOR is None: - model_path = get_options('model').get('path') - FRAME_PROCESSOR = onnxruntime.InferenceSession(model_path, providers = apply_execution_provider_options(facefusion.globals.execution_device_id, facefusion.globals.execution_providers)) - return FRAME_PROCESSOR - - -def clear_frame_processor() -> None: - global FRAME_PROCESSOR - - FRAME_PROCESSOR = None - - -def get_options(key : Literal['model']) -> Any: - global OPTIONS - - if OPTIONS is None: - OPTIONS =\ - { - 'model': MODELS[frame_processors_globals.frame_colorizer_model] - } - return OPTIONS.get(key) - - -def set_options(key : Literal['model'], value : Any) -> None: - global OPTIONS - - OPTIONS[key] = value - - -def register_args(program : ArgumentParser) -> None: - program.add_argument('--frame-colorizer-model', help = wording.get('help.frame_colorizer_model'), default = config.get_str_value('frame_processors.frame_colorizer_model', 'ddcolor'), choices = frame_processors_choices.frame_colorizer_models) - program.add_argument('--frame-colorizer-blend', help = wording.get('help.frame_colorizer_blend'), type = int, default = config.get_int_value('frame_processors.frame_colorizer_blend', '100'), choices = frame_processors_choices.frame_colorizer_blend_range, metavar = create_metavar(frame_processors_choices.frame_colorizer_blend_range)) - program.add_argument('--frame-colorizer-size', help = wording.get('help.frame_colorizer_size'), type = str, default = config.get_str_value('frame_processors.frame_colorizer_size', '256x256'), choices = frame_processors_choices.frame_colorizer_sizes) - - -def apply_args(program : ArgumentParser) -> None: - args = program.parse_args() - frame_processors_globals.frame_colorizer_model = args.frame_colorizer_model - frame_processors_globals.frame_colorizer_blend = args.frame_colorizer_blend - frame_processors_globals.frame_colorizer_size = args.frame_colorizer_size - - -def pre_check() -> bool: - download_directory_path = resolve_relative_path('../.assets/models') - model_url = get_options('model').get('url') - model_path = get_options('model').get('path') - - if not facefusion.globals.skip_download: - process_manager.check() - conditional_download(download_directory_path, [ model_url ]) - process_manager.end() - return is_file(model_path) - - -def post_check() -> bool: - model_url = get_options('model').get('url') - model_path = get_options('model').get('path') - - if not facefusion.globals.skip_download and not is_download_done(model_url, model_path): - logger.error(wording.get('model_download_not_done') + wording.get('exclamation_mark'), NAME) - return False - if not is_file(model_path): - logger.error(wording.get('model_file_not_present') + wording.get('exclamation_mark'), NAME) - return False - return True - - -def pre_process(mode : ProcessMode) -> bool: - if mode in [ 'output', 'preview' ] and not is_image(facefusion.globals.target_path) and not is_video(facefusion.globals.target_path): - logger.error(wording.get('select_image_or_video_target') + wording.get('exclamation_mark'), NAME) - return False - if mode == 'output' and not normalize_output_path(facefusion.globals.target_path, facefusion.globals.output_path): - logger.error(wording.get('select_file_or_directory_output') + wording.get('exclamation_mark'), NAME) - return False - return True - - -def post_process() -> None: - read_static_image.cache_clear() - if facefusion.globals.video_memory_strategy == 'strict' or facefusion.globals.video_memory_strategy == 'moderate': - clear_frame_processor() - if facefusion.globals.video_memory_strategy == 'strict': - clear_face_analyser() - clear_content_analyser() - - -def colorize_frame(temp_vision_frame : VisionFrame) -> VisionFrame: - frame_processor = get_frame_processor() - prepare_vision_frame = prepare_temp_frame(temp_vision_frame) - with thread_semaphore(): - color_vision_frame = frame_processor.run(None, - { - frame_processor.get_inputs()[0].name: prepare_vision_frame - })[0][0] - color_vision_frame = merge_color_frame(temp_vision_frame, color_vision_frame) - color_vision_frame = blend_frame(temp_vision_frame, color_vision_frame) - return color_vision_frame - - -def prepare_temp_frame(temp_vision_frame : VisionFrame) -> VisionFrame: - model_size = unpack_resolution(frame_processors_globals.frame_colorizer_size) - model_type = get_options('model').get('type') - temp_vision_frame = cv2.cvtColor(temp_vision_frame, cv2.COLOR_BGR2GRAY) - temp_vision_frame = cv2.cvtColor(temp_vision_frame, cv2.COLOR_GRAY2RGB) - if model_type == 'ddcolor': - temp_vision_frame = (temp_vision_frame / 255.0).astype(numpy.float32) - temp_vision_frame = cv2.cvtColor(temp_vision_frame, cv2.COLOR_RGB2LAB)[:, :, :1] - temp_vision_frame = numpy.concatenate((temp_vision_frame, numpy.zeros_like(temp_vision_frame), numpy.zeros_like(temp_vision_frame)), axis = -1) - temp_vision_frame = cv2.cvtColor(temp_vision_frame, cv2.COLOR_LAB2RGB) - temp_vision_frame = cv2.resize(temp_vision_frame, model_size) - temp_vision_frame = temp_vision_frame.transpose((2, 0, 1)) - temp_vision_frame = numpy.expand_dims(temp_vision_frame, axis = 0).astype(numpy.float32) - return temp_vision_frame - - -def merge_color_frame(temp_vision_frame : VisionFrame, color_vision_frame : VisionFrame) -> VisionFrame: - model_type = get_options('model').get('type') - color_vision_frame = color_vision_frame.transpose(1, 2, 0) - color_vision_frame = cv2.resize(color_vision_frame, (temp_vision_frame.shape[1], temp_vision_frame.shape[0])) - if model_type == 'ddcolor': - temp_vision_frame = (temp_vision_frame / 255.0).astype(numpy.float32) - temp_vision_frame = cv2.cvtColor(temp_vision_frame, cv2.COLOR_BGR2LAB)[:, :, :1] - color_vision_frame = numpy.concatenate((temp_vision_frame, color_vision_frame), axis = -1) - color_vision_frame = cv2.cvtColor(color_vision_frame, cv2.COLOR_LAB2BGR) - color_vision_frame = (color_vision_frame * 255.0).round().astype(numpy.uint8) - if model_type == 'deoldify': - temp_blue_channel, _, _ = cv2.split(temp_vision_frame) - color_vision_frame = cv2.cvtColor(color_vision_frame, cv2.COLOR_BGR2RGB).astype(numpy.uint8) - color_vision_frame = cv2.cvtColor(color_vision_frame, cv2.COLOR_BGR2LAB) - _, color_green_channel, color_red_channel = cv2.split(color_vision_frame) - color_vision_frame = cv2.merge((temp_blue_channel, color_green_channel, color_red_channel)) - color_vision_frame = cv2.cvtColor(color_vision_frame, cv2.COLOR_LAB2BGR) - return color_vision_frame - - -def blend_frame(temp_vision_frame : VisionFrame, paste_vision_frame : VisionFrame) -> VisionFrame: - frame_colorizer_blend = 1 - (frame_processors_globals.frame_colorizer_blend / 100) - temp_vision_frame = cv2.addWeighted(temp_vision_frame, frame_colorizer_blend, paste_vision_frame, 1 - frame_colorizer_blend, 0) - return temp_vision_frame - - -def get_reference_frame(source_face : Face, target_face : Face, temp_vision_frame : VisionFrame) -> VisionFrame: - pass - - -def process_frame(inputs : FrameColorizerInputs) -> VisionFrame: - target_vision_frame = inputs.get('target_vision_frame') - return colorize_frame(target_vision_frame) - - -def process_frames(source_paths : List[str], queue_payloads : List[QueuePayload], update_progress : UpdateProgress) -> None: - for queue_payload in process_manager.manage(queue_payloads): - target_vision_path = queue_payload['frame_path'] - target_vision_frame = read_image(target_vision_path) - output_vision_frame = process_frame( - { - 'target_vision_frame': target_vision_frame - }) - write_image(target_vision_path, output_vision_frame) - update_progress(1) - - -def process_image(source_paths : List[str], target_path : str, output_path : str) -> None: - target_vision_frame = read_static_image(target_path) - output_vision_frame = process_frame( - { - 'target_vision_frame': target_vision_frame - }) - write_image(output_path, output_vision_frame) - - -def process_video(source_paths : List[str], temp_frame_paths : List[str]) -> None: - frame_processors.multi_process_frames(None, temp_frame_paths, process_frames) diff --git a/facefusion/processors/frame/modules/frame_enhancer.py b/facefusion/processors/frame/modules/frame_enhancer.py deleted file mode 100644 index dd7234a2..00000000 --- a/facefusion/processors/frame/modules/frame_enhancer.py +++ /dev/null @@ -1,263 +0,0 @@ -from typing import Any, List, Literal, Optional -from argparse import ArgumentParser -from time import sleep -import cv2 -import numpy -import onnxruntime - -import facefusion.globals -import facefusion.processors.frame.core as frame_processors -from facefusion import config, process_manager, logger, wording -from facefusion.face_analyser import clear_face_analyser -from facefusion.content_analyser import clear_content_analyser -from facefusion.execution import apply_execution_provider_options -from facefusion.normalizer import normalize_output_path -from facefusion.thread_helper import thread_lock, conditional_thread_semaphore -from facefusion.typing import Face, VisionFrame, UpdateProgress, ProcessMode, ModelSet, OptionsWithModel, QueuePayload -from facefusion.common_helper import create_metavar -from facefusion.filesystem import is_file, resolve_relative_path, is_image, is_video -from facefusion.download import conditional_download, is_download_done -from facefusion.vision import read_image, read_static_image, write_image, merge_tile_frames, create_tile_frames -from facefusion.processors.frame.typings import FrameEnhancerInputs -from facefusion.processors.frame import globals as frame_processors_globals -from facefusion.processors.frame import choices as frame_processors_choices - -FRAME_PROCESSOR = None -NAME = __name__.upper() -MODELS : ModelSet =\ -{ - 'clear_reality_x4': - { - 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models/clear_reality_x4.onnx', - 'path': resolve_relative_path('../.assets/models/clear_reality_x4.onnx'), - 'size': (128, 8, 4), - 'scale': 4 - }, - 'lsdir_x4': - { - 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models/lsdir_x4.onnx', - 'path': resolve_relative_path('../.assets/models/lsdir_x4.onnx'), - 'size': (128, 8, 4), - 'scale': 4 - }, - 'nomos8k_sc_x4': - { - 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models/nomos8k_sc_x4.onnx', - 'path': resolve_relative_path('../.assets/models/nomos8k_sc_x4.onnx'), - 'size': (128, 8, 4), - 'scale': 4 - }, - 'real_esrgan_x2': - { - 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models/real_esrgan_x2.onnx', - 'path': resolve_relative_path('../.assets/models/real_esrgan_x2.onnx'), - 'size': (256, 16, 8), - 'scale': 2 - }, - 'real_esrgan_x2_fp16': - { - 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models/real_esrgan_x2_fp16.onnx', - 'path': resolve_relative_path('../.assets/models/real_esrgan_x2_fp16.onnx'), - 'size': (256, 16, 8), - 'scale': 2 - }, - 'real_esrgan_x4': - { - 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models/real_esrgan_x4.onnx', - 'path': resolve_relative_path('../.assets/models/real_esrgan_x4.onnx'), - 'size': (256, 16, 8), - 'scale': 4 - }, - 'real_esrgan_x4_fp16': - { - 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models/real_esrgan_x4_fp16.onnx', - 'path': resolve_relative_path('../.assets/models/real_esrgan_x4_fp16.onnx'), - 'size': (256, 16, 8), - 'scale': 4 - }, - 'real_hatgan_x4': - { - 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models/real_hatgan_x4.onnx', - 'path': resolve_relative_path('../.assets/models/real_hatgan_x4.onnx'), - 'size': (256, 16, 8), - 'scale': 4 - }, - 'span_kendata_x4': - { - 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models/span_kendata_x4.onnx', - 'path': resolve_relative_path('../.assets/models/span_kendata_x4.onnx'), - 'size': (128, 8, 4), - 'scale': 4 - }, - 'ultra_sharp_x4': - { - 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models/ultra_sharp_x4.onnx', - 'path': resolve_relative_path('../.assets/models/ultra_sharp_x4.onnx'), - 'size': (128, 8, 4), - 'scale': 4 - } -} -OPTIONS : Optional[OptionsWithModel] = None - - -def get_frame_processor() -> Any: - global FRAME_PROCESSOR - - with thread_lock(): - while process_manager.is_checking(): - sleep(0.5) - if FRAME_PROCESSOR is None: - model_path = get_options('model').get('path') - FRAME_PROCESSOR = onnxruntime.InferenceSession(model_path, providers = apply_execution_provider_options(facefusion.globals.execution_device_id, facefusion.globals.execution_providers)) - return FRAME_PROCESSOR - - -def clear_frame_processor() -> None: - global FRAME_PROCESSOR - - FRAME_PROCESSOR = None - - -def get_options(key : Literal['model']) -> Any: - global OPTIONS - - if OPTIONS is None: - OPTIONS =\ - { - 'model': MODELS[frame_processors_globals.frame_enhancer_model] - } - return OPTIONS.get(key) - - -def set_options(key : Literal['model'], value : Any) -> None: - global OPTIONS - - OPTIONS[key] = value - - -def register_args(program : ArgumentParser) -> None: - program.add_argument('--frame-enhancer-model', help = wording.get('help.frame_enhancer_model'), default = config.get_str_value('frame_processors.frame_enhancer_model', 'span_kendata_x4'), choices = frame_processors_choices.frame_enhancer_models) - program.add_argument('--frame-enhancer-blend', help = wording.get('help.frame_enhancer_blend'), type = int, default = config.get_int_value('frame_processors.frame_enhancer_blend', '80'), choices = frame_processors_choices.frame_enhancer_blend_range, metavar = create_metavar(frame_processors_choices.frame_enhancer_blend_range)) - - -def apply_args(program : ArgumentParser) -> None: - args = program.parse_args() - frame_processors_globals.frame_enhancer_model = args.frame_enhancer_model - frame_processors_globals.frame_enhancer_blend = args.frame_enhancer_blend - - -def pre_check() -> bool: - download_directory_path = resolve_relative_path('../.assets/models') - model_url = get_options('model').get('url') - model_path = get_options('model').get('path') - - if not facefusion.globals.skip_download: - process_manager.check() - conditional_download(download_directory_path, [ model_url ]) - process_manager.end() - return is_file(model_path) - - -def post_check() -> bool: - model_url = get_options('model').get('url') - model_path = get_options('model').get('path') - - if not facefusion.globals.skip_download and not is_download_done(model_url, model_path): - logger.error(wording.get('model_download_not_done') + wording.get('exclamation_mark'), NAME) - return False - if not is_file(model_path): - logger.error(wording.get('model_file_not_present') + wording.get('exclamation_mark'), NAME) - return False - return True - - -def pre_process(mode : ProcessMode) -> bool: - if mode in [ 'output', 'preview' ] and not is_image(facefusion.globals.target_path) and not is_video(facefusion.globals.target_path): - logger.error(wording.get('select_image_or_video_target') + wording.get('exclamation_mark'), NAME) - return False - if mode == 'output' and not normalize_output_path(facefusion.globals.target_path, facefusion.globals.output_path): - logger.error(wording.get('select_file_or_directory_output') + wording.get('exclamation_mark'), NAME) - return False - return True - - -def post_process() -> None: - read_static_image.cache_clear() - if facefusion.globals.video_memory_strategy == 'strict' or facefusion.globals.video_memory_strategy == 'moderate': - clear_frame_processor() - if facefusion.globals.video_memory_strategy == 'strict': - clear_face_analyser() - clear_content_analyser() - - -def enhance_frame(temp_vision_frame : VisionFrame) -> VisionFrame: - frame_processor = get_frame_processor() - size = get_options('model').get('size') - scale = get_options('model').get('scale') - temp_height, temp_width = temp_vision_frame.shape[:2] - tile_vision_frames, pad_width, pad_height = create_tile_frames(temp_vision_frame, size) - - for index, tile_vision_frame in enumerate(tile_vision_frames): - with conditional_thread_semaphore(facefusion.globals.execution_providers): - tile_vision_frame = frame_processor.run(None, - { - frame_processor.get_inputs()[0].name : prepare_tile_frame(tile_vision_frame) - })[0] - tile_vision_frames[index] = normalize_tile_frame(tile_vision_frame) - merge_vision_frame = merge_tile_frames(tile_vision_frames, temp_width * scale, temp_height * scale, pad_width * scale, pad_height * scale, (size[0] * scale, size[1] * scale, size[2] * scale)) - temp_vision_frame = blend_frame(temp_vision_frame, merge_vision_frame) - return temp_vision_frame - - -def prepare_tile_frame(vision_tile_frame : VisionFrame) -> VisionFrame: - vision_tile_frame = numpy.expand_dims(vision_tile_frame[:, :, ::-1], axis = 0) - vision_tile_frame = vision_tile_frame.transpose(0, 3, 1, 2) - vision_tile_frame = vision_tile_frame.astype(numpy.float32) / 255 - return vision_tile_frame - - -def normalize_tile_frame(vision_tile_frame : VisionFrame) -> VisionFrame: - vision_tile_frame = vision_tile_frame.transpose(0, 2, 3, 1).squeeze(0) * 255 - vision_tile_frame = vision_tile_frame.clip(0, 255).astype(numpy.uint8)[:, :, ::-1] - return vision_tile_frame - - -def blend_frame(temp_vision_frame : VisionFrame, merge_vision_frame : VisionFrame) -> VisionFrame: - frame_enhancer_blend = 1 - (frame_processors_globals.frame_enhancer_blend / 100) - temp_vision_frame = cv2.resize(temp_vision_frame, (merge_vision_frame.shape[1], merge_vision_frame.shape[0])) - temp_vision_frame = cv2.addWeighted(temp_vision_frame, frame_enhancer_blend, merge_vision_frame, 1 - frame_enhancer_blend, 0) - return temp_vision_frame - - -def get_reference_frame(source_face : Face, target_face : Face, temp_vision_frame : VisionFrame) -> VisionFrame: - pass - - -def process_frame(inputs : FrameEnhancerInputs) -> VisionFrame: - target_vision_frame = inputs.get('target_vision_frame') - return enhance_frame(target_vision_frame) - - -def process_frames(source_paths : List[str], queue_payloads : List[QueuePayload], update_progress : UpdateProgress) -> None: - for queue_payload in process_manager.manage(queue_payloads): - target_vision_path = queue_payload['frame_path'] - target_vision_frame = read_image(target_vision_path) - output_vision_frame = process_frame( - { - 'target_vision_frame': target_vision_frame - }) - write_image(target_vision_path, output_vision_frame) - update_progress(1) - - -def process_image(source_paths : List[str], target_path : str, output_path : str) -> None: - target_vision_frame = read_static_image(target_path) - output_vision_frame = process_frame( - { - 'target_vision_frame': target_vision_frame - }) - write_image(output_path, output_vision_frame) - - -def process_video(source_paths : List[str], temp_frame_paths : List[str]) -> None: - frame_processors.multi_process_frames(None, temp_frame_paths, process_frames) diff --git a/facefusion/processors/frame/modules/lip_syncer.py b/facefusion/processors/frame/modules/lip_syncer.py deleted file mode 100755 index 05e76782..00000000 --- a/facefusion/processors/frame/modules/lip_syncer.py +++ /dev/null @@ -1,260 +0,0 @@ -from typing import Any, List, Literal, Optional -from argparse import ArgumentParser -from time import sleep -import cv2 -import numpy -import onnxruntime - -import facefusion.globals -import facefusion.processors.frame.core as frame_processors -from facefusion import config, process_manager, logger, wording -from facefusion.execution import apply_execution_provider_options -from facefusion.face_analyser import get_one_face, get_many_faces, find_similar_faces, clear_face_analyser -from facefusion.face_masker import create_static_box_mask, create_occlusion_mask, create_mouth_mask, clear_face_occluder, clear_face_parser -from facefusion.face_helper import warp_face_by_face_landmark_5, warp_face_by_bounding_box, paste_back, create_bounding_box_from_face_landmark_68 -from facefusion.face_store import get_reference_faces -from facefusion.content_analyser import clear_content_analyser -from facefusion.normalizer import normalize_output_path -from facefusion.thread_helper import thread_lock, conditional_thread_semaphore -from facefusion.typing import Face, VisionFrame, UpdateProgress, ProcessMode, ModelSet, OptionsWithModel, AudioFrame, QueuePayload -from facefusion.filesystem import is_file, has_audio, resolve_relative_path -from facefusion.download import conditional_download, is_download_done -from facefusion.audio import read_static_voice, get_voice_frame, create_empty_audio_frame -from facefusion.filesystem import is_image, is_video, filter_audio_paths -from facefusion.common_helper import get_first -from facefusion.vision import read_image, read_static_image, write_image, restrict_video_fps -from facefusion.processors.frame.typings import LipSyncerInputs -from facefusion.voice_extractor import clear_voice_extractor -from facefusion.processors.frame import globals as frame_processors_globals -from facefusion.processors.frame import choices as frame_processors_choices - -FRAME_PROCESSOR = None -NAME = __name__.upper() -MODELS : ModelSet =\ -{ - 'wav2lip_gan': - { - 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models/wav2lip_gan.onnx', - 'path': resolve_relative_path('../.assets/models/wav2lip_gan.onnx') - } -} -OPTIONS : Optional[OptionsWithModel] = None - - -def get_frame_processor() -> Any: - global FRAME_PROCESSOR - - with thread_lock(): - while process_manager.is_checking(): - sleep(0.5) - if FRAME_PROCESSOR is None: - model_path = get_options('model').get('path') - FRAME_PROCESSOR = onnxruntime.InferenceSession(model_path, providers = apply_execution_provider_options(facefusion.globals.execution_device_id, facefusion.globals.execution_providers)) - return FRAME_PROCESSOR - - -def clear_frame_processor() -> None: - global FRAME_PROCESSOR - - FRAME_PROCESSOR = None - - -def get_options(key : Literal['model']) -> Any: - global OPTIONS - - if OPTIONS is None: - OPTIONS =\ - { - 'model': MODELS[frame_processors_globals.lip_syncer_model] - } - return OPTIONS.get(key) - - -def set_options(key : Literal['model'], value : Any) -> None: - global OPTIONS - - OPTIONS[key] = value - - -def register_args(program : ArgumentParser) -> None: - program.add_argument('--lip-syncer-model', help = wording.get('help.lip_syncer_model'), default = config.get_str_value('frame_processors.lip_syncer_model', 'wav2lip_gan'), choices = frame_processors_choices.lip_syncer_models) - - -def apply_args(program : ArgumentParser) -> None: - args = program.parse_args() - frame_processors_globals.lip_syncer_model = args.lip_syncer_model - - -def pre_check() -> bool: - download_directory_path = resolve_relative_path('../.assets/models') - model_url = get_options('model').get('url') - model_path = get_options('model').get('path') - - if not facefusion.globals.skip_download: - process_manager.check() - conditional_download(download_directory_path, [ model_url ]) - process_manager.end() - return is_file(model_path) - - -def post_check() -> bool: - model_url = get_options('model').get('url') - model_path = get_options('model').get('path') - - if not facefusion.globals.skip_download and not is_download_done(model_url, model_path): - logger.error(wording.get('model_download_not_done') + wording.get('exclamation_mark'), NAME) - return False - if not is_file(model_path): - logger.error(wording.get('model_file_not_present') + wording.get('exclamation_mark'), NAME) - return False - return True - - -def pre_process(mode : ProcessMode) -> bool: - if not has_audio(facefusion.globals.source_paths): - logger.error(wording.get('select_audio_source') + wording.get('exclamation_mark'), NAME) - return False - if mode in [ 'output', 'preview' ] and not is_image(facefusion.globals.target_path) and not is_video(facefusion.globals.target_path): - logger.error(wording.get('select_image_or_video_target') + wording.get('exclamation_mark'), NAME) - return False - if mode == 'output' and not normalize_output_path(facefusion.globals.target_path, facefusion.globals.output_path): - logger.error(wording.get('select_file_or_directory_output') + wording.get('exclamation_mark'), NAME) - return False - return True - - -def post_process() -> None: - read_static_image.cache_clear() - read_static_voice.cache_clear() - if facefusion.globals.video_memory_strategy == 'strict' or facefusion.globals.video_memory_strategy == 'moderate': - clear_frame_processor() - if facefusion.globals.video_memory_strategy == 'strict': - clear_face_analyser() - clear_content_analyser() - clear_face_occluder() - clear_face_parser() - clear_voice_extractor() - - -def sync_lip(target_face : Face, temp_audio_frame : AudioFrame, temp_vision_frame : VisionFrame) -> VisionFrame: - frame_processor = get_frame_processor() - crop_mask_list = [] - temp_audio_frame = prepare_audio_frame(temp_audio_frame) - crop_vision_frame, affine_matrix = warp_face_by_face_landmark_5(temp_vision_frame, target_face.landmarks.get('5/68'), 'ffhq_512', (512, 512)) - face_landmark_68 = cv2.transform(target_face.landmarks.get('68').reshape(1, -1, 2), affine_matrix).reshape(-1, 2) - bounding_box = create_bounding_box_from_face_landmark_68(face_landmark_68) - bounding_box[1] -= numpy.abs(bounding_box[3] - bounding_box[1]) * 0.125 - mouth_mask = create_mouth_mask(face_landmark_68) - crop_mask_list.append(mouth_mask) - box_mask = create_static_box_mask(crop_vision_frame.shape[:2][::-1], facefusion.globals.face_mask_blur, facefusion.globals.face_mask_padding) - crop_mask_list.append(box_mask) - - if 'occlusion' in facefusion.globals.face_mask_types: - occlusion_mask = create_occlusion_mask(crop_vision_frame) - crop_mask_list.append(occlusion_mask) - close_vision_frame, close_matrix = warp_face_by_bounding_box(crop_vision_frame, bounding_box, (96, 96)) - close_vision_frame = prepare_crop_frame(close_vision_frame) - with conditional_thread_semaphore(facefusion.globals.execution_providers): - close_vision_frame = frame_processor.run(None, - { - 'source': temp_audio_frame, - 'target': close_vision_frame - })[0] - crop_vision_frame = normalize_crop_frame(close_vision_frame) - crop_vision_frame = cv2.warpAffine(crop_vision_frame, cv2.invertAffineTransform(close_matrix), (512, 512), borderMode = cv2.BORDER_REPLICATE) - crop_mask = numpy.minimum.reduce(crop_mask_list) - paste_vision_frame = paste_back(temp_vision_frame, crop_vision_frame, crop_mask, affine_matrix) - return paste_vision_frame - - -def prepare_audio_frame(temp_audio_frame : AudioFrame) -> AudioFrame: - temp_audio_frame = numpy.maximum(numpy.exp(-5 * numpy.log(10)), temp_audio_frame) - temp_audio_frame = numpy.log10(temp_audio_frame) * 1.6 + 3.2 - temp_audio_frame = temp_audio_frame.clip(-4, 4).astype(numpy.float32) - temp_audio_frame = numpy.expand_dims(temp_audio_frame, axis = (0, 1)) - return temp_audio_frame - - -def prepare_crop_frame(crop_vision_frame : VisionFrame) -> VisionFrame: - crop_vision_frame = numpy.expand_dims(crop_vision_frame, axis = 0) - prepare_vision_frame = crop_vision_frame.copy() - prepare_vision_frame[:, 48:] = 0 - crop_vision_frame = numpy.concatenate((prepare_vision_frame, crop_vision_frame), axis = 3) - crop_vision_frame = crop_vision_frame.transpose(0, 3, 1, 2).astype('float32') / 255.0 - return crop_vision_frame - - -def normalize_crop_frame(crop_vision_frame : VisionFrame) -> VisionFrame: - crop_vision_frame = crop_vision_frame[0].transpose(1, 2, 0) - crop_vision_frame = crop_vision_frame.clip(0, 1) * 255 - crop_vision_frame = crop_vision_frame.astype(numpy.uint8) - return crop_vision_frame - - -def get_reference_frame(source_face : Face, target_face : Face, temp_vision_frame : VisionFrame) -> VisionFrame: - pass - - -def process_frame(inputs : LipSyncerInputs) -> VisionFrame: - reference_faces = inputs.get('reference_faces') - source_audio_frame = inputs.get('source_audio_frame') - target_vision_frame = inputs.get('target_vision_frame') - - if facefusion.globals.face_selector_mode == 'many': - many_faces = get_many_faces(target_vision_frame) - if many_faces: - for target_face in many_faces: - target_vision_frame = sync_lip(target_face, source_audio_frame, target_vision_frame) - if facefusion.globals.face_selector_mode == 'one': - target_face = get_one_face(target_vision_frame) - if target_face: - target_vision_frame = sync_lip(target_face, source_audio_frame, target_vision_frame) - if facefusion.globals.face_selector_mode == 'reference': - similar_faces = find_similar_faces(reference_faces, target_vision_frame, facefusion.globals.reference_face_distance) - if similar_faces: - for similar_face in similar_faces: - target_vision_frame = sync_lip(similar_face, source_audio_frame, target_vision_frame) - return target_vision_frame - - -def process_frames(source_paths : List[str], queue_payloads : List[QueuePayload], update_progress : UpdateProgress) -> None: - reference_faces = get_reference_faces() if 'reference' in facefusion.globals.face_selector_mode else None - source_audio_path = get_first(filter_audio_paths(source_paths)) - temp_video_fps = restrict_video_fps(facefusion.globals.target_path, facefusion.globals.output_video_fps) - - for queue_payload in process_manager.manage(queue_payloads): - frame_number = queue_payload['frame_number'] - target_vision_path = queue_payload['frame_path'] - source_audio_frame = get_voice_frame(source_audio_path, temp_video_fps, frame_number) - if not numpy.any(source_audio_frame): - source_audio_frame = create_empty_audio_frame() - target_vision_frame = read_image(target_vision_path) - output_vision_frame = process_frame( - { - 'reference_faces': reference_faces, - 'source_audio_frame': source_audio_frame, - 'target_vision_frame': target_vision_frame - }) - write_image(target_vision_path, output_vision_frame) - update_progress(1) - - -def process_image(source_paths : List[str], target_path : str, output_path : str) -> None: - reference_faces = get_reference_faces() if 'reference' in facefusion.globals.face_selector_mode else None - source_audio_frame = create_empty_audio_frame() - target_vision_frame = read_static_image(target_path) - output_vision_frame = process_frame( - { - 'reference_faces': reference_faces, - 'source_audio_frame': source_audio_frame, - 'target_vision_frame': target_vision_frame - }) - write_image(output_path, output_vision_frame) - - -def process_video(source_paths : List[str], temp_frame_paths : List[str]) -> None: - source_audio_paths = filter_audio_paths(facefusion.globals.source_paths) - temp_video_fps = restrict_video_fps(facefusion.globals.target_path, facefusion.globals.output_video_fps) - for source_audio_path in source_audio_paths: - read_static_voice(source_audio_path, temp_video_fps) - frame_processors.multi_process_frames(source_paths, temp_frame_paths, process_frames) diff --git a/facefusion/processors/frame/typings.py b/facefusion/processors/frame/typings.py deleted file mode 100644 index aa95e9d5..00000000 --- a/facefusion/processors/frame/typings.py +++ /dev/null @@ -1,41 +0,0 @@ -from typing import Literal, TypedDict - -from facefusion.typing import Face, FaceSet, AudioFrame, VisionFrame - -FaceDebuggerItem = Literal['bounding-box', 'face-landmark-5', 'face-landmark-5/68', 'face-landmark-68', 'face-landmark-68/5', 'face-mask', 'face-detector-score', 'face-landmarker-score', 'age', 'gender'] -FaceEnhancerModel = Literal['codeformer', 'gfpgan_1.2', 'gfpgan_1.3', 'gfpgan_1.4', 'gpen_bfr_256', 'gpen_bfr_512', 'gpen_bfr_1024', 'gpen_bfr_2048', 'restoreformer_plus_plus'] -FaceSwapperModel = Literal['blendswap_256', 'inswapper_128', 'inswapper_128_fp16', 'simswap_256', 'simswap_512_unofficial', 'uniface_256'] -FrameColorizerModel = Literal['ddcolor', 'ddcolor_artistic', 'deoldify', 'deoldify_artistic', 'deoldify_stable'] -FrameEnhancerModel = Literal['clear_reality_x4', 'lsdir_x4', 'nomos8k_sc_x4', 'real_esrgan_x2', 'real_esrgan_x2_fp16', 'real_esrgan_x4', 'real_esrgan_x4_fp16', 'real_hatgan_x4', 'span_kendata_x4', 'ultra_sharp_x4'] -LipSyncerModel = Literal['wav2lip_gan'] - -FaceDebuggerInputs = TypedDict('FaceDebuggerInputs', -{ - 'reference_faces' : FaceSet, - 'target_vision_frame' : VisionFrame -}) -FaceEnhancerInputs = TypedDict('FaceEnhancerInputs', -{ - 'reference_faces' : FaceSet, - 'target_vision_frame' : VisionFrame -}) -FaceSwapperInputs = TypedDict('FaceSwapperInputs', -{ - 'reference_faces' : FaceSet, - 'source_face' : Face, - 'target_vision_frame' : VisionFrame -}) -FrameColorizerInputs = TypedDict('FrameColorizerInputs', -{ - 'target_vision_frame' : VisionFrame -}) -FrameEnhancerInputs = TypedDict('FrameEnhancerInputs', -{ - 'target_vision_frame' : VisionFrame -}) -LipSyncerInputs = TypedDict('LipSyncerInputs', -{ - 'reference_faces' : FaceSet, - 'source_audio_frame' : AudioFrame, - 'target_vision_frame' : VisionFrame -}) diff --git a/facefusion/processors/live_portrait.py b/facefusion/processors/live_portrait.py new file mode 100644 index 00000000..06ac82ef --- /dev/null +++ b/facefusion/processors/live_portrait.py @@ -0,0 +1,101 @@ +from typing import Tuple + +import numpy +import scipy + +from facefusion.processors.typing import LivePortraitExpression, LivePortraitPitch, LivePortraitRoll, LivePortraitRotation, LivePortraitYaw + +EXPRESSION_MIN = numpy.array( +[ + [ + [ -2.88067125e-02, -8.12731311e-02, -1.70541159e-03 ], + [ -4.88598682e-02, -3.32196616e-02, -1.67431499e-04 ], + [ -6.75425082e-02, -4.28681746e-02, -1.98950816e-04 ], + [ -7.23103955e-02, -3.28503326e-02, -7.31324719e-04 ], + [ -3.87073644e-02, -6.01546466e-02, -5.50269964e-04 ], + [ -6.38048723e-02, -2.23840728e-01, -7.13261834e-04 ], + [ -3.02710701e-02, -3.93195450e-02, -8.24086510e-06 ], + [ -2.95799859e-02, -5.39318882e-02, -1.74219604e-04 ], + [ -2.92359516e-02, -1.53050944e-02, -6.30460854e-05 ], + [ -5.56493877e-03, -2.34344602e-02, -1.26858242e-04 ], + [ -4.37593013e-02, -2.77768299e-02, -2.70503685e-02 ], + [ -1.76926646e-02, -1.91676542e-02, -1.15090821e-04 ], + [ -8.34268332e-03, -3.99775570e-03, -3.27481248e-05 ], + [ -3.40162888e-02, -2.81868968e-02, -1.96679524e-04 ], + [ -2.91855410e-02, -3.97511162e-02, -2.81230678e-05 ], + [ -1.50395725e-02, -2.49494594e-02, -9.42573533e-05 ], + [ -1.67938769e-02, -2.00953931e-02, -4.00750607e-04 ], + [ -1.86435618e-02, -2.48535164e-02, -2.74416432e-02 ], + [ -4.61211195e-03, -1.21660791e-02, -2.93173041e-04 ], + [ -4.10017073e-02, -7.43824020e-02, -4.42762971e-02 ], + [ -1.90370996e-02, -3.74363363e-02, -1.34740388e-02 ] + ] +]).astype(numpy.float32) +EXPRESSION_MAX = numpy.array( +[ + [ + [ 4.46682945e-02, 7.08772913e-02, 4.08344204e-04 ], + [ 2.14308221e-02, 6.15894832e-02, 4.85319615e-05 ], + [ 3.02363783e-02, 4.45043296e-02, 1.28298725e-05 ], + [ 3.05869691e-02, 3.79812494e-02, 6.57040102e-04 ], + [ 4.45670523e-02, 3.97259220e-02, 7.10966764e-04 ], + [ 9.43699256e-02, 9.85926315e-02, 2.02551950e-04 ], + [ 1.61131397e-02, 2.92906128e-02, 3.44733417e-06 ], + [ 5.23825921e-02, 1.07065082e-01, 6.61510974e-04 ], + [ 2.85718683e-03, 8.32320191e-03, 2.39314613e-04 ], + [ 2.57947259e-02, 1.60935968e-02, 2.41853559e-05 ], + [ 4.90833223e-02, 3.43903080e-02, 3.22353356e-02 ], + [ 1.44766076e-02, 3.39248963e-02, 1.42291479e-04 ], + [ 8.75749043e-04, 6.82212645e-03, 2.76097053e-05 ], + [ 1.86958015e-02, 3.84016186e-02, 7.33085908e-05 ], + [ 2.01714113e-02, 4.90544215e-02, 2.34028921e-05 ], + [ 2.46518422e-02, 3.29151377e-02, 3.48571630e-05 ], + [ 2.22457591e-02, 1.21796541e-02, 1.56396593e-04 ], + [ 1.72109623e-02, 3.01626958e-02, 1.36556877e-02 ], + [ 1.83460284e-02, 1.61141958e-02, 2.87440169e-04 ], + [ 3.57594155e-02, 1.80554688e-01, 2.75554154e-02 ], + [ 2.17450950e-02, 8.66811201e-02, 3.34241726e-02 ] + ] +]).astype(numpy.float32) + + +def limit_expression(expression : LivePortraitExpression) -> LivePortraitExpression: + return numpy.clip(expression, EXPRESSION_MIN, EXPRESSION_MAX) + + +def limit_euler_angles(target_pitch : LivePortraitPitch, target_yaw : LivePortraitYaw, target_roll : LivePortraitRoll, output_pitch : LivePortraitPitch, output_yaw : LivePortraitYaw, output_roll : LivePortraitRoll) -> Tuple[LivePortraitPitch, LivePortraitYaw, LivePortraitRoll]: + pitch_min, pitch_max, yaw_min, yaw_max, roll_min, roll_max = calc_euler_limits(target_pitch, target_yaw, target_roll) + output_pitch = numpy.clip(output_pitch, pitch_min, pitch_max) + output_yaw = numpy.clip(output_yaw, yaw_min, yaw_max) + output_roll = numpy.clip(output_roll, roll_min, roll_max) + return output_pitch, output_yaw, output_roll + + +def calc_euler_limits(pitch : LivePortraitPitch, yaw : LivePortraitYaw, roll : LivePortraitRoll) -> Tuple[float, float, float, float, float, float]: + pitch_min = -30.0 + pitch_max = 30.0 + yaw_min = -60.0 + yaw_max = 60.0 + roll_min = -20.0 + roll_max = 20.0 + + if pitch < 0: + pitch_min = min(pitch, pitch_min) + else: + pitch_max = max(pitch, pitch_max) + if yaw < 0: + yaw_min = min(yaw, yaw_min) + else: + yaw_max = max(yaw, yaw_max) + if roll < 0: + roll_min = min(roll, roll_min) + else: + roll_max = max(roll, roll_max) + + return pitch_min, pitch_max, yaw_min, yaw_max, roll_min, roll_max + + +def create_rotation(pitch : LivePortraitPitch, yaw : LivePortraitYaw, roll : LivePortraitRoll) -> LivePortraitRotation: + rotation = scipy.spatial.transform.Rotation.from_euler('xyz', [ pitch, yaw, roll ], degrees = True).as_matrix() + rotation = rotation.astype(numpy.float32) + return rotation diff --git a/facefusion/processors/frame/modules/__init__.py b/facefusion/processors/modules/__init__.py similarity index 100% rename from facefusion/processors/frame/modules/__init__.py rename to facefusion/processors/modules/__init__.py diff --git a/facefusion/processors/modules/age_modifier.py b/facefusion/processors/modules/age_modifier.py new file mode 100755 index 00000000..c1e39498 --- /dev/null +++ b/facefusion/processors/modules/age_modifier.py @@ -0,0 +1,268 @@ +from argparse import ArgumentParser +from typing import Any, List + +import cv2 +import numpy +from cv2.typing import Size +from numpy.typing import NDArray + +import facefusion.jobs.job_manager +import facefusion.jobs.job_store +import facefusion.processors.core as processors +from facefusion import config, content_analyser, face_classifier, face_detector, face_landmarker, face_masker, face_recognizer, inference_manager, logger, process_manager, state_manager, wording +from facefusion.common_helper import create_int_metavar +from facefusion.download import conditional_download_hashes, conditional_download_sources +from facefusion.face_analyser import get_many_faces, get_one_face +from facefusion.face_helper import merge_matrix, paste_back, warp_face_by_face_landmark_5 +from facefusion.face_masker import create_occlusion_mask, create_static_box_mask +from facefusion.face_selector import find_similar_faces, sort_and_filter_faces +from facefusion.face_store import get_reference_faces +from facefusion.filesystem import in_directory, is_image, is_video, resolve_relative_path, same_file_extension +from facefusion.processors import choices as processors_choices +from facefusion.processors.typing import AgeModifierInputs +from facefusion.program_helper import find_argument_group +from facefusion.thread_helper import thread_semaphore +from facefusion.typing import ApplyStateItem, Args, Face, InferencePool, Mask, ModelOptions, ModelSet, ProcessMode, QueuePayload, UpdateProgress, VisionFrame +from facefusion.vision import read_image, read_static_image, write_image + +MODEL_SET : ModelSet =\ +{ + 'styleganex_age': + { + 'hashes': + { + 'age_modifier': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/styleganex_age.hash', + 'path': resolve_relative_path('../.assets/models/styleganex_age.hash') + } + }, + 'sources': + { + 'age_modifier': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/styleganex_age.onnx', + 'path': resolve_relative_path('../.assets/models/styleganex_age.onnx') + } + }, + 'template': 'ffhq_512', + 'size': (512, 512) + } +} + + +def get_inference_pool() -> InferencePool: + model_sources = get_model_options().get('sources') + model_context = __name__ + '.' + state_manager.get_item('age_modifier_model') + return inference_manager.get_inference_pool(model_context, model_sources) + + +def clear_inference_pool() -> None: + model_context = __name__ + '.' + state_manager.get_item('age_modifier_model') + inference_manager.clear_inference_pool(model_context) + + +def get_model_options() -> ModelOptions: + age_modifier_model = state_manager.get_item('age_modifier_model') + return MODEL_SET.get(age_modifier_model) + + +def register_args(program : ArgumentParser) -> None: + group_processors = find_argument_group(program, 'processors') + if group_processors: + group_processors.add_argument('--age-modifier-model', help = wording.get('help.age_modifier_model'), default = config.get_str_value('processors.age_modifier_model', 'styleganex_age'), choices = processors_choices.age_modifier_models) + group_processors.add_argument('--age-modifier-direction', help = wording.get('help.age_modifier_direction'), type = int, default = config.get_int_value('processors.age_modifier_direction', '0'), choices = processors_choices.age_modifier_direction_range, metavar = create_int_metavar(processors_choices.age_modifier_direction_range)) + facefusion.jobs.job_store.register_step_keys([ 'age_modifier_model', 'age_modifier_direction' ]) + + +def apply_args(args : Args, apply_state_item : ApplyStateItem) -> None: + apply_state_item('age_modifier_model', args.get('age_modifier_model')) + apply_state_item('age_modifier_direction', args.get('age_modifier_direction')) + + +def pre_check() -> bool: + download_directory_path = resolve_relative_path('../.assets/models') + model_hashes = get_model_options().get('hashes') + model_sources = get_model_options().get('sources') + + return conditional_download_hashes(download_directory_path, model_hashes) and conditional_download_sources(download_directory_path, model_sources) + + +def pre_process(mode : ProcessMode) -> bool: + if mode in [ 'output', 'preview' ] and not is_image(state_manager.get_item('target_path')) and not is_video(state_manager.get_item('target_path')): + logger.error(wording.get('choose_image_or_video_target') + wording.get('exclamation_mark'), __name__) + return False + if mode == 'output' and not in_directory(state_manager.get_item('output_path')): + logger.error(wording.get('specify_image_or_video_output') + wording.get('exclamation_mark'), __name__) + return False + if mode == 'output' and not same_file_extension([ state_manager.get_item('target_path'), state_manager.get_item('output_path') ]): + logger.error(wording.get('match_target_and_output_extension') + wording.get('exclamation_mark'), __name__) + return False + return True + + +def post_process() -> None: + read_static_image.cache_clear() + if state_manager.get_item('video_memory_strategy') in [ 'strict', 'moderate' ]: + clear_inference_pool() + if state_manager.get_item('video_memory_strategy') == 'strict': + content_analyser.clear_inference_pool() + face_classifier.clear_inference_pool() + face_detector.clear_inference_pool() + face_landmarker.clear_inference_pool() + face_masker.clear_inference_pool() + face_recognizer.clear_inference_pool() + + +def modify_age(target_face : Face, temp_vision_frame : VisionFrame) -> VisionFrame: + model_template = get_model_options().get('template') + model_size = get_model_options().get('size') + crop_size = (model_size[0] // 2, model_size[1] // 2) + face_landmark_5 = target_face.landmark_set.get('5/68').copy() + extend_face_landmark_5 = (face_landmark_5 - face_landmark_5[2]) * 2 + face_landmark_5[2] + crop_vision_frame, affine_matrix = warp_face_by_face_landmark_5(temp_vision_frame, face_landmark_5, model_template, crop_size) + extend_vision_frame, extend_affine_matrix = warp_face_by_face_landmark_5(temp_vision_frame, extend_face_landmark_5, model_template, model_size) + extend_vision_frame_raw = extend_vision_frame.copy() + box_mask = create_static_box_mask(model_size, state_manager.get_item('face_mask_blur'), (0, 0, 0, 0)) + crop_masks =\ + [ + box_mask + ] + + if 'occlusion' in state_manager.get_item('face_mask_types'): + occlusion_mask = create_occlusion_mask(crop_vision_frame) + combined_matrix = merge_matrix([ extend_affine_matrix, cv2.invertAffineTransform(affine_matrix) ]) + occlusion_mask = cv2.warpAffine(occlusion_mask, combined_matrix, model_size) + crop_masks.append(occlusion_mask) + + crop_vision_frame = prepare_vision_frame(crop_vision_frame) + extend_vision_frame = prepare_vision_frame(extend_vision_frame) + extend_vision_frame = forward(crop_vision_frame, extend_vision_frame) + extend_vision_frame = normalize_extend_frame(extend_vision_frame) + extend_vision_frame = fix_color(extend_vision_frame_raw, extend_vision_frame) + extend_crop_mask = cv2.pyrUp(numpy.minimum.reduce(crop_masks).clip(0, 1)) + extend_affine_matrix *= extend_vision_frame.shape[0] / 512 + paste_vision_frame = paste_back(temp_vision_frame, extend_vision_frame, extend_crop_mask, extend_affine_matrix) + return paste_vision_frame + + +def forward(crop_vision_frame : VisionFrame, extend_vision_frame : VisionFrame) -> VisionFrame: + age_modifier = get_inference_pool().get('age_modifier') + age_modifier_inputs = {} + + for age_modifier_input in age_modifier.get_inputs(): + if age_modifier_input.name == 'target': + age_modifier_inputs[age_modifier_input.name] = crop_vision_frame + if age_modifier_input.name == 'target_with_background': + age_modifier_inputs[age_modifier_input.name] = extend_vision_frame + if age_modifier_input.name == 'direction': + age_modifier_inputs[age_modifier_input.name] = prepare_direction(state_manager.get_item('age_modifier_direction')) + + with thread_semaphore(): + crop_vision_frame = age_modifier.run(None, age_modifier_inputs)[0][0] + + return crop_vision_frame + + +def fix_color(extend_vision_frame_raw : VisionFrame, extend_vision_frame : VisionFrame) -> VisionFrame: + color_difference = compute_color_difference(extend_vision_frame_raw, extend_vision_frame, (48, 48)) + color_difference_mask = create_static_box_mask(extend_vision_frame.shape[:2][::-1], 1.0, (0, 0, 0, 0)) + color_difference_mask = numpy.stack((color_difference_mask, ) * 3, axis = -1) + extend_vision_frame = normalize_color_difference(color_difference, color_difference_mask, extend_vision_frame) + return extend_vision_frame + + +def compute_color_difference(extend_vision_frame_raw : VisionFrame, extend_vision_frame : VisionFrame, size : Size) -> VisionFrame: + extend_vision_frame_raw = extend_vision_frame_raw.astype(numpy.float32) / 255 + extend_vision_frame_raw = cv2.resize(extend_vision_frame_raw, size, interpolation = cv2.INTER_AREA) + extend_vision_frame = extend_vision_frame.astype(numpy.float32) / 255 + extend_vision_frame = cv2.resize(extend_vision_frame, size, interpolation = cv2.INTER_AREA) + color_difference = extend_vision_frame_raw - extend_vision_frame + return color_difference + + +def normalize_color_difference(color_difference : VisionFrame, color_difference_mask : Mask, extend_vision_frame : VisionFrame) -> VisionFrame: + color_difference = cv2.resize(color_difference, extend_vision_frame.shape[:2][::-1], interpolation = cv2.INTER_CUBIC) + color_difference_mask = 1 - color_difference_mask.clip(0, 0.75) + extend_vision_frame = extend_vision_frame.astype(numpy.float32) / 255 + extend_vision_frame += color_difference * color_difference_mask + extend_vision_frame = extend_vision_frame.clip(0, 1) + extend_vision_frame = numpy.multiply(extend_vision_frame, 255).astype(numpy.uint8) + return extend_vision_frame + + +def prepare_direction(direction : int) -> NDArray[Any]: + direction = numpy.interp(float(direction), [ -100, 100 ], [ 2.5, -2.5 ]) #type:ignore[assignment] + return numpy.array(direction).astype(numpy.float32) + + +def prepare_vision_frame(vision_frame : VisionFrame) -> VisionFrame: + vision_frame = vision_frame[:, :, ::-1] / 255.0 + vision_frame = (vision_frame - 0.5) / 0.5 + vision_frame = numpy.expand_dims(vision_frame.transpose(2, 0, 1), axis = 0).astype(numpy.float32) + return vision_frame + + +def normalize_extend_frame(extend_vision_frame : VisionFrame) -> VisionFrame: + extend_vision_frame = numpy.clip(extend_vision_frame, -1, 1) + extend_vision_frame = (extend_vision_frame + 1) / 2 + extend_vision_frame = extend_vision_frame.transpose(1, 2, 0).clip(0, 255) + extend_vision_frame = (extend_vision_frame * 255.0) + extend_vision_frame = extend_vision_frame.astype(numpy.uint8)[:, :, ::-1] + extend_vision_frame = cv2.pyrDown(extend_vision_frame) + return extend_vision_frame + + +def get_reference_frame(source_face : Face, target_face : Face, temp_vision_frame : VisionFrame) -> VisionFrame: + return modify_age(target_face, temp_vision_frame) + + +def process_frame(inputs : AgeModifierInputs) -> VisionFrame: + reference_faces = inputs.get('reference_faces') + target_vision_frame = inputs.get('target_vision_frame') + many_faces = sort_and_filter_faces(get_many_faces([ target_vision_frame ])) + + if state_manager.get_item('face_selector_mode') == 'many': + if many_faces: + for target_face in many_faces: + target_vision_frame = modify_age(target_face, target_vision_frame) + if state_manager.get_item('face_selector_mode') == 'one': + target_face = get_one_face(many_faces) + if target_face: + target_vision_frame = modify_age(target_face, target_vision_frame) + if state_manager.get_item('face_selector_mode') == 'reference': + similar_faces = find_similar_faces(many_faces, reference_faces, state_manager.get_item('reference_face_distance')) + if similar_faces: + for similar_face in similar_faces: + target_vision_frame = modify_age(similar_face, target_vision_frame) + return target_vision_frame + + +def process_frames(source_path : List[str], queue_payloads : List[QueuePayload], update_progress : UpdateProgress) -> None: + reference_faces = get_reference_faces() if 'reference' in state_manager.get_item('face_selector_mode') else None + + for queue_payload in process_manager.manage(queue_payloads): + target_vision_path = queue_payload['frame_path'] + target_vision_frame = read_image(target_vision_path) + output_vision_frame = process_frame( + { + 'reference_faces': reference_faces, + 'target_vision_frame': target_vision_frame + }) + write_image(target_vision_path, output_vision_frame) + update_progress(1) + + +def process_image(source_path : str, target_path : str, output_path : str) -> None: + reference_faces = get_reference_faces() if 'reference' in state_manager.get_item('face_selector_mode') else None + target_vision_frame = read_static_image(target_path) + output_vision_frame = process_frame( + { + 'reference_faces': reference_faces, + 'target_vision_frame': target_vision_frame + }) + write_image(output_path, output_vision_frame) + + +def process_video(source_paths : List[str], temp_frame_paths : List[str]) -> None: + processors.multi_process_frames(None, temp_frame_paths, process_frames) diff --git a/facefusion/processors/modules/expression_restorer.py b/facefusion/processors/modules/expression_restorer.py new file mode 100755 index 00000000..1068bccc --- /dev/null +++ b/facefusion/processors/modules/expression_restorer.py @@ -0,0 +1,290 @@ +from argparse import ArgumentParser +from typing import List, Tuple + +import cv2 +import numpy + +import facefusion.jobs.job_manager +import facefusion.jobs.job_store +import facefusion.processors.core as processors +from facefusion import config, content_analyser, face_classifier, face_detector, face_landmarker, face_masker, face_recognizer, inference_manager, logger, process_manager, state_manager, wording +from facefusion.common_helper import create_int_metavar +from facefusion.download import conditional_download_hashes, conditional_download_sources +from facefusion.face_analyser import get_many_faces, get_one_face +from facefusion.face_helper import paste_back, warp_face_by_face_landmark_5 +from facefusion.face_masker import create_occlusion_mask, create_static_box_mask +from facefusion.face_selector import find_similar_faces, sort_and_filter_faces +from facefusion.face_store import get_reference_faces +from facefusion.filesystem import in_directory, is_image, is_video, resolve_relative_path, same_file_extension +from facefusion.processors import choices as processors_choices +from facefusion.processors.live_portrait import create_rotation, limit_expression +from facefusion.processors.typing import ExpressionRestorerInputs +from facefusion.processors.typing import LivePortraitExpression, LivePortraitFeatureVolume, LivePortraitMotionPoints, LivePortraitPitch, LivePortraitRoll, LivePortraitScale, LivePortraitTranslation, LivePortraitYaw +from facefusion.program_helper import find_argument_group +from facefusion.thread_helper import conditional_thread_semaphore, thread_semaphore +from facefusion.typing import ApplyStateItem, Args, Face, InferencePool, ModelOptions, ModelSet, ProcessMode, QueuePayload, UpdateProgress, VisionFrame +from facefusion.vision import get_video_frame, read_image, read_static_image, write_image + +MODEL_SET : ModelSet =\ +{ + 'live_portrait': + { + 'hashes': + { + 'feature_extractor': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/live_portrait_feature_extractor.hash', + 'path': resolve_relative_path('../.assets/models/live_portrait_feature_extractor.hash') + }, + 'motion_extractor': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/live_portrait_motion_extractor.hash', + 'path': resolve_relative_path('../.assets/models/live_portrait_motion_extractor.hash') + }, + 'generator': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/live_portrait_generator.hash', + 'path': resolve_relative_path('../.assets/models/live_portrait_generator.hash') + } + }, + 'sources': + { + 'feature_extractor': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/live_portrait_feature_extractor.onnx', + 'path': resolve_relative_path('../.assets/models/live_portrait_feature_extractor.onnx') + }, + 'motion_extractor': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/live_portrait_motion_extractor.onnx', + 'path': resolve_relative_path('../.assets/models/live_portrait_motion_extractor.onnx') + }, + 'generator': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/live_portrait_generator.onnx', + 'path': resolve_relative_path('../.assets/models/live_portrait_generator.onnx') + } + }, + 'template': 'arcface_128_v2', + 'size': (512, 512) + } +} + + +def get_inference_pool() -> InferencePool: + model_sources = get_model_options().get('sources') + model_context = __name__ + '.' + state_manager.get_item('expression_restorer_model') + return inference_manager.get_inference_pool(model_context, model_sources) + + +def clear_inference_pool() -> None: + inference_manager.clear_inference_pool(__name__) + + +def get_model_options() -> ModelOptions: + expression_restorer_model = state_manager.get_item('expression_restorer_model') + return MODEL_SET.get(expression_restorer_model) + + +def register_args(program : ArgumentParser) -> None: + group_processors = find_argument_group(program, 'processors') + if group_processors: + group_processors.add_argument('--expression-restorer-model', help = wording.get('help.expression_restorer_model'), default = config.get_str_value('processors.expression_restorer_model', 'live_portrait'), choices = processors_choices.expression_restorer_models) + group_processors.add_argument('--expression-restorer-factor', help = wording.get('help.expression_restorer_factor'), type = int, default = config.get_int_value('processors.expression_restorer_factor', '80'), choices = processors_choices.expression_restorer_factor_range, metavar = create_int_metavar(processors_choices.expression_restorer_factor_range)) + facefusion.jobs.job_store.register_step_keys([ 'expression_restorer_model','expression_restorer_factor' ]) + + +def apply_args(args : Args, apply_state_item : ApplyStateItem) -> None: + apply_state_item('expression_restorer_model', args.get('expression_restorer_model')) + apply_state_item('expression_restorer_factor', args.get('expression_restorer_factor')) + + +def pre_check() -> bool: + download_directory_path = resolve_relative_path('../.assets/models') + model_hashes = get_model_options().get('hashes') + model_sources = get_model_options().get('sources') + + return conditional_download_hashes(download_directory_path, model_hashes) and conditional_download_sources(download_directory_path, model_sources) + + +def pre_process(mode : ProcessMode) -> bool: + if mode in [ 'output', 'preview' ] and not is_image(state_manager.get_item('target_path')) and not is_video(state_manager.get_item('target_path')): + logger.error(wording.get('choose_image_or_video_target') + wording.get('exclamation_mark'), __name__) + return False + if mode == 'output' and not in_directory(state_manager.get_item('output_path')): + logger.error(wording.get('specify_image_or_video_output') + wording.get('exclamation_mark'), __name__) + return False + if mode == 'output' and not same_file_extension([ state_manager.get_item('target_path'), state_manager.get_item('output_path') ]): + logger.error(wording.get('match_target_and_output_extension') + wording.get('exclamation_mark'), __name__) + return False + return True + + +def post_process() -> None: + read_static_image.cache_clear() + if state_manager.get_item('video_memory_strategy') in [ 'strict', 'moderate' ]: + clear_inference_pool() + if state_manager.get_item('video_memory_strategy') == 'strict': + content_analyser.clear_inference_pool() + face_classifier.clear_inference_pool() + face_detector.clear_inference_pool() + face_landmarker.clear_inference_pool() + face_masker.clear_inference_pool() + face_recognizer.clear_inference_pool() + + +def restore_expression(source_vision_frame : VisionFrame, target_face : Face, temp_vision_frame : VisionFrame) -> VisionFrame: + model_template = get_model_options().get('template') + model_size = get_model_options().get('size') + expression_restorer_factor = float(numpy.interp(float(state_manager.get_item('expression_restorer_factor')), [ 0, 100 ], [ 0, 1.2 ])) + source_vision_frame = cv2.resize(source_vision_frame, temp_vision_frame.shape[:2][::-1]) + source_crop_vision_frame, _ = warp_face_by_face_landmark_5(source_vision_frame, target_face.landmark_set.get('5/68'), model_template, model_size) + target_crop_vision_frame, affine_matrix = warp_face_by_face_landmark_5(temp_vision_frame, target_face.landmark_set.get('5/68'), model_template, model_size) + box_mask = create_static_box_mask(target_crop_vision_frame.shape[:2][::-1], state_manager.get_item('face_mask_blur'), (0, 0, 0, 0)) + crop_masks =\ + [ + box_mask + ] + + if 'occlusion' in state_manager.get_item('face_mask_types'): + occlusion_mask = create_occlusion_mask(target_crop_vision_frame) + crop_masks.append(occlusion_mask) + + source_crop_vision_frame = prepare_crop_frame(source_crop_vision_frame) + target_crop_vision_frame = prepare_crop_frame(target_crop_vision_frame) + target_crop_vision_frame = apply_restore(source_crop_vision_frame, target_crop_vision_frame, expression_restorer_factor) + target_crop_vision_frame = normalize_crop_frame(target_crop_vision_frame) + crop_mask = numpy.minimum.reduce(crop_masks).clip(0, 1) + temp_vision_frame = paste_back(temp_vision_frame, target_crop_vision_frame, crop_mask, affine_matrix) + return temp_vision_frame + + +def apply_restore(source_crop_vision_frame : VisionFrame, target_crop_vision_frame : VisionFrame, expression_restorer_factor : float) -> VisionFrame: + feature_volume = forward_extract_feature(target_crop_vision_frame) + source_expression = forward_extract_motion(source_crop_vision_frame)[5] + pitch, yaw, roll, scale, translation, target_expression, motion_points = forward_extract_motion(target_crop_vision_frame) + rotation = create_rotation(pitch, yaw, roll) + source_expression[:, [ 0, 4, 5, 8, 9 ]] = target_expression[:, [ 0, 4, 5, 8, 9 ]] + source_expression = source_expression * expression_restorer_factor + target_expression * (1 - expression_restorer_factor) + source_expression = limit_expression(source_expression) + source_motion_points = scale * (motion_points @ rotation.T + source_expression) + translation + target_motion_points = scale * (motion_points @ rotation.T + target_expression) + translation + crop_vision_frame = forward_generate_frame(feature_volume, source_motion_points, target_motion_points) + return crop_vision_frame + + +def forward_extract_feature(crop_vision_frame : VisionFrame) -> LivePortraitFeatureVolume: + feature_extractor = get_inference_pool().get('feature_extractor') + + with conditional_thread_semaphore(): + feature_volume = feature_extractor.run(None, + { + 'input': crop_vision_frame + })[0] + + return feature_volume + + +def forward_extract_motion(crop_vision_frame : VisionFrame) -> Tuple[LivePortraitPitch, LivePortraitYaw, LivePortraitRoll, LivePortraitScale, LivePortraitTranslation, LivePortraitExpression, LivePortraitMotionPoints]: + motion_extractor = get_inference_pool().get('motion_extractor') + + with conditional_thread_semaphore(): + pitch, yaw, roll, scale, translation, expression, motion_points = motion_extractor.run(None, + { + 'input': crop_vision_frame + }) + + return pitch, yaw, roll, scale, translation, expression, motion_points + + +def forward_generate_frame(feature_volume : LivePortraitFeatureVolume, source_motion_points : LivePortraitMotionPoints, target_motion_points : LivePortraitMotionPoints) -> VisionFrame: + generator = get_inference_pool().get('generator') + + with thread_semaphore(): + crop_vision_frame = generator.run(None, + { + 'feature_volume': feature_volume, + 'source': source_motion_points, + 'target': target_motion_points + })[0][0] + + return crop_vision_frame + + +def prepare_crop_frame(crop_vision_frame : VisionFrame) -> VisionFrame: + model_size = get_model_options().get('size') + prepare_size = (model_size[0] // 2, model_size[1] // 2) + crop_vision_frame = cv2.resize(crop_vision_frame, prepare_size, interpolation = cv2.INTER_AREA) + crop_vision_frame = crop_vision_frame[:, :, ::-1] / 255.0 + crop_vision_frame = numpy.expand_dims(crop_vision_frame.transpose(2, 0, 1), axis = 0).astype(numpy.float32) + return crop_vision_frame + + +def normalize_crop_frame(crop_vision_frame : VisionFrame) -> VisionFrame: + crop_vision_frame = crop_vision_frame.transpose(1, 2, 0).clip(0, 1) + crop_vision_frame = (crop_vision_frame * 255.0) + crop_vision_frame = crop_vision_frame.astype(numpy.uint8)[:, :, ::-1] + return crop_vision_frame + + +def get_reference_frame(source_face : Face, target_face : Face, temp_vision_frame : VisionFrame) -> VisionFrame: + pass + + +def process_frame(inputs : ExpressionRestorerInputs) -> VisionFrame: + reference_faces = inputs.get('reference_faces') + source_vision_frame = inputs.get('source_vision_frame') + target_vision_frame = inputs.get('target_vision_frame') + many_faces = sort_and_filter_faces(get_many_faces([ target_vision_frame ])) + + if state_manager.get_item('face_selector_mode') == 'many': + if many_faces: + for target_face in many_faces: + target_vision_frame = restore_expression(source_vision_frame, target_face, target_vision_frame) + if state_manager.get_item('face_selector_mode') == 'one': + target_face = get_one_face(many_faces) + if target_face: + target_vision_frame = restore_expression(source_vision_frame, target_face, target_vision_frame) + if state_manager.get_item('face_selector_mode') == 'reference': + similar_faces = find_similar_faces(many_faces, reference_faces, state_manager.get_item('reference_face_distance')) + if similar_faces: + for similar_face in similar_faces: + target_vision_frame = restore_expression(source_vision_frame, similar_face, target_vision_frame) + return target_vision_frame + + +def process_frames(source_path : List[str], queue_payloads : List[QueuePayload], update_progress : UpdateProgress) -> None: + reference_faces = get_reference_faces() if 'reference' in state_manager.get_item('face_selector_mode') else None + + for queue_payload in process_manager.manage(queue_payloads): + frame_number = queue_payload.get('frame_number') + if state_manager.get_item('trim_frame_start'): + frame_number += state_manager.get_item('trim_frame_start') + source_vision_frame = get_video_frame(state_manager.get_item('target_path'), frame_number) + target_vision_path = queue_payload.get('frame_path') + target_vision_frame = read_image(target_vision_path) + output_vision_frame = process_frame( + { + 'reference_faces': reference_faces, + 'source_vision_frame': source_vision_frame, + 'target_vision_frame': target_vision_frame + }) + write_image(target_vision_path, output_vision_frame) + update_progress(1) + + +def process_image(source_path : str, target_path : str, output_path : str) -> None: + reference_faces = get_reference_faces() if 'reference' in state_manager.get_item('face_selector_mode') else None + source_vision_frame = read_static_image(state_manager.get_item('target_path')) + target_vision_frame = read_static_image(target_path) + output_vision_frame = process_frame( + { + 'reference_faces': reference_faces, + 'source_vision_frame': source_vision_frame, + 'target_vision_frame': target_vision_frame + }) + write_image(output_path, output_vision_frame) + + +def process_video(source_paths : List[str], temp_frame_paths : List[str]) -> None: + processors.multi_process_frames(None, temp_frame_paths, process_frames) diff --git a/facefusion/processors/modules/face_debugger.py b/facefusion/processors/modules/face_debugger.py new file mode 100755 index 00000000..2dd11e46 --- /dev/null +++ b/facefusion/processors/modules/face_debugger.py @@ -0,0 +1,222 @@ +from argparse import ArgumentParser +from typing import List + +import cv2 +import numpy + +import facefusion.jobs.job_manager +import facefusion.jobs.job_store +import facefusion.processors.core as processors +from facefusion import config, content_analyser, face_classifier, face_detector, face_landmarker, face_masker, face_recognizer, logger, process_manager, state_manager, wording +from facefusion.face_analyser import get_many_faces, get_one_face +from facefusion.face_helper import warp_face_by_face_landmark_5 +from facefusion.face_masker import create_occlusion_mask, create_region_mask, create_static_box_mask +from facefusion.face_selector import find_similar_faces, sort_and_filter_faces +from facefusion.face_store import get_reference_faces +from facefusion.filesystem import in_directory, same_file_extension +from facefusion.processors import choices as processors_choices +from facefusion.processors.typing import FaceDebuggerInputs +from facefusion.program_helper import find_argument_group +from facefusion.typing import ApplyStateItem, Args, Face, ProcessMode, QueuePayload, UpdateProgress, VisionFrame +from facefusion.vision import read_image, read_static_image, write_image + + +def get_inference_pool() -> None: + pass + + +def clear_inference_pool() -> None: + pass + + +def register_args(program : ArgumentParser) -> None: + group_processors = find_argument_group(program, 'processors') + if group_processors: + group_processors.add_argument('--face-debugger-items', help = wording.get('help.face_debugger_items').format(choices = ', '.join(processors_choices.face_debugger_items)), default = config.get_str_list('processors.face_debugger_items', 'face-landmark-5/68 face-mask'), choices = processors_choices.face_debugger_items, nargs = '+', metavar = 'FACE_DEBUGGER_ITEMS') + facefusion.jobs.job_store.register_step_keys([ 'face_debugger_items' ]) + + +def apply_args(args : Args, apply_state_item : ApplyStateItem) -> None: + apply_state_item('face_debugger_items', args.get('face_debugger_items')) + + +def pre_check() -> bool: + return True + + +def pre_process(mode : ProcessMode) -> bool: + if mode == 'output' and not in_directory(state_manager.get_item('output_path')): + logger.error(wording.get('specify_image_or_video_output') + wording.get('exclamation_mark'), __name__) + return False + if mode == 'output' and not same_file_extension([ state_manager.get_item('target_path'), state_manager.get_item('output_path') ]): + logger.error(wording.get('match_target_and_output_extension') + wording.get('exclamation_mark'), __name__) + return False + return True + + +def post_process() -> None: + read_static_image.cache_clear() + if state_manager.get_item('video_memory_strategy') == 'strict': + content_analyser.clear_inference_pool() + face_classifier.clear_inference_pool() + face_detector.clear_inference_pool() + face_landmarker.clear_inference_pool() + face_masker.clear_inference_pool() + face_recognizer.clear_inference_pool() + + +def debug_face(target_face : Face, temp_vision_frame : VisionFrame) -> VisionFrame: + primary_color = (0, 0, 255) + primary_light_color = (100, 100, 255) + secondary_color = (0, 255, 0) + tertiary_color = (255, 255, 0) + bounding_box = target_face.bounding_box.astype(numpy.int32) + temp_vision_frame = temp_vision_frame.copy() + has_face_landmark_5_fallback = numpy.array_equal(target_face.landmark_set.get('5'), target_face.landmark_set.get('5/68')) + has_face_landmark_68_fallback = numpy.array_equal(target_face.landmark_set.get('68'), target_face.landmark_set.get('68/5')) + face_debugger_items = state_manager.get_item('face_debugger_items') + + if 'bounding-box' in face_debugger_items: + x1, y1, x2, y2 = bounding_box + cv2.rectangle(temp_vision_frame, (x1, y1), (x2, y2), primary_color, 2) + + if target_face.angle == 0: + cv2.line(temp_vision_frame, (x1, y1), (x2, y1), primary_light_color, 3) + elif target_face.angle == 180: + cv2.line(temp_vision_frame, (x1, y2), (x2, y2), primary_light_color, 3) + elif target_face.angle == 90: + cv2.line(temp_vision_frame, (x2, y1), (x2, y2), primary_light_color, 3) + elif target_face.angle == 270: + cv2.line(temp_vision_frame, (x1, y1), (x1, y2), primary_light_color, 3) + + if 'face-mask' in face_debugger_items: + crop_vision_frame, affine_matrix = warp_face_by_face_landmark_5(temp_vision_frame, target_face.landmark_set.get('5/68'), 'arcface_128_v2', (512, 512)) + inverse_matrix = cv2.invertAffineTransform(affine_matrix) + temp_size = temp_vision_frame.shape[:2][::-1] + crop_masks = [] + + if 'box' in state_manager.get_item('face_mask_types'): + box_mask = create_static_box_mask(crop_vision_frame.shape[:2][::-1], 0, state_manager.get_item('face_mask_padding')) + crop_masks.append(box_mask) + + if 'occlusion' in state_manager.get_item('face_mask_types'): + occlusion_mask = create_occlusion_mask(crop_vision_frame) + crop_masks.append(occlusion_mask) + + if 'region' in state_manager.get_item('face_mask_types'): + region_mask = create_region_mask(crop_vision_frame, state_manager.get_item('face_mask_regions')) + crop_masks.append(region_mask) + + crop_mask = numpy.minimum.reduce(crop_masks).clip(0, 1) + crop_mask = (crop_mask * 255).astype(numpy.uint8) + inverse_vision_frame = cv2.warpAffine(crop_mask, inverse_matrix, temp_size) + inverse_vision_frame = cv2.threshold(inverse_vision_frame, 100, 255, cv2.THRESH_BINARY)[1] + inverse_vision_frame[inverse_vision_frame > 0] = 255 #type:ignore[operator] + inverse_contours = cv2.findContours(inverse_vision_frame, cv2.RETR_LIST, cv2.CHAIN_APPROX_NONE)[0] + cv2.drawContours(temp_vision_frame, inverse_contours, -1, tertiary_color if has_face_landmark_5_fallback else secondary_color, 2) + + if 'face-landmark-5' in face_debugger_items and numpy.any(target_face.landmark_set.get('5')): + face_landmark_5 = target_face.landmark_set.get('5').astype(numpy.int32) + for index in range(face_landmark_5.shape[0]): + cv2.circle(temp_vision_frame, (face_landmark_5[index][0], face_landmark_5[index][1]), 3, primary_color, -1) + + if 'face-landmark-5/68' in face_debugger_items and numpy.any(target_face.landmark_set.get('5/68')): + face_landmark_5_68 = target_face.landmark_set.get('5/68').astype(numpy.int32) + for index in range(face_landmark_5_68.shape[0]): + cv2.circle(temp_vision_frame, (face_landmark_5_68[index][0], face_landmark_5_68[index][1]), 3, tertiary_color if has_face_landmark_5_fallback else secondary_color, -1) + + if 'face-landmark-68' in face_debugger_items and numpy.any(target_face.landmark_set.get('68')): + face_landmark_68 = target_face.landmark_set.get('68').astype(numpy.int32) + for index in range(face_landmark_68.shape[0]): + cv2.circle(temp_vision_frame, (face_landmark_68[index][0], face_landmark_68[index][1]), 3, tertiary_color if has_face_landmark_68_fallback else secondary_color, -1) + + if 'face-landmark-68/5' in face_debugger_items and numpy.any(target_face.landmark_set.get('68')): + face_landmark_68 = target_face.landmark_set.get('68/5').astype(numpy.int32) + for index in range(face_landmark_68.shape[0]): + cv2.circle(temp_vision_frame, (face_landmark_68[index][0], face_landmark_68[index][1]), 3, tertiary_color, -1) + + if bounding_box[3] - bounding_box[1] > 50 and bounding_box[2] - bounding_box[0] > 50: + top = bounding_box[1] + left = bounding_box[0] - 20 + + if 'face-detector-score' in face_debugger_items: + face_score_text = str(round(target_face.score_set.get('detector'), 2)) + top = top + 20 + cv2.putText(temp_vision_frame, face_score_text, (left, top), cv2.FONT_HERSHEY_SIMPLEX, 0.5, primary_color, 2) + + if 'face-landmarker-score' in face_debugger_items: + face_score_text = str(round(target_face.score_set.get('landmarker'), 2)) + top = top + 20 + cv2.putText(temp_vision_frame, face_score_text, (left, top), cv2.FONT_HERSHEY_SIMPLEX, 0.5, tertiary_color if has_face_landmark_5_fallback else secondary_color, 2) + + if 'age' in face_debugger_items: + face_age_text = str(target_face.age.start) + '-' + str(target_face.age.stop) + top = top + 20 + cv2.putText(temp_vision_frame, face_age_text, (left, top), cv2.FONT_HERSHEY_SIMPLEX, 0.5, primary_color, 2) + + if 'gender' in face_debugger_items: + face_gender_text = target_face.gender + top = top + 20 + cv2.putText(temp_vision_frame, face_gender_text, (left, top), cv2.FONT_HERSHEY_SIMPLEX, 0.5, primary_color, 2) + + if 'race' in face_debugger_items: + face_race_text = target_face.race + top = top + 20 + cv2.putText(temp_vision_frame, face_race_text, (left, top), cv2.FONT_HERSHEY_SIMPLEX, 0.5, primary_color, 2) + + return temp_vision_frame + + +def get_reference_frame(source_face : Face, target_face : Face, temp_vision_frame : VisionFrame) -> VisionFrame: + pass + + +def process_frame(inputs : FaceDebuggerInputs) -> VisionFrame: + reference_faces = inputs.get('reference_faces') + target_vision_frame = inputs.get('target_vision_frame') + many_faces = sort_and_filter_faces(get_many_faces([ target_vision_frame ])) + + if state_manager.get_item('face_selector_mode') == 'many': + if many_faces: + for target_face in many_faces: + target_vision_frame = debug_face(target_face, target_vision_frame) + if state_manager.get_item('face_selector_mode') == 'one': + target_face = get_one_face(many_faces) + if target_face: + target_vision_frame = debug_face(target_face, target_vision_frame) + if state_manager.get_item('face_selector_mode') == 'reference': + similar_faces = find_similar_faces(many_faces, reference_faces, state_manager.get_item('reference_face_distance')) + if similar_faces: + for similar_face in similar_faces: + target_vision_frame = debug_face(similar_face, target_vision_frame) + return target_vision_frame + + +def process_frames(source_paths : List[str], queue_payloads : List[QueuePayload], update_progress : UpdateProgress) -> None: + reference_faces = get_reference_faces() if 'reference' in state_manager.get_item('face_selector_mode') else None + + for queue_payload in process_manager.manage(queue_payloads): + target_vision_path = queue_payload['frame_path'] + target_vision_frame = read_image(target_vision_path) + output_vision_frame = process_frame( + { + 'reference_faces': reference_faces, + 'target_vision_frame': target_vision_frame + }) + write_image(target_vision_path, output_vision_frame) + update_progress(1) + + +def process_image(source_paths : List[str], target_path : str, output_path : str) -> None: + reference_faces = get_reference_faces() if 'reference' in state_manager.get_item('face_selector_mode') else None + target_vision_frame = read_static_image(target_path) + output_vision_frame = process_frame( + { + 'reference_faces': reference_faces, + 'target_vision_frame': target_vision_frame + }) + write_image(output_path, output_vision_frame) + + +def process_video(source_paths : List[str], temp_frame_paths : List[str]) -> None: + processors.multi_process_frames(source_paths, temp_frame_paths, process_frames) diff --git a/facefusion/processors/modules/face_editor.py b/facefusion/processors/modules/face_editor.py new file mode 100755 index 00000000..7e77d200 --- /dev/null +++ b/facefusion/processors/modules/face_editor.py @@ -0,0 +1,528 @@ +from argparse import ArgumentParser +from typing import List, Tuple + +import cv2 +import numpy + +import facefusion.jobs.job_manager +import facefusion.jobs.job_store +import facefusion.processors.core as processors +from facefusion import config, content_analyser, face_classifier, face_detector, face_landmarker, face_masker, face_recognizer, inference_manager, logger, process_manager, state_manager, wording +from facefusion.common_helper import create_float_metavar +from facefusion.download import conditional_download_hashes, conditional_download_sources +from facefusion.face_analyser import get_many_faces, get_one_face +from facefusion.face_helper import paste_back, scale_face_landmark_5, warp_face_by_face_landmark_5 +from facefusion.face_masker import create_static_box_mask +from facefusion.face_selector import find_similar_faces, sort_and_filter_faces +from facefusion.face_store import get_reference_faces +from facefusion.filesystem import in_directory, is_image, is_video, resolve_relative_path, same_file_extension +from facefusion.processors import choices as processors_choices +from facefusion.processors.live_portrait import create_rotation, limit_euler_angles, limit_expression +from facefusion.processors.typing import FaceEditorInputs, LivePortraitExpression, LivePortraitFeatureVolume, LivePortraitMotionPoints, LivePortraitPitch, LivePortraitRoll, LivePortraitRotation, LivePortraitScale, LivePortraitTranslation, LivePortraitYaw +from facefusion.program_helper import find_argument_group +from facefusion.thread_helper import conditional_thread_semaphore, thread_semaphore +from facefusion.typing import ApplyStateItem, Args, Face, FaceLandmark68, InferencePool, ModelOptions, ModelSet, ProcessMode, QueuePayload, UpdateProgress, VisionFrame +from facefusion.vision import read_image, read_static_image, write_image + +MODEL_SET : ModelSet =\ +{ + 'live_portrait': + { + 'hashes': + { + 'feature_extractor': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/live_portrait_feature_extractor.hash', + 'path': resolve_relative_path('../.assets/models/live_portrait_feature_extractor.hash') + }, + 'motion_extractor': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/live_portrait_motion_extractor.hash', + 'path': resolve_relative_path('../.assets/models/live_portrait_motion_extractor.hash') + }, + 'eye_retargeter': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/live_portrait_eye_retargeter.hash', + 'path': resolve_relative_path('../.assets/models/live_portrait_eye_retargeter.hash') + }, + 'lip_retargeter': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/live_portrait_lip_retargeter.hash', + 'path': resolve_relative_path('../.assets/models/live_portrait_lip_retargeter.hash') + }, + 'stitcher': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/live_portrait_stitcher.hash', + 'path': resolve_relative_path('../.assets/models/live_portrait_stitcher.hash') + }, + 'generator': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/live_portrait_generator.hash', + 'path': resolve_relative_path('../.assets/models/live_portrait_generator.hash') + } + }, + 'sources': + { + 'feature_extractor': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/live_portrait_feature_extractor.onnx', + 'path': resolve_relative_path('../.assets/models/live_portrait_feature_extractor.onnx') + }, + 'motion_extractor': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/live_portrait_motion_extractor.onnx', + 'path': resolve_relative_path('../.assets/models/live_portrait_motion_extractor.onnx') + }, + 'eye_retargeter': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/live_portrait_eye_retargeter.onnx', + 'path': resolve_relative_path('../.assets/models/live_portrait_eye_retargeter.onnx') + }, + 'lip_retargeter': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/live_portrait_lip_retargeter.onnx', + 'path': resolve_relative_path('../.assets/models/live_portrait_lip_retargeter.onnx') + }, + 'stitcher': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/live_portrait_stitcher.onnx', + 'path': resolve_relative_path('../.assets/models/live_portrait_stitcher.onnx') + }, + 'generator': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/live_portrait_generator.onnx', + 'path': resolve_relative_path('../.assets/models/live_portrait_generator.onnx') + } + }, + 'template': 'ffhq_512', + 'size': (512, 512) + } +} + + +def get_inference_pool() -> InferencePool: + model_sources = get_model_options().get('sources') + model_context = __name__ + '.' + state_manager.get_item('face_editor_model') + return inference_manager.get_inference_pool(model_context, model_sources) + + +def clear_inference_pool() -> None: + model_context = __name__ + '.' + state_manager.get_item('face_editor_model') + inference_manager.clear_inference_pool(model_context) + + +def get_model_options() -> ModelOptions: + face_editor_model = state_manager.get_item('face_editor_model') + return MODEL_SET.get(face_editor_model) + + +def register_args(program : ArgumentParser) -> None: + group_processors = find_argument_group(program, 'processors') + if group_processors: + group_processors.add_argument('--face-editor-model', help = wording.get('help.face_editor_model'), default = config.get_str_value('processors.face_editor_model', 'live_portrait'), choices = processors_choices.face_editor_models) + group_processors.add_argument('--face-editor-eyebrow-direction', help = wording.get('help.face_editor_eyebrow_direction'), type = float, default = config.get_float_value('processors.face_editor_eyebrow_direction', '0'), choices = processors_choices.face_editor_eyebrow_direction_range, metavar = create_float_metavar(processors_choices.face_editor_eyebrow_direction_range)) + group_processors.add_argument('--face-editor-eye-gaze-horizontal', help = wording.get('help.face_editor_eye_gaze_horizontal'), type = float, default = config.get_float_value('processors.face_editor_eye_gaze_horizontal', '0'), choices = processors_choices.face_editor_eye_gaze_horizontal_range, metavar = create_float_metavar(processors_choices.face_editor_eye_gaze_horizontal_range)) + group_processors.add_argument('--face-editor-eye-gaze-vertical', help = wording.get('help.face_editor_eye_gaze_vertical'), type = float, default = config.get_float_value('processors.face_editor_eye_gaze_vertical', '0'), choices = processors_choices.face_editor_eye_gaze_vertical_range, metavar = create_float_metavar(processors_choices.face_editor_eye_gaze_vertical_range)) + group_processors.add_argument('--face-editor-eye-open-ratio', help = wording.get('help.face_editor_eye_open_ratio'), type = float, default = config.get_float_value('processors.face_editor_eye_open_ratio', '0'), choices = processors_choices.face_editor_eye_open_ratio_range, metavar = create_float_metavar(processors_choices.face_editor_eye_open_ratio_range)) + group_processors.add_argument('--face-editor-lip-open-ratio', help = wording.get('help.face_editor_lip_open_ratio'), type = float, default = config.get_float_value('processors.face_editor_lip_open_ratio', '0'), choices = processors_choices.face_editor_lip_open_ratio_range, metavar = create_float_metavar(processors_choices.face_editor_lip_open_ratio_range)) + group_processors.add_argument('--face-editor-mouth-grim', help = wording.get('help.face_editor_mouth_grim'), type = float, default = config.get_float_value('processors.face_editor_mouth_grim', '0'), choices = processors_choices.face_editor_mouth_grim_range, metavar = create_float_metavar(processors_choices.face_editor_mouth_grim_range)) + group_processors.add_argument('--face-editor-mouth-pout', help = wording.get('help.face_editor_mouth_pout'), type = float, default = config.get_float_value('processors.face_editor_mouth_pout', '0'), choices = processors_choices.face_editor_mouth_pout_range, metavar = create_float_metavar(processors_choices.face_editor_mouth_pout_range)) + group_processors.add_argument('--face-editor-mouth-purse', help = wording.get('help.face_editor_mouth_purse'), type = float, default = config.get_float_value('processors.face_editor_mouth_purse', '0'), choices = processors_choices.face_editor_mouth_purse_range, metavar = create_float_metavar(processors_choices.face_editor_mouth_purse_range)) + group_processors.add_argument('--face-editor-mouth-smile', help = wording.get('help.face_editor_mouth_smile'), type = float, default = config.get_float_value('processors.face_editor_mouth_smile', '0'), choices = processors_choices.face_editor_mouth_smile_range, metavar = create_float_metavar(processors_choices.face_editor_mouth_smile_range)) + group_processors.add_argument('--face-editor-mouth-position-horizontal', help = wording.get('help.face_editor_mouth_position_horizontal'), type = float, default = config.get_float_value('processors.face_editor_mouth_position_horizontal', '0'), choices = processors_choices.face_editor_mouth_position_horizontal_range, metavar = create_float_metavar(processors_choices.face_editor_mouth_position_horizontal_range)) + group_processors.add_argument('--face-editor-mouth-position-vertical', help = wording.get('help.face_editor_mouth_position_vertical'), type = float, default = config.get_float_value('processors.face_editor_mouth_position_vertical', '0'), choices = processors_choices.face_editor_mouth_position_vertical_range, metavar = create_float_metavar(processors_choices.face_editor_mouth_position_vertical_range)) + group_processors.add_argument('--face-editor-head-pitch', help = wording.get('help.face_editor_head_pitch'), type = float, default = config.get_float_value('processors.face_editor_head_pitch', '0'), choices = processors_choices.face_editor_head_pitch_range, metavar = create_float_metavar(processors_choices.face_editor_head_pitch_range)) + group_processors.add_argument('--face-editor-head-yaw', help=wording.get('help.face_editor_head_yaw'), type = float, default = config.get_float_value('processors.face_editor_head_yaw', '0'), choices = processors_choices.face_editor_head_yaw_range, metavar = create_float_metavar(processors_choices.face_editor_head_yaw_range)) + group_processors.add_argument('--face-editor-head-roll', help=wording.get('help.face_editor_head_roll'), type = float, default = config.get_float_value('processors.face_editor_head_roll', '0'), choices = processors_choices.face_editor_head_roll_range, metavar = create_float_metavar(processors_choices.face_editor_head_roll_range)) + facefusion.jobs.job_store.register_step_keys([ 'face_editor_model', 'face_editor_eyebrow_direction', 'face_editor_eye_gaze_horizontal', 'face_editor_eye_gaze_vertical', 'face_editor_eye_open_ratio', 'face_editor_lip_open_ratio', 'face_editor_mouth_grim', 'face_editor_mouth_pout', 'face_editor_mouth_purse', 'face_editor_mouth_smile', 'face_editor_mouth_position_horizontal', 'face_editor_mouth_position_vertical', 'face_editor_head_pitch', 'face_editor_head_yaw', 'face_editor_head_roll' ]) + + +def apply_args(args : Args, apply_state_item : ApplyStateItem) -> None: + apply_state_item('face_editor_model', args.get('face_editor_model')) + apply_state_item('face_editor_eyebrow_direction', args.get('face_editor_eyebrow_direction')) + apply_state_item('face_editor_eye_gaze_horizontal', args.get('face_editor_eye_gaze_horizontal')) + apply_state_item('face_editor_eye_gaze_vertical', args.get('face_editor_eye_gaze_vertical')) + apply_state_item('face_editor_eye_open_ratio', args.get('face_editor_eye_open_ratio')) + apply_state_item('face_editor_lip_open_ratio', args.get('face_editor_lip_open_ratio')) + apply_state_item('face_editor_mouth_grim', args.get('face_editor_mouth_grim')) + apply_state_item('face_editor_mouth_pout', args.get('face_editor_mouth_pout')) + apply_state_item('face_editor_mouth_purse', args.get('face_editor_mouth_purse')) + apply_state_item('face_editor_mouth_smile', args.get('face_editor_mouth_smile')) + apply_state_item('face_editor_mouth_position_horizontal', args.get('face_editor_mouth_position_horizontal')) + apply_state_item('face_editor_mouth_position_vertical', args.get('face_editor_mouth_position_vertical')) + apply_state_item('face_editor_head_pitch', args.get('face_editor_head_pitch')) + apply_state_item('face_editor_head_yaw', args.get('face_editor_head_yaw')) + apply_state_item('face_editor_head_roll', args.get('face_editor_head_roll')) + + +def pre_check() -> bool: + download_directory_path = resolve_relative_path('../.assets/models') + model_hashes = get_model_options().get('hashes') + model_sources = get_model_options().get('sources') + + return conditional_download_hashes(download_directory_path, model_hashes) and conditional_download_sources(download_directory_path, model_sources) + + +def pre_process(mode : ProcessMode) -> bool: + if mode in [ 'output', 'preview' ] and not is_image(state_manager.get_item('target_path')) and not is_video(state_manager.get_item('target_path')): + logger.error(wording.get('choose_image_or_video_target') + wording.get('exclamation_mark'), __name__) + return False + if mode == 'output' and not in_directory(state_manager.get_item('output_path')): + logger.error(wording.get('specify_image_or_video_output') + wording.get('exclamation_mark'), __name__) + return False + if mode == 'output' and not same_file_extension([ state_manager.get_item('target_path'), state_manager.get_item('output_path') ]): + logger.error(wording.get('match_target_and_output_extension') + wording.get('exclamation_mark'), __name__) + return False + return True + + +def post_process() -> None: + read_static_image.cache_clear() + if state_manager.get_item('video_memory_strategy') in [ 'strict', 'moderate' ]: + clear_inference_pool() + if state_manager.get_item('video_memory_strategy') == 'strict': + content_analyser.clear_inference_pool() + face_classifier.clear_inference_pool() + face_detector.clear_inference_pool() + face_landmarker.clear_inference_pool() + face_masker.clear_inference_pool() + face_recognizer.clear_inference_pool() + + +def edit_face(target_face : Face, temp_vision_frame : VisionFrame) -> VisionFrame: + model_template = get_model_options().get('template') + model_size = get_model_options().get('size') + face_landmark_5 = scale_face_landmark_5(target_face.landmark_set.get('5/68'), 1.5) + crop_vision_frame, affine_matrix = warp_face_by_face_landmark_5(temp_vision_frame, face_landmark_5, model_template, model_size) + box_mask = create_static_box_mask(crop_vision_frame.shape[:2][::-1], state_manager.get_item('face_mask_blur'), (0, 0, 0, 0)) + crop_vision_frame = prepare_crop_frame(crop_vision_frame) + crop_vision_frame = apply_edit(crop_vision_frame, target_face.landmark_set.get('68')) + crop_vision_frame = normalize_crop_frame(crop_vision_frame) + temp_vision_frame = paste_back(temp_vision_frame, crop_vision_frame, box_mask, affine_matrix) + return temp_vision_frame + + +def apply_edit(crop_vision_frame : VisionFrame, face_landmark_68 : FaceLandmark68) -> VisionFrame: + feature_volume = forward_extract_feature(crop_vision_frame) + pitch, yaw, roll, scale, translation, expression, motion_points = forward_extract_motion(crop_vision_frame) + rotation = create_rotation(pitch, yaw, roll) + motion_points_target = scale * (motion_points @ rotation.T + expression) + translation + expression = edit_eye_gaze(expression) + expression = edit_mouth_grim(expression) + expression = edit_mouth_position(expression) + expression = edit_mouth_pout(expression) + expression = edit_mouth_purse(expression) + expression = edit_mouth_smile(expression) + expression = edit_eyebrow_direction(expression) + expression = limit_expression(expression) + rotation = edit_head_rotation(pitch, yaw, roll) + motion_points_source = motion_points @ rotation.T + motion_points_source += expression + motion_points_source *= scale + motion_points_source += translation + motion_points_source += edit_eye_open(motion_points_target, face_landmark_68) + motion_points_source += edit_lip_open(motion_points_target, face_landmark_68) + motion_points_source = forward_stitch_motion_points(motion_points_source, motion_points_target) + crop_vision_frame = forward_generate_frame(feature_volume, motion_points_source, motion_points_target) + return crop_vision_frame + + +def forward_extract_feature(crop_vision_frame : VisionFrame) -> LivePortraitFeatureVolume: + feature_extractor = get_inference_pool().get('feature_extractor') + + with conditional_thread_semaphore(): + feature_volume = feature_extractor.run(None, + { + 'input': crop_vision_frame + })[0] + + return feature_volume + + +def forward_extract_motion(crop_vision_frame : VisionFrame) -> Tuple[LivePortraitPitch, LivePortraitYaw, LivePortraitRoll, LivePortraitScale, LivePortraitTranslation, LivePortraitExpression, LivePortraitMotionPoints]: + motion_extractor = get_inference_pool().get('motion_extractor') + + with conditional_thread_semaphore(): + pitch, yaw, roll, scale, translation, expression, motion_points = motion_extractor.run(None, + { + 'input': crop_vision_frame + }) + + return pitch, yaw, roll, scale, translation, expression, motion_points + + +def forward_retarget_eye(eye_motion_points : LivePortraitMotionPoints) -> LivePortraitMotionPoints: + eye_retargeter = get_inference_pool().get('eye_retargeter') + + with conditional_thread_semaphore(): + eye_motion_points = eye_retargeter.run(None, + { + 'input': eye_motion_points + })[0] + + return eye_motion_points + + +def forward_retarget_lip(lip_motion_points : LivePortraitMotionPoints) -> LivePortraitMotionPoints: + lip_retargeter = get_inference_pool().get('lip_retargeter') + + with conditional_thread_semaphore(): + lip_motion_points = lip_retargeter.run(None, + { + 'input': lip_motion_points + })[0] + + return lip_motion_points + + +def forward_stitch_motion_points(source_motion_points : LivePortraitMotionPoints, target_motion_points : LivePortraitMotionPoints) -> LivePortraitMotionPoints: + stitcher = get_inference_pool().get('stitcher') + + with thread_semaphore(): + motion_points = stitcher.run(None, + { + 'source': source_motion_points, + 'target': target_motion_points + })[0] + + return motion_points + + +def forward_generate_frame(feature_volume : LivePortraitFeatureVolume, source_motion_points : LivePortraitMotionPoints, target_motion_points : LivePortraitMotionPoints) -> VisionFrame: + generator = get_inference_pool().get('generator') + + with thread_semaphore(): + crop_vision_frame = generator.run(None, + { + 'feature_volume': feature_volume, + 'source': source_motion_points, + 'target': target_motion_points + })[0][0] + + return crop_vision_frame + + +def edit_eyebrow_direction(expression : LivePortraitExpression) -> LivePortraitExpression: + face_editor_eyebrow = state_manager.get_item('face_editor_eyebrow_direction') + + if face_editor_eyebrow > 0: + expression[0, 1, 1] += numpy.interp(face_editor_eyebrow, [ -1, 1 ], [ -0.015, 0.015 ]) + expression[0, 2, 1] -= numpy.interp(face_editor_eyebrow, [ -1, 1 ], [ -0.020, 0.020 ]) + else: + expression[0, 1, 0] -= numpy.interp(face_editor_eyebrow, [ -1, 1 ], [ -0.015, 0.015 ]) + expression[0, 2, 0] += numpy.interp(face_editor_eyebrow, [ -1, 1 ], [ -0.020, 0.020 ]) + expression[0, 1, 1] += numpy.interp(face_editor_eyebrow, [ -1, 1 ], [ -0.005, 0.005 ]) + expression[0, 2, 1] -= numpy.interp(face_editor_eyebrow, [ -1, 1 ], [ -0.005, 0.005 ]) + return expression + + +def edit_eye_gaze(expression : LivePortraitExpression) -> LivePortraitExpression: + face_editor_eye_gaze_horizontal = state_manager.get_item('face_editor_eye_gaze_horizontal') + face_editor_eye_gaze_vertical = state_manager.get_item('face_editor_eye_gaze_vertical') + + if face_editor_eye_gaze_horizontal > 0: + expression[0, 11, 0] += numpy.interp(face_editor_eye_gaze_horizontal, [ -1, 1 ], [ -0.015, 0.015 ]) + expression[0, 15, 0] += numpy.interp(face_editor_eye_gaze_horizontal, [ -1, 1 ], [ -0.020, 0.020 ]) + else: + expression[0, 11, 0] += numpy.interp(face_editor_eye_gaze_horizontal, [ -1, 1 ], [ -0.020, 0.020 ]) + expression[0, 15, 0] += numpy.interp(face_editor_eye_gaze_horizontal, [ -1, 1 ], [ -0.015, 0.015 ]) + expression[0, 1, 1] += numpy.interp(face_editor_eye_gaze_vertical, [ -1, 1 ], [ -0.0025, 0.0025 ]) + expression[0, 2, 1] -= numpy.interp(face_editor_eye_gaze_vertical, [ -1, 1 ], [ -0.0025, 0.0025 ]) + expression[0, 11, 1] -= numpy.interp(face_editor_eye_gaze_vertical, [ -1, 1 ], [ -0.010, 0.010 ]) + expression[0, 13, 1] -= numpy.interp(face_editor_eye_gaze_vertical, [ -1, 1 ], [ -0.005, 0.005 ]) + expression[0, 15, 1] -= numpy.interp(face_editor_eye_gaze_vertical, [ -1, 1 ], [ -0.010, 0.010 ]) + expression[0, 16, 1] -= numpy.interp(face_editor_eye_gaze_vertical, [ -1, 1 ], [ -0.005, 0.005 ]) + return expression + + +def edit_eye_open(motion_points : LivePortraitMotionPoints, face_landmark_68 : FaceLandmark68) -> LivePortraitMotionPoints: + face_editor_eye_open_ratio = state_manager.get_item('face_editor_eye_open_ratio') + left_eye_ratio = calc_distance_ratio(face_landmark_68, 37, 40, 39, 36) + right_eye_ratio = calc_distance_ratio(face_landmark_68, 43, 46, 45, 42) + + if face_editor_eye_open_ratio < 0: + eye_motion_points = numpy.concatenate([ motion_points.ravel(), [ left_eye_ratio, right_eye_ratio, 0.0 ] ]) + else: + eye_motion_points = numpy.concatenate([ motion_points.ravel(), [ left_eye_ratio, right_eye_ratio, 0.6 ] ]) + eye_motion_points = eye_motion_points.reshape(1, -1).astype(numpy.float32) + eye_motion_points = forward_retarget_eye(eye_motion_points) * numpy.abs(face_editor_eye_open_ratio) + eye_motion_points = eye_motion_points.reshape(-1, 21, 3) + return eye_motion_points + + +def edit_lip_open(motion_points : LivePortraitMotionPoints, face_landmark_68 : FaceLandmark68) -> LivePortraitMotionPoints: + face_editor_lip_open_ratio = state_manager.get_item('face_editor_lip_open_ratio') + lip_ratio = calc_distance_ratio(face_landmark_68, 62, 66, 54, 48) + + if face_editor_lip_open_ratio < 0: + lip_motion_points = numpy.concatenate([ motion_points.ravel(), [ lip_ratio, 0.0 ] ]) + else: + lip_motion_points = numpy.concatenate([ motion_points.ravel(), [ lip_ratio, 1.0 ] ]) + lip_motion_points = lip_motion_points.reshape(1, -1).astype(numpy.float32) + lip_motion_points = forward_retarget_lip(lip_motion_points) * numpy.abs(face_editor_lip_open_ratio) + lip_motion_points = lip_motion_points.reshape(-1, 21, 3) + return lip_motion_points + + +def edit_mouth_grim(expression : LivePortraitExpression) -> LivePortraitExpression: + face_editor_mouth_grim = state_manager.get_item('face_editor_mouth_grim') + if face_editor_mouth_grim > 0: + expression[0, 17, 2] -= numpy.interp(face_editor_mouth_grim, [ -1, 1 ], [ -0.005, 0.005 ]) + expression[0, 19, 2] += numpy.interp(face_editor_mouth_grim, [ -1, 1 ], [ -0.01, 0.01 ]) + expression[0, 20, 1] -= numpy.interp(face_editor_mouth_grim, [ -1, 1 ], [ -0.06, 0.06 ]) + expression[0, 20, 2] -= numpy.interp(face_editor_mouth_grim, [ -1, 1 ], [ -0.03, 0.03 ]) + else: + expression[0, 19, 1] -= numpy.interp(face_editor_mouth_grim, [ -1, 1 ], [ -0.05, 0.05 ]) + expression[0, 19, 2] -= numpy.interp(face_editor_mouth_grim, [ -1, 1 ], [ -0.02, 0.02 ]) + expression[0, 20, 2] -= numpy.interp(face_editor_mouth_grim, [ -1, 1 ], [ -0.03, 0.03 ]) + return expression + + +def edit_mouth_position(expression : LivePortraitExpression) -> LivePortraitExpression: + face_editor_mouth_position_horizontal = state_manager.get_item('face_editor_mouth_position_horizontal') + face_editor_mouth_position_vertical = state_manager.get_item('face_editor_mouth_position_vertical') + expression[0, 19, 0] += numpy.interp(face_editor_mouth_position_horizontal, [ -1, 1 ], [ -0.05, 0.05 ]) + expression[0, 20, 0] += numpy.interp(face_editor_mouth_position_horizontal, [ -1, 1 ], [ -0.04, 0.04 ]) + if face_editor_mouth_position_vertical > 0: + expression[0, 19, 1] -= numpy.interp(face_editor_mouth_position_vertical, [ -1, 1 ], [ -0.04, 0.04 ]) + expression[0, 20, 1] -= numpy.interp(face_editor_mouth_position_vertical, [ -1, 1 ], [ -0.02, 0.02 ]) + else: + expression[0, 19, 1] -= numpy.interp(face_editor_mouth_position_vertical, [ -1, 1 ], [ -0.05, 0.05 ]) + expression[0, 20, 1] -= numpy.interp(face_editor_mouth_position_vertical, [ -1, 1 ], [ -0.04, 0.04 ]) + return expression + + +def edit_mouth_pout(expression : LivePortraitExpression) -> LivePortraitExpression: + face_editor_mouth_pout = state_manager.get_item('face_editor_mouth_pout') + if face_editor_mouth_pout > 0: + expression[0, 19, 1] -= numpy.interp(face_editor_mouth_pout, [ -1, 1 ], [ -0.022, 0.022 ]) + expression[0, 19, 2] += numpy.interp(face_editor_mouth_pout, [ -1, 1 ], [ -0.025, 0.025 ]) + expression[0, 20, 2] -= numpy.interp(face_editor_mouth_pout, [ -1, 1 ], [ -0.002, 0.002 ]) + else: + expression[0, 19, 1] += numpy.interp(face_editor_mouth_pout, [ -1, 1 ], [ -0.022, 0.022 ]) + expression[0, 19, 2] += numpy.interp(face_editor_mouth_pout, [ -1, 1 ], [ -0.025, 0.025 ]) + expression[0, 20, 2] -= numpy.interp(face_editor_mouth_pout, [ -1, 1 ], [ -0.002, 0.002 ]) + return expression + + +def edit_mouth_purse(expression : LivePortraitExpression) -> LivePortraitExpression: + face_editor_mouth_purse = state_manager.get_item('face_editor_mouth_purse') + if face_editor_mouth_purse > 0: + expression[0, 19, 1] -= numpy.interp(face_editor_mouth_purse, [ -1, 1 ], [ -0.04, 0.04 ]) + expression[0, 19, 2] -= numpy.interp(face_editor_mouth_purse, [ -1, 1 ], [ -0.02, 0.02 ]) + else: + expression[0, 14, 1] -= numpy.interp(face_editor_mouth_purse, [ -1, 1 ], [ -0.02, 0.02 ]) + expression[0, 17, 2] += numpy.interp(face_editor_mouth_purse, [ -1, 1 ], [ -0.01, 0.01 ]) + expression[0, 19, 2] -= numpy.interp(face_editor_mouth_purse, [ -1, 1 ], [ -0.015, 0.015 ]) + expression[0, 20, 2] -= numpy.interp(face_editor_mouth_purse, [ -1, 1 ], [ -0.002, 0.002 ]) + return expression + + +def edit_mouth_smile(expression : LivePortraitExpression) -> LivePortraitExpression: + face_editor_mouth_smile = state_manager.get_item('face_editor_mouth_smile') + if face_editor_mouth_smile > 0: + expression[0, 20, 1] -= numpy.interp(face_editor_mouth_smile, [ -1, 1 ], [ -0.015, 0.015 ]) + expression[0, 14, 1] -= numpy.interp(face_editor_mouth_smile, [ -1, 1 ], [ -0.025, 0.025 ]) + expression[0, 17, 1] += numpy.interp(face_editor_mouth_smile, [ -1, 1 ], [ -0.01, 0.01 ]) + expression[0, 17, 2] += numpy.interp(face_editor_mouth_smile, [ -1, 1 ], [ -0.004, 0.004 ]) + expression[0, 3, 1] -= numpy.interp(face_editor_mouth_smile, [ -1, 1 ], [ -0.0045, 0.0045 ]) + expression[0, 7, 1] -= numpy.interp(face_editor_mouth_smile, [ -1, 1 ], [ -0.0045, 0.0045 ]) + else: + expression[0, 14, 1] -= numpy.interp(face_editor_mouth_smile, [ -1, 1 ], [ -0.02, 0.02 ]) + expression[0, 17, 1] += numpy.interp(face_editor_mouth_smile, [ -1, 1 ], [ -0.003, 0.003 ]) + expression[0, 19, 1] += numpy.interp(face_editor_mouth_smile, [ -1, 1 ], [ -0.02, 0.02 ]) + expression[0, 19, 2] -= numpy.interp(face_editor_mouth_smile, [ -1, 1 ], [ -0.005, 0.005 ]) + expression[0, 20, 2] += numpy.interp(face_editor_mouth_smile, [ -1, 1 ], [ -0.01, 0.01 ]) + expression[0, 3, 1] += numpy.interp(face_editor_mouth_smile, [ -1, 1 ], [ -0.0045, 0.0045 ]) + expression[0, 7, 1] += numpy.interp(face_editor_mouth_smile, [ -1, 1 ], [ -0.0045, 0.0045 ]) + return expression + + +def edit_head_rotation(pitch : LivePortraitPitch, yaw : LivePortraitYaw, roll : LivePortraitRoll) -> LivePortraitRotation: + face_editor_head_pitch = state_manager.get_item('face_editor_head_pitch') + face_editor_head_yaw = state_manager.get_item('face_editor_head_yaw') + face_editor_head_roll = state_manager.get_item('face_editor_head_roll') + edit_pitch = pitch + float(numpy.interp(face_editor_head_pitch, [ -1, 1 ], [ 20, -20 ])) + edit_yaw = yaw + float(numpy.interp(face_editor_head_yaw, [ -1, 1 ], [ 60, -60 ])) + edit_roll = roll + float(numpy.interp(face_editor_head_roll, [ -1, 1 ], [ -15, 15 ])) + edit_pitch, edit_yaw, edit_roll = limit_euler_angles(pitch, yaw, roll, edit_pitch, edit_yaw, edit_roll) + rotation = create_rotation(edit_pitch, edit_yaw, edit_roll) + return rotation + + +def calc_distance_ratio(face_landmark_68 : FaceLandmark68, top_index : int, bottom_index : int, left_index : int, right_index : int) -> float: + vertical_direction = face_landmark_68[top_index] - face_landmark_68[bottom_index] + horizontal_direction = face_landmark_68[left_index] - face_landmark_68[right_index] + distance_ratio = float(numpy.linalg.norm(vertical_direction) / (numpy.linalg.norm(horizontal_direction) + 1e-6)) + return distance_ratio + + +def prepare_crop_frame(crop_vision_frame : VisionFrame) -> VisionFrame: + model_size = get_model_options().get('size') + prepare_size = (model_size[0] // 2, model_size[1] // 2) + crop_vision_frame = cv2.resize(crop_vision_frame, prepare_size, interpolation = cv2.INTER_AREA) + crop_vision_frame = crop_vision_frame[:, :, ::-1] / 255.0 + crop_vision_frame = numpy.expand_dims(crop_vision_frame.transpose(2, 0, 1), axis = 0).astype(numpy.float32) + return crop_vision_frame + + +def normalize_crop_frame(crop_vision_frame : VisionFrame) -> VisionFrame: + crop_vision_frame = crop_vision_frame.transpose(1, 2, 0).clip(0, 1) + crop_vision_frame = (crop_vision_frame * 255.0) + crop_vision_frame = crop_vision_frame.astype(numpy.uint8)[:, :, ::-1] + return crop_vision_frame + + +def get_reference_frame(source_face : Face, target_face : Face, temp_vision_frame : VisionFrame) -> VisionFrame: + pass + + +def process_frame(inputs : FaceEditorInputs) -> VisionFrame: + reference_faces = inputs.get('reference_faces') + target_vision_frame = inputs.get('target_vision_frame') + many_faces = sort_and_filter_faces(get_many_faces([ target_vision_frame ])) + + if state_manager.get_item('face_selector_mode') == 'many': + if many_faces: + for target_face in many_faces: + target_vision_frame = edit_face(target_face, target_vision_frame) + if state_manager.get_item('face_selector_mode') == 'one': + target_face = get_one_face(many_faces) + if target_face: + target_vision_frame = edit_face(target_face, target_vision_frame) + if state_manager.get_item('face_selector_mode') == 'reference': + similar_faces = find_similar_faces(many_faces, reference_faces, state_manager.get_item('reference_face_distance')) + if similar_faces: + for similar_face in similar_faces: + target_vision_frame = edit_face(similar_face, target_vision_frame) + return target_vision_frame + + +def process_frames(source_path : List[str], queue_payloads : List[QueuePayload], update_progress : UpdateProgress) -> None: + reference_faces = get_reference_faces() if 'reference' in state_manager.get_item('face_selector_mode') else None + + for queue_payload in process_manager.manage(queue_payloads): + target_vision_path = queue_payload['frame_path'] + target_vision_frame = read_image(target_vision_path) + output_vision_frame = process_frame( + { + 'reference_faces': reference_faces, + 'target_vision_frame': target_vision_frame + }) + write_image(target_vision_path, output_vision_frame) + update_progress(1) + + +def process_image(source_path : str, target_path : str, output_path : str) -> None: + reference_faces = get_reference_faces() if 'reference' in state_manager.get_item('face_selector_mode') else None + target_vision_frame = read_static_image(target_path) + output_vision_frame = process_frame( + { + 'reference_faces': reference_faces, + 'target_vision_frame': target_vision_frame + }) + write_image(output_path, output_vision_frame) + + +def process_video(source_paths : List[str], temp_frame_paths : List[str]) -> None: + processors.multi_process_frames(None, temp_frame_paths, process_frames) diff --git a/facefusion/processors/modules/face_enhancer.py b/facefusion/processors/modules/face_enhancer.py new file mode 100755 index 00000000..da8d6498 --- /dev/null +++ b/facefusion/processors/modules/face_enhancer.py @@ -0,0 +1,397 @@ +from argparse import ArgumentParser +from typing import List + +import cv2 +import numpy + +import facefusion.jobs.job_manager +import facefusion.jobs.job_store +import facefusion.processors.core as processors +from facefusion import config, content_analyser, face_classifier, face_detector, face_landmarker, face_masker, face_recognizer, inference_manager, logger, process_manager, state_manager, wording +from facefusion.common_helper import create_int_metavar +from facefusion.download import conditional_download_hashes, conditional_download_sources +from facefusion.face_analyser import get_many_faces, get_one_face +from facefusion.face_helper import paste_back, warp_face_by_face_landmark_5 +from facefusion.face_masker import create_occlusion_mask, create_static_box_mask +from facefusion.face_selector import find_similar_faces, sort_and_filter_faces +from facefusion.face_store import get_reference_faces +from facefusion.filesystem import in_directory, is_image, is_video, resolve_relative_path, same_file_extension +from facefusion.processors import choices as processors_choices +from facefusion.processors.typing import FaceEnhancerInputs +from facefusion.program_helper import find_argument_group +from facefusion.thread_helper import thread_semaphore +from facefusion.typing import ApplyStateItem, Args, Face, InferencePool, ModelOptions, ModelSet, ProcessMode, QueuePayload, UpdateProgress, VisionFrame +from facefusion.vision import read_image, read_static_image, write_image + +MODEL_SET : ModelSet =\ +{ + 'codeformer': + { + 'hashes': + { + 'face_enhancer': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/codeformer.hash', + 'path': resolve_relative_path('../.assets/models/codeformer.hash') + } + }, + 'sources': + { + 'face_enhancer': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/codeformer.onnx', + 'path': resolve_relative_path('../.assets/models/codeformer.onnx') + } + }, + 'template': 'ffhq_512', + 'size': (512, 512) + }, + 'gfpgan_1.2': + { + 'hashes': + { + 'face_enhancer': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/gfpgan_1.2.hash', + 'path': resolve_relative_path('../.assets/models/gfpgan_1.2.hash') + } + }, + 'sources': + { + 'face_enhancer': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/gfpgan_1.2.onnx', + 'path': resolve_relative_path('../.assets/models/gfpgan_1.2.onnx') + } + }, + 'template': 'ffhq_512', + 'size': (512, 512) + }, + 'gfpgan_1.3': + { + 'hashes': + { + 'face_enhancer': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/gfpgan_1.3.hash', + 'path': resolve_relative_path('../.assets/models/gfpgan_1.3.hash') + } + }, + 'sources': + { + 'face_enhancer': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/gfpgan_1.3.onnx', + 'path': resolve_relative_path('../.assets/models/gfpgan_1.3.onnx') + } + }, + 'template': 'ffhq_512', + 'size': (512, 512) + }, + 'gfpgan_1.4': + { + 'hashes': + { + 'face_enhancer': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/gfpgan_1.4.hash', + 'path': resolve_relative_path('../.assets/models/gfpgan_1.4.hash') + } + }, + 'sources': + { + 'face_enhancer': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/gfpgan_1.4.onnx', + 'path': resolve_relative_path('../.assets/models/gfpgan_1.4.onnx') + } + }, + 'template': 'ffhq_512', + 'size': (512, 512) + }, + 'gpen_bfr_256': + { + 'hashes': + { + 'face_enhancer': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/gpen_bfr_256.hash', + 'path': resolve_relative_path('../.assets/models/gpen_bfr_256.hash') + } + }, + 'sources': + { + 'face_enhancer': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/gpen_bfr_256.onnx', + 'path': resolve_relative_path('../.assets/models/gpen_bfr_256.onnx') + } + }, + 'template': 'arcface_128_v2', + 'size': (256, 256) + }, + 'gpen_bfr_512': + { + 'hashes': + { + 'face_enhancer': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/gpen_bfr_512.hash', + 'path': resolve_relative_path('../.assets/models/gpen_bfr_512.hash') + } + }, + 'sources': + { + 'face_enhancer': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/gpen_bfr_512.onnx', + 'path': resolve_relative_path('../.assets/models/gpen_bfr_512.onnx') + } + }, + 'template': 'ffhq_512', + 'size': (512, 512) + }, + 'gpen_bfr_1024': + { + 'hashes': + { + 'face_enhancer': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/gpen_bfr_1024.hash', + 'path': resolve_relative_path('../.assets/models/gpen_bfr_1024.hash') + } + }, + 'sources': + { + 'face_enhancer': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/gpen_bfr_1024.onnx', + 'path': resolve_relative_path('../.assets/models/gpen_bfr_1024.onnx') + } + }, + 'template': 'ffhq_512', + 'size': (1024, 1024) + }, + 'gpen_bfr_2048': + { + 'hashes': + { + 'face_enhancer': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/gpen_bfr_2048.hash', + 'path': resolve_relative_path('../.assets/models/gpen_bfr_2048.hash') + } + }, + 'sources': + { + 'face_enhancer': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/gpen_bfr_2048.onnx', + 'path': resolve_relative_path('../.assets/models/gpen_bfr_2048.onnx') + } + }, + 'template': 'ffhq_512', + 'size': (2048, 2048) + }, + 'restoreformer_plus_plus': + { + 'hashes': + { + 'face_enhancer': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/restoreformer_plus_plus.hash', + 'path': resolve_relative_path('../.assets/models/restoreformer_plus_plus.hash') + } + }, + 'sources': + { + 'face_enhancer': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/restoreformer_plus_plus.onnx', + 'path': resolve_relative_path('../.assets/models/restoreformer_plus_plus.onnx') + } + }, + 'template': 'ffhq_512', + 'size': (512, 512) + } +} + + +def get_inference_pool() -> InferencePool: + model_sources = get_model_options().get('sources') + model_context = __name__ + '.' + state_manager.get_item('face_enhancer_model') + return inference_manager.get_inference_pool(model_context, model_sources) + + +def clear_inference_pool() -> None: + model_context = __name__ + '.' + state_manager.get_item('face_enhancer_model') + inference_manager.clear_inference_pool(model_context) + + +def get_model_options() -> ModelOptions: + face_enhancer_model = state_manager.get_item('face_enhancer_model') + return MODEL_SET.get(face_enhancer_model) + + +def register_args(program : ArgumentParser) -> None: + group_processors = find_argument_group(program, 'processors') + if group_processors: + group_processors.add_argument('--face-enhancer-model', help = wording.get('help.face_enhancer_model'), default = config.get_str_value('processors.face_enhancer_model', 'gfpgan_1.4'), choices = processors_choices.face_enhancer_models) + group_processors.add_argument('--face-enhancer-blend', help = wording.get('help.face_enhancer_blend'), type = int, default = config.get_int_value('processors.face_enhancer_blend', '80'), choices = processors_choices.face_enhancer_blend_range, metavar = create_int_metavar(processors_choices.face_enhancer_blend_range)) + facefusion.jobs.job_store.register_step_keys([ 'face_enhancer_model', 'face_enhancer_blend' ]) + + +def apply_args(args : Args, apply_state_item : ApplyStateItem) -> None: + apply_state_item('face_enhancer_model', args.get('face_enhancer_model')) + apply_state_item('face_enhancer_blend', args.get('face_enhancer_blend')) + + +def pre_check() -> bool: + download_directory_path = resolve_relative_path('../.assets/models') + model_hashes = get_model_options().get('hashes') + model_sources = get_model_options().get('sources') + + return conditional_download_hashes(download_directory_path, model_hashes) and conditional_download_sources(download_directory_path, model_sources) + + +def pre_process(mode : ProcessMode) -> bool: + if mode in [ 'output', 'preview' ] and not is_image(state_manager.get_item('target_path')) and not is_video(state_manager.get_item('target_path')): + logger.error(wording.get('choose_image_or_video_target') + wording.get('exclamation_mark'), __name__) + return False + if mode == 'output' and not in_directory(state_manager.get_item('output_path')): + logger.error(wording.get('specify_image_or_video_output') + wording.get('exclamation_mark'), __name__) + return False + if mode == 'output' and not same_file_extension([ state_manager.get_item('target_path'), state_manager.get_item('output_path') ]): + logger.error(wording.get('match_target_and_output_extension') + wording.get('exclamation_mark'), __name__) + return False + return True + + +def post_process() -> None: + read_static_image.cache_clear() + if state_manager.get_item('video_memory_strategy') in [ 'strict', 'moderate' ]: + clear_inference_pool() + if state_manager.get_item('video_memory_strategy') == 'strict': + content_analyser.clear_inference_pool() + face_classifier.clear_inference_pool() + face_detector.clear_inference_pool() + face_landmarker.clear_inference_pool() + face_masker.clear_inference_pool() + face_recognizer.clear_inference_pool() + + +def enhance_face(target_face : Face, temp_vision_frame : VisionFrame) -> VisionFrame: + model_template = get_model_options().get('template') + model_size = get_model_options().get('size') + crop_vision_frame, affine_matrix = warp_face_by_face_landmark_5(temp_vision_frame, target_face.landmark_set.get('5/68'), model_template, model_size) + box_mask = create_static_box_mask(crop_vision_frame.shape[:2][::-1], state_manager.get_item('face_mask_blur'), (0, 0, 0, 0)) + crop_masks =\ + [ + box_mask + ] + + if 'occlusion' in state_manager.get_item('face_mask_types'): + occlusion_mask = create_occlusion_mask(crop_vision_frame) + crop_masks.append(occlusion_mask) + + crop_vision_frame = prepare_crop_frame(crop_vision_frame) + crop_vision_frame = forward(crop_vision_frame) + crop_vision_frame = normalize_crop_frame(crop_vision_frame) + crop_mask = numpy.minimum.reduce(crop_masks).clip(0, 1) + paste_vision_frame = paste_back(temp_vision_frame, crop_vision_frame, crop_mask, affine_matrix) + temp_vision_frame = blend_frame(temp_vision_frame, paste_vision_frame) + return temp_vision_frame + + +def forward(crop_vision_frame : VisionFrame) -> VisionFrame: + face_enhancer = get_inference_pool().get('face_enhancer') + face_enhancer_inputs = {} + + for face_enhancer_input in face_enhancer.get_inputs(): + if face_enhancer_input.name == 'input': + face_enhancer_inputs[face_enhancer_input.name] = crop_vision_frame + if face_enhancer_input.name == 'weight': + weight = numpy.array([ 1 ]).astype(numpy.double) + face_enhancer_inputs[face_enhancer_input.name] = weight + + with thread_semaphore(): + crop_vision_frame = face_enhancer.run(None, face_enhancer_inputs)[0][0] + + return crop_vision_frame + + +def prepare_crop_frame(crop_vision_frame : VisionFrame) -> VisionFrame: + crop_vision_frame = crop_vision_frame[:, :, ::-1] / 255.0 + crop_vision_frame = (crop_vision_frame - 0.5) / 0.5 + crop_vision_frame = numpy.expand_dims(crop_vision_frame.transpose(2, 0, 1), axis = 0).astype(numpy.float32) + return crop_vision_frame + + +def normalize_crop_frame(crop_vision_frame : VisionFrame) -> VisionFrame: + crop_vision_frame = numpy.clip(crop_vision_frame, -1, 1) + crop_vision_frame = (crop_vision_frame + 1) / 2 + crop_vision_frame = crop_vision_frame.transpose(1, 2, 0) + crop_vision_frame = (crop_vision_frame * 255.0).round() + crop_vision_frame = crop_vision_frame.astype(numpy.uint8)[:, :, ::-1] + return crop_vision_frame + + +def blend_frame(temp_vision_frame : VisionFrame, paste_vision_frame : VisionFrame) -> VisionFrame: + face_enhancer_blend = 1 - (state_manager.get_item('face_enhancer_blend') / 100) + temp_vision_frame = cv2.addWeighted(temp_vision_frame, face_enhancer_blend, paste_vision_frame, 1 - face_enhancer_blend, 0) + return temp_vision_frame + + +def get_reference_frame(source_face : Face, target_face : Face, temp_vision_frame : VisionFrame) -> VisionFrame: + return enhance_face(target_face, temp_vision_frame) + + +def process_frame(inputs : FaceEnhancerInputs) -> VisionFrame: + reference_faces = inputs.get('reference_faces') + target_vision_frame = inputs.get('target_vision_frame') + many_faces = sort_and_filter_faces(get_many_faces([ target_vision_frame ])) + + if state_manager.get_item('face_selector_mode') == 'many': + if many_faces: + for target_face in many_faces: + target_vision_frame = enhance_face(target_face, target_vision_frame) + if state_manager.get_item('face_selector_mode') == 'one': + target_face = get_one_face(many_faces) + if target_face: + target_vision_frame = enhance_face(target_face, target_vision_frame) + if state_manager.get_item('face_selector_mode') == 'reference': + similar_faces = find_similar_faces(many_faces, reference_faces, state_manager.get_item('reference_face_distance')) + if similar_faces: + for similar_face in similar_faces: + target_vision_frame = enhance_face(similar_face, target_vision_frame) + return target_vision_frame + + +def process_frames(source_path : List[str], queue_payloads : List[QueuePayload], update_progress : UpdateProgress) -> None: + reference_faces = get_reference_faces() if 'reference' in state_manager.get_item('face_selector_mode') else None + + for queue_payload in process_manager.manage(queue_payloads): + target_vision_path = queue_payload['frame_path'] + target_vision_frame = read_image(target_vision_path) + output_vision_frame = process_frame( + { + 'reference_faces': reference_faces, + 'target_vision_frame': target_vision_frame + }) + write_image(target_vision_path, output_vision_frame) + update_progress(1) + + +def process_image(source_path : str, target_path : str, output_path : str) -> None: + reference_faces = get_reference_faces() if 'reference' in state_manager.get_item('face_selector_mode') else None + target_vision_frame = read_static_image(target_path) + output_vision_frame = process_frame( + { + 'reference_faces': reference_faces, + 'target_vision_frame': target_vision_frame + }) + write_image(output_path, output_vision_frame) + + +def process_video(source_paths : List[str], temp_frame_paths : List[str]) -> None: + processors.multi_process_frames(None, temp_frame_paths, process_frames) diff --git a/facefusion/processors/modules/face_swapper.py b/facefusion/processors/modules/face_swapper.py new file mode 100755 index 00000000..6aa63733 --- /dev/null +++ b/facefusion/processors/modules/face_swapper.py @@ -0,0 +1,564 @@ +from argparse import ArgumentParser +from typing import List, Tuple + +import numpy + +import facefusion.jobs.job_manager +import facefusion.jobs.job_store +import facefusion.processors.core as processors +from facefusion import config, content_analyser, face_classifier, face_detector, face_landmarker, face_masker, face_recognizer, inference_manager, logger, process_manager, state_manager, wording +from facefusion.common_helper import get_first +from facefusion.download import conditional_download_hashes, conditional_download_sources +from facefusion.execution import has_execution_provider +from facefusion.face_analyser import get_average_face, get_many_faces, get_one_face +from facefusion.face_helper import paste_back, warp_face_by_face_landmark_5 +from facefusion.face_masker import create_occlusion_mask, create_region_mask, create_static_box_mask +from facefusion.face_selector import find_similar_faces, sort_and_filter_faces +from facefusion.face_store import get_reference_faces +from facefusion.filesystem import filter_image_paths, has_image, in_directory, is_image, is_video, resolve_relative_path, same_file_extension +from facefusion.inference_manager import get_static_model_initializer +from facefusion.processors import choices as processors_choices +from facefusion.processors.pixel_boost import explode_pixel_boost, implode_pixel_boost +from facefusion.processors.typing import FaceSwapperInputs +from facefusion.program_helper import find_argument_group, suggest_face_swapper_pixel_boost_choices +from facefusion.thread_helper import conditional_thread_semaphore +from facefusion.typing import ApplyStateItem, Args, Embedding, Face, InferencePool, ModelOptions, ModelSet, ProcessMode, QueuePayload, UpdateProgress, VisionFrame +from facefusion.vision import read_image, read_static_image, read_static_images, unpack_resolution, write_image + +MODEL_SET : ModelSet =\ +{ + 'blendswap_256': + { + 'hashes': + { + 'face_swapper': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/blendswap_256.hash', + 'path': resolve_relative_path('../.assets/models/blendswap_256.hash') + } + }, + 'sources': + { + 'face_swapper': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/blendswap_256.onnx', + 'path': resolve_relative_path('../.assets/models/blendswap_256.onnx') + } + }, + 'type': 'blendswap', + 'template': 'ffhq_512', + 'size': (256, 256), + 'mean': [ 0.0, 0.0, 0.0 ], + 'standard_deviation': [ 1.0, 1.0, 1.0 ] + }, + 'ghost_256_unet_1': + { + 'hashes': + { + 'face_swapper': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/ghost_256_unet_1.hash', + 'path': resolve_relative_path('../.assets/models/ghost_256_unet_1.hash') + }, + 'embedding_converter': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/arcface_converter_ghost.hash', + 'path': resolve_relative_path('../.assets/models/arcface_converter_ghost.hash') + } + }, + 'sources': + { + 'face_swapper': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/ghost_256_unet_1.onnx', + 'path': resolve_relative_path('../.assets/models/ghost_256_unet_1.onnx') + }, + 'embedding_converter': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/arcface_converter_ghost.onnx', + 'path': resolve_relative_path('../.assets/models/arcface_converter_ghost.onnx') + } + }, + 'type': 'ghost', + 'template': 'arcface_112_v1', + 'size': (256, 256), + 'mean': [ 0.5, 0.5, 0.5 ], + 'standard_deviation': [ 0.5, 0.5, 0.5 ] + }, + 'ghost_256_unet_2': + { + 'hashes': + { + 'face_swapper': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/ghost_256_unet_2.hash', + 'path': resolve_relative_path('../.assets/models/ghost_256_unet_2.hash') + }, + 'embedding_converter': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/arcface_converter_ghost.hash', + 'path': resolve_relative_path('../.assets/models/arcface_converter_ghost.hash') + } + }, + 'sources': + { + 'face_swapper': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/ghost_256_unet_2.onnx', + 'path': resolve_relative_path('../.assets/models/ghost_256_unet_2.onnx') + }, + 'embedding_converter': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/arcface_converter_ghost.onnx', + 'path': resolve_relative_path('../.assets/models/arcface_converter_ghost.onnx') + } + }, + 'type': 'ghost', + 'template': 'arcface_112_v1', + 'size': (256, 256), + 'mean': [ 0.5, 0.5, 0.5 ], + 'standard_deviation': [ 0.5, 0.5, 0.5 ] + }, + 'ghost_256_unet_3': + { + 'hashes': + { + 'face_swapper': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/ghost_256_unet_3.hash', + 'path': resolve_relative_path('../.assets/models/ghost_256_unet_3.hash') + }, + 'embedding_converter': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/arcface_converter_ghost.hash', + 'path': resolve_relative_path('../.assets/models/arcface_converter_ghost.hash') + } + }, + 'sources': + { + 'face_swapper': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/ghost_256_unet_3.onnx', + 'path': resolve_relative_path('../.assets/models/ghost_256_unet_3.onnx') + }, + 'embedding_converter': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/arcface_converter_ghost.onnx', + 'path': resolve_relative_path('../.assets/models/arcface_converter_ghost.onnx') + } + }, + 'type': 'ghost', + 'template': 'arcface_112_v1', + 'size': (256, 256), + 'mean': [ 0.5, 0.5, 0.5 ], + 'standard_deviation': [ 0.5, 0.5, 0.5 ] + }, + 'inswapper_128': + { + 'hashes': + { + 'face_swapper': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/inswapper_128.hash', + 'path': resolve_relative_path('../.assets/models/inswapper_128.hash') + } + }, + 'sources': + { + 'face_swapper': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/inswapper_128.onnx', + 'path': resolve_relative_path('../.assets/models/inswapper_128.onnx') + } + }, + 'type': 'inswapper', + 'template': 'arcface_128_v2', + 'size': (128, 128), + 'mean': [ 0.0, 0.0, 0.0 ], + 'standard_deviation': [ 1.0, 1.0, 1.0 ] + }, + 'inswapper_128_fp16': + { + 'hashes': + { + 'face_swapper': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/inswapper_128_fp16.hash', + 'path': resolve_relative_path('../.assets/models/inswapper_128_fp16.hash') + } + }, + 'sources': + { + 'face_swapper': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/inswapper_128_fp16.onnx', + 'path': resolve_relative_path('../.assets/models/inswapper_128_fp16.onnx') + } + }, + 'type': 'inswapper', + 'template': 'arcface_128_v2', + 'size': (128, 128), + 'mean': [ 0.0, 0.0, 0.0 ], + 'standard_deviation': [ 1.0, 1.0, 1.0 ] + }, + 'simswap_256': + { + 'hashes': + { + 'face_swapper': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/simswap_256.hash', + 'path': resolve_relative_path('../.assets/models/simswap_256.hash') + }, + 'embedding_converter': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/arcface_converter_simswap.hash', + 'path': resolve_relative_path('../.assets/models/arcface_converter_simswap.hash') + } + }, + 'sources': + { + 'face_swapper': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/simswap_256.onnx', + 'path': resolve_relative_path('../.assets/models/simswap_256.onnx') + }, + 'embedding_converter': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/arcface_converter_simswap.onnx', + 'path': resolve_relative_path('../.assets/models/arcface_converter_simswap.onnx') + } + }, + 'type': 'simswap', + 'template': 'arcface_112_v1', + 'size': (256, 256), + 'mean': [ 0.485, 0.456, 0.406 ], + 'standard_deviation': [ 0.229, 0.224, 0.225 ] + }, + 'simswap_512_unofficial': + { + 'hashes': + { + 'face_swapper': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/simswap_512_unofficial.hash', + 'path': resolve_relative_path('../.assets/models/simswap_512_unofficial.hash') + }, + 'embedding_converter': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/arcface_converter_simswap.hash', + 'path': resolve_relative_path('../.assets/models/arcface_converter_simswap.hash') + } + }, + 'sources': + { + 'face_swapper': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/simswap_512_unofficial.onnx', + 'path': resolve_relative_path('../.assets/models/simswap_512_unofficial.onnx') + }, + 'embedding_converter': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/arcface_converter_simswap.onnx', + 'path': resolve_relative_path('../.assets/models/arcface_converter_simswap.onnx') + } + }, + 'type': 'simswap', + 'template': 'arcface_112_v1', + 'size': (512, 512), + 'mean': [ 0.0, 0.0, 0.0 ], + 'standard_deviation': [ 1.0, 1.0, 1.0 ] + }, + 'uniface_256': + { + 'hashes': + { + 'face_swapper': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/uniface_256.hash', + 'path': resolve_relative_path('../.assets/models/uniface_256.hash') + } + }, + 'sources': + { + 'face_swapper': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/uniface_256.onnx', + 'path': resolve_relative_path('../.assets/models/uniface_256.onnx') + } + }, + 'type': 'uniface', + 'template': 'ffhq_512', + 'size': (256, 256), + 'mean': [ 0.5, 0.5, 0.5 ], + 'standard_deviation': [ 0.5, 0.5, 0.5 ] + } +} + + +def get_inference_pool() -> InferencePool: + model_sources = get_model_options().get('sources') + model_context = __name__ + '.' + state_manager.get_item('face_swapper_model') + return inference_manager.get_inference_pool(model_context, model_sources) + + +def clear_inference_pool() -> None: + model_context = __name__ + '.' + state_manager.get_item('face_swapper_model') + inference_manager.clear_inference_pool(model_context) + + +def get_model_options() -> ModelOptions: + face_swapper_model = state_manager.get_item('face_swapper_model') + face_swapper_model = 'inswapper_128' if has_execution_provider('coreml') and face_swapper_model == 'inswapper_128_fp16' else face_swapper_model + return MODEL_SET.get(face_swapper_model) + + +def register_args(program : ArgumentParser) -> None: + group_processors = find_argument_group(program, 'processors') + if group_processors: + group_processors.add_argument('--face-swapper-model', help = wording.get('help.face_swapper_model'), default = config.get_str_value('processors.face_swapper_model', 'inswapper_128_fp16'), choices = processors_choices.face_swapper_set.keys()) + face_swapper_pixel_boost_choices = suggest_face_swapper_pixel_boost_choices(program) + group_processors.add_argument('--face-swapper-pixel-boost', help = wording.get('help.face_swapper_pixel_boost'), default = config.get_str_value('processors.face_swapper_pixel_boost', get_first(face_swapper_pixel_boost_choices)), choices = face_swapper_pixel_boost_choices) + facefusion.jobs.job_store.register_step_keys([ 'face_swapper_model', 'face_swapper_pixel_boost' ]) + + +def apply_args(args : Args, apply_state_item : ApplyStateItem) -> None: + apply_state_item('face_swapper_model', args.get('face_swapper_model')) + apply_state_item('face_swapper_pixel_boost', args.get('face_swapper_pixel_boost')) + + +def pre_check() -> bool: + download_directory_path = resolve_relative_path('../.assets/models') + model_hashes = get_model_options().get('hashes') + model_sources = get_model_options().get('sources') + + return conditional_download_hashes(download_directory_path, model_hashes) and conditional_download_sources(download_directory_path, model_sources) + + +def pre_process(mode : ProcessMode) -> bool: + if not has_image(state_manager.get_item('source_paths')): + logger.error(wording.get('choose_image_source') + wording.get('exclamation_mark'), __name__) + return False + source_image_paths = filter_image_paths(state_manager.get_item('source_paths')) + source_frames = read_static_images(source_image_paths) + source_faces = get_many_faces(source_frames) + if not get_one_face(source_faces): + logger.error(wording.get('no_source_face_detected') + wording.get('exclamation_mark'), __name__) + return False + if mode in [ 'output', 'preview' ] and not is_image(state_manager.get_item('target_path')) and not is_video(state_manager.get_item('target_path')): + logger.error(wording.get('choose_image_or_video_target') + wording.get('exclamation_mark'), __name__) + return False + if mode == 'output' and not in_directory(state_manager.get_item('output_path')): + logger.error(wording.get('specify_image_or_video_output') + wording.get('exclamation_mark'), __name__) + return False + if mode == 'output' and not same_file_extension([ state_manager.get_item('target_path'), state_manager.get_item('output_path') ]): + logger.error(wording.get('match_target_and_output_extension') + wording.get('exclamation_mark'), __name__) + return False + return True + + +def post_process() -> None: + read_static_image.cache_clear() + if state_manager.get_item('video_memory_strategy') in [ 'strict', 'moderate' ]: + clear_inference_pool() + get_static_model_initializer.cache_clear() + if state_manager.get_item('video_memory_strategy') == 'strict': + content_analyser.clear_inference_pool() + face_classifier.clear_inference_pool() + face_detector.clear_inference_pool() + face_landmarker.clear_inference_pool() + face_masker.clear_inference_pool() + face_recognizer.clear_inference_pool() + + +def swap_face(source_face : Face, target_face : Face, temp_vision_frame : VisionFrame) -> VisionFrame: + model_template = get_model_options().get('template') + model_size = get_model_options().get('size') + pixel_boost_size = unpack_resolution(state_manager.get_item('face_swapper_pixel_boost')) + pixel_boost_total = pixel_boost_size[0] // model_size[0] + crop_vision_frame, affine_matrix = warp_face_by_face_landmark_5(temp_vision_frame, target_face.landmark_set.get('5/68'), model_template, pixel_boost_size) + crop_masks = [] + temp_vision_frames = [] + + if 'box' in state_manager.get_item('face_mask_types'): + box_mask = create_static_box_mask(crop_vision_frame.shape[:2][::-1], state_manager.get_item('face_mask_blur'), state_manager.get_item('face_mask_padding')) + crop_masks.append(box_mask) + + if 'occlusion' in state_manager.get_item('face_mask_types'): + occlusion_mask = create_occlusion_mask(crop_vision_frame) + crop_masks.append(occlusion_mask) + + pixel_boost_vision_frames = implode_pixel_boost(crop_vision_frame, pixel_boost_total, model_size) + for pixel_boost_vision_frame in pixel_boost_vision_frames: + pixel_boost_vision_frame = prepare_crop_frame(pixel_boost_vision_frame) + pixel_boost_vision_frame = forward_swap_face(source_face, pixel_boost_vision_frame) + pixel_boost_vision_frame = normalize_crop_frame(pixel_boost_vision_frame) + temp_vision_frames.append(pixel_boost_vision_frame) + crop_vision_frame = explode_pixel_boost(temp_vision_frames, pixel_boost_total, model_size, pixel_boost_size) + + if 'region' in state_manager.get_item('face_mask_types'): + region_mask = create_region_mask(crop_vision_frame, state_manager.get_item('face_mask_regions')) + crop_masks.append(region_mask) + + crop_mask = numpy.minimum.reduce(crop_masks).clip(0, 1) + temp_vision_frame = paste_back(temp_vision_frame, crop_vision_frame, crop_mask, affine_matrix) + return temp_vision_frame + + +def forward_swap_face(source_face : Face, crop_vision_frame : VisionFrame) -> VisionFrame: + face_swapper = get_inference_pool().get('face_swapper') + model_type = get_model_options().get('type') + face_swapper_inputs = {} + + for face_swapper_input in face_swapper.get_inputs(): + if face_swapper_input.name == 'source': + if model_type == 'blendswap' or model_type == 'uniface': + face_swapper_inputs[face_swapper_input.name] = prepare_source_frame(source_face) + else: + face_swapper_inputs[face_swapper_input.name] = prepare_source_embedding(source_face) + if face_swapper_input.name == 'target': + face_swapper_inputs[face_swapper_input.name] = crop_vision_frame + + with conditional_thread_semaphore(): + crop_vision_frame = face_swapper.run(None, face_swapper_inputs)[0][0] + + return crop_vision_frame + + +def forward_convert_embedding(embedding : Embedding) -> Embedding: + embedding_converter = get_inference_pool().get('embedding_converter') + + with conditional_thread_semaphore(): + embedding = embedding_converter.run(None, + { + 'input': embedding + })[0] + + return embedding + + +def prepare_source_frame(source_face : Face) -> VisionFrame: + model_type = get_model_options().get('type') + source_vision_frame = read_static_image(get_first(state_manager.get_item('source_paths'))) + + if model_type == 'blendswap': + source_vision_frame, _ = warp_face_by_face_landmark_5(source_vision_frame, source_face.landmark_set.get('5/68'), 'arcface_112_v2', (112, 112)) + if model_type == 'uniface': + source_vision_frame, _ = warp_face_by_face_landmark_5(source_vision_frame, source_face.landmark_set.get('5/68'), 'ffhq_512', (256, 256)) + source_vision_frame = source_vision_frame[:, :, ::-1] / 255.0 + source_vision_frame = source_vision_frame.transpose(2, 0, 1) + source_vision_frame = numpy.expand_dims(source_vision_frame, axis = 0).astype(numpy.float32) + return source_vision_frame + + +def prepare_source_embedding(source_face : Face) -> Embedding: + model_type = get_model_options().get('type') + + if model_type == 'ghost': + source_embedding, _ = convert_embedding(source_face) + source_embedding = source_embedding.reshape(1, -1) + elif model_type == 'inswapper': + model_path = get_model_options().get('sources').get('face_swapper').get('path') + model_initializer = get_static_model_initializer(model_path) + source_embedding = source_face.embedding.reshape((1, -1)) + source_embedding = numpy.dot(source_embedding, model_initializer) / numpy.linalg.norm(source_embedding) + else: + _, source_normed_embedding = convert_embedding(source_face) + source_embedding = source_normed_embedding.reshape(1, -1) + return source_embedding + + +def convert_embedding(source_face : Face) -> Tuple[Embedding, Embedding]: + embedding = source_face.embedding.reshape(-1, 512) + embedding = forward_convert_embedding(embedding) + embedding = embedding.ravel() + normed_embedding = embedding / numpy.linalg.norm(embedding) + return embedding, normed_embedding + + +def prepare_crop_frame(crop_vision_frame : VisionFrame) -> VisionFrame: + model_mean = get_model_options().get('mean') + model_standard_deviation = get_model_options().get('standard_deviation') + + crop_vision_frame = crop_vision_frame[:, :, ::-1] / 255.0 + crop_vision_frame = (crop_vision_frame - model_mean) / model_standard_deviation + crop_vision_frame = crop_vision_frame.transpose(2, 0, 1) + crop_vision_frame = numpy.expand_dims(crop_vision_frame, axis = 0).astype(numpy.float32) + return crop_vision_frame + + +def normalize_crop_frame(crop_vision_frame : VisionFrame) -> VisionFrame: + model_type = get_model_options().get('type') + model_mean = get_model_options().get('mean') + model_standard_deviation = get_model_options().get('standard_deviation') + + crop_vision_frame = crop_vision_frame.transpose(1, 2, 0) + if model_type == 'ghost' or model_type == 'uniface': + crop_vision_frame = crop_vision_frame * model_standard_deviation + model_mean + crop_vision_frame = crop_vision_frame.clip(0, 1) + crop_vision_frame = crop_vision_frame[:, :, ::-1] * 255 + return crop_vision_frame + + +def get_reference_frame(source_face : Face, target_face : Face, temp_vision_frame : VisionFrame) -> VisionFrame: + return swap_face(source_face, target_face, temp_vision_frame) + + +def process_frame(inputs : FaceSwapperInputs) -> VisionFrame: + reference_faces = inputs.get('reference_faces') + source_face = inputs.get('source_face') + target_vision_frame = inputs.get('target_vision_frame') + many_faces = sort_and_filter_faces(get_many_faces([ target_vision_frame ])) + + if state_manager.get_item('face_selector_mode') == 'many': + if many_faces: + for target_face in many_faces: + target_vision_frame = swap_face(source_face, target_face, target_vision_frame) + if state_manager.get_item('face_selector_mode') == 'one': + target_face = get_one_face(many_faces) + if target_face: + target_vision_frame = swap_face(source_face, target_face, target_vision_frame) + if state_manager.get_item('face_selector_mode') == 'reference': + similar_faces = find_similar_faces(many_faces, reference_faces, state_manager.get_item('reference_face_distance')) + if similar_faces: + for similar_face in similar_faces: + target_vision_frame = swap_face(source_face, similar_face, target_vision_frame) + return target_vision_frame + + +def process_frames(source_paths : List[str], queue_payloads : List[QueuePayload], update_progress : UpdateProgress) -> None: + reference_faces = get_reference_faces() if 'reference' in state_manager.get_item('face_selector_mode') else None + source_frames = read_static_images(source_paths) + source_faces = get_many_faces(source_frames) + source_face = get_average_face(source_faces) + + for queue_payload in process_manager.manage(queue_payloads): + target_vision_path = queue_payload['frame_path'] + target_vision_frame = read_image(target_vision_path) + output_vision_frame = process_frame( + { + 'reference_faces': reference_faces, + 'source_face': source_face, + 'target_vision_frame': target_vision_frame + }) + write_image(target_vision_path, output_vision_frame) + update_progress(1) + + +def process_image(source_paths : List[str], target_path : str, output_path : str) -> None: + reference_faces = get_reference_faces() if 'reference' in state_manager.get_item('face_selector_mode') else None + source_frames = read_static_images(source_paths) + source_faces = get_many_faces(source_frames) + source_face = get_average_face(source_faces) + target_vision_frame = read_static_image(target_path) + output_vision_frame = process_frame( + { + 'reference_faces': reference_faces, + 'source_face': source_face, + 'target_vision_frame': target_vision_frame + }) + write_image(output_path, output_vision_frame) + + +def process_video(source_paths : List[str], temp_frame_paths : List[str]) -> None: + processors.multi_process_frames(source_paths, temp_frame_paths, process_frames) diff --git a/facefusion/processors/modules/frame_colorizer.py b/facefusion/processors/modules/frame_colorizer.py new file mode 100644 index 00000000..43f6b3d7 --- /dev/null +++ b/facefusion/processors/modules/frame_colorizer.py @@ -0,0 +1,283 @@ +from argparse import ArgumentParser +from typing import List + +import cv2 +import numpy + +import facefusion.jobs.job_manager +import facefusion.jobs.job_store +import facefusion.processors.core as processors +from facefusion import config, content_analyser, inference_manager, logger, process_manager, state_manager, wording +from facefusion.common_helper import create_int_metavar +from facefusion.download import conditional_download_hashes, conditional_download_sources +from facefusion.filesystem import in_directory, is_image, is_video, resolve_relative_path, same_file_extension +from facefusion.processors import choices as processors_choices +from facefusion.processors.typing import FrameColorizerInputs +from facefusion.program_helper import find_argument_group +from facefusion.thread_helper import thread_semaphore +from facefusion.typing import ApplyStateItem, Args, Face, InferencePool, ModelOptions, ModelSet, ProcessMode, QueuePayload, UpdateProgress, VisionFrame +from facefusion.vision import read_image, read_static_image, unpack_resolution, write_image + +MODEL_SET : ModelSet =\ +{ + 'ddcolor': + { + 'hashes': + { + 'frame_colorizer': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/ddcolor.hash', + 'path': resolve_relative_path('../.assets/models/ddcolor.hash') + } + }, + 'sources': + { + 'frame_colorizer': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/ddcolor.onnx', + 'path': resolve_relative_path('../.assets/models/ddcolor.onnx') + } + }, + 'type': 'ddcolor' + }, + 'ddcolor_artistic': + { + 'hashes': + { + 'frame_colorizer': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/ddcolor_artistic.hash', + 'path': resolve_relative_path('../.assets/models/ddcolor_artistic.hash') + } + }, + 'sources': + { + 'frame_colorizer': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/ddcolor_artistic.onnx', + 'path': resolve_relative_path('../.assets/models/ddcolor_artistic.onnx') + } + }, + 'type': 'ddcolor' + }, + 'deoldify': + { + 'hashes': + { + 'frame_colorizer': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/deoldify.hash', + 'path': resolve_relative_path('../.assets/models/deoldify.hash') + } + }, + 'sources': + { + 'frame_colorizer': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/deoldify.onnx', + 'path': resolve_relative_path('../.assets/models/deoldify.onnx') + } + }, + 'type': 'deoldify' + }, + 'deoldify_artistic': + { + 'hashes': + { + 'frame_colorizer': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/deoldify_artistic.hash', + 'path': resolve_relative_path('../.assets/models/deoldify_artistic.hash') + } + }, + 'sources': + { + 'frame_colorizer': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/deoldify_artistic.onnx', + 'path': resolve_relative_path('../.assets/models/deoldify_artistic.onnx') + } + }, + 'type': 'deoldify' + }, + 'deoldify_stable': + { + 'hashes': + { + 'frame_colorizer': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/deoldify_stable.hash', + 'path': resolve_relative_path('../.assets/models/deoldify_stable.hash') + } + }, + 'sources': + { + 'frame_colorizer': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/deoldify_stable.onnx', + 'path': resolve_relative_path('../.assets/models/deoldify_stable.onnx') + } + }, + 'type': 'deoldify' + } +} + + +def get_inference_pool() -> InferencePool: + model_sources = get_model_options().get('sources') + model_context = __name__ + '.' + state_manager.get_item('frame_colorizer_model') + return inference_manager.get_inference_pool(model_context, model_sources) + + +def clear_inference_pool() -> None: + model_context = __name__ + '.' + state_manager.get_item('frame_colorizer_model') + inference_manager.clear_inference_pool(model_context) + + +def get_model_options() -> ModelOptions: + frame_colorizer_model = state_manager.get_item('frame_colorizer_model') + return MODEL_SET.get(frame_colorizer_model) + + +def register_args(program : ArgumentParser) -> None: + group_processors = find_argument_group(program, 'processors') + if group_processors: + group_processors.add_argument('--frame-colorizer-model', help = wording.get('help.frame_colorizer_model'), default = config.get_str_value('processors.frame_colorizer_model', 'ddcolor'), choices = processors_choices.frame_colorizer_models) + group_processors.add_argument('--frame-colorizer-blend', help = wording.get('help.frame_colorizer_blend'), type = int, default = config.get_int_value('processors.frame_colorizer_blend', '100'), choices = processors_choices.frame_colorizer_blend_range, metavar = create_int_metavar(processors_choices.frame_colorizer_blend_range)) + group_processors.add_argument('--frame-colorizer-size', help = wording.get('help.frame_colorizer_size'), type = str, default = config.get_str_value('processors.frame_colorizer_size', '256x256'), choices = processors_choices.frame_colorizer_sizes) + facefusion.jobs.job_store.register_step_keys([ 'frame_colorizer_model', 'frame_colorizer_blend', 'frame_colorizer_size' ]) + + +def apply_args(args : Args, apply_state_item : ApplyStateItem) -> None: + apply_state_item('frame_colorizer_model', args.get('frame_colorizer_model')) + apply_state_item('frame_colorizer_blend', args.get('frame_colorizer_blend')) + apply_state_item('frame_colorizer_size', args.get('frame_colorizer_size')) + + +def pre_check() -> bool: + download_directory_path = resolve_relative_path('../.assets/models') + model_hashes = get_model_options().get('hashes') + model_sources = get_model_options().get('sources') + + return conditional_download_hashes(download_directory_path, model_hashes) and conditional_download_sources(download_directory_path, model_sources) + + +def pre_process(mode : ProcessMode) -> bool: + if mode in [ 'output', 'preview' ] and not is_image(state_manager.get_item('target_path')) and not is_video(state_manager.get_item('target_path')): + logger.error(wording.get('choose_image_or_video_target') + wording.get('exclamation_mark'), __name__) + return False + if mode == 'output' and not in_directory(state_manager.get_item('output_path')): + logger.error(wording.get('specify_image_or_video_output') + wording.get('exclamation_mark'), __name__) + return False + if mode == 'output' and not same_file_extension([ state_manager.get_item('target_path'), state_manager.get_item('output_path') ]): + logger.error(wording.get('match_target_and_output_extension') + wording.get('exclamation_mark'), __name__) + return False + return True + + +def post_process() -> None: + read_static_image.cache_clear() + if state_manager.get_item('video_memory_strategy') in [ 'strict', 'moderate' ]: + clear_inference_pool() + if state_manager.get_item('video_memory_strategy') == 'strict': + content_analyser.clear_inference_pool() + + +def colorize_frame(temp_vision_frame : VisionFrame) -> VisionFrame: + color_vision_frame = prepare_temp_frame(temp_vision_frame) + color_vision_frame = forward(color_vision_frame) + color_vision_frame = merge_color_frame(temp_vision_frame, color_vision_frame) + color_vision_frame = blend_frame(temp_vision_frame, color_vision_frame) + return color_vision_frame + + +def forward(color_vision_frame : VisionFrame) -> VisionFrame: + frame_colorizer = get_inference_pool().get('frame_colorizer') + + with thread_semaphore(): + color_vision_frame = frame_colorizer.run(None, + { + 'input': color_vision_frame + })[0][0] + + return color_vision_frame + + +def prepare_temp_frame(temp_vision_frame : VisionFrame) -> VisionFrame: + model_size = unpack_resolution(state_manager.get_item('frame_colorizer_size')) + model_type = get_model_options().get('type') + temp_vision_frame = cv2.cvtColor(temp_vision_frame, cv2.COLOR_BGR2GRAY) + temp_vision_frame = cv2.cvtColor(temp_vision_frame, cv2.COLOR_GRAY2RGB) + + if model_type == 'ddcolor': + temp_vision_frame = (temp_vision_frame / 255.0).astype(numpy.float32) #type:ignore[operator] + temp_vision_frame = cv2.cvtColor(temp_vision_frame, cv2.COLOR_RGB2LAB)[:, :, :1] + temp_vision_frame = numpy.concatenate((temp_vision_frame, numpy.zeros_like(temp_vision_frame), numpy.zeros_like(temp_vision_frame)), axis = -1) + temp_vision_frame = cv2.cvtColor(temp_vision_frame, cv2.COLOR_LAB2RGB) + + temp_vision_frame = cv2.resize(temp_vision_frame, model_size) + temp_vision_frame = temp_vision_frame.transpose((2, 0, 1)) + temp_vision_frame = numpy.expand_dims(temp_vision_frame, axis = 0).astype(numpy.float32) + return temp_vision_frame + + +def merge_color_frame(temp_vision_frame : VisionFrame, color_vision_frame : VisionFrame) -> VisionFrame: + model_type = get_model_options().get('type') + color_vision_frame = color_vision_frame.transpose(1, 2, 0) + color_vision_frame = cv2.resize(color_vision_frame, (temp_vision_frame.shape[1], temp_vision_frame.shape[0])) + + if model_type == 'ddcolor': + temp_vision_frame = (temp_vision_frame / 255.0).astype(numpy.float32) + temp_vision_frame = cv2.cvtColor(temp_vision_frame, cv2.COLOR_BGR2LAB)[:, :, :1] + color_vision_frame = numpy.concatenate((temp_vision_frame, color_vision_frame), axis = -1) + color_vision_frame = cv2.cvtColor(color_vision_frame, cv2.COLOR_LAB2BGR) + color_vision_frame = (color_vision_frame * 255.0).round().astype(numpy.uint8) #type:ignore[operator] + + if model_type == 'deoldify': + temp_blue_channel, _, _ = cv2.split(temp_vision_frame) + color_vision_frame = cv2.cvtColor(color_vision_frame, cv2.COLOR_BGR2RGB).astype(numpy.uint8) + color_vision_frame = cv2.cvtColor(color_vision_frame, cv2.COLOR_BGR2LAB) + _, color_green_channel, color_red_channel = cv2.split(color_vision_frame) + color_vision_frame = cv2.merge((temp_blue_channel, color_green_channel, color_red_channel)) + color_vision_frame = cv2.cvtColor(color_vision_frame, cv2.COLOR_LAB2BGR) + return color_vision_frame + + +def blend_frame(temp_vision_frame : VisionFrame, paste_vision_frame : VisionFrame) -> VisionFrame: + frame_colorizer_blend = 1 - (state_manager.get_item('frame_colorizer_blend') / 100) + temp_vision_frame = cv2.addWeighted(temp_vision_frame, frame_colorizer_blend, paste_vision_frame, 1 - frame_colorizer_blend, 0) + return temp_vision_frame + + +def get_reference_frame(source_face : Face, target_face : Face, temp_vision_frame : VisionFrame) -> VisionFrame: + pass + + +def process_frame(inputs : FrameColorizerInputs) -> VisionFrame: + target_vision_frame = inputs.get('target_vision_frame') + return colorize_frame(target_vision_frame) + + +def process_frames(source_paths : List[str], queue_payloads : List[QueuePayload], update_progress : UpdateProgress) -> None: + for queue_payload in process_manager.manage(queue_payloads): + target_vision_path = queue_payload['frame_path'] + target_vision_frame = read_image(target_vision_path) + output_vision_frame = process_frame( + { + 'target_vision_frame': target_vision_frame + }) + write_image(target_vision_path, output_vision_frame) + update_progress(1) + + +def process_image(source_paths : List[str], target_path : str, output_path : str) -> None: + target_vision_frame = read_static_image(target_path) + output_vision_frame = process_frame( + { + 'target_vision_frame': target_vision_frame + }) + write_image(output_path, output_vision_frame) + + +def process_video(source_paths : List[str], temp_frame_paths : List[str]) -> None: + processors.multi_process_frames(None, temp_frame_paths, process_frames) diff --git a/facefusion/processors/modules/frame_enhancer.py b/facefusion/processors/modules/frame_enhancer.py new file mode 100644 index 00000000..8e9c9df2 --- /dev/null +++ b/facefusion/processors/modules/frame_enhancer.py @@ -0,0 +1,415 @@ +from argparse import ArgumentParser +from typing import List + +import cv2 +import numpy + +import facefusion.jobs.job_manager +import facefusion.jobs.job_store +import facefusion.processors.core as processors +from facefusion import config, content_analyser, inference_manager, logger, process_manager, state_manager, wording +from facefusion.common_helper import create_int_metavar +from facefusion.download import conditional_download_hashes, conditional_download_sources +from facefusion.filesystem import in_directory, is_image, is_video, resolve_relative_path, same_file_extension +from facefusion.processors import choices as processors_choices +from facefusion.processors.typing import FrameEnhancerInputs +from facefusion.program_helper import find_argument_group +from facefusion.thread_helper import conditional_thread_semaphore +from facefusion.typing import ApplyStateItem, Args, Face, InferencePool, ModelOptions, ModelSet, ProcessMode, QueuePayload, UpdateProgress, VisionFrame +from facefusion.vision import create_tile_frames, merge_tile_frames, read_image, read_static_image, write_image + +MODEL_SET : ModelSet =\ +{ + 'clear_reality_x4': + { + 'hashes': + { + 'frame_enhancer': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/clear_reality_x4.hash', + 'path': resolve_relative_path('../.assets/models/clear_reality_x4.hash') + } + }, + 'sources': + { + 'frame_enhancer': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/clear_reality_x4.onnx', + 'path': resolve_relative_path('../.assets/models/clear_reality_x4.onnx') + } + }, + 'size': (128, 8, 4), + 'scale': 4 + }, + 'lsdir_x4': + { + 'hashes': + { + 'frame_enhancer': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/lsdir_x4.hash', + 'path': resolve_relative_path('../.assets/models/lsdir_x4.hash') + } + }, + 'sources': + { + 'frame_enhancer': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/lsdir_x4.onnx', + 'path': resolve_relative_path('../.assets/models/lsdir_x4.onnx') + } + }, + 'size': (128, 8, 4), + 'scale': 4 + }, + 'nomos8k_sc_x4': + { + 'hashes': + { + 'frame_enhancer': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/nomos8k_sc_x4.hash', + 'path': resolve_relative_path('../.assets/models/nomos8k_sc_x4.hash') + } + }, + 'sources': + { + 'frame_enhancer': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/nomos8k_sc_x4.onnx', + 'path': resolve_relative_path('../.assets/models/nomos8k_sc_x4.onnx') + } + }, + 'size': (128, 8, 4), + 'scale': 4 + }, + 'real_esrgan_x2': + { + 'hashes': + { + 'frame_enhancer': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/real_esrgan_x2.hash', + 'path': resolve_relative_path('../.assets/models/real_esrgan_x2.hash') + } + }, + 'sources': + { + 'frame_enhancer': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/real_esrgan_x2.onnx', + 'path': resolve_relative_path('../.assets/models/real_esrgan_x2.onnx') + } + }, + 'size': (256, 16, 8), + 'scale': 2 + }, + 'real_esrgan_x2_fp16': + { + 'hashes': + { + 'frame_enhancer': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/real_esrgan_x2_fp16.hash', + 'path': resolve_relative_path('../.assets/models/real_esrgan_x2_fp16.hash') + } + }, + 'sources': + { + 'frame_enhancer': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/real_esrgan_x2_fp16.onnx', + 'path': resolve_relative_path('../.assets/models/real_esrgan_x2_fp16.onnx') + } + }, + 'size': (256, 16, 8), + 'scale': 2 + }, + 'real_esrgan_x4': + { + 'hashes': + { + 'frame_enhancer': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/real_esrgan_x4.hash', + 'path': resolve_relative_path('../.assets/models/real_esrgan_x4.hash') + } + }, + 'sources': + { + 'frame_enhancer': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/real_esrgan_x4.onnx', + 'path': resolve_relative_path('../.assets/models/real_esrgan_x4.onnx') + } + }, + 'size': (256, 16, 8), + 'scale': 4 + }, + 'real_esrgan_x4_fp16': + { + 'hashes': + { + 'frame_enhancer': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/real_esrgan_x4_fp16.hash', + 'path': resolve_relative_path('../.assets/models/real_esrgan_x4_fp16.hash') + } + }, + 'sources': + { + 'frame_enhancer': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/real_esrgan_x4_fp16.onnx', + 'path': resolve_relative_path('../.assets/models/real_esrgan_x4_fp16.onnx') + } + }, + 'size': (256, 16, 8), + 'scale': 4 + }, + 'real_esrgan_x8': + { + 'hashes': + { + 'frame_enhancer': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/real_esrgan_x8.hash', + 'path': resolve_relative_path('../.assets/models/real_esrgan_x8.hash') + } + }, + 'sources': + { + 'frame_enhancer': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/real_esrgan_x8.onnx', + 'path': resolve_relative_path('../.assets/models/real_esrgan_x8.onnx') + } + }, + 'size': (256, 16, 8), + 'scale': 8 + }, + 'real_esrgan_x8_fp16': + { + 'hashes': + { + 'frame_enhancer': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/real_esrgan_x8_fp16.hash', + 'path': resolve_relative_path('../.assets/models/real_esrgan_x8_fp16.hash') + } + }, + 'sources': + { + 'frame_enhancer': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/real_esrgan_x8_fp16.onnx', + 'path': resolve_relative_path('../.assets/models/real_esrgan_x8_fp16.onnx') + } + }, + 'size': (256, 16, 8), + 'scale': 8 + }, + 'real_hatgan_x4': + { + 'hashes': + { + 'frame_enhancer': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/real_hatgan_x4.hash', + 'path': resolve_relative_path('../.assets/models/real_hatgan_x4.hash') + } + }, + 'sources': + { + 'frame_enhancer': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/real_hatgan_x4.onnx', + 'path': resolve_relative_path('../.assets/models/real_hatgan_x4.onnx') + } + }, + 'size': (256, 16, 8), + 'scale': 4 + }, + 'span_kendata_x4': + { + 'hashes': + { + 'frame_enhancer': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/span_kendata_x4.hash', + 'path': resolve_relative_path('../.assets/models/span_kendata_x4.hash') + } + }, + 'sources': + { + 'frame_enhancer': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/span_kendata_x4.onnx', + 'path': resolve_relative_path('../.assets/models/span_kendata_x4.onnx') + } + }, + 'size': (128, 8, 4), + 'scale': 4 + }, + 'ultra_sharp_x4': + { + 'hashes': + { + 'frame_enhancer': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/ultra_sharp_x4.hash', + 'path': resolve_relative_path('../.assets/models/ultra_sharp_x4.hash') + } + }, + 'sources': + { + 'frame_enhancer': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/ultra_sharp_x4.onnx', + 'path': resolve_relative_path('../.assets/models/ultra_sharp_x4.onnx') + } + }, + 'size': (128, 8, 4), + 'scale': 4 + } +} + + +def get_inference_pool() -> InferencePool: + model_sources = get_model_options().get('sources') + model_context = __name__ + '.' + state_manager.get_item('frame_enhancer_model') + return inference_manager.get_inference_pool(model_context, model_sources) + + +def clear_inference_pool() -> None: + model_context = __name__ + '.' + state_manager.get_item('frame_enhancer_model') + inference_manager.clear_inference_pool(model_context) + + +def get_model_options() -> ModelOptions: + frame_enhancer_model = state_manager.get_item('frame_enhancer_model') + return MODEL_SET.get(frame_enhancer_model) + + +def register_args(program : ArgumentParser) -> None: + group_processors = find_argument_group(program, 'processors') + if group_processors: + group_processors.add_argument('--frame-enhancer-model', help = wording.get('help.frame_enhancer_model'), default = config.get_str_value('processors.frame_enhancer_model', 'span_kendata_x4'), choices = processors_choices.frame_enhancer_models) + group_processors.add_argument('--frame-enhancer-blend', help = wording.get('help.frame_enhancer_blend'), type = int, default = config.get_int_value('processors.frame_enhancer_blend', '80'), choices = processors_choices.frame_enhancer_blend_range, metavar = create_int_metavar(processors_choices.frame_enhancer_blend_range)) + facefusion.jobs.job_store.register_step_keys([ 'frame_enhancer_model', 'frame_enhancer_blend' ]) + + +def apply_args(args : Args, apply_state_item : ApplyStateItem) -> None: + apply_state_item('frame_enhancer_model', args.get('frame_enhancer_model')) + apply_state_item('frame_enhancer_blend', args.get('frame_enhancer_blend')) + + +def pre_check() -> bool: + download_directory_path = resolve_relative_path('../.assets/models') + model_hashes = get_model_options().get('hashes') + model_sources = get_model_options().get('sources') + + return conditional_download_hashes(download_directory_path, model_hashes) and conditional_download_sources(download_directory_path, model_sources) + + +def pre_process(mode : ProcessMode) -> bool: + if mode in [ 'output', 'preview' ] and not is_image(state_manager.get_item('target_path')) and not is_video(state_manager.get_item('target_path')): + logger.error(wording.get('choose_image_or_video_target') + wording.get('exclamation_mark'), __name__) + return False + if mode == 'output' and not in_directory(state_manager.get_item('output_path')): + logger.error(wording.get('specify_image_or_video_output') + wording.get('exclamation_mark'), __name__) + return False + if mode == 'output' and not same_file_extension([ state_manager.get_item('target_path'), state_manager.get_item('output_path') ]): + logger.error(wording.get('match_target_and_output_extension') + wording.get('exclamation_mark'), __name__) + return False + return True + + +def post_process() -> None: + read_static_image.cache_clear() + if state_manager.get_item('video_memory_strategy') in [ 'strict', 'moderate' ]: + clear_inference_pool() + if state_manager.get_item('video_memory_strategy') == 'strict': + content_analyser.clear_inference_pool() + + +def enhance_frame(temp_vision_frame : VisionFrame) -> VisionFrame: + model_size = get_model_options().get('size') + model_scale = get_model_options().get('scale') + temp_height, temp_width = temp_vision_frame.shape[:2] + tile_vision_frames, pad_width, pad_height = create_tile_frames(temp_vision_frame, model_size) + + for index, tile_vision_frame in enumerate(tile_vision_frames): + tile_vision_frame = prepare_tile_frame(tile_vision_frame) + tile_vision_frame = forward(tile_vision_frame) + tile_vision_frames[index] = normalize_tile_frame(tile_vision_frame) + + merge_vision_frame = merge_tile_frames(tile_vision_frames, temp_width * model_scale, temp_height * model_scale, pad_width * model_scale, pad_height * model_scale, (model_size[0] * model_scale, model_size[1] * model_scale, model_size[2] * model_scale)) + temp_vision_frame = blend_frame(temp_vision_frame, merge_vision_frame) + return temp_vision_frame + + +def forward(tile_vision_frame : VisionFrame) -> VisionFrame: + frame_enhancer = get_inference_pool().get('frame_enhancer') + + with conditional_thread_semaphore(): + tile_vision_frame = frame_enhancer.run(None, + { + 'input': tile_vision_frame + })[0] + + return tile_vision_frame + + +def prepare_tile_frame(vision_tile_frame : VisionFrame) -> VisionFrame: + vision_tile_frame = numpy.expand_dims(vision_tile_frame[:, :, ::-1], axis = 0) + vision_tile_frame = vision_tile_frame.transpose(0, 3, 1, 2) + vision_tile_frame = vision_tile_frame.astype(numpy.float32) / 255 + return vision_tile_frame + + +def normalize_tile_frame(vision_tile_frame : VisionFrame) -> VisionFrame: + vision_tile_frame = vision_tile_frame.transpose(0, 2, 3, 1).squeeze(0) * 255 + vision_tile_frame = vision_tile_frame.clip(0, 255).astype(numpy.uint8)[:, :, ::-1] + return vision_tile_frame + + +def blend_frame(temp_vision_frame : VisionFrame, merge_vision_frame : VisionFrame) -> VisionFrame: + frame_enhancer_blend = 1 - (state_manager.get_item('frame_enhancer_blend') / 100) + temp_vision_frame = cv2.resize(temp_vision_frame, (merge_vision_frame.shape[1], merge_vision_frame.shape[0])) + temp_vision_frame = cv2.addWeighted(temp_vision_frame, frame_enhancer_blend, merge_vision_frame, 1 - frame_enhancer_blend, 0) + return temp_vision_frame + + +def get_reference_frame(source_face : Face, target_face : Face, temp_vision_frame : VisionFrame) -> VisionFrame: + pass + + +def process_frame(inputs : FrameEnhancerInputs) -> VisionFrame: + target_vision_frame = inputs.get('target_vision_frame') + return enhance_frame(target_vision_frame) + + +def process_frames(source_paths : List[str], queue_payloads : List[QueuePayload], update_progress : UpdateProgress) -> None: + for queue_payload in process_manager.manage(queue_payloads): + target_vision_path = queue_payload['frame_path'] + target_vision_frame = read_image(target_vision_path) + output_vision_frame = process_frame( + { + 'target_vision_frame': target_vision_frame + }) + write_image(target_vision_path, output_vision_frame) + update_progress(1) + + +def process_image(source_paths : List[str], target_path : str, output_path : str) -> None: + target_vision_frame = read_static_image(target_path) + output_vision_frame = process_frame( + { + 'target_vision_frame': target_vision_frame + }) + write_image(output_path, output_vision_frame) + + +def process_video(source_paths : List[str], temp_frame_paths : List[str]) -> None: + processors.multi_process_frames(None, temp_frame_paths, process_frames) diff --git a/facefusion/processors/modules/lip_syncer.py b/facefusion/processors/modules/lip_syncer.py new file mode 100755 index 00000000..53f2a380 --- /dev/null +++ b/facefusion/processors/modules/lip_syncer.py @@ -0,0 +1,270 @@ +from argparse import ArgumentParser +from typing import List + +import cv2 +import numpy + +import facefusion.jobs.job_manager +import facefusion.jobs.job_store +import facefusion.processors.core as processors +from facefusion import config, content_analyser, face_classifier, face_detector, face_landmarker, face_masker, face_recognizer, inference_manager, logger, process_manager, state_manager, voice_extractor, wording +from facefusion.audio import create_empty_audio_frame, get_voice_frame, read_static_voice +from facefusion.common_helper import get_first +from facefusion.download import conditional_download_hashes, conditional_download_sources +from facefusion.face_analyser import get_many_faces, get_one_face +from facefusion.face_helper import create_bounding_box, paste_back, warp_face_by_bounding_box, warp_face_by_face_landmark_5 +from facefusion.face_masker import create_mouth_mask, create_occlusion_mask, create_static_box_mask +from facefusion.face_selector import find_similar_faces, sort_and_filter_faces +from facefusion.face_store import get_reference_faces +from facefusion.filesystem import filter_audio_paths, has_audio, in_directory, is_image, is_video, resolve_relative_path, same_file_extension +from facefusion.processors import choices as processors_choices +from facefusion.processors.typing import LipSyncerInputs +from facefusion.program_helper import find_argument_group +from facefusion.thread_helper import conditional_thread_semaphore +from facefusion.typing import ApplyStateItem, Args, AudioFrame, Face, InferencePool, ModelOptions, ModelSet, ProcessMode, QueuePayload, UpdateProgress, VisionFrame +from facefusion.vision import read_image, read_static_image, restrict_video_fps, write_image + +MODEL_SET : ModelSet =\ +{ + 'wav2lip': + { + 'hashes': + { + 'lip_syncer': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/wav2lip.hash', + 'path': resolve_relative_path('../.assets/models/wav2lip.hash') + } + }, + 'sources': + { + 'lip_syncer': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/wav2lip.onnx', + 'path': resolve_relative_path('../.assets/models/wav2lip.onnx') + } + }, + 'size': (96, 96) + }, + 'wav2lip_gan': + { + 'hashes': + { + 'lip_syncer': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/wav2lip_gan.hash', + 'path': resolve_relative_path('../.assets/models/wav2lip_gan.hash') + } + }, + 'sources': + { + 'lip_syncer': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/wav2lip_gan.onnx', + 'path': resolve_relative_path('../.assets/models/wav2lip_gan.onnx') + } + }, + 'size': (96, 96) + } +} + + +def get_inference_pool() -> InferencePool: + model_sources = get_model_options().get('sources') + model_context = __name__ + '.' + state_manager.get_item('lip_syncer_model') + return inference_manager.get_inference_pool(model_context, model_sources) + + +def clear_inference_pool() -> None: + model_context = __name__ + '.' + state_manager.get_item('lip_syncer_model') + inference_manager.clear_inference_pool(model_context) + + +def get_model_options() -> ModelOptions: + lip_syncer_model = state_manager.get_item('lip_syncer_model') + return MODEL_SET.get(lip_syncer_model) + + +def register_args(program : ArgumentParser) -> None: + group_processors = find_argument_group(program, 'processors') + if group_processors: + group_processors.add_argument('--lip-syncer-model', help = wording.get('help.lip_syncer_model'), default = config.get_str_value('processors.lip_syncer_model', 'wav2lip_gan'), choices = processors_choices.lip_syncer_models) + facefusion.jobs.job_store.register_step_keys([ 'lip_syncer_model' ]) + + +def apply_args(args : Args, apply_state_item : ApplyStateItem) -> None: + apply_state_item('lip_syncer_model', args.get('lip_syncer_model')) + + +def pre_check() -> bool: + download_directory_path = resolve_relative_path('../.assets/models') + model_hashes = get_model_options().get('hashes') + model_sources = get_model_options().get('sources') + + return conditional_download_hashes(download_directory_path, model_hashes) and conditional_download_sources(download_directory_path, model_sources) + + +def pre_process(mode : ProcessMode) -> bool: + if not has_audio(state_manager.get_item('source_paths')): + logger.error(wording.get('choose_audio_source') + wording.get('exclamation_mark'), __name__) + return False + if mode in [ 'output', 'preview' ] and not is_image(state_manager.get_item('target_path')) and not is_video(state_manager.get_item('target_path')): + logger.error(wording.get('choose_image_or_video_target') + wording.get('exclamation_mark'), __name__) + return False + if mode == 'output' and not in_directory(state_manager.get_item('output_path')): + logger.error(wording.get('specify_image_or_video_output') + wording.get('exclamation_mark'), __name__) + return False + if mode == 'output' and not same_file_extension([ state_manager.get_item('target_path'), state_manager.get_item('output_path') ]): + logger.error(wording.get('match_target_and_output_extension') + wording.get('exclamation_mark'), __name__) + return False + return True + + +def post_process() -> None: + read_static_image.cache_clear() + read_static_voice.cache_clear() + if state_manager.get_item('video_memory_strategy') in [ 'strict', 'moderate' ]: + clear_inference_pool() + if state_manager.get_item('video_memory_strategy') == 'strict': + content_analyser.clear_inference_pool() + face_classifier.clear_inference_pool() + face_detector.clear_inference_pool() + face_landmarker.clear_inference_pool() + face_masker.clear_inference_pool() + face_recognizer.clear_inference_pool() + voice_extractor.clear_inference_pool() + + +def sync_lip(target_face : Face, temp_audio_frame : AudioFrame, temp_vision_frame : VisionFrame) -> VisionFrame: + model_size = get_model_options().get('size') + temp_audio_frame = prepare_audio_frame(temp_audio_frame) + crop_vision_frame, affine_matrix = warp_face_by_face_landmark_5(temp_vision_frame, target_face.landmark_set.get('5/68'), 'ffhq_512', (512, 512)) + face_landmark_68 = cv2.transform(target_face.landmark_set.get('68').reshape(1, -1, 2), affine_matrix).reshape(-1, 2) + bounding_box = create_bounding_box(face_landmark_68) + bounding_box[1] -= numpy.abs(bounding_box[3] - bounding_box[1]) * 0.125 + mouth_mask = create_mouth_mask(face_landmark_68) + box_mask = create_static_box_mask(crop_vision_frame.shape[:2][::-1], state_manager.get_item('face_mask_blur'), state_manager.get_item('face_mask_padding')) + crop_masks =\ + [ + mouth_mask, + box_mask + ] + + if 'occlusion' in state_manager.get_item('face_mask_types'): + occlusion_mask = create_occlusion_mask(crop_vision_frame) + crop_masks.append(occlusion_mask) + + close_vision_frame, close_matrix = warp_face_by_bounding_box(crop_vision_frame, bounding_box, model_size) + close_vision_frame = prepare_crop_frame(close_vision_frame) + close_vision_frame = forward(temp_audio_frame, close_vision_frame) + close_vision_frame = normalize_close_frame(close_vision_frame) + crop_vision_frame = cv2.warpAffine(close_vision_frame, cv2.invertAffineTransform(close_matrix), (512, 512), borderMode = cv2.BORDER_REPLICATE) + crop_mask = numpy.minimum.reduce(crop_masks) + paste_vision_frame = paste_back(temp_vision_frame, crop_vision_frame, crop_mask, affine_matrix) + return paste_vision_frame + + +def forward(temp_audio_frame : AudioFrame, close_vision_frame : VisionFrame) -> VisionFrame: + lip_syncer = get_inference_pool().get('lip_syncer') + + with conditional_thread_semaphore(): + close_vision_frame = lip_syncer.run(None, + { + 'source': temp_audio_frame, + 'target': close_vision_frame + })[0] + + return close_vision_frame + + +def prepare_audio_frame(temp_audio_frame : AudioFrame) -> AudioFrame: + temp_audio_frame = numpy.maximum(numpy.exp(-5 * numpy.log(10)), temp_audio_frame) + temp_audio_frame = numpy.log10(temp_audio_frame) * 1.6 + 3.2 + temp_audio_frame = temp_audio_frame.clip(-4, 4).astype(numpy.float32) + temp_audio_frame = numpy.expand_dims(temp_audio_frame, axis = (0, 1)) + return temp_audio_frame + + +def prepare_crop_frame(crop_vision_frame : VisionFrame) -> VisionFrame: + crop_vision_frame = numpy.expand_dims(crop_vision_frame, axis = 0) + prepare_vision_frame = crop_vision_frame.copy() + prepare_vision_frame[:, 48:] = 0 + crop_vision_frame = numpy.concatenate((prepare_vision_frame, crop_vision_frame), axis = 3) + crop_vision_frame = crop_vision_frame.transpose(0, 3, 1, 2).astype('float32') / 255.0 + return crop_vision_frame + + +def normalize_close_frame(crop_vision_frame : VisionFrame) -> VisionFrame: + crop_vision_frame = crop_vision_frame[0].transpose(1, 2, 0) + crop_vision_frame = crop_vision_frame.clip(0, 1) * 255 + crop_vision_frame = crop_vision_frame.astype(numpy.uint8) + return crop_vision_frame + + +def get_reference_frame(source_face : Face, target_face : Face, temp_vision_frame : VisionFrame) -> VisionFrame: + pass + + +def process_frame(inputs : LipSyncerInputs) -> VisionFrame: + reference_faces = inputs.get('reference_faces') + source_audio_frame = inputs.get('source_audio_frame') + target_vision_frame = inputs.get('target_vision_frame') + many_faces = sort_and_filter_faces(get_many_faces([ target_vision_frame ])) + + if state_manager.get_item('face_selector_mode') == 'many': + if many_faces: + for target_face in many_faces: + target_vision_frame = sync_lip(target_face, source_audio_frame, target_vision_frame) + if state_manager.get_item('face_selector_mode') == 'one': + target_face = get_one_face(many_faces) + if target_face: + target_vision_frame = sync_lip(target_face, source_audio_frame, target_vision_frame) + if state_manager.get_item('face_selector_mode') == 'reference': + similar_faces = find_similar_faces(many_faces, reference_faces, state_manager.get_item('reference_face_distance')) + if similar_faces: + for similar_face in similar_faces: + target_vision_frame = sync_lip(similar_face, source_audio_frame, target_vision_frame) + return target_vision_frame + + +def process_frames(source_paths : List[str], queue_payloads : List[QueuePayload], update_progress : UpdateProgress) -> None: + reference_faces = get_reference_faces() if 'reference' in state_manager.get_item('face_selector_mode') else None + source_audio_path = get_first(filter_audio_paths(source_paths)) + temp_video_fps = restrict_video_fps(state_manager.get_item('target_path'), state_manager.get_item('output_video_fps')) + + for queue_payload in process_manager.manage(queue_payloads): + frame_number = queue_payload.get('frame_number') + target_vision_path = queue_payload.get('frame_path') + source_audio_frame = get_voice_frame(source_audio_path, temp_video_fps, frame_number) + if not numpy.any(source_audio_frame): + source_audio_frame = create_empty_audio_frame() + target_vision_frame = read_image(target_vision_path) + output_vision_frame = process_frame( + { + 'reference_faces': reference_faces, + 'source_audio_frame': source_audio_frame, + 'target_vision_frame': target_vision_frame + }) + write_image(target_vision_path, output_vision_frame) + update_progress(1) + + +def process_image(source_paths : List[str], target_path : str, output_path : str) -> None: + reference_faces = get_reference_faces() if 'reference' in state_manager.get_item('face_selector_mode') else None + source_audio_frame = create_empty_audio_frame() + target_vision_frame = read_static_image(target_path) + output_vision_frame = process_frame( + { + 'reference_faces': reference_faces, + 'source_audio_frame': source_audio_frame, + 'target_vision_frame': target_vision_frame + }) + write_image(output_path, output_vision_frame) + + +def process_video(source_paths : List[str], temp_frame_paths : List[str]) -> None: + source_audio_paths = filter_audio_paths(state_manager.get_item('source_paths')) + temp_video_fps = restrict_video_fps(state_manager.get_item('target_path'), state_manager.get_item('output_video_fps')) + for source_audio_path in source_audio_paths: + read_static_voice(source_audio_path, temp_video_fps) + processors.multi_process_frames(source_paths, temp_frame_paths, process_frames) diff --git a/facefusion/processors/pixel_boost.py b/facefusion/processors/pixel_boost.py new file mode 100644 index 00000000..13665c01 --- /dev/null +++ b/facefusion/processors/pixel_boost.py @@ -0,0 +1,18 @@ +from typing import List + +import numpy +from cv2.typing import Size + +from facefusion.typing import VisionFrame + + +def implode_pixel_boost(crop_vision_frame : VisionFrame, pixel_boost_total : int, model_size : Size) -> VisionFrame: + pixel_boost_vision_frame = crop_vision_frame.reshape(model_size[0], pixel_boost_total, model_size[1], pixel_boost_total, 3) + pixel_boost_vision_frame = pixel_boost_vision_frame.transpose(1, 3, 0, 2, 4).reshape(pixel_boost_total ** 2, model_size[0], model_size[1], 3) + return pixel_boost_vision_frame + + +def explode_pixel_boost(temp_vision_frames : List[VisionFrame], pixel_boost_total : int, model_size : Size, pixel_boost_size : Size) -> VisionFrame: + crop_vision_frame = numpy.stack(temp_vision_frames, axis = 0).reshape(pixel_boost_total, pixel_boost_total, model_size[0], model_size[1], 3) + crop_vision_frame = crop_vision_frame.transpose(2, 0, 3, 1, 4).reshape(pixel_boost_size[0], pixel_boost_size[1], 3) + return crop_vision_frame diff --git a/facefusion/processors/typing.py b/facefusion/processors/typing.py new file mode 100644 index 00000000..ae57587e --- /dev/null +++ b/facefusion/processors/typing.py @@ -0,0 +1,125 @@ +from typing import Any, Dict, List, Literal, TypedDict + +from numpy._typing import NDArray + +from facefusion.typing import AppContext, AudioFrame, Face, FaceSet, VisionFrame + +AgeModifierModel = Literal['styleganex_age'] +ExpressionRestorerModel = Literal['live_portrait'] +FaceDebuggerItem = Literal['bounding-box', 'face-landmark-5', 'face-landmark-5/68', 'face-landmark-68', 'face-landmark-68/5', 'face-mask', 'face-detector-score', 'face-landmarker-score', 'age', 'gender', 'race'] +FaceEditorModel = Literal['live_portrait'] +FaceEnhancerModel = Literal['codeformer', 'gfpgan_1.2', 'gfpgan_1.3', 'gfpgan_1.4', 'gpen_bfr_256', 'gpen_bfr_512', 'gpen_bfr_1024', 'gpen_bfr_2048', 'restoreformer_plus_plus'] +FaceSwapperModel = Literal['blendswap_256', 'ghost_256_unet_1', 'ghost_256_unet_2', 'ghost_256_unet_3', 'inswapper_128', 'inswapper_128_fp16', 'simswap_256', 'simswap_512_unofficial', 'uniface_256'] +FrameColorizerModel = Literal['ddcolor', 'ddcolor_artistic', 'deoldify', 'deoldify_artistic', 'deoldify_stable'] +FrameEnhancerModel = Literal['clear_reality_x4', 'lsdir_x4', 'nomos8k_sc_x4', 'real_esrgan_x2', 'real_esrgan_x2_fp16', 'real_esrgan_x4', 'real_esrgan_x4_fp16', 'real_hatgan_x4', 'real_esrgan_x8', 'real_esrgan_x8_fp16', 'span_kendata_x4', 'ultra_sharp_x4'] +LipSyncerModel = Literal['wav2lip', 'wav2lip_gan'] + +FaceSwapperSet = Dict[FaceSwapperModel, List[str]] + +AgeModifierInputs = TypedDict('AgeModifierInputs', +{ + 'reference_faces' : FaceSet, + 'target_vision_frame' : VisionFrame +}) +ExpressionRestorerInputs = TypedDict('ExpressionRestorerInputs', +{ + 'reference_faces' : FaceSet, + 'source_vision_frame' : VisionFrame, + 'target_vision_frame' : VisionFrame +}) +FaceDebuggerInputs = TypedDict('FaceDebuggerInputs', +{ + 'reference_faces' : FaceSet, + 'target_vision_frame' : VisionFrame +}) +FaceEditorInputs = TypedDict('FaceEditorInputs', +{ + 'reference_faces' : FaceSet, + 'target_vision_frame' : VisionFrame +}) +FaceEnhancerInputs = TypedDict('FaceEnhancerInputs', +{ + 'reference_faces' : FaceSet, + 'target_vision_frame' : VisionFrame +}) +FaceSwapperInputs = TypedDict('FaceSwapperInputs', +{ + 'reference_faces' : FaceSet, + 'source_face' : Face, + 'target_vision_frame' : VisionFrame +}) +FrameColorizerInputs = TypedDict('FrameColorizerInputs', +{ + 'target_vision_frame' : VisionFrame +}) +FrameEnhancerInputs = TypedDict('FrameEnhancerInputs', +{ + 'target_vision_frame' : VisionFrame +}) +LipSyncerInputs = TypedDict('LipSyncerInputs', +{ + 'reference_faces' : FaceSet, + 'source_audio_frame' : AudioFrame, + 'target_vision_frame' : VisionFrame +}) + +ProcessorStateKey = Literal\ +[ + 'age_modifier_model', + 'age_modifier_direction', + 'expression_restorer_model', + 'expression_restorer_factor', + 'face_debugger_items', + 'face_editor_model', + 'face_editor_eyebrow_direction', + 'face_editor_eye_gaze_horizontal', + 'face_editor_eye_gaze_vertical', + 'face_editor_eye_open_ratio', + 'face_editor_lip_open_ratio', + 'face_editor_mouth_grim', + 'face_editor_mouth_pout', + 'face_editor_mouth_purse', + 'face_editor_mouth_smile', + 'face_editor_mouth_position_horizontal', + 'face_editor_mouth_position_vertical', + 'face_editor_head_pitch', + 'face_editor_head_yaw', + 'face_editor_head_roll', + 'face_enhancer_model', + 'face_enhancer_blend', + 'face_swapper_model', + 'face_swapper_pixel_boost', + 'frame_colorizer_model', + 'frame_colorizer_blend', + 'frame_colorizer_size', + 'frame_enhancer_model', + 'frame_enhancer_blend', + 'lip_syncer_model' +] +ProcessorState = TypedDict('ProcessorState', +{ + 'age_modifier_model': AgeModifierModel, + 'age_modifier_direction': int, + 'face_debugger_items' : List[FaceDebuggerItem], + 'face_enhancer_model' : FaceEnhancerModel, + 'face_enhancer_blend' : int, + 'face_swapper_model' : FaceSwapperModel, + 'face_swapper_pixel_boost' : str, + 'frame_colorizer_model' : FrameColorizerModel, + 'frame_colorizer_blend' : int, + 'frame_colorizer_size' : str, + 'frame_enhancer_model' : FrameEnhancerModel, + 'frame_enhancer_blend' : int, + 'lip_syncer_model' : LipSyncerModel +}) +ProcessorStateSet = Dict[AppContext, ProcessorState] + +LivePortraitPitch = float +LivePortraitYaw = float +LivePortraitRoll = float +LivePortraitExpression = NDArray[Any] +LivePortraitFeatureVolume = NDArray[Any] +LivePortraitMotionPoints = NDArray[Any] +LivePortraitRotation = NDArray[Any] +LivePortraitScale = NDArray[Any] +LivePortraitTranslation = NDArray[Any] diff --git a/facefusion/program.py b/facefusion/program.py new file mode 100755 index 00000000..5e0a3761 --- /dev/null +++ b/facefusion/program.py @@ -0,0 +1,234 @@ +from argparse import ArgumentParser, HelpFormatter + +import facefusion.choices +from facefusion import config, metadata, state_manager, wording +from facefusion.common_helper import create_float_metavar, create_int_metavar +from facefusion.execution import get_execution_provider_choices +from facefusion.filesystem import list_directory +from facefusion.jobs import job_store +from facefusion.processors.core import get_processors_modules +from facefusion.program_helper import suggest_face_detector_choices + + +def create_help_formatter_small(prog : str) -> HelpFormatter: + return HelpFormatter(prog, max_help_position = 50) + + +def create_help_formatter_large(prog : str) -> HelpFormatter: + return HelpFormatter(prog, max_help_position = 300) + + +def create_config_program() -> ArgumentParser: + program = ArgumentParser(add_help = False) + program.add_argument('-c', '--config-path', help = wording.get('help.config_path'), default = 'facefusion.ini') + job_store.register_job_keys([ 'config-path' ]) + apply_config_path(program) + return program + + +def create_jobs_path_program() -> ArgumentParser: + program = ArgumentParser(add_help = False) + program.add_argument('-j', '--jobs-path', help = wording.get('help.jobs_path'), default = config.get_str_value('paths.jobs_path', '.jobs')) + job_store.register_job_keys([ 'jobs_path' ]) + return program + + +def create_paths_program() -> ArgumentParser: + program = ArgumentParser(add_help = False) + program.add_argument('-s', '--source-paths', help = wording.get('help.source_paths'), action = 'append', default = config.get_str_list('paths.source_paths')) + program.add_argument('-t', '--target-path', help = wording.get('help.target_path'), default = config.get_str_value('paths.target_path')) + program.add_argument('-o', '--output-path', help = wording.get('help.output_path'), default = config.get_str_value('paths.output_path')) + job_store.register_step_keys([ 'source_paths', 'target_path', 'output_path' ]) + return program + + +def create_face_detector_program() -> ArgumentParser: + program = ArgumentParser(add_help = False) + group_face_detector = program.add_argument_group('face detector') + group_face_detector.add_argument('--face-detector-model', help = wording.get('help.face_detector_model'), default = config.get_str_value('face_detector.face_detector_model', 'yoloface'), choices = facefusion.choices.face_detector_set.keys()) + group_face_detector.add_argument('--face-detector-size', help = wording.get('help.face_detector_size'), default = config.get_str_value('face_detector.face_detector_size', '640x640'), choices = suggest_face_detector_choices(program)) + group_face_detector.add_argument('--face-detector-angles', help = wording.get('help.face_detector_angles'), type = int, default = config.get_int_list('face_detector.face_detector_angles', '0'), choices = facefusion.choices.face_detector_angles, nargs = '+', metavar = 'FACE_DETECTOR_ANGLES') + group_face_detector.add_argument('--face-detector-score', help = wording.get('help.face_detector_score'), type = float, default = config.get_float_value('face_detector.face_detector_score', '0.5'), choices = facefusion.choices.face_detector_score_range, metavar = create_float_metavar(facefusion.choices.face_detector_score_range)) + job_store.register_step_keys([ 'face_detector_model', 'face_detector_angles', 'face_detector_size', 'face_detector_score' ]) + return program + + +def create_face_landmarker_program() -> ArgumentParser: + program = ArgumentParser(add_help = False) + group_face_landmarker = program.add_argument_group('face landmarker') + group_face_landmarker.add_argument('--face-landmarker-model', help = wording.get('help.face_landmarker_model'), default = config.get_str_value('face_landmarker.face_landmarker_model', '2dfan4'), choices = facefusion.choices.face_landmarker_models) + group_face_landmarker.add_argument('--face-landmarker-score', help = wording.get('help.face_landmarker_score'), type = float, default = config.get_float_value('face_landmarker.face_landmarker_score', '0.5'), choices = facefusion.choices.face_landmarker_score_range, metavar = create_float_metavar(facefusion.choices.face_landmarker_score_range)) + job_store.register_step_keys([ 'face_landmarker_model', 'face_landmarker_score' ]) + return program + + +def create_face_selector_program() -> ArgumentParser: + program = ArgumentParser(add_help = False) + group_face_selector = program.add_argument_group('face selector') + group_face_selector.add_argument('--face-selector-mode', help = wording.get('help.face_selector_mode'), default = config.get_str_value('face_selector.face_selector_mode', 'reference'), choices = facefusion.choices.face_selector_modes) + group_face_selector.add_argument('--face-selector-order', help = wording.get('help.face_selector_order'), default = config.get_str_value('face_selector.face_selector_order', 'large-small'), choices = facefusion.choices.face_selector_orders) + group_face_selector.add_argument('--face-selector-gender', help = wording.get('help.face_selector_gender'), default = config.get_str_value('face_selector.face_selector_gender'), choices = facefusion.choices.face_selector_genders) + group_face_selector.add_argument('--face-selector-race', help = wording.get('help.face_selector_race'), default = config.get_str_value('face_selector.face_selector_race'), choices = facefusion.choices.face_selector_races) + group_face_selector.add_argument('--face-selector-age-start', help = wording.get('help.face_selector_age_start'), type = int, default = config.get_int_value('face_selector.face_selector_age_start'), choices = facefusion.choices.face_selector_age_range, metavar = create_int_metavar(facefusion.choices.face_selector_age_range)) + group_face_selector.add_argument('--face-selector-age-end', help = wording.get('help.face_selector_age_end'), type = int, default = config.get_int_value('face_selector.face_selector_age_end'), choices = facefusion.choices.face_selector_age_range, metavar = create_int_metavar(facefusion.choices.face_selector_age_range)) + group_face_selector.add_argument('--reference-face-position', help = wording.get('help.reference_face_position'), type = int, default = config.get_int_value('face_selector.reference_face_position', '0')) + group_face_selector.add_argument('--reference-face-distance', help = wording.get('help.reference_face_distance'), type = float, default = config.get_float_value('face_selector.reference_face_distance', '0.6'), choices = facefusion.choices.reference_face_distance_range, metavar = create_float_metavar(facefusion.choices.reference_face_distance_range)) + group_face_selector.add_argument('--reference-frame-number', help = wording.get('help.reference_frame_number'), type = int, default = config.get_int_value('face_selector.reference_frame_number', '0')) + job_store.register_step_keys([ 'face_selector_mode', 'face_selector_order', 'face_selector_gender', 'face_selector_race', 'face_selector_age_start', 'face_selector_age_end', 'reference_face_position', 'reference_face_distance', 'reference_frame_number' ]) + return program + + +def create_face_masker_program() -> ArgumentParser: + program = ArgumentParser(add_help = False) + group_face_masker = program.add_argument_group('face masker') + group_face_masker.add_argument('--face-mask-types', help = wording.get('help.face_mask_types').format(choices = ', '.join(facefusion.choices.face_mask_types)), default = config.get_str_list('face_masker.face_mask_types', 'box'), choices = facefusion.choices.face_mask_types, nargs = '+', metavar = 'FACE_MASK_TYPES') + group_face_masker.add_argument('--face-mask-blur', help = wording.get('help.face_mask_blur'), type = float, default = config.get_float_value('face_masker.face_mask_blur', '0.3'), choices = facefusion.choices.face_mask_blur_range, metavar = create_float_metavar(facefusion.choices.face_mask_blur_range)) + group_face_masker.add_argument('--face-mask-padding', help = wording.get('help.face_mask_padding'), type = int, default = config.get_int_list('face_masker.face_mask_padding', '0 0 0 0'), nargs = '+') + group_face_masker.add_argument('--face-mask-regions', help = wording.get('help.face_mask_regions').format(choices = ', '.join(facefusion.choices.face_mask_regions)), default = config.get_str_list('face_masker.face_mask_regions', ' '.join(facefusion.choices.face_mask_regions)), choices = facefusion.choices.face_mask_regions, nargs = '+', metavar = 'FACE_MASK_REGIONS') + job_store.register_step_keys([ 'face_mask_types', 'face_mask_blur', 'face_mask_padding', 'face_mask_regions' ]) + return program + + +def create_frame_extraction_program() -> ArgumentParser: + program = ArgumentParser(add_help = False) + group_frame_extraction = program.add_argument_group('frame extraction') + group_frame_extraction.add_argument('--trim-frame-start', help = wording.get('help.trim_frame_start'), type = int, default = facefusion.config.get_int_value('frame_extraction.trim_frame_start')) + group_frame_extraction.add_argument('--trim-frame-end', help = wording.get('help.trim_frame_end'), type = int, default = facefusion.config.get_int_value('frame_extraction.trim_frame_end')) + group_frame_extraction.add_argument('--temp-frame-format', help = wording.get('help.temp_frame_format'), default = config.get_str_value('frame_extraction.temp_frame_format', 'png'), choices = facefusion.choices.temp_frame_formats) + group_frame_extraction.add_argument('--keep-temp', help = wording.get('help.keep_temp'), action = 'store_true', default = config.get_bool_value('frame_extraction.keep_temp')) + job_store.register_step_keys([ 'trim_frame_start', 'trim_frame_end', 'temp_frame_format', 'keep_temp' ]) + return program + + +def create_output_creation_program() -> ArgumentParser: + program = ArgumentParser(add_help = False) + group_output_creation = program.add_argument_group('output creation') + group_output_creation.add_argument('--output-image-quality', help = wording.get('help.output_image_quality'), type = int, default = config.get_int_value('output_creation.output_image_quality', '80'), choices = facefusion.choices.output_image_quality_range, metavar = create_int_metavar(facefusion.choices.output_image_quality_range)) + group_output_creation.add_argument('--output-image-resolution', help = wording.get('help.output_image_resolution'), default = config.get_str_value('output_creation.output_image_resolution')) + group_output_creation.add_argument('--output-audio-encoder', help = wording.get('help.output_audio_encoder'), default = config.get_str_value('output_creation.output_audio_encoder', 'aac'), choices = facefusion.choices.output_audio_encoders) + group_output_creation.add_argument('--output-video-encoder', help = wording.get('help.output_video_encoder'), default = config.get_str_value('output_creation.output_video_encoder', 'libx264'), choices = facefusion.choices.output_video_encoders) + group_output_creation.add_argument('--output-video-preset', help = wording.get('help.output_video_preset'), default = config.get_str_value('output_creation.output_video_preset', 'veryfast'), choices = facefusion.choices.output_video_presets) + group_output_creation.add_argument('--output-video-quality', help = wording.get('help.output_video_quality'), type = int, default = config.get_int_value('output_creation.output_video_quality', '80'), choices = facefusion.choices.output_video_quality_range, metavar = create_int_metavar(facefusion.choices.output_video_quality_range)) + group_output_creation.add_argument('--output-video-resolution', help = wording.get('help.output_video_resolution'), default = config.get_str_value('output_creation.output_video_resolution')) + group_output_creation.add_argument('--output-video-fps', help = wording.get('help.output_video_fps'), type = float, default = config.get_str_value('output_creation.output_video_fps')) + group_output_creation.add_argument('--skip-audio', help = wording.get('help.skip_audio'), action = 'store_true', default = config.get_bool_value('output_creation.skip_audio')) + job_store.register_step_keys([ 'output_image_quality', 'output_image_resolution', 'output_audio_encoder', 'output_video_encoder', 'output_video_preset', 'output_video_quality', 'output_video_resolution', 'output_video_fps', 'skip_audio' ]) + return program + + +def create_processors_program() -> ArgumentParser: + program = ArgumentParser(add_help = False) + available_processors = list_directory('facefusion/processors/modules') + group_processors = program.add_argument_group('processors') + group_processors.add_argument('--processors', help = wording.get('help.processors').format(choices = ', '.join(available_processors)), default = config.get_str_list('processors.processors', 'face_swapper'), nargs = '+') + job_store.register_step_keys([ 'processors' ]) + for processor_module in get_processors_modules(available_processors): + processor_module.register_args(program) + return program + + +def create_uis_program() -> ArgumentParser: + program = ArgumentParser(add_help = False) + available_ui_layouts = list_directory('facefusion/uis/layouts') + group_uis = program.add_argument_group('uis') + group_uis.add_argument('--open-browser', help = wording.get('help.open_browser'), action = 'store_true', default = config.get_bool_value('uis.open_browser')) + group_uis.add_argument('--ui-layouts', help = wording.get('help.ui_layouts').format(choices = ', '.join(available_ui_layouts)), default = config.get_str_list('uis.ui_layouts', 'default'), nargs = '+') + group_uis.add_argument('--ui-workflow', help = wording.get('help.ui_workflow'), default = config.get_str_value('uis.ui_workflow', 'instant_runner'), choices = facefusion.choices.ui_workflows) + return program + + +def create_execution_program() -> ArgumentParser: + program = ArgumentParser(add_help = False) + execution_providers = get_execution_provider_choices() + group_execution = program.add_argument_group('execution') + group_execution.add_argument('--execution-device-id', help = wording.get('help.execution_device_id'), default = config.get_str_value('execution.execution_device_id', '0')) + group_execution.add_argument('--execution-providers', help = wording.get('help.execution_providers').format(choices = ', '.join(execution_providers)), default = config.get_str_list('execution.execution_providers', 'cpu'), choices = execution_providers, nargs = '+', metavar = 'EXECUTION_PROVIDERS') + group_execution.add_argument('--execution-thread-count', help = wording.get('help.execution_thread_count'), type = int, default = config.get_int_value('execution.execution_thread_count', '4'), choices = facefusion.choices.execution_thread_count_range, metavar = create_int_metavar(facefusion.choices.execution_thread_count_range)) + group_execution.add_argument('--execution-queue-count', help = wording.get('help.execution_queue_count'), type = int, default = config.get_int_value('execution.execution_queue_count', '1'), choices = facefusion.choices.execution_queue_count_range, metavar = create_int_metavar(facefusion.choices.execution_queue_count_range)) + job_store.register_job_keys([ 'execution_device_id', 'execution_providers', 'execution_thread_count', 'execution_queue_count' ]) + return program + + +def create_memory_program() -> ArgumentParser: + program = ArgumentParser(add_help = False) + group_memory = program.add_argument_group('memory') + group_memory.add_argument('--video-memory-strategy', help = wording.get('help.video_memory_strategy'), default = config.get_str_value('memory.video_memory_strategy', 'strict'), choices = facefusion.choices.video_memory_strategies) + group_memory.add_argument('--system-memory-limit', help = wording.get('help.system_memory_limit'), type = int, default = config.get_int_value('memory.system_memory_limit', '0'), choices = facefusion.choices.system_memory_limit_range, metavar = create_int_metavar(facefusion.choices.system_memory_limit_range)) + job_store.register_job_keys([ 'video_memory_strategy', 'system_memory_limit' ]) + return program + + +def create_skip_download_program() -> ArgumentParser: + program = ArgumentParser(add_help = False) + group_misc = program.add_argument_group('misc') + group_misc.add_argument('--skip-download', help = wording.get('help.skip_download'), action = 'store_true', default = config.get_bool_value('misc.skip_download')) + job_store.register_job_keys([ 'skip_download' ]) + return program + + +def create_log_level_program() -> ArgumentParser: + program = ArgumentParser(add_help = False) + group_misc = program.add_argument_group('misc') + group_misc.add_argument('--log-level', help = wording.get('help.log_level'), default = config.get_str_value('misc.log_level', 'info'), choices = facefusion.choices.log_level_set.keys()) + job_store.register_job_keys([ 'log_level' ]) + return program + + +def create_job_id_program() -> ArgumentParser: + program = ArgumentParser(add_help = False) + program.add_argument('job_id', help = wording.get('help.job_id')) + job_store.register_job_keys([ 'job_id' ]) + return program + + +def create_job_status_program() -> ArgumentParser: + program = ArgumentParser(add_help = False) + program.add_argument('job_status', help = wording.get('help.job_status'), choices = facefusion.choices.job_statuses) + return program + + +def create_step_index_program() -> ArgumentParser: + program = ArgumentParser(add_help = False) + program.add_argument('step_index', help = wording.get('help.step_index'), type = int) + return program + + +def collect_step_program() -> ArgumentParser: + return ArgumentParser(parents= [ create_config_program(), create_jobs_path_program(), create_paths_program(), create_face_detector_program(), create_face_landmarker_program(), create_face_selector_program(), create_face_masker_program(), create_frame_extraction_program(), create_output_creation_program(), create_processors_program() ], add_help = False) + + +def collect_job_program() -> ArgumentParser: + return ArgumentParser(parents= [ create_execution_program(), create_memory_program(), create_skip_download_program(), create_log_level_program() ], add_help = False) + + +def create_program() -> ArgumentParser: + program = ArgumentParser(formatter_class = create_help_formatter_large, add_help = False) + program._positionals.title = 'commands' + program.add_argument('-v', '--version', version = metadata.get('name') + ' ' + metadata.get('version'), action = 'version') + sub_program = program.add_subparsers(dest = 'command') + # general + sub_program.add_parser('run', help = wording.get('help.run'), parents = [ collect_step_program(), create_uis_program(), collect_job_program() ], formatter_class = create_help_formatter_large) + sub_program.add_parser('headless-run', help = wording.get('help.headless_run'), parents = [ collect_step_program(), collect_job_program() ], formatter_class = create_help_formatter_large) + sub_program.add_parser('force-download', help = wording.get('help.force_download'), parents = [ create_log_level_program() ], formatter_class = create_help_formatter_large) + # job manager + sub_program.add_parser('job-create', help = wording.get('help.job_create'), parents = [ create_job_id_program(), create_jobs_path_program(), create_log_level_program() ], formatter_class = create_help_formatter_large) + sub_program.add_parser('job-submit', help = wording.get('help.job_submit'), parents = [ create_job_id_program(), create_jobs_path_program(), create_log_level_program() ], formatter_class = create_help_formatter_large) + sub_program.add_parser('job-submit-all', help = wording.get('help.job_submit_all'), parents = [ create_jobs_path_program(), create_log_level_program() ], formatter_class = create_help_formatter_large) + sub_program.add_parser('job-delete', help = wording.get('help.job_delete'), parents = [ create_job_id_program(), create_jobs_path_program(), create_log_level_program() ], formatter_class = create_help_formatter_large) + sub_program.add_parser('job-delete-all', help = wording.get('help.job_delete_all'), parents = [ create_jobs_path_program(), create_log_level_program() ], formatter_class = create_help_formatter_large) + sub_program.add_parser('job-list', help = wording.get('help.job_list'), parents = [ create_job_status_program(), create_jobs_path_program(), create_log_level_program() ], formatter_class = create_help_formatter_large) + sub_program.add_parser('job-add-step', help = wording.get('help.job_add_step'), parents = [ create_job_id_program(), collect_step_program(), create_log_level_program() ], formatter_class = create_help_formatter_large) + sub_program.add_parser('job-remix-step', help = wording.get('help.job_remix_step'), parents = [ create_job_id_program(), create_step_index_program(), collect_step_program(), create_log_level_program() ], formatter_class = create_help_formatter_large) + sub_program.add_parser('job-insert-step', help = wording.get('help.job_insert_step'), parents = [ create_job_id_program(), create_step_index_program(), collect_step_program(), create_log_level_program() ], formatter_class = create_help_formatter_large) + sub_program.add_parser('job-remove-step', help = wording.get('help.job_remove_step'), parents = [ create_job_id_program(), create_step_index_program(), collect_step_program(), create_log_level_program() ], formatter_class = create_help_formatter_large) + # job runner + sub_program.add_parser('job-run', help = wording.get('help.job_run'), parents = [ create_job_id_program(), create_config_program(), create_jobs_path_program(), collect_job_program() ], formatter_class = create_help_formatter_large) + sub_program.add_parser('job-run-all', help = wording.get('help.job_run_all'), parents = [ create_config_program(), create_jobs_path_program(), collect_job_program() ], formatter_class = create_help_formatter_large) + sub_program.add_parser('job-retry', help = wording.get('help.job_retry'), parents = [ create_job_id_program(), create_config_program(), create_jobs_path_program(), collect_job_program() ], formatter_class = create_help_formatter_large) + sub_program.add_parser('job-retry-all', help = wording.get('help.job_retry_all'), parents = [ create_config_program(), create_jobs_path_program(), collect_job_program() ], formatter_class = create_help_formatter_large) + return ArgumentParser(parents = [ program ], formatter_class = create_help_formatter_small, add_help = True) + + +def apply_config_path(program : ArgumentParser) -> None: + known_args, _ = program.parse_known_args() + state_manager.init_item('config_path', known_args.config_path) diff --git a/facefusion/program_helper.py b/facefusion/program_helper.py new file mode 100644 index 00000000..28648fb2 --- /dev/null +++ b/facefusion/program_helper.py @@ -0,0 +1,45 @@ +from argparse import ArgumentParser, _ArgumentGroup, _SubParsersAction +from typing import List, Optional + +import facefusion.choices +from facefusion.processors import choices as processors_choices + + +def find_argument_group(program : ArgumentParser, group_name : str) -> Optional[_ArgumentGroup]: + for group in program._action_groups: + if group.title == group_name: + return group + return None + + +def validate_args(program : ArgumentParser) -> bool: + if not validate_actions(program): + return False + + for action in program._actions: + if isinstance(action, _SubParsersAction): + for _, sub_program in action._name_parser_map.items(): + if not validate_args(sub_program): + return False + return True + + +def validate_actions(program : ArgumentParser) -> bool: + for action in program._actions: + if action.default and action.choices: + if isinstance(action.default, list): + if any(default not in action.choices for default in action.default): + return False + elif action.default not in action.choices: + return False + return True + + +def suggest_face_detector_choices(program : ArgumentParser) -> List[str]: + known_args, _ = program.parse_known_args() + return facefusion.choices.face_detector_set.get(known_args.face_detector_model) #type:ignore[call-overload] + + +def suggest_face_swapper_pixel_boost_choices(program : ArgumentParser) -> List[str]: + known_args, _ = program.parse_known_args() + return processors_choices.face_swapper_set.get(known_args.face_swapper_model) #type:ignore[call-overload] diff --git a/facefusion/state_manager.py b/facefusion/state_manager.py new file mode 100644 index 00000000..d0e5f1a1 --- /dev/null +++ b/facefusion/state_manager.py @@ -0,0 +1,38 @@ +from typing import Any, Union + +from facefusion.app_context import detect_app_context +from facefusion.processors.typing import ProcessorState, ProcessorStateKey +from facefusion.typing import State, StateKey, StateSet + +STATES : Union[StateSet, ProcessorState] =\ +{ + 'cli': {}, #type:ignore[typeddict-item] + 'ui': {} #type:ignore[typeddict-item] +} + + +def get_state() -> Union[State, ProcessorState]: + app_context = detect_app_context() + return STATES.get(app_context) #type:ignore + + +def init_item(key : Union[StateKey, ProcessorStateKey], value : Any) -> None: + STATES['cli'][key] = value #type:ignore + STATES['ui'][key] = value #type:ignore + + +def get_item(key : Union[StateKey, ProcessorStateKey]) -> Any: + return get_state().get(key) #type:ignore + + +def set_item(key : Union[StateKey, ProcessorStateKey], value : Any) -> None: + app_context = detect_app_context() + STATES[app_context][key] = value #type:ignore + + +def sync_item(key : Union[StateKey, ProcessorStateKey]) -> None: + STATES['cli'][key] = STATES.get('ui').get(key) #type:ignore + + +def clear_item(key : Union[StateKey, ProcessorStateKey]) -> None: + set_item(key, None) diff --git a/facefusion/statistics.py b/facefusion/statistics.py index f67c32b9..5f500a0b 100644 --- a/facefusion/statistics.py +++ b/facefusion/statistics.py @@ -1,15 +1,15 @@ from typing import Any, Dict + import numpy -import facefusion.globals -from facefusion.face_store import FACE_STORE +from facefusion import logger, state_manager +from facefusion.face_store import get_face_store from facefusion.typing import FaceSet -from facefusion import logger def create_statistics(static_faces : FaceSet) -> Dict[str, Any]: - face_detector_score_list = [] - face_landmarker_score_list = [] + face_detector_scores = [] + face_landmarker_scores = [] statistics =\ { 'min_face_detector_score': 0, @@ -27,25 +27,25 @@ def create_statistics(static_faces : FaceSet) -> Dict[str, Any]: statistics['total_frames_with_faces'] = statistics.get('total_frames_with_faces') + 1 for face in faces: statistics['total_faces'] = statistics.get('total_faces') + 1 - face_detector_score_list.append(face.scores.get('detector')) - face_landmarker_score_list.append(face.scores.get('landmarker')) - if numpy.array_equal(face.landmarks.get('5'), face.landmarks.get('5/68')): + face_detector_scores.append(face.score_set.get('detector')) + face_landmarker_scores.append(face.score_set.get('landmarker')) + if numpy.array_equal(face.landmark_set.get('5'), face.landmark_set.get('5/68')): statistics['total_face_landmark_5_fallbacks'] = statistics.get('total_face_landmark_5_fallbacks') + 1 - if face_detector_score_list: - statistics['min_face_detector_score'] = round(min(face_detector_score_list), 2) - statistics['max_face_detector_score'] = round(max(face_detector_score_list), 2) - statistics['average_face_detector_score'] = round(numpy.mean(face_detector_score_list), 2) - if face_landmarker_score_list: - statistics['min_face_landmarker_score'] = round(min(face_landmarker_score_list), 2) - statistics['max_face_landmarker_score'] = round(max(face_landmarker_score_list), 2) - statistics['average_face_landmarker_score'] = round(numpy.mean(face_landmarker_score_list), 2) + if face_detector_scores: + statistics['min_face_detector_score'] = round(min(face_detector_scores), 2) + statistics['max_face_detector_score'] = round(max(face_detector_scores), 2) + statistics['average_face_detector_score'] = round(numpy.mean(face_detector_scores), 2) + if face_landmarker_scores: + statistics['min_face_landmarker_score'] = round(min(face_landmarker_scores), 2) + statistics['max_face_landmarker_score'] = round(max(face_landmarker_scores), 2) + statistics['average_face_landmarker_score'] = round(numpy.mean(face_landmarker_scores), 2) return statistics def conditional_log_statistics() -> None: - if facefusion.globals.log_level == 'debug': - statistics = create_statistics(FACE_STORE.get('static_faces')) + if state_manager.get_item('log_level') == 'debug': + statistics = create_statistics(get_face_store().get('static_faces')) for name, value in statistics.items(): - logger.debug(str(name) + ': ' + str(value), __name__.upper()) + logger.debug(str(name) + ': ' + str(value), __name__) diff --git a/facefusion/temp_helper.py b/facefusion/temp_helper.py new file mode 100644 index 00000000..c1798366 --- /dev/null +++ b/facefusion/temp_helper.py @@ -0,0 +1,60 @@ +import glob +import os +import tempfile +from typing import List + +from facefusion import state_manager +from facefusion.filesystem import create_directory, move_file, remove_directory + + +def get_temp_file_path(file_path : str) -> str: + _, temp_file_extension = os.path.splitext(os.path.basename(file_path)) + temp_directory_path = get_temp_directory_path(file_path) + return os.path.join(temp_directory_path, 'temp' + temp_file_extension) + + +def move_temp_file(file_path : str, move_path : str) -> bool: + temp_file_path = get_temp_file_path(file_path) + return move_file(temp_file_path, move_path) + + +def get_temp_frame_paths(target_path : str) -> List[str]: + temp_frames_pattern = get_temp_frames_pattern(target_path, '*') + return sorted(glob.glob(temp_frames_pattern)) + + +def get_temp_frames_pattern(target_path : str, temp_frame_prefix : str) -> str: + temp_directory_path = get_temp_directory_path(target_path) + return os.path.join(temp_directory_path, temp_frame_prefix + '.' + state_manager.get_item('temp_frame_format')) + + +def get_base_directory_path() -> str: + return os.path.join(tempfile.gettempdir(), 'facefusion') + + +def create_base_directory() -> bool: + base_directory_path = get_base_directory_path() + return create_directory(base_directory_path) + + +def clear_base_directory() -> bool: + base_directory_path = get_base_directory_path() + return remove_directory(base_directory_path) + + +def get_temp_directory_path(file_path : str) -> str: + temp_file_name, _ = os.path.splitext(os.path.basename(file_path)) + base_directory_path = get_base_directory_path() + return os.path.join(base_directory_path, temp_file_name) + + +def create_temp_directory(file_path : str) -> bool: + temp_directory_path = get_temp_directory_path(file_path) + return create_directory(temp_directory_path) + + +def clear_temp_directory(file_path : str) -> bool: + if not state_manager.get_item('keep_temp'): + temp_directory_path = get_temp_directory_path(file_path) + return remove_directory(temp_directory_path) + return True diff --git a/facefusion/thread_helper.py b/facefusion/thread_helper.py index c08c6f17..84717f9d 100644 --- a/facefusion/thread_helper.py +++ b/facefusion/thread_helper.py @@ -1,6 +1,8 @@ -from typing import List, Union, ContextManager import threading from contextlib import nullcontext +from typing import ContextManager, Union + +from facefusion.execution import has_execution_provider THREAD_LOCK : threading.Lock = threading.Lock() THREAD_SEMAPHORE : threading.Semaphore = threading.Semaphore() @@ -15,7 +17,7 @@ def thread_semaphore() -> threading.Semaphore: return THREAD_SEMAPHORE -def conditional_thread_semaphore(execution_providers : List[str]) -> Union[threading.Semaphore, ContextManager[None]]: - if 'DmlExecutionProvider' in execution_providers: +def conditional_thread_semaphore() -> Union[threading.Semaphore, ContextManager[None]]: + if has_execution_provider('directml') or has_execution_provider('rocm'): return THREAD_SEMAPHORE return NULL_CONTEXT diff --git a/facefusion/typing.py b/facefusion/typing.py index bc05f801..f8ee1b54 100755 --- a/facefusion/typing.py +++ b/facefusion/typing.py @@ -1,10 +1,20 @@ -from typing import Any, Literal, Callable, List, Tuple, Dict, TypedDict from collections import namedtuple -import numpy +from typing import Any, Callable, Dict, List, Literal, Optional, Tuple, TypedDict -BoundingBox = numpy.ndarray[Any, Any] -FaceLandmark5 = numpy.ndarray[Any, Any] -FaceLandmark68 = numpy.ndarray[Any, Any] +import numpy +from numpy.typing import NDArray +from onnxruntime import InferenceSession + +Scale = float +Score = float +Angle = int + +Detection = NDArray[Any] +Prediction = NDArray[Any] + +BoundingBox = NDArray[Any] +FaceLandmark5 = NDArray[Any] +FaceLandmark68 = NDArray[Any] FaceLandmarkSet = TypedDict('FaceLandmarkSet', { '5' : FaceLandmark5, #type:ignore[valid-type] @@ -12,22 +22,26 @@ FaceLandmarkSet = TypedDict('FaceLandmarkSet', '68' : FaceLandmark68, #type:ignore[valid-type] '68/5' : FaceLandmark68 #type:ignore[valid-type] }) -Score = float FaceScoreSet = TypedDict('FaceScoreSet', { 'detector' : Score, 'landmarker' : Score }) -Embedding = numpy.ndarray[Any, Any] +Embedding = NDArray[numpy.float64] +Gender = Literal['female', 'male'] +Age = range +Race = Literal['white', 'black', 'latino', 'asian', 'indian', 'arabic'] Face = namedtuple('Face', [ 'bounding_box', - 'landmarks', - 'scores', + 'score_set', + 'landmark_set', + 'angle', 'embedding', 'normed_embedding', 'gender', - 'age' + 'age', + 'race' ]) FaceSet = Dict[str, List[Face]] FaceStore = TypedDict('FaceStore', @@ -36,20 +50,25 @@ FaceStore = TypedDict('FaceStore', 'reference_faces': FaceSet }) -VisionFrame = numpy.ndarray[Any, Any] -Mask = numpy.ndarray[Any, Any] -Matrix = numpy.ndarray[Any, Any] -Translation = numpy.ndarray[Any, Any] +VisionFrame = NDArray[Any] +Mask = NDArray[Any] +Points = NDArray[Any] +Distance = NDArray[Any] +Matrix = NDArray[Any] +Anchors = NDArray[Any] +Translation = NDArray[Any] AudioBuffer = bytes -Audio = numpy.ndarray[Any, Any] -AudioChunk = numpy.ndarray[Any, Any] -AudioFrame = numpy.ndarray[Any, Any] -Spectrogram = numpy.ndarray[Any, Any] -MelFilterBank = numpy.ndarray[Any, Any] +Audio = NDArray[Any] +AudioChunk = NDArray[Any] +AudioFrame = NDArray[Any] +Spectrogram = NDArray[Any] +Mel = NDArray[Any] +MelFilterBank = NDArray[Any] Fps = float Padding = Tuple[int, int, int, int] +Orientation = Literal['landscape', 'portrait'] Resolution = Tuple[int, int] ProcessState = Literal['checking', 'processing', 'stopping', 'pending'] @@ -58,38 +77,55 @@ QueuePayload = TypedDict('QueuePayload', 'frame_number' : int, 'frame_path' : str }) +Args = Dict[str, Any] UpdateProgress = Callable[[int], None] ProcessFrames = Callable[[List[str], List[QueuePayload], UpdateProgress], None] +ProcessStep = Callable[[str, int, Args], bool] + +Content = Dict[str, Any] WarpTemplate = Literal['arcface_112_v1', 'arcface_112_v2', 'arcface_128_v2', 'ffhq_512'] -WarpTemplateSet = Dict[WarpTemplate, numpy.ndarray[Any, Any]] +WarpTemplateSet = Dict[WarpTemplate, NDArray[Any]] ProcessMode = Literal['output', 'preview', 'stream'] +ErrorCode = Literal[0, 1, 2, 3, 4] LogLevel = Literal['error', 'warn', 'info', 'debug'] +LogLevelSet = Dict[LogLevel, int] + +TableHeaders = List[str] +TableContents = List[List[Any]] + VideoMemoryStrategy = Literal['strict', 'moderate', 'tolerant'] +FaceDetectorModel = Literal['many', 'retinaface', 'scrfd', 'yoloface'] +FaceLandmarkerModel = Literal['many', '2dfan4', 'peppa_wutz'] +FaceDetectorSet = Dict[FaceDetectorModel, List[str]] FaceSelectorMode = Literal['many', 'one', 'reference'] -FaceAnalyserOrder = Literal['left-right', 'right-left', 'top-bottom', 'bottom-top', 'small-large', 'large-small', 'best-worst', 'worst-best'] -FaceAnalyserAge = Literal['child', 'teen', 'adult', 'senior'] -FaceAnalyserGender = Literal['female', 'male'] -FaceDetectorModel = Literal['many', 'retinaface', 'scrfd', 'yoloface', 'yunet'] -FaceDetectorTweak = Literal['low-luminance', 'high-luminance'] -FaceRecognizerModel = Literal['arcface_blendswap', 'arcface_inswapper', 'arcface_simswap', 'arcface_uniface'] +FaceSelectorOrder = Literal['left-right', 'right-left', 'top-bottom', 'bottom-top', 'small-large', 'large-small', 'best-worst', 'worst-best'] FaceMaskType = Literal['box', 'occlusion', 'region'] FaceMaskRegion = Literal['skin', 'left-eyebrow', 'right-eyebrow', 'left-eye', 'right-eye', 'glasses', 'nose', 'mouth', 'upper-lip', 'lower-lip'] TempFrameFormat = Literal['jpg', 'png', 'bmp'] -OutputVideoEncoder = Literal['libx264', 'libx265', 'libvpx-vp9', 'h264_nvenc', 'hevc_nvenc', 'h264_amf', 'hevc_amf'] +OutputAudioEncoder = Literal['aac', 'libmp3lame', 'libopus', 'libvorbis'] +OutputVideoEncoder = Literal['libx264', 'libx265', 'libvpx-vp9', 'h264_nvenc', 'hevc_nvenc', 'h264_amf', 'hevc_amf', 'h264_videotoolbox', 'hevc_videotoolbox'] OutputVideoPreset = Literal['ultrafast', 'superfast', 'veryfast', 'faster', 'fast', 'medium', 'slow', 'slower', 'veryslow'] -ModelValue = Dict[str, Any] -ModelSet = Dict[str, ModelValue] -OptionsWithModel = TypedDict('OptionsWithModel', -{ - 'model' : ModelValue +Download = TypedDict('Download', + { + 'url' : str, + 'path' : str }) +DownloadSet = Dict[str, Download] + +ModelOptions = Dict[str, Any] +ModelSet = Dict[str, ModelOptions] +ModelInitializer = NDArray[Any] + +ExecutionProviderKey = Literal['cpu', 'coreml', 'cuda', 'directml', 'openvino', 'rocm', 'tensorrt'] +ExecutionProviderValue = Literal['CPUExecutionProvider', 'CoreMLExecutionProvider', 'CUDAExecutionProvider', 'DmlExecutionProvider', 'OpenVINOExecutionProvider', 'ROCMExecutionProvider', 'TensorrtExecutionProvider'] +ExecutionProviderSet = Dict[ExecutionProviderKey, ExecutionProviderValue] ValueAndUnit = TypedDict('ValueAndUnit', { - 'value' : str, + 'value' : int, 'unit' : str }) ExecutionDeviceFramework = TypedDict('ExecutionDeviceFramework', @@ -120,3 +156,147 @@ ExecutionDevice = TypedDict('ExecutionDevice', 'video_memory' : ExecutionDeviceVideoMemory, 'utilization' : ExecutionDeviceUtilization }) + +AppContext = Literal['cli', 'ui'] + +InferencePool = Dict[str, InferenceSession] +InferencePoolSet = Dict[AppContext, Dict[str, InferencePool]] + +UiWorkflow = Literal['instant_runner', 'job_runner', 'job_manager'] + +JobStore = TypedDict('JobStore', +{ + 'job_keys' : List[str], + 'step_keys' : List[str] +}) +JobOutputSet = Dict[str, List[str]] +JobStatus = Literal['drafted', 'queued', 'completed', 'failed'] +JobStepStatus = Literal['drafted', 'queued', 'started', 'completed', 'failed'] +JobStep = TypedDict('JobStep', +{ + 'args' : Args, + 'status' : JobStepStatus +}) +Job = TypedDict('Job', +{ + 'version' : str, + 'date_created' : str, + 'date_updated' : Optional[str], + 'steps' : List[JobStep] +}) +JobSet = Dict[str, Job] + +ApplyStateItem = Callable[[Any, Any], None] +StateKey = Literal\ +[ + 'command', + 'config_path', + 'jobs_path', + 'source_paths', + 'target_path', + 'output_path', + 'face_detector_model', + 'face_detector_size', + 'face_detector_angles', + 'face_detector_score', + 'face_landmarker_model', + 'face_landmarker_score', + 'face_selector_mode', + 'face_selector_order', + 'face_selector_gender', + 'face_selector_race', + 'face_selector_age_start', + 'face_selector_age_end', + 'reference_face_position', + 'reference_face_distance', + 'reference_frame_number', + 'face_mask_types', + 'face_mask_blur', + 'face_mask_padding', + 'face_mask_regions', + 'trim_frame_start', + 'trim_frame_end', + 'temp_frame_format', + 'keep_temp', + 'output_image_quality', + 'output_image_resolution', + 'output_audio_encoder', + 'output_video_encoder', + 'output_video_preset', + 'output_video_quality', + 'output_video_resolution', + 'output_video_fps', + 'skip_audio', + 'processors', + 'open_browser', + 'ui_layouts', + 'ui_workflow', + 'execution_device_id', + 'execution_providers', + 'execution_thread_count', + 'execution_queue_count', + 'video_memory_strategy', + 'system_memory_limit', + 'skip_download', + 'log_level', + 'job_id', + 'job_status', + 'step_index' +] +State = TypedDict('State', +{ + 'command' : str, + 'config_path' : str, + 'jobs_path' : str, + 'source_paths' : List[str], + 'target_path' : str, + 'output_path' : str, + 'face_detector_model' : FaceDetectorModel, + 'face_detector_size' : str, + 'face_detector_angles' : List[Angle], + 'face_detector_score' : Score, + 'face_landmarker_model' : FaceLandmarkerModel, + 'face_landmarker_score' : Score, + 'face_selector_mode' : FaceSelectorMode, + 'face_selector_order' : FaceSelectorOrder, + 'face_selector_race': Race, + 'face_selector_gender' : Gender, + 'face_selector_age_start' : int, + 'face_selector_age_end' : int, + 'reference_face_position' : int, + 'reference_face_distance' : float, + 'reference_frame_number' : int, + 'face_mask_types' : List[FaceMaskType], + 'face_mask_blur' : float, + 'face_mask_padding' : Padding, + 'face_mask_regions' : List[FaceMaskRegion], + 'trim_frame_start' : int, + 'trim_frame_end' : int, + 'temp_frame_format' : TempFrameFormat, + 'keep_temp' : bool, + 'output_image_quality' : int, + 'output_image_resolution' : str, + 'output_audio_encoder' : OutputAudioEncoder, + 'output_video_encoder' : OutputVideoEncoder, + 'output_video_preset' : OutputVideoPreset, + 'output_video_quality' : int, + 'output_video_resolution' : str, + 'output_video_fps' : float, + 'skip_audio' : bool, + 'processors' : List[str], + 'open_browser' : bool, + 'ui_layouts' : List[str], + 'ui_workflow' : UiWorkflow, + 'execution_device_id': str, + 'execution_providers': List[ExecutionProviderKey], + 'execution_thread_count': int, + 'execution_queue_count': int, + 'video_memory_strategy': VideoMemoryStrategy, + 'system_memory_limit': int, + 'skip_download': bool, + 'log_level': LogLevel, + 'job_id': str, + 'job_status': JobStatus, + 'step_index': int +}) +StateSet = Dict[AppContext, State] diff --git a/facefusion/uis/assets/fixes.css b/facefusion/uis/assets/fixes.css deleted file mode 100644 index f65a7cfd..00000000 --- a/facefusion/uis/assets/fixes.css +++ /dev/null @@ -1,7 +0,0 @@ -:root:root:root button:not([class]) -{ - border-radius: 0.375rem; - float: left; - overflow: hidden; - width: 100%; -} diff --git a/facefusion/uis/assets/overrides.css b/facefusion/uis/assets/overrides.css index 744ed3ba..639c9870 100644 --- a/facefusion/uis/assets/overrides.css +++ b/facefusion/uis/assets/overrides.css @@ -1,23 +1,31 @@ -:root:root:root input[type="number"] +:root:root:root:root .gradio-container +{ + max-width: 110em; + overflow: unset; +} + +:root:root:root:root input[type="number"] { max-width: 6rem; } -:root:root:root [type="checkbox"], -:root:root:root [type="radio"] +:root:root:root:root [type="checkbox"], +:root:root:root:root [type="radio"] { border-radius: 50%; height: 1.125rem; width: 1.125rem; } -:root:root:root input[type="range"] +:root:root:root:root input[type="range"], +:root:root:root:root .range-slider div { height: 0.5rem; + border-radius: 0.5rem; } -:root:root:root input[type="range"]::-moz-range-thumb, -:root:root:root input[type="range"]::-webkit-slider-thumb +:root:root:root:root input[type="range"]::-moz-range-thumb, +:root:root:root:root input[type="range"]::-webkit-slider-thumb { background: var(--neutral-300); border: unset; @@ -26,33 +34,63 @@ width: 1.125rem; } -:root:root:root input[type="range"]::-webkit-slider-thumb +:root:root:root:root input[type="range"]::-webkit-slider-thumb { margin-top: 0.375rem; } -:root:root:root .grid-wrap.fixed-height +:root:root:root:root .range-slider input[type="range"]::-webkit-slider-thumb +{ + margin-top: 0.125rem; +} + +:root:root:root:root .range-slider div, +:root:root:root:root .range-slider input[type="range"] +{ + bottom: 50%; + margin-top: -0.25rem; + top: 50%; +} + +:root:root:root:root .grid-wrap.fixed-height { min-height: unset; } -:root:root:root .grid-container -{ - grid-auto-rows: minmax(5em, 1fr); - grid-template-columns: repeat(var(--grid-cols), minmax(5em, 1fr)); - grid-template-rows: repeat(var(--grid-rows), minmax(5em, 1fr)); -} - -:root:root:root .tab-nav > button +:root:root:root:root .generating, +:root:root:root:root .thumbnail-item { border: unset; - border-bottom: 0.125rem solid transparent; - font-size: 1.125em; - margin: 0.5rem 1rem; - padding: 0; } -:root:root:root .tab-nav > button.selected +:root:root:root:root .feather-upload, +:root:root:root:root footer { - border-bottom: 0.125rem solid; + display: none; +} + +:root:root:root:root .tab-nav > button +{ + border: unset; + box-shadow: 0 0.125rem; + font-size: 1.125em; + margin: 0.5rem 0.75rem; + padding: unset; +} + +:root:root:root:root .image-frame +{ + width: 100%; +} + +:root:root:root:root .image-frame > img +{ + object-fit: cover; +} + +:root:root:root:root .image-preview.is-landscape +{ + position: sticky; + top: 0; + z-index: 100; } diff --git a/facefusion/uis/choices.py b/facefusion/uis/choices.py index cae02569..3650365e 100644 --- a/facefusion/uis/choices.py +++ b/facefusion/uis/choices.py @@ -1,7 +1,11 @@ from typing import List -from facefusion.uis.typing import WebcamMode +from facefusion.uis.typing import JobManagerAction, JobRunnerAction, WebcamMode + +job_manager_actions : List[JobManagerAction] = [ 'job-create', 'job-submit', 'job-delete', 'job-add-step', 'job-remix-step', 'job-insert-step', 'job-remove-step' ] +job_runner_actions : List[JobRunnerAction] = [ 'job-run', 'job-run-all', 'job-retry', 'job-retry-all' ] common_options : List[str] = [ 'keep-temp', 'skip-audio', 'skip-download' ] + webcam_modes : List[WebcamMode] = [ 'inline', 'udp', 'v4l2' ] webcam_resolutions : List[str] = [ '320x240', '640x480', '800x600', '1024x768', '1280x720', '1280x960', '1920x1080', '2560x1440', '3840x2160' ] diff --git a/facefusion/uis/components/about.py b/facefusion/uis/components/about.py index 01ecb00d..fedaba72 100644 --- a/facefusion/uis/components/about.py +++ b/facefusion/uis/components/about.py @@ -1,23 +1,41 @@ +import random from typing import Optional + import gradio from facefusion import metadata, wording -ABOUT_BUTTON : Optional[gradio.HTML] = None -DONATE_BUTTON : Optional[gradio.HTML] = None +METADATA_BUTTON : Optional[gradio.Button] = None +ACTION_BUTTON : Optional[gradio.Button] = None def render() -> None: - global ABOUT_BUTTON - global DONATE_BUTTON + global METADATA_BUTTON + global ACTION_BUTTON - ABOUT_BUTTON = gradio.Button( + action = random.choice( + [ + { + 'wording': wording.get('about.become_a_member'), + 'url': 'https://subscribe.facefusion.io' + }, + { + 'wording': wording.get('about.join_our_community'), + 'url': 'https://join.facefusion.io' + }, + { + 'wording': wording.get('about.read_the_documentation'), + 'url': 'https://docs.facefusion.io' + } + ]) + + METADATA_BUTTON = gradio.Button( value = metadata.get('name') + ' ' + metadata.get('version'), variant = 'primary', link = metadata.get('url') ) - DONATE_BUTTON = gradio.Button( - value = wording.get('uis.donate_button'), - link = 'https://donate.facefusion.io', + ACTION_BUTTON = gradio.Button( + value = action.get('wording'), + link = action.get('url'), size = 'sm' ) diff --git a/facefusion/uis/components/age_modifier_options.py b/facefusion/uis/components/age_modifier_options.py new file mode 100755 index 00000000..73b1de23 --- /dev/null +++ b/facefusion/uis/components/age_modifier_options.py @@ -0,0 +1,63 @@ +from typing import List, Optional, Tuple + +import gradio + +from facefusion import state_manager, wording +from facefusion.common_helper import calc_float_step +from facefusion.processors import choices as processors_choices +from facefusion.processors.core import load_processor_module +from facefusion.processors.typing import AgeModifierModel +from facefusion.uis.core import get_ui_component, register_ui_component + +AGE_MODIFIER_MODEL_DROPDOWN : Optional[gradio.Dropdown] = None +AGE_MODIFIER_DIRECTION_SLIDER : Optional[gradio.Slider] = None + + +def render() -> None: + global AGE_MODIFIER_MODEL_DROPDOWN + global AGE_MODIFIER_DIRECTION_SLIDER + + AGE_MODIFIER_MODEL_DROPDOWN = gradio.Dropdown( + label = wording.get('uis.age_modifier_model_dropdown'), + choices = processors_choices.age_modifier_models, + value = state_manager.get_item('age_modifier_model'), + visible = 'age_modifier' in state_manager.get_item('processors') + ) + AGE_MODIFIER_DIRECTION_SLIDER = gradio.Slider( + label = wording.get('uis.age_modifier_direction_slider'), + value = state_manager.get_item('age_modifier_direction'), + step = calc_float_step(processors_choices.age_modifier_direction_range), + minimum = processors_choices.age_modifier_direction_range[0], + maximum = processors_choices.age_modifier_direction_range[-1], + visible = 'age_modifier' in state_manager.get_item('processors') + ) + register_ui_component('age_modifier_model_dropdown', AGE_MODIFIER_MODEL_DROPDOWN) + register_ui_component('age_modifier_direction_slider', AGE_MODIFIER_DIRECTION_SLIDER) + + +def listen() -> None: + AGE_MODIFIER_MODEL_DROPDOWN.change(update_age_modifier_model, inputs = AGE_MODIFIER_MODEL_DROPDOWN, outputs = AGE_MODIFIER_MODEL_DROPDOWN) + AGE_MODIFIER_DIRECTION_SLIDER.release(update_age_modifier_direction, inputs = AGE_MODIFIER_DIRECTION_SLIDER) + + processors_checkbox_group = get_ui_component('processors_checkbox_group') + if processors_checkbox_group: + processors_checkbox_group.change(remote_update, inputs = processors_checkbox_group, outputs = [ AGE_MODIFIER_MODEL_DROPDOWN, AGE_MODIFIER_DIRECTION_SLIDER ]) + + +def remote_update(processors : List[str]) -> Tuple[gradio.Dropdown, gradio.Slider]: + has_age_modifier = 'age_modifier' in processors + return gradio.Dropdown(visible = has_age_modifier), gradio.Slider(visible = has_age_modifier) + + +def update_age_modifier_model(age_modifier_model : AgeModifierModel) -> gradio.Dropdown: + age_modifier_module = load_processor_module('age_modifier') + age_modifier_module.clear_inference_pool() + state_manager.set_item('age_modifier_model', age_modifier_model) + + if age_modifier_module.pre_check(): + return gradio.Dropdown(value = state_manager.get_item('age_modifier_model')) + return gradio.Dropdown() + + +def update_age_modifier_direction(age_modifier_direction : float) -> None: + state_manager.set_item('age_modifier_direction', int(age_modifier_direction)) diff --git a/facefusion/uis/components/benchmark.py b/facefusion/uis/components/benchmark.py index 6322febd..9fbdbd81 100644 --- a/facefusion/uis/components/benchmark.py +++ b/facefusion/uis/components/benchmark.py @@ -1,20 +1,20 @@ -from typing import Any, Optional, List, Dict, Generator -from time import sleep, perf_counter -import tempfile +import hashlib +import os import statistics +import tempfile +from time import perf_counter +from typing import Any, Dict, Generator, List, Optional + import gradio -import facefusion.globals -from facefusion import process_manager, wording -from facefusion.face_store import clear_static_faces -from facefusion.processors.frame.core import get_frame_processors_modules -from facefusion.vision import count_video_frame_total, detect_video_resolution, detect_video_fps, pack_resolution +from facefusion import state_manager, wording from facefusion.core import conditional_process +from facefusion.filesystem import is_video from facefusion.memory import limit_system_memory -from facefusion.filesystem import clear_temp from facefusion.uis.core import get_ui_component +from facefusion.vision import count_video_frame_total, detect_video_fps, detect_video_resolution, pack_resolution -BENCHMARK_RESULTS_DATAFRAME : Optional[gradio.Dataframe] = None +BENCHMARK_BENCHMARKS_DATAFRAME : Optional[gradio.Dataframe] = None BENCHMARK_START_BUTTON : Optional[gradio.Button] = None BENCHMARK_CLEAR_BUTTON : Optional[gradio.Button] = None BENCHMARKS : Dict[str, str] =\ @@ -30,12 +30,11 @@ BENCHMARKS : Dict[str, str] =\ def render() -> None: - global BENCHMARK_RESULTS_DATAFRAME + global BENCHMARK_BENCHMARKS_DATAFRAME global BENCHMARK_START_BUTTON global BENCHMARK_CLEAR_BUTTON - BENCHMARK_RESULTS_DATAFRAME = gradio.Dataframe( - label = wording.get('uis.benchmark_results_dataframe'), + BENCHMARK_BENCHMARKS_DATAFRAME = gradio.Dataframe( headers = [ 'target_path', @@ -53,17 +52,14 @@ def render() -> None: 'number', 'number', 'number' - ] + ], + show_label = False ) BENCHMARK_START_BUTTON = gradio.Button( value = wording.get('uis.start_button'), variant = 'primary', size = 'sm' ) - BENCHMARK_CLEAR_BUTTON = gradio.Button( - value = wording.get('uis.clear_button'), - size = 'sm' - ) def listen() -> None: @@ -71,46 +67,51 @@ def listen() -> None: benchmark_cycles_slider = get_ui_component('benchmark_cycles_slider') if benchmark_runs_checkbox_group and benchmark_cycles_slider: - BENCHMARK_START_BUTTON.click(start, inputs = [ benchmark_runs_checkbox_group, benchmark_cycles_slider ], outputs = BENCHMARK_RESULTS_DATAFRAME) - BENCHMARK_CLEAR_BUTTON.click(clear, outputs = BENCHMARK_RESULTS_DATAFRAME) + BENCHMARK_START_BUTTON.click(start, inputs = [ benchmark_runs_checkbox_group, benchmark_cycles_slider ], outputs = BENCHMARK_BENCHMARKS_DATAFRAME) + + +def suggest_output_path(target_path : str) -> Optional[str]: + if is_video(target_path): + _, target_extension = os.path.splitext(target_path) + return os.path.join(tempfile.gettempdir(), hashlib.sha1().hexdigest()[:8] + target_extension) + return None def start(benchmark_runs : List[str], benchmark_cycles : int) -> Generator[List[Any], None, None]: - facefusion.globals.source_paths = [ '.assets/examples/source.jpg', '.assets/examples/source.mp3' ] - facefusion.globals.output_path = tempfile.gettempdir() - facefusion.globals.face_landmarker_score = 0 - facefusion.globals.temp_frame_format = 'bmp' - facefusion.globals.output_video_preset = 'ultrafast' + state_manager.init_item('source_paths', [ '.assets/examples/source.jpg', '.assets/examples/source.mp3' ]) + state_manager.init_item('face_landmarker_score', 0) + state_manager.init_item('temp_frame_format', 'bmp') + state_manager.init_item('output_video_preset', 'ultrafast') + state_manager.sync_item('execution_providers') + state_manager.sync_item('execution_thread_count') + state_manager.sync_item('execution_queue_count') + state_manager.sync_item('system_memory_limit') benchmark_results = [] target_paths = [ BENCHMARKS[benchmark_run] for benchmark_run in benchmark_runs if benchmark_run in BENCHMARKS ] if target_paths: pre_process() for target_path in target_paths: - facefusion.globals.target_path = target_path + state_manager.init_item('target_path', target_path) + state_manager.init_item('output_path', suggest_output_path(state_manager.get_item('target_path'))) benchmark_results.append(benchmark(benchmark_cycles)) yield benchmark_results - post_process() def pre_process() -> None: - if facefusion.globals.system_memory_limit > 0: - limit_system_memory(facefusion.globals.system_memory_limit) - for frame_processor_module in get_frame_processors_modules(facefusion.globals.frame_processors): - frame_processor_module.get_frame_processor() - - -def post_process() -> None: - clear_static_faces() + system_memory_limit = state_manager.get_item('system_memory_limit') + if system_memory_limit and system_memory_limit > 0: + limit_system_memory(system_memory_limit) def benchmark(benchmark_cycles : int) -> List[Any]: process_times = [] - video_frame_total = count_video_frame_total(facefusion.globals.target_path) - output_video_resolution = detect_video_resolution(facefusion.globals.target_path) - facefusion.globals.output_video_resolution = pack_resolution(output_video_resolution) - facefusion.globals.output_video_fps = detect_video_fps(facefusion.globals.target_path) + video_frame_total = count_video_frame_total(state_manager.get_item('target_path')) + output_video_resolution = detect_video_resolution(state_manager.get_item('target_path')) + state_manager.init_item('output_video_resolution', pack_resolution(output_video_resolution)) + state_manager.init_item('output_video_fps', detect_video_fps(state_manager.get_item('target_path'))) + conditional_process() for index in range(benchmark_cycles): start_time = perf_counter() conditional_process() @@ -123,18 +124,10 @@ def benchmark(benchmark_cycles : int) -> List[Any]: return\ [ - facefusion.globals.target_path, + state_manager.get_item('target_path'), benchmark_cycles, average_run, fastest_run, slowest_run, relative_fps ] - - -def clear() -> gradio.Dataframe: - while process_manager.is_processing(): - sleep(0.5) - if facefusion.globals.target_path: - clear_temp(facefusion.globals.target_path) - return gradio.Dataframe(value = None) diff --git a/facefusion/uis/components/benchmark_options.py b/facefusion/uis/components/benchmark_options.py index 6748dd9b..5b5cda02 100644 --- a/facefusion/uis/components/benchmark_options.py +++ b/facefusion/uis/components/benchmark_options.py @@ -1,9 +1,10 @@ from typing import Optional + import gradio from facefusion import wording -from facefusion.uis.core import register_ui_component from facefusion.uis.components.benchmark import BENCHMARKS +from facefusion.uis.core import register_ui_component BENCHMARK_RUNS_CHECKBOX_GROUP : Optional[gradio.CheckboxGroup] = None BENCHMARK_CYCLES_SLIDER : Optional[gradio.Button] = None diff --git a/facefusion/uis/components/common_options.py b/facefusion/uis/components/common_options.py index 43817413..0352ff34 100644 --- a/facefusion/uis/components/common_options.py +++ b/facefusion/uis/components/common_options.py @@ -1,8 +1,8 @@ -from typing import Optional, List +from typing import List, Optional + import gradio -import facefusion.globals -from facefusion import wording +from facefusion import state_manager, wording from facefusion.uis import choices as uis_choices COMMON_OPTIONS_CHECKBOX_GROUP : Optional[gradio.Checkboxgroup] = None @@ -11,17 +11,19 @@ COMMON_OPTIONS_CHECKBOX_GROUP : Optional[gradio.Checkboxgroup] = None def render() -> None: global COMMON_OPTIONS_CHECKBOX_GROUP - value = [] - if facefusion.globals.keep_temp: - value.append('keep-temp') - if facefusion.globals.skip_audio: - value.append('skip-audio') - if facefusion.globals.skip_download: - value.append('skip-download') + common_options = [] + + if state_manager.get_item('skip_download'): + common_options.append('skip-download') + if state_manager.get_item('keep_temp'): + common_options.append('keep-temp') + if state_manager.get_item('skip_audio'): + common_options.append('skip-audio') + COMMON_OPTIONS_CHECKBOX_GROUP = gradio.Checkboxgroup( label = wording.get('uis.common_options_checkbox_group'), choices = uis_choices.common_options, - value = value + value = common_options ) @@ -30,6 +32,9 @@ def listen() -> None: def update(common_options : List[str]) -> None: - facefusion.globals.keep_temp = 'keep-temp' in common_options - facefusion.globals.skip_audio = 'skip-audio' in common_options - facefusion.globals.skip_download = 'skip-download' in common_options + skip_temp = 'skip-download' in common_options + keep_temp = 'keep-temp' in common_options + skip_audio = 'skip-audio' in common_options + state_manager.set_item('skip_download', skip_temp) + state_manager.set_item('keep_temp', keep_temp) + state_manager.set_item('skip_audio', skip_audio) diff --git a/facefusion/uis/components/execution.py b/facefusion/uis/components/execution.py index 083727de..baf1888c 100644 --- a/facefusion/uis/components/execution.py +++ b/facefusion/uis/components/execution.py @@ -1,12 +1,11 @@ from typing import List, Optional -import gradio -import onnxruntime -import facefusion.globals -from facefusion import wording -from facefusion.face_analyser import clear_face_analyser -from facefusion.processors.frame.core import clear_frame_processors_modules -from facefusion.execution import encode_execution_providers, decode_execution_providers +import gradio + +from facefusion import content_analyser, face_classifier, face_detector, face_landmarker, face_masker, face_recognizer, state_manager, voice_extractor, wording +from facefusion.execution import get_execution_provider_choices +from facefusion.processors.core import clear_processors_modules +from facefusion.typing import ExecutionProviderKey EXECUTION_PROVIDERS_CHECKBOX_GROUP : Optional[gradio.CheckboxGroup] = None @@ -16,8 +15,8 @@ def render() -> None: EXECUTION_PROVIDERS_CHECKBOX_GROUP = gradio.CheckboxGroup( label = wording.get('uis.execution_providers_checkbox_group'), - choices = encode_execution_providers(onnxruntime.get_available_providers()), - value = encode_execution_providers(facefusion.globals.execution_providers) + choices = get_execution_provider_choices(), + value = state_manager.get_item('execution_providers') ) @@ -25,9 +24,15 @@ def listen() -> None: EXECUTION_PROVIDERS_CHECKBOX_GROUP.change(update_execution_providers, inputs = EXECUTION_PROVIDERS_CHECKBOX_GROUP, outputs = EXECUTION_PROVIDERS_CHECKBOX_GROUP) -def update_execution_providers(execution_providers : List[str]) -> gradio.CheckboxGroup: - clear_face_analyser() - clear_frame_processors_modules() - execution_providers = execution_providers or encode_execution_providers(onnxruntime.get_available_providers()) - facefusion.globals.execution_providers = decode_execution_providers(execution_providers) - return gradio.CheckboxGroup(value = execution_providers) +def update_execution_providers(execution_providers : List[ExecutionProviderKey]) -> gradio.CheckboxGroup: + content_analyser.clear_inference_pool() + face_classifier.clear_inference_pool() + face_detector.clear_inference_pool() + face_landmarker.clear_inference_pool() + face_masker.clear_inference_pool() + face_recognizer.clear_inference_pool() + voice_extractor.clear_inference_pool() + clear_processors_modules(state_manager.get_item('processors')) + execution_providers = execution_providers or get_execution_provider_choices() + state_manager.set_item('execution_providers', execution_providers) + return gradio.CheckboxGroup(value = state_manager.get_item('execution_providers')) diff --git a/facefusion/uis/components/execution_queue_count.py b/facefusion/uis/components/execution_queue_count.py index 1b6725e5..b5ab5dad 100644 --- a/facefusion/uis/components/execution_queue_count.py +++ b/facefusion/uis/components/execution_queue_count.py @@ -1,9 +1,10 @@ from typing import Optional + import gradio -import facefusion.globals import facefusion.choices -from facefusion import wording +from facefusion import state_manager, wording +from facefusion.common_helper import calc_int_step EXECUTION_QUEUE_COUNT_SLIDER : Optional[gradio.Slider] = None @@ -13,8 +14,8 @@ def render() -> None: EXECUTION_QUEUE_COUNT_SLIDER = gradio.Slider( label = wording.get('uis.execution_queue_count_slider'), - value = facefusion.globals.execution_queue_count, - step = facefusion.choices.execution_queue_count_range[1] - facefusion.choices.execution_queue_count_range[0], + value = state_manager.get_item('execution_queue_count'), + step = calc_int_step(facefusion.choices.execution_queue_count_range), minimum = facefusion.choices.execution_queue_count_range[0], maximum = facefusion.choices.execution_queue_count_range[-1] ) @@ -24,5 +25,5 @@ def listen() -> None: EXECUTION_QUEUE_COUNT_SLIDER.release(update_execution_queue_count, inputs = EXECUTION_QUEUE_COUNT_SLIDER) -def update_execution_queue_count(execution_queue_count : int = 1) -> None: - facefusion.globals.execution_queue_count = execution_queue_count +def update_execution_queue_count(execution_queue_count : float) -> None: + state_manager.set_item('execution_queue_count', int(execution_queue_count)) diff --git a/facefusion/uis/components/execution_thread_count.py b/facefusion/uis/components/execution_thread_count.py index 4a1f4646..f5716a99 100644 --- a/facefusion/uis/components/execution_thread_count.py +++ b/facefusion/uis/components/execution_thread_count.py @@ -1,9 +1,10 @@ from typing import Optional + import gradio -import facefusion.globals import facefusion.choices -from facefusion import wording +from facefusion import state_manager, wording +from facefusion.common_helper import calc_int_step EXECUTION_THREAD_COUNT_SLIDER : Optional[gradio.Slider] = None @@ -13,8 +14,8 @@ def render() -> None: EXECUTION_THREAD_COUNT_SLIDER = gradio.Slider( label = wording.get('uis.execution_thread_count_slider'), - value = facefusion.globals.execution_thread_count, - step = facefusion.choices.execution_thread_count_range[1] - facefusion.choices.execution_thread_count_range[0], + value = state_manager.get_item('execution_thread_count'), + step = calc_int_step(facefusion.choices.execution_thread_count_range), minimum = facefusion.choices.execution_thread_count_range[0], maximum = facefusion.choices.execution_thread_count_range[-1] ) @@ -24,6 +25,5 @@ def listen() -> None: EXECUTION_THREAD_COUNT_SLIDER.release(update_execution_thread_count, inputs = EXECUTION_THREAD_COUNT_SLIDER) -def update_execution_thread_count(execution_thread_count : int = 1) -> None: - facefusion.globals.execution_thread_count = execution_thread_count - +def update_execution_thread_count(execution_thread_count : float) -> None: + state_manager.set_item('execution_thread_count', int(execution_thread_count)) diff --git a/facefusion/uis/components/expression_restorer_options.py b/facefusion/uis/components/expression_restorer_options.py new file mode 100755 index 00000000..eaa48ecf --- /dev/null +++ b/facefusion/uis/components/expression_restorer_options.py @@ -0,0 +1,63 @@ +from typing import List, Optional, Tuple + +import gradio + +from facefusion import state_manager, wording +from facefusion.common_helper import calc_float_step +from facefusion.processors import choices as processors_choices +from facefusion.processors.core import load_processor_module +from facefusion.processors.typing import ExpressionRestorerModel +from facefusion.uis.core import get_ui_component, register_ui_component + +EXPRESSION_RESTORER_MODEL_DROPDOWN : Optional[gradio.Dropdown] = None +EXPRESSION_RESTORER_FACTOR_SLIDER : Optional[gradio.Slider] = None + + +def render() -> None: + global EXPRESSION_RESTORER_MODEL_DROPDOWN + global EXPRESSION_RESTORER_FACTOR_SLIDER + + EXPRESSION_RESTORER_MODEL_DROPDOWN = gradio.Dropdown( + label = wording.get('uis.expression_restorer_model_dropdown'), + choices = processors_choices.expression_restorer_models, + value = state_manager.get_item('expression_restorer_model'), + visible = 'expression_restorer' in state_manager.get_item('processors') + ) + EXPRESSION_RESTORER_FACTOR_SLIDER = gradio.Slider( + label = wording.get('uis.expression_restorer_factor_slider'), + value = state_manager.get_item('expression_restorer_factor'), + step = calc_float_step(processors_choices.expression_restorer_factor_range), + minimum = processors_choices.expression_restorer_factor_range[0], + maximum = processors_choices.expression_restorer_factor_range[-1], + visible = 'expression_restorer' in state_manager.get_item('processors'), + ) + register_ui_component('expression_restorer_model_dropdown', EXPRESSION_RESTORER_MODEL_DROPDOWN) + register_ui_component('expression_restorer_factor_slider', EXPRESSION_RESTORER_FACTOR_SLIDER) + + +def listen() -> None: + EXPRESSION_RESTORER_MODEL_DROPDOWN.change(update_expression_restorer_model, inputs = EXPRESSION_RESTORER_MODEL_DROPDOWN, outputs = EXPRESSION_RESTORER_MODEL_DROPDOWN) + EXPRESSION_RESTORER_FACTOR_SLIDER.release(update_expression_restorer_factor, inputs = EXPRESSION_RESTORER_FACTOR_SLIDER) + + processors_checkbox_group = get_ui_component('processors_checkbox_group') + if processors_checkbox_group: + processors_checkbox_group.change(remote_update, inputs = processors_checkbox_group, outputs = [ EXPRESSION_RESTORER_MODEL_DROPDOWN, EXPRESSION_RESTORER_FACTOR_SLIDER ]) + + +def remote_update(processors : List[str]) -> Tuple[gradio.Dropdown, gradio.Slider]: + has_expression_restorer = 'expression_restorer' in processors + return gradio.Dropdown(visible = has_expression_restorer), gradio.Slider(visible = has_expression_restorer) + + +def update_expression_restorer_model(expression_restorer_model : ExpressionRestorerModel) -> gradio.Dropdown: + expression_restorer_module = load_processor_module('expression_restorer') + expression_restorer_module.clear_inference_pool() + state_manager.set_item('expression_restorer_model', expression_restorer_model) + + if expression_restorer_module.pre_check(): + return gradio.Dropdown(value = state_manager.get_item('expression_restorer_model')) + return gradio.Dropdown() + + +def update_expression_restorer_factor(expression_restorer_factor : float) -> None: + state_manager.set_item('expression_restorer_factor', int(expression_restorer_factor)) diff --git a/facefusion/uis/components/face_analyser.py b/facefusion/uis/components/face_analyser.py deleted file mode 100644 index aed04182..00000000 --- a/facefusion/uis/components/face_analyser.py +++ /dev/null @@ -1,123 +0,0 @@ -from typing import Optional, Dict, Any, Tuple - -import gradio - -import facefusion.globals -import facefusion.choices -from facefusion import face_analyser, wording -from facefusion.typing import FaceAnalyserOrder, FaceAnalyserAge, FaceAnalyserGender, FaceDetectorModel -from facefusion.uis.core import register_ui_component - -FACE_ANALYSER_ORDER_DROPDOWN : Optional[gradio.Dropdown] = None -FACE_ANALYSER_AGE_DROPDOWN : Optional[gradio.Dropdown] = None -FACE_ANALYSER_GENDER_DROPDOWN : Optional[gradio.Dropdown] = None -FACE_DETECTOR_MODEL_DROPDOWN : Optional[gradio.Dropdown] = None -FACE_DETECTOR_SIZE_DROPDOWN : Optional[gradio.Dropdown] = None -FACE_DETECTOR_SCORE_SLIDER : Optional[gradio.Slider] = None -FACE_LANDMARKER_SCORE_SLIDER : Optional[gradio.Slider] = None - - -def render() -> None: - global FACE_ANALYSER_ORDER_DROPDOWN - global FACE_ANALYSER_AGE_DROPDOWN - global FACE_ANALYSER_GENDER_DROPDOWN - global FACE_DETECTOR_MODEL_DROPDOWN - global FACE_DETECTOR_SIZE_DROPDOWN - global FACE_DETECTOR_SCORE_SLIDER - global FACE_LANDMARKER_SCORE_SLIDER - - face_detector_size_dropdown_args : Dict[str, Any] =\ - { - 'label': wording.get('uis.face_detector_size_dropdown'), - 'value': facefusion.globals.face_detector_size - } - if facefusion.globals.face_detector_size in facefusion.choices.face_detector_set[facefusion.globals.face_detector_model]: - face_detector_size_dropdown_args['choices'] = facefusion.choices.face_detector_set[facefusion.globals.face_detector_model] - with gradio.Row(): - FACE_ANALYSER_ORDER_DROPDOWN = gradio.Dropdown( - label = wording.get('uis.face_analyser_order_dropdown'), - choices = facefusion.choices.face_analyser_orders, - value = facefusion.globals.face_analyser_order - ) - FACE_ANALYSER_AGE_DROPDOWN = gradio.Dropdown( - label = wording.get('uis.face_analyser_age_dropdown'), - choices = [ 'none' ] + facefusion.choices.face_analyser_ages, - value = facefusion.globals.face_analyser_age or 'none' - ) - FACE_ANALYSER_GENDER_DROPDOWN = gradio.Dropdown( - label = wording.get('uis.face_analyser_gender_dropdown'), - choices = [ 'none' ] + facefusion.choices.face_analyser_genders, - value = facefusion.globals.face_analyser_gender or 'none' - ) - FACE_DETECTOR_MODEL_DROPDOWN = gradio.Dropdown( - label = wording.get('uis.face_detector_model_dropdown'), - choices = facefusion.choices.face_detector_set.keys(), - value = facefusion.globals.face_detector_model - ) - FACE_DETECTOR_SIZE_DROPDOWN = gradio.Dropdown(**face_detector_size_dropdown_args) - with gradio.Row(): - FACE_DETECTOR_SCORE_SLIDER = gradio.Slider( - label = wording.get('uis.face_detector_score_slider'), - value = facefusion.globals.face_detector_score, - step = facefusion.choices.face_detector_score_range[1] - facefusion.choices.face_detector_score_range[0], - minimum = facefusion.choices.face_detector_score_range[0], - maximum = facefusion.choices.face_detector_score_range[-1] - ) - FACE_LANDMARKER_SCORE_SLIDER = gradio.Slider( - label = wording.get('uis.face_landmarker_score_slider'), - value = facefusion.globals.face_landmarker_score, - step = facefusion.choices.face_landmarker_score_range[1] - facefusion.choices.face_landmarker_score_range[0], - minimum = facefusion.choices.face_landmarker_score_range[0], - maximum = facefusion.choices.face_landmarker_score_range[-1] - ) - register_ui_component('face_analyser_order_dropdown', FACE_ANALYSER_ORDER_DROPDOWN) - register_ui_component('face_analyser_age_dropdown', FACE_ANALYSER_AGE_DROPDOWN) - register_ui_component('face_analyser_gender_dropdown', FACE_ANALYSER_GENDER_DROPDOWN) - register_ui_component('face_detector_model_dropdown', FACE_DETECTOR_MODEL_DROPDOWN) - register_ui_component('face_detector_size_dropdown', FACE_DETECTOR_SIZE_DROPDOWN) - register_ui_component('face_detector_score_slider', FACE_DETECTOR_SCORE_SLIDER) - register_ui_component('face_landmarker_score_slider', FACE_LANDMARKER_SCORE_SLIDER) - - -def listen() -> None: - FACE_ANALYSER_ORDER_DROPDOWN.change(update_face_analyser_order, inputs = FACE_ANALYSER_ORDER_DROPDOWN) - FACE_ANALYSER_AGE_DROPDOWN.change(update_face_analyser_age, inputs = FACE_ANALYSER_AGE_DROPDOWN) - FACE_ANALYSER_GENDER_DROPDOWN.change(update_face_analyser_gender, inputs = FACE_ANALYSER_GENDER_DROPDOWN) - FACE_DETECTOR_MODEL_DROPDOWN.change(update_face_detector_model, inputs = FACE_DETECTOR_MODEL_DROPDOWN, outputs = [ FACE_DETECTOR_MODEL_DROPDOWN, FACE_DETECTOR_SIZE_DROPDOWN ]) - FACE_DETECTOR_SIZE_DROPDOWN.change(update_face_detector_size, inputs = FACE_DETECTOR_SIZE_DROPDOWN) - FACE_DETECTOR_SCORE_SLIDER.release(update_face_detector_score, inputs = FACE_DETECTOR_SCORE_SLIDER) - FACE_LANDMARKER_SCORE_SLIDER.release(update_face_landmarker_score, inputs = FACE_LANDMARKER_SCORE_SLIDER) - - -def update_face_analyser_order(face_analyser_order : FaceAnalyserOrder) -> None: - facefusion.globals.face_analyser_order = face_analyser_order if face_analyser_order != 'none' else None - - -def update_face_analyser_age(face_analyser_age : FaceAnalyserAge) -> None: - facefusion.globals.face_analyser_age = face_analyser_age if face_analyser_age != 'none' else None - - -def update_face_analyser_gender(face_analyser_gender : FaceAnalyserGender) -> None: - facefusion.globals.face_analyser_gender = face_analyser_gender if face_analyser_gender != 'none' else None - - -def update_face_detector_model(face_detector_model : FaceDetectorModel) -> Tuple[gradio.Dropdown, gradio.Dropdown]: - facefusion.globals.face_detector_model = face_detector_model - update_face_detector_size('640x640') - if face_analyser.pre_check(): - if facefusion.globals.face_detector_size in facefusion.choices.face_detector_set[face_detector_model]: - return gradio.Dropdown(value = facefusion.globals.face_detector_model), gradio.Dropdown(value = facefusion.globals.face_detector_size, choices = facefusion.choices.face_detector_set[face_detector_model]) - return gradio.Dropdown(value = facefusion.globals.face_detector_model), gradio.Dropdown(value = facefusion.globals.face_detector_size, choices = [ facefusion.globals.face_detector_size ]) - return gradio.Dropdown(), gradio.Dropdown() - - -def update_face_detector_size(face_detector_size : str) -> None: - facefusion.globals.face_detector_size = face_detector_size - - -def update_face_detector_score(face_detector_score : float) -> None: - facefusion.globals.face_detector_score = face_detector_score - - -def update_face_landmarker_score(face_landmarker_score : float) -> None: - facefusion.globals.face_landmarker_score = face_landmarker_score diff --git a/facefusion/uis/components/face_debugger_options.py b/facefusion/uis/components/face_debugger_options.py new file mode 100755 index 00000000..088b0877 --- /dev/null +++ b/facefusion/uis/components/face_debugger_options.py @@ -0,0 +1,39 @@ +from typing import List, Optional + +import gradio + +from facefusion import state_manager, wording +from facefusion.processors import choices as processors_choices +from facefusion.processors.typing import FaceDebuggerItem +from facefusion.uis.core import get_ui_component, register_ui_component + +FACE_DEBUGGER_ITEMS_CHECKBOX_GROUP : Optional[gradio.CheckboxGroup] = None + + +def render() -> None: + global FACE_DEBUGGER_ITEMS_CHECKBOX_GROUP + + FACE_DEBUGGER_ITEMS_CHECKBOX_GROUP = gradio.CheckboxGroup( + label = wording.get('uis.face_debugger_items_checkbox_group'), + choices = processors_choices.face_debugger_items, + value = state_manager.get_item('face_debugger_items'), + visible = 'face_debugger' in state_manager.get_item('processors') + ) + register_ui_component('face_debugger_items_checkbox_group', FACE_DEBUGGER_ITEMS_CHECKBOX_GROUP) + + +def listen() -> None: + FACE_DEBUGGER_ITEMS_CHECKBOX_GROUP.change(update_face_debugger_items, inputs = FACE_DEBUGGER_ITEMS_CHECKBOX_GROUP) + + processors_checkbox_group = get_ui_component('processors_checkbox_group') + if processors_checkbox_group: + processors_checkbox_group.change(remote_update, inputs = processors_checkbox_group, outputs = FACE_DEBUGGER_ITEMS_CHECKBOX_GROUP) + + +def remote_update(processors : List[str]) -> gradio.CheckboxGroup: + has_face_debugger = 'face_debugger' in processors + return gradio.CheckboxGroup(visible = has_face_debugger) + + +def update_face_debugger_items(face_debugger_items : List[FaceDebuggerItem]) -> None: + state_manager.set_item('face_debugger_items', face_debugger_items) diff --git a/facefusion/uis/components/face_detector.py b/facefusion/uis/components/face_detector.py new file mode 100644 index 00000000..eb0e20fc --- /dev/null +++ b/facefusion/uis/components/face_detector.py @@ -0,0 +1,85 @@ +from typing import Optional, Sequence, Tuple + +import gradio + +import facefusion.choices +from facefusion import choices, face_detector, state_manager, wording +from facefusion.common_helper import calc_float_step, get_last +from facefusion.typing import Angle, FaceDetectorModel, Score +from facefusion.uis.core import register_ui_component +from facefusion.uis.typing import ComponentOptions + +FACE_DETECTOR_MODEL_DROPDOWN : Optional[gradio.Dropdown] = None +FACE_DETECTOR_SIZE_DROPDOWN : Optional[gradio.Dropdown] = None +FACE_DETECTOR_ANGLES_CHECKBOX_GROUP : Optional[gradio.CheckboxGroup] = None +FACE_DETECTOR_SCORE_SLIDER : Optional[gradio.Slider] = None + + +def render() -> None: + global FACE_DETECTOR_MODEL_DROPDOWN + global FACE_DETECTOR_SIZE_DROPDOWN + global FACE_DETECTOR_ANGLES_CHECKBOX_GROUP + global FACE_DETECTOR_SCORE_SLIDER + + face_detector_size_dropdown_options : ComponentOptions =\ + { + 'label': wording.get('uis.face_detector_size_dropdown'), + 'value': state_manager.get_item('face_detector_size') + } + if state_manager.get_item('face_detector_size') in facefusion.choices.face_detector_set[state_manager.get_item('face_detector_model')]: + face_detector_size_dropdown_options['choices'] = facefusion.choices.face_detector_set[state_manager.get_item('face_detector_model')] + with gradio.Row(): + FACE_DETECTOR_MODEL_DROPDOWN = gradio.Dropdown( + label = wording.get('uis.face_detector_model_dropdown'), + choices = facefusion.choices.face_detector_set.keys(), + value = state_manager.get_item('face_detector_model') + ) + FACE_DETECTOR_SIZE_DROPDOWN = gradio.Dropdown(**face_detector_size_dropdown_options) + FACE_DETECTOR_ANGLES_CHECKBOX_GROUP = gradio.CheckboxGroup( + label = wording.get('uis.face_detector_angles_checkbox_group'), + choices = facefusion.choices.face_detector_angles, + value = state_manager.get_item('face_detector_angles') + ) + FACE_DETECTOR_SCORE_SLIDER = gradio.Slider( + label = wording.get('uis.face_detector_score_slider'), + value = state_manager.get_item('face_detector_score'), + step = calc_float_step(facefusion.choices.face_detector_score_range), + minimum = facefusion.choices.face_detector_score_range[0], + maximum = facefusion.choices.face_detector_score_range[-1] + ) + register_ui_component('face_detector_model_dropdown', FACE_DETECTOR_MODEL_DROPDOWN) + register_ui_component('face_detector_size_dropdown', FACE_DETECTOR_SIZE_DROPDOWN) + register_ui_component('face_detector_angles_checkbox_group', FACE_DETECTOR_ANGLES_CHECKBOX_GROUP) + register_ui_component('face_detector_score_slider', FACE_DETECTOR_SCORE_SLIDER) + + +def listen() -> None: + FACE_DETECTOR_MODEL_DROPDOWN.change(update_face_detector_model, inputs = FACE_DETECTOR_MODEL_DROPDOWN, outputs = [ FACE_DETECTOR_MODEL_DROPDOWN, FACE_DETECTOR_SIZE_DROPDOWN ]) + FACE_DETECTOR_SIZE_DROPDOWN.change(update_face_detector_size, inputs = FACE_DETECTOR_SIZE_DROPDOWN) + FACE_DETECTOR_ANGLES_CHECKBOX_GROUP.change(update_face_detector_angles, inputs = FACE_DETECTOR_ANGLES_CHECKBOX_GROUP, outputs = FACE_DETECTOR_ANGLES_CHECKBOX_GROUP) + FACE_DETECTOR_SCORE_SLIDER.release(update_face_detector_score, inputs = FACE_DETECTOR_SCORE_SLIDER) + + +def update_face_detector_model(face_detector_model : FaceDetectorModel) -> Tuple[gradio.Dropdown, gradio.Dropdown]: + face_detector.clear_inference_pool() + state_manager.set_item('face_detector_model', face_detector_model) + + if face_detector.pre_check(): + face_detector_size_choices = choices.face_detector_set.get(state_manager.get_item('face_detector_model')) + state_manager.set_item('face_detector_size', get_last(face_detector_size_choices)) + return gradio.Dropdown(value = state_manager.get_item('face_detector_model')), gradio.Dropdown(value = state_manager.get_item('face_detector_size'), choices = face_detector_size_choices) + return gradio.Dropdown(), gradio.Dropdown() + + +def update_face_detector_size(face_detector_size : str) -> None: + state_manager.set_item('face_detector_size', face_detector_size) + + +def update_face_detector_angles(face_detector_angles : Sequence[Angle]) -> gradio.CheckboxGroup: + face_detector_angles = face_detector_angles or facefusion.choices.face_detector_angles + state_manager.set_item('face_detector_angles', face_detector_angles) + return gradio.CheckboxGroup(value = state_manager.get_item('face_detector_angles')) + + +def update_face_detector_score(face_detector_score : Score) -> None: + state_manager.set_item('face_detector_score', face_detector_score) diff --git a/facefusion/uis/components/face_editor_options.py b/facefusion/uis/components/face_editor_options.py new file mode 100755 index 00000000..cf4efa0f --- /dev/null +++ b/facefusion/uis/components/face_editor_options.py @@ -0,0 +1,271 @@ +from typing import List, Optional, Tuple + +import gradio + +from facefusion import state_manager, wording +from facefusion.common_helper import calc_float_step +from facefusion.processors import choices as processors_choices +from facefusion.processors.core import load_processor_module +from facefusion.processors.typing import FaceEditorModel +from facefusion.uis.core import get_ui_component, register_ui_component + +FACE_EDITOR_MODEL_DROPDOWN : Optional[gradio.Dropdown] = None +FACE_EDITOR_EYEBROW_DIRECTION_SLIDER : Optional[gradio.Slider] = None +FACE_EDITOR_EYE_GAZE_HORIZONTAL_SLIDER : Optional[gradio.Slider] = None +FACE_EDITOR_EYE_GAZE_VERTICAL_SLIDER : Optional[gradio.Slider] = None +FACE_EDITOR_EYE_OPEN_RATIO_SLIDER : Optional[gradio.Slider] = None +FACE_EDITOR_LIP_OPEN_RATIO_SLIDER : Optional[gradio.Slider] = None +FACE_EDITOR_MOUTH_GRIM_SLIDER : Optional[gradio.Slider] = None +FACE_EDITOR_MOUTH_POUT_SLIDER : Optional[gradio.Slider] = None +FACE_EDITOR_MOUTH_PURSE_SLIDER : Optional[gradio.Slider] = None +FACE_EDITOR_MOUTH_SMILE_SLIDER : Optional[gradio.Slider] = None +FACE_EDITOR_MOUTH_POSITION_HORIZONTAL_SLIDER : Optional[gradio.Slider] = None +FACE_EDITOR_MOUTH_POSITION_VERTICAL_SLIDER : Optional[gradio.Slider] = None +FACE_EDITOR_HEAD_PITCH_SLIDER : Optional[gradio.Slider] = None +FACE_EDITOR_HEAD_YAW_SLIDER : Optional[gradio.Slider] = None +FACE_EDITOR_HEAD_ROLL_SLIDER : Optional[gradio.Slider] = None + + +def render() -> None: + global FACE_EDITOR_MODEL_DROPDOWN + global FACE_EDITOR_EYEBROW_DIRECTION_SLIDER + global FACE_EDITOR_EYE_GAZE_HORIZONTAL_SLIDER + global FACE_EDITOR_EYE_GAZE_VERTICAL_SLIDER + global FACE_EDITOR_EYE_OPEN_RATIO_SLIDER + global FACE_EDITOR_LIP_OPEN_RATIO_SLIDER + global FACE_EDITOR_MOUTH_GRIM_SLIDER + global FACE_EDITOR_MOUTH_POUT_SLIDER + global FACE_EDITOR_MOUTH_PURSE_SLIDER + global FACE_EDITOR_MOUTH_SMILE_SLIDER + global FACE_EDITOR_MOUTH_POSITION_HORIZONTAL_SLIDER + global FACE_EDITOR_MOUTH_POSITION_VERTICAL_SLIDER + global FACE_EDITOR_HEAD_PITCH_SLIDER + global FACE_EDITOR_HEAD_YAW_SLIDER + global FACE_EDITOR_HEAD_ROLL_SLIDER + + FACE_EDITOR_MODEL_DROPDOWN = gradio.Dropdown( + label = wording.get('uis.face_editor_model_dropdown'), + choices = processors_choices.face_editor_models, + value = state_manager.get_item('face_editor_model'), + visible = 'face_editor' in state_manager.get_item('processors') + ) + FACE_EDITOR_EYEBROW_DIRECTION_SLIDER = gradio.Slider( + label = wording.get('uis.face_editor_eyebrow_direction_slider'), + value = state_manager.get_item('face_editor_eyebrow_direction'), + step = calc_float_step(processors_choices.face_editor_eyebrow_direction_range), + minimum = processors_choices.face_editor_eyebrow_direction_range[0], + maximum = processors_choices.face_editor_eyebrow_direction_range[-1], + visible = 'face_editor' in state_manager.get_item('processors'), + ) + FACE_EDITOR_EYE_GAZE_HORIZONTAL_SLIDER = gradio.Slider( + label = wording.get('uis.face_editor_eye_gaze_horizontal_slider'), + value = state_manager.get_item('face_editor_eye_gaze_horizontal'), + step = calc_float_step(processors_choices.face_editor_eye_gaze_horizontal_range), + minimum = processors_choices.face_editor_eye_gaze_horizontal_range[0], + maximum = processors_choices.face_editor_eye_gaze_horizontal_range[-1], + visible = 'face_editor' in state_manager.get_item('processors'), + ) + FACE_EDITOR_EYE_GAZE_VERTICAL_SLIDER = gradio.Slider( + label = wording.get('uis.face_editor_eye_gaze_vertical_slider'), + value = state_manager.get_item('face_editor_eye_gaze_vertical'), + step = calc_float_step(processors_choices.face_editor_eye_gaze_vertical_range), + minimum = processors_choices.face_editor_eye_gaze_vertical_range[0], + maximum = processors_choices.face_editor_eye_gaze_vertical_range[-1], + visible = 'face_editor' in state_manager.get_item('processors'), + ) + FACE_EDITOR_EYE_OPEN_RATIO_SLIDER = gradio.Slider( + label = wording.get('uis.face_editor_eye_open_ratio_slider'), + value = state_manager.get_item('face_editor_eye_open_ratio'), + step = calc_float_step(processors_choices.face_editor_eye_open_ratio_range), + minimum = processors_choices.face_editor_eye_open_ratio_range[0], + maximum = processors_choices.face_editor_eye_open_ratio_range[-1], + visible = 'face_editor' in state_manager.get_item('processors'), + ) + FACE_EDITOR_LIP_OPEN_RATIO_SLIDER = gradio.Slider( + label = wording.get('uis.face_editor_lip_open_ratio_slider'), + value = state_manager.get_item('face_editor_lip_open_ratio'), + step = calc_float_step(processors_choices.face_editor_lip_open_ratio_range), + minimum = processors_choices.face_editor_lip_open_ratio_range[0], + maximum = processors_choices.face_editor_lip_open_ratio_range[-1], + visible = 'face_editor' in state_manager.get_item('processors'), + ) + FACE_EDITOR_MOUTH_GRIM_SLIDER = gradio.Slider( + label = wording.get('uis.face_editor_mouth_grim_slider'), + value = state_manager.get_item('face_editor_mouth_grim'), + step = calc_float_step(processors_choices.face_editor_mouth_grim_range), + minimum = processors_choices.face_editor_mouth_grim_range[0], + maximum = processors_choices.face_editor_mouth_grim_range[-1], + visible = 'face_editor' in state_manager.get_item('processors'), + ) + FACE_EDITOR_MOUTH_POUT_SLIDER = gradio.Slider( + label = wording.get('uis.face_editor_mouth_pout_slider'), + value = state_manager.get_item('face_editor_mouth_pout'), + step = calc_float_step(processors_choices.face_editor_mouth_pout_range), + minimum = processors_choices.face_editor_mouth_pout_range[0], + maximum = processors_choices.face_editor_mouth_pout_range[-1], + visible = 'face_editor' in state_manager.get_item('processors'), + ) + FACE_EDITOR_MOUTH_PURSE_SLIDER = gradio.Slider( + label = wording.get('uis.face_editor_mouth_purse_slider'), + value = state_manager.get_item('face_editor_mouth_purse'), + step = calc_float_step(processors_choices.face_editor_mouth_purse_range), + minimum = processors_choices.face_editor_mouth_purse_range[0], + maximum = processors_choices.face_editor_mouth_purse_range[-1], + visible = 'face_editor' in state_manager.get_item('processors'), + ) + FACE_EDITOR_MOUTH_SMILE_SLIDER = gradio.Slider( + label = wording.get('uis.face_editor_mouth_smile_slider'), + value = state_manager.get_item('face_editor_mouth_smile'), + step = calc_float_step(processors_choices.face_editor_mouth_smile_range), + minimum = processors_choices.face_editor_mouth_smile_range[0], + maximum = processors_choices.face_editor_mouth_smile_range[-1], + visible = 'face_editor' in state_manager.get_item('processors'), + ) + FACE_EDITOR_MOUTH_POSITION_HORIZONTAL_SLIDER = gradio.Slider( + label = wording.get('uis.face_editor_mouth_position_horizontal_slider'), + value = state_manager.get_item('face_editor_mouth_position_horizontal'), + step = calc_float_step(processors_choices.face_editor_mouth_position_horizontal_range), + minimum = processors_choices.face_editor_mouth_position_horizontal_range[0], + maximum = processors_choices.face_editor_mouth_position_horizontal_range[-1], + visible = 'face_editor' in state_manager.get_item('processors'), + ) + FACE_EDITOR_MOUTH_POSITION_VERTICAL_SLIDER = gradio.Slider( + label = wording.get('uis.face_editor_mouth_position_vertical_slider'), + value = state_manager.get_item('face_editor_mouth_position_vertical'), + step = calc_float_step(processors_choices.face_editor_mouth_position_vertical_range), + minimum = processors_choices.face_editor_mouth_position_vertical_range[0], + maximum = processors_choices.face_editor_mouth_position_vertical_range[-1], + visible = 'face_editor' in state_manager.get_item('processors'), + ) + FACE_EDITOR_HEAD_PITCH_SLIDER = gradio.Slider( + label = wording.get('uis.face_editor_head_pitch_slider'), + value = state_manager.get_item('face_editor_head_pitch'), + step = calc_float_step(processors_choices.face_editor_head_pitch_range), + minimum = processors_choices.face_editor_head_pitch_range[0], + maximum = processors_choices.face_editor_head_pitch_range[-1], + visible = 'face_editor' in state_manager.get_item('processors'), + ) + FACE_EDITOR_HEAD_YAW_SLIDER = gradio.Slider( + label = wording.get('uis.face_editor_head_yaw_slider'), + value = state_manager.get_item('face_editor_head_yaw'), + step = calc_float_step(processors_choices.face_editor_head_yaw_range), + minimum = processors_choices.face_editor_head_yaw_range[0], + maximum = processors_choices.face_editor_head_yaw_range[-1], + visible = 'face_editor' in state_manager.get_item('processors'), + ) + FACE_EDITOR_HEAD_ROLL_SLIDER = gradio.Slider( + label = wording.get('uis.face_editor_head_roll_slider'), + value = state_manager.get_item('face_editor_head_roll'), + step = calc_float_step(processors_choices.face_editor_head_roll_range), + minimum = processors_choices.face_editor_head_roll_range[0], + maximum = processors_choices.face_editor_head_roll_range[-1], + visible = 'face_editor' in state_manager.get_item('processors'), + ) + register_ui_component('face_editor_model_dropdown', FACE_EDITOR_MODEL_DROPDOWN) + register_ui_component('face_editor_eyebrow_direction_slider', FACE_EDITOR_EYEBROW_DIRECTION_SLIDER) + register_ui_component('face_editor_eye_gaze_horizontal_slider', FACE_EDITOR_EYE_GAZE_HORIZONTAL_SLIDER) + register_ui_component('face_editor_eye_gaze_vertical_slider', FACE_EDITOR_EYE_GAZE_VERTICAL_SLIDER) + register_ui_component('face_editor_eye_open_ratio_slider', FACE_EDITOR_EYE_OPEN_RATIO_SLIDER) + register_ui_component('face_editor_lip_open_ratio_slider', FACE_EDITOR_LIP_OPEN_RATIO_SLIDER) + register_ui_component('face_editor_mouth_grim_slider', FACE_EDITOR_MOUTH_GRIM_SLIDER) + register_ui_component('face_editor_mouth_pout_slider', FACE_EDITOR_MOUTH_POUT_SLIDER) + register_ui_component('face_editor_mouth_purse_slider', FACE_EDITOR_MOUTH_PURSE_SLIDER) + register_ui_component('face_editor_mouth_smile_slider', FACE_EDITOR_MOUTH_SMILE_SLIDER) + register_ui_component('face_editor_mouth_position_horizontal_slider', FACE_EDITOR_MOUTH_POSITION_HORIZONTAL_SLIDER) + register_ui_component('face_editor_mouth_position_vertical_slider', FACE_EDITOR_MOUTH_POSITION_VERTICAL_SLIDER) + register_ui_component('face_editor_head_pitch_slider', FACE_EDITOR_HEAD_PITCH_SLIDER) + register_ui_component('face_editor_head_yaw_slider', FACE_EDITOR_HEAD_YAW_SLIDER) + register_ui_component('face_editor_head_roll_slider', FACE_EDITOR_HEAD_ROLL_SLIDER) + + +def listen() -> None: + FACE_EDITOR_MODEL_DROPDOWN.change(update_face_editor_model, inputs = FACE_EDITOR_MODEL_DROPDOWN, outputs = FACE_EDITOR_MODEL_DROPDOWN) + FACE_EDITOR_EYEBROW_DIRECTION_SLIDER.release(update_face_editor_eyebrow_direction, inputs = FACE_EDITOR_EYEBROW_DIRECTION_SLIDER) + FACE_EDITOR_EYE_GAZE_HORIZONTAL_SLIDER.release(update_face_editor_eye_gaze_horizontal, inputs = FACE_EDITOR_EYE_GAZE_HORIZONTAL_SLIDER) + FACE_EDITOR_EYE_GAZE_VERTICAL_SLIDER.release(update_face_editor_eye_gaze_vertical, inputs = FACE_EDITOR_EYE_GAZE_VERTICAL_SLIDER) + FACE_EDITOR_EYE_OPEN_RATIO_SLIDER.release(update_face_editor_eye_open_ratio, inputs = FACE_EDITOR_EYE_OPEN_RATIO_SLIDER) + FACE_EDITOR_LIP_OPEN_RATIO_SLIDER.release(update_face_editor_lip_open_ratio, inputs = FACE_EDITOR_LIP_OPEN_RATIO_SLIDER) + FACE_EDITOR_MOUTH_GRIM_SLIDER.release(update_face_editor_mouth_grim, inputs = FACE_EDITOR_MOUTH_GRIM_SLIDER) + FACE_EDITOR_MOUTH_POUT_SLIDER.release(update_face_editor_mouth_pout, inputs = FACE_EDITOR_MOUTH_POUT_SLIDER) + FACE_EDITOR_MOUTH_PURSE_SLIDER.release(update_face_editor_mouth_purse, inputs = FACE_EDITOR_MOUTH_PURSE_SLIDER) + FACE_EDITOR_MOUTH_SMILE_SLIDER.release(update_face_editor_mouth_smile, inputs = FACE_EDITOR_MOUTH_SMILE_SLIDER) + FACE_EDITOR_MOUTH_POSITION_HORIZONTAL_SLIDER.release(update_face_editor_mouth_position_horizontal, inputs = FACE_EDITOR_MOUTH_POSITION_HORIZONTAL_SLIDER) + FACE_EDITOR_MOUTH_POSITION_VERTICAL_SLIDER.release(update_face_editor_mouth_position_vertical, inputs = FACE_EDITOR_MOUTH_POSITION_VERTICAL_SLIDER) + FACE_EDITOR_HEAD_PITCH_SLIDER.release(update_face_editor_head_pitch, inputs = FACE_EDITOR_HEAD_PITCH_SLIDER) + FACE_EDITOR_HEAD_YAW_SLIDER.release(update_face_editor_head_yaw, inputs = FACE_EDITOR_HEAD_YAW_SLIDER) + FACE_EDITOR_HEAD_ROLL_SLIDER.release(update_face_editor_head_roll, inputs = FACE_EDITOR_HEAD_ROLL_SLIDER) + + processors_checkbox_group = get_ui_component('processors_checkbox_group') + if processors_checkbox_group: + processors_checkbox_group.change(remote_update, inputs = processors_checkbox_group, outputs = [FACE_EDITOR_MODEL_DROPDOWN, FACE_EDITOR_EYEBROW_DIRECTION_SLIDER, FACE_EDITOR_EYE_GAZE_HORIZONTAL_SLIDER, FACE_EDITOR_EYE_GAZE_VERTICAL_SLIDER, FACE_EDITOR_EYE_OPEN_RATIO_SLIDER, FACE_EDITOR_LIP_OPEN_RATIO_SLIDER, FACE_EDITOR_MOUTH_GRIM_SLIDER, FACE_EDITOR_MOUTH_POUT_SLIDER, FACE_EDITOR_MOUTH_PURSE_SLIDER, FACE_EDITOR_MOUTH_SMILE_SLIDER, FACE_EDITOR_MOUTH_POSITION_HORIZONTAL_SLIDER, FACE_EDITOR_MOUTH_POSITION_VERTICAL_SLIDER, FACE_EDITOR_HEAD_PITCH_SLIDER, FACE_EDITOR_HEAD_YAW_SLIDER, FACE_EDITOR_HEAD_ROLL_SLIDER]) + + +def remote_update(processors : List[str]) -> Tuple[gradio.Dropdown, gradio.Slider, gradio.Slider, gradio.Slider, gradio.Slider, gradio.Slider, gradio.Slider, gradio.Slider, gradio.Slider, gradio.Slider, gradio.Slider, gradio.Slider, gradio.Slider, gradio.Slider, gradio.Slider]: + has_face_editor = 'face_editor' in processors + return gradio.Dropdown(visible = has_face_editor), gradio.Slider(visible = has_face_editor), gradio.Slider(visible = has_face_editor), gradio.Slider(visible = has_face_editor), gradio.Slider(visible = has_face_editor), gradio.Slider(visible = has_face_editor), gradio.Slider(visible = has_face_editor), gradio.Slider(visible = has_face_editor), gradio.Slider(visible = has_face_editor), gradio.Slider(visible = has_face_editor), gradio.Slider(visible = has_face_editor), gradio.Slider(visible = has_face_editor), gradio.Slider(visible = has_face_editor), gradio.Slider(visible = has_face_editor), gradio.Slider(visible = has_face_editor) + + +def update_face_editor_model(face_editor_model : FaceEditorModel) -> gradio.Dropdown: + face_editor_module = load_processor_module('face_editor') + face_editor_module.clear_inference_pool() + state_manager.set_item('face_editor_model', face_editor_model) + + if face_editor_module.pre_check(): + return gradio.Dropdown(value = state_manager.get_item('face_editor_model')) + return gradio.Dropdown() + + +def update_face_editor_eyebrow_direction(face_editor_eyebrow_direction : float) -> None: + state_manager.set_item('face_editor_eyebrow_direction', face_editor_eyebrow_direction) + + +def update_face_editor_eye_gaze_horizontal(face_editor_eye_gaze_horizontal : float) -> None: + state_manager.set_item('face_editor_eye_gaze_horizontal', face_editor_eye_gaze_horizontal) + + +def update_face_editor_eye_gaze_vertical(face_editor_eye_gaze_vertical : float) -> None: + state_manager.set_item('face_editor_eye_gaze_vertical', face_editor_eye_gaze_vertical) + + +def update_face_editor_eye_open_ratio(face_editor_eye_open_ratio : float) -> None: + state_manager.set_item('face_editor_eye_open_ratio', face_editor_eye_open_ratio) + + +def update_face_editor_lip_open_ratio(face_editor_lip_open_ratio : float) -> None: + state_manager.set_item('face_editor_lip_open_ratio', face_editor_lip_open_ratio) + + +def update_face_editor_mouth_grim(face_editor_mouth_grim : float) -> None: + state_manager.set_item('face_editor_mouth_grim', face_editor_mouth_grim) + + +def update_face_editor_mouth_pout(face_editor_mouth_pout : float) -> None: + state_manager.set_item('face_editor_mouth_pout', face_editor_mouth_pout) + + +def update_face_editor_mouth_purse(face_editor_mouth_purse : float) -> None: + state_manager.set_item('face_editor_mouth_purse', face_editor_mouth_purse) + + +def update_face_editor_mouth_smile(face_editor_mouth_smile : float) -> None: + state_manager.set_item('face_editor_mouth_smile', face_editor_mouth_smile) + + +def update_face_editor_mouth_position_horizontal(face_editor_mouth_position_horizontal : float) -> None: + state_manager.set_item('face_editor_mouth_position_horizontal', face_editor_mouth_position_horizontal) + + +def update_face_editor_mouth_position_vertical(face_editor_mouth_position_vertical : float) -> None: + state_manager.set_item('face_editor_mouth_position_vertical', face_editor_mouth_position_vertical) + + +def update_face_editor_head_pitch(face_editor_head_pitch : float) -> None: + state_manager.set_item('face_editor_head_pitch', face_editor_head_pitch) + + +def update_face_editor_head_yaw(face_editor_head_yaw : float) -> None: + state_manager.set_item('face_editor_head_yaw', face_editor_head_yaw) + + +def update_face_editor_head_roll(face_editor_head_roll : float) -> None: + state_manager.set_item('face_editor_head_roll', face_editor_head_roll) diff --git a/facefusion/uis/components/face_enhancer_options.py b/facefusion/uis/components/face_enhancer_options.py new file mode 100755 index 00000000..5ce4c11a --- /dev/null +++ b/facefusion/uis/components/face_enhancer_options.py @@ -0,0 +1,63 @@ +from typing import List, Optional, Tuple + +import gradio + +from facefusion import state_manager, wording +from facefusion.common_helper import calc_int_step +from facefusion.processors import choices as processors_choices +from facefusion.processors.core import load_processor_module +from facefusion.processors.typing import FaceEnhancerModel +from facefusion.uis.core import get_ui_component, register_ui_component + +FACE_ENHANCER_MODEL_DROPDOWN : Optional[gradio.Dropdown] = None +FACE_ENHANCER_BLEND_SLIDER : Optional[gradio.Slider] = None + + +def render() -> None: + global FACE_ENHANCER_MODEL_DROPDOWN + global FACE_ENHANCER_BLEND_SLIDER + + FACE_ENHANCER_MODEL_DROPDOWN = gradio.Dropdown( + label = wording.get('uis.face_enhancer_model_dropdown'), + choices = processors_choices.face_enhancer_models, + value = state_manager.get_item('face_enhancer_model'), + visible = 'face_enhancer' in state_manager.get_item('processors') + ) + FACE_ENHANCER_BLEND_SLIDER = gradio.Slider( + label = wording.get('uis.face_enhancer_blend_slider'), + value = state_manager.get_item('face_enhancer_blend'), + step = calc_int_step(processors_choices.face_enhancer_blend_range), + minimum = processors_choices.face_enhancer_blend_range[0], + maximum = processors_choices.face_enhancer_blend_range[-1], + visible = 'face_enhancer' in state_manager.get_item('processors') + ) + register_ui_component('face_enhancer_model_dropdown', FACE_ENHANCER_MODEL_DROPDOWN) + register_ui_component('face_enhancer_blend_slider', FACE_ENHANCER_BLEND_SLIDER) + + +def listen() -> None: + FACE_ENHANCER_MODEL_DROPDOWN.change(update_face_enhancer_model, inputs = FACE_ENHANCER_MODEL_DROPDOWN, outputs = FACE_ENHANCER_MODEL_DROPDOWN) + FACE_ENHANCER_BLEND_SLIDER.release(update_face_enhancer_blend, inputs = FACE_ENHANCER_BLEND_SLIDER) + + processors_checkbox_group = get_ui_component('processors_checkbox_group') + if processors_checkbox_group: + processors_checkbox_group.change(remote_update, inputs = processors_checkbox_group, outputs = [ FACE_ENHANCER_MODEL_DROPDOWN, FACE_ENHANCER_BLEND_SLIDER ]) + + +def remote_update(processors : List[str]) -> Tuple[gradio.Dropdown, gradio.Slider]: + has_face_enhancer = 'face_enhancer' in processors + return gradio.Dropdown(visible = has_face_enhancer), gradio.Slider(visible = has_face_enhancer) + + +def update_face_enhancer_model(face_enhancer_model : FaceEnhancerModel) -> gradio.Dropdown: + face_enhancer_module = load_processor_module('face_enhancer') + face_enhancer_module.clear_inference_pool() + state_manager.set_item('face_enhancer_model', face_enhancer_model) + + if face_enhancer_module.pre_check(): + return gradio.Dropdown(value = state_manager.get_item('face_enhancer_model')) + return gradio.Dropdown() + + +def update_face_enhancer_blend(face_enhancer_blend : float) -> None: + state_manager.set_item('face_enhancer_blend', int(face_enhancer_blend)) diff --git a/facefusion/uis/components/face_landmarker.py b/facefusion/uis/components/face_landmarker.py new file mode 100644 index 00000000..f6a179d7 --- /dev/null +++ b/facefusion/uis/components/face_landmarker.py @@ -0,0 +1,50 @@ +from typing import Optional + +import gradio + +import facefusion.choices +from facefusion import face_landmarker, state_manager, wording +from facefusion.common_helper import calc_float_step +from facefusion.typing import FaceLandmarkerModel, Score +from facefusion.uis.core import register_ui_component + +FACE_LANDMARKER_MODEL_DROPDOWN : Optional[gradio.Dropdown] = None +FACE_LANDMARKER_SCORE_SLIDER : Optional[gradio.Slider] = None + + +def render() -> None: + global FACE_LANDMARKER_MODEL_DROPDOWN + global FACE_LANDMARKER_SCORE_SLIDER + + FACE_LANDMARKER_MODEL_DROPDOWN = gradio.Dropdown( + label = wording.get('uis.face_landmarker_model_dropdown'), + choices = facefusion.choices.face_landmarker_models, + value = state_manager.get_item('face_landmarker_model') + ) + FACE_LANDMARKER_SCORE_SLIDER = gradio.Slider( + label = wording.get('uis.face_landmarker_score_slider'), + value = state_manager.get_item('face_landmarker_score'), + step = calc_float_step(facefusion.choices.face_landmarker_score_range), + minimum = facefusion.choices.face_landmarker_score_range[0], + maximum = facefusion.choices.face_landmarker_score_range[-1] + ) + register_ui_component('face_landmarker_model_dropdown', FACE_LANDMARKER_MODEL_DROPDOWN) + register_ui_component('face_landmarker_score_slider', FACE_LANDMARKER_SCORE_SLIDER) + + +def listen() -> None: + FACE_LANDMARKER_MODEL_DROPDOWN.change(update_face_landmarker_model, inputs = FACE_LANDMARKER_MODEL_DROPDOWN, outputs = FACE_LANDMARKER_MODEL_DROPDOWN) + FACE_LANDMARKER_SCORE_SLIDER.release(update_face_landmarker_score, inputs = FACE_LANDMARKER_SCORE_SLIDER) + + +def update_face_landmarker_model(face_landmarker_model : FaceLandmarkerModel) -> gradio.Dropdown: + face_landmarker.clear_inference_pool() + state_manager.set_item('face_landmarker_model', face_landmarker_model) + + if face_landmarker.pre_check(): + gradio.Dropdown(value = state_manager.get_item('face_landmarker_model')) + return gradio.Dropdown() + + +def update_face_landmarker_score(face_landmarker_score : Score) -> None: + state_manager.set_item('face_landmarker_score', face_landmarker_score) diff --git a/facefusion/uis/components/face_masker.py b/facefusion/uis/components/face_masker.py index bb1c28c9..7579cf80 100755 --- a/facefusion/uis/components/face_masker.py +++ b/facefusion/uis/components/face_masker.py @@ -1,16 +1,15 @@ -from typing import Optional, Tuple, List +from typing import List, Optional, Tuple + import gradio -import facefusion.globals import facefusion.choices -from facefusion import wording -from facefusion.typing import FaceMaskType, FaceMaskRegion +from facefusion import state_manager, wording +from facefusion.common_helper import calc_float_step, calc_int_step +from facefusion.typing import FaceMaskRegion, FaceMaskType from facefusion.uis.core import register_ui_component FACE_MASK_TYPES_CHECKBOX_GROUP : Optional[gradio.CheckboxGroup] = None FACE_MASK_BLUR_SLIDER : Optional[gradio.Slider] = None -FACE_MASK_BOX_GROUP : Optional[gradio.Group] = None -FACE_MASK_REGION_GROUP : Optional[gradio.Group] = None FACE_MASK_PADDING_TOP_SLIDER : Optional[gradio.Slider] = None FACE_MASK_PADDING_RIGHT_SLIDER : Optional[gradio.Slider] = None FACE_MASK_PADDING_BOTTOM_SLIDER : Optional[gradio.Slider] = None @@ -20,100 +19,105 @@ FACE_MASK_REGION_CHECKBOX_GROUP : Optional[gradio.CheckboxGroup] = None def render() -> None: global FACE_MASK_TYPES_CHECKBOX_GROUP + global FACE_MASK_REGION_CHECKBOX_GROUP global FACE_MASK_BLUR_SLIDER - global FACE_MASK_BOX_GROUP - global FACE_MASK_REGION_GROUP global FACE_MASK_PADDING_TOP_SLIDER global FACE_MASK_PADDING_RIGHT_SLIDER global FACE_MASK_PADDING_BOTTOM_SLIDER global FACE_MASK_PADDING_LEFT_SLIDER - global FACE_MASK_REGION_CHECKBOX_GROUP - has_box_mask = 'box' in facefusion.globals.face_mask_types - has_region_mask = 'region' in facefusion.globals.face_mask_types + has_box_mask = 'box' in state_manager.get_item('face_mask_types') + has_region_mask = 'region' in state_manager.get_item('face_mask_types') FACE_MASK_TYPES_CHECKBOX_GROUP = gradio.CheckboxGroup( label = wording.get('uis.face_mask_types_checkbox_group'), choices = facefusion.choices.face_mask_types, - value = facefusion.globals.face_mask_types + value = state_manager.get_item('face_mask_types') ) - with gradio.Group(visible = has_box_mask) as FACE_MASK_BOX_GROUP: - FACE_MASK_BLUR_SLIDER = gradio.Slider( - label = wording.get('uis.face_mask_blur_slider'), - step = facefusion.choices.face_mask_blur_range[1] - facefusion.choices.face_mask_blur_range[0], - minimum = facefusion.choices.face_mask_blur_range[0], - maximum = facefusion.choices.face_mask_blur_range[-1], - value = facefusion.globals.face_mask_blur - ) + FACE_MASK_REGION_CHECKBOX_GROUP = gradio.CheckboxGroup( + label = wording.get('uis.face_mask_region_checkbox_group'), + choices = facefusion.choices.face_mask_regions, + value = state_manager.get_item('face_mask_regions'), + visible = has_region_mask + ) + FACE_MASK_BLUR_SLIDER = gradio.Slider( + label = wording.get('uis.face_mask_blur_slider'), + step = calc_float_step(facefusion.choices.face_mask_blur_range), + minimum = facefusion.choices.face_mask_blur_range[0], + maximum = facefusion.choices.face_mask_blur_range[-1], + value = state_manager.get_item('face_mask_blur'), + visible = has_box_mask + ) + with gradio.Group(): with gradio.Row(): FACE_MASK_PADDING_TOP_SLIDER = gradio.Slider( label = wording.get('uis.face_mask_padding_top_slider'), - step = facefusion.choices.face_mask_padding_range[1] - facefusion.choices.face_mask_padding_range[0], + step = calc_int_step(facefusion.choices.face_mask_padding_range), minimum = facefusion.choices.face_mask_padding_range[0], maximum = facefusion.choices.face_mask_padding_range[-1], - value = facefusion.globals.face_mask_padding[0] + value = state_manager.get_item('face_mask_padding')[0], + visible = has_box_mask ) FACE_MASK_PADDING_RIGHT_SLIDER = gradio.Slider( label = wording.get('uis.face_mask_padding_right_slider'), - step = facefusion.choices.face_mask_padding_range[1] - facefusion.choices.face_mask_padding_range[0], + step = calc_int_step(facefusion.choices.face_mask_padding_range), minimum = facefusion.choices.face_mask_padding_range[0], maximum = facefusion.choices.face_mask_padding_range[-1], - value = facefusion.globals.face_mask_padding[1] + value = state_manager.get_item('face_mask_padding')[1], + visible = has_box_mask ) with gradio.Row(): FACE_MASK_PADDING_BOTTOM_SLIDER = gradio.Slider( label = wording.get('uis.face_mask_padding_bottom_slider'), - step = facefusion.choices.face_mask_padding_range[1] - facefusion.choices.face_mask_padding_range[0], + step = calc_int_step(facefusion.choices.face_mask_padding_range), minimum = facefusion.choices.face_mask_padding_range[0], maximum = facefusion.choices.face_mask_padding_range[-1], - value = facefusion.globals.face_mask_padding[2] + value = state_manager.get_item('face_mask_padding')[2], + visible = has_box_mask ) FACE_MASK_PADDING_LEFT_SLIDER = gradio.Slider( label = wording.get('uis.face_mask_padding_left_slider'), - step = facefusion.choices.face_mask_padding_range[1] - facefusion.choices.face_mask_padding_range[0], + step = calc_int_step(facefusion.choices.face_mask_padding_range), minimum = facefusion.choices.face_mask_padding_range[0], maximum = facefusion.choices.face_mask_padding_range[-1], - value = facefusion.globals.face_mask_padding[3] + value = state_manager.get_item('face_mask_padding')[3], + visible = has_box_mask ) - with gradio.Row(): - FACE_MASK_REGION_CHECKBOX_GROUP = gradio.CheckboxGroup( - label = wording.get('uis.face_mask_region_checkbox_group'), - choices = facefusion.choices.face_mask_regions, - value = facefusion.globals.face_mask_regions, - visible = has_region_mask - ) register_ui_component('face_mask_types_checkbox_group', FACE_MASK_TYPES_CHECKBOX_GROUP) + register_ui_component('face_mask_region_checkbox_group', FACE_MASK_REGION_CHECKBOX_GROUP) register_ui_component('face_mask_blur_slider', FACE_MASK_BLUR_SLIDER) register_ui_component('face_mask_padding_top_slider', FACE_MASK_PADDING_TOP_SLIDER) register_ui_component('face_mask_padding_right_slider', FACE_MASK_PADDING_RIGHT_SLIDER) register_ui_component('face_mask_padding_bottom_slider', FACE_MASK_PADDING_BOTTOM_SLIDER) register_ui_component('face_mask_padding_left_slider', FACE_MASK_PADDING_LEFT_SLIDER) - register_ui_component('face_mask_region_checkbox_group', FACE_MASK_REGION_CHECKBOX_GROUP) def listen() -> None: - FACE_MASK_TYPES_CHECKBOX_GROUP.change(update_face_mask_type, inputs = FACE_MASK_TYPES_CHECKBOX_GROUP, outputs = [ FACE_MASK_TYPES_CHECKBOX_GROUP, FACE_MASK_BOX_GROUP, FACE_MASK_REGION_CHECKBOX_GROUP ]) - FACE_MASK_BLUR_SLIDER.release(update_face_mask_blur, inputs = FACE_MASK_BLUR_SLIDER) + FACE_MASK_TYPES_CHECKBOX_GROUP.change(update_face_mask_type, inputs = FACE_MASK_TYPES_CHECKBOX_GROUP, outputs = [ FACE_MASK_TYPES_CHECKBOX_GROUP, FACE_MASK_REGION_CHECKBOX_GROUP, FACE_MASK_BLUR_SLIDER, FACE_MASK_PADDING_TOP_SLIDER, FACE_MASK_PADDING_RIGHT_SLIDER, FACE_MASK_PADDING_BOTTOM_SLIDER, FACE_MASK_PADDING_LEFT_SLIDER ]) FACE_MASK_REGION_CHECKBOX_GROUP.change(update_face_mask_regions, inputs = FACE_MASK_REGION_CHECKBOX_GROUP, outputs = FACE_MASK_REGION_CHECKBOX_GROUP) + FACE_MASK_BLUR_SLIDER.release(update_face_mask_blur, inputs = FACE_MASK_BLUR_SLIDER) face_mask_padding_sliders = [ FACE_MASK_PADDING_TOP_SLIDER, FACE_MASK_PADDING_RIGHT_SLIDER, FACE_MASK_PADDING_BOTTOM_SLIDER, FACE_MASK_PADDING_LEFT_SLIDER ] for face_mask_padding_slider in face_mask_padding_sliders: face_mask_padding_slider.release(update_face_mask_padding, inputs = face_mask_padding_sliders) -def update_face_mask_type(face_mask_types : List[FaceMaskType]) -> Tuple[gradio.CheckboxGroup, gradio.Group, gradio.CheckboxGroup]: - facefusion.globals.face_mask_types = face_mask_types or facefusion.choices.face_mask_types +def update_face_mask_type(face_mask_types : List[FaceMaskType]) -> Tuple[gradio.CheckboxGroup, gradio.CheckboxGroup, gradio.Slider, gradio.Slider, gradio.Slider, gradio.Slider, gradio.Slider]: + face_mask_types = face_mask_types or facefusion.choices.face_mask_types + state_manager.set_item('face_mask_types', face_mask_types) has_box_mask = 'box' in face_mask_types has_region_mask = 'region' in face_mask_types - return gradio.CheckboxGroup(value = facefusion.globals.face_mask_types), gradio.Group(visible = has_box_mask), gradio.CheckboxGroup(visible = has_region_mask) - - -def update_face_mask_blur(face_mask_blur : float) -> None: - facefusion.globals.face_mask_blur = face_mask_blur - - -def update_face_mask_padding(face_mask_padding_top : int, face_mask_padding_right : int, face_mask_padding_bottom : int, face_mask_padding_left : int) -> None: - facefusion.globals.face_mask_padding = (face_mask_padding_top, face_mask_padding_right, face_mask_padding_bottom, face_mask_padding_left) + return gradio.CheckboxGroup(value = state_manager.get_item('face_mask_types')), gradio.CheckboxGroup(visible = has_region_mask), gradio.Slider(visible = has_box_mask), gradio.Slider(visible = has_box_mask), gradio.Slider(visible = has_box_mask), gradio.Slider(visible = has_box_mask), gradio.Slider(visible = has_box_mask) def update_face_mask_regions(face_mask_regions : List[FaceMaskRegion]) -> gradio.CheckboxGroup: - facefusion.globals.face_mask_regions = face_mask_regions or facefusion.choices.face_mask_regions - return gradio.CheckboxGroup(value = facefusion.globals.face_mask_regions) + face_mask_regions = face_mask_regions or facefusion.choices.face_mask_regions + state_manager.set_item('face_mask_regions', face_mask_regions) + return gradio.CheckboxGroup(value = state_manager.get_item('face_mask_regions')) + + +def update_face_mask_blur(face_mask_blur : float) -> None: + state_manager.set_item('face_mask_blur', face_mask_blur) + + +def update_face_mask_padding(face_mask_padding_top : float, face_mask_padding_right : float, face_mask_padding_bottom : float, face_mask_padding_left : float) -> None: + face_mask_padding = (int(face_mask_padding_top), int(face_mask_padding_right), int(face_mask_padding_bottom), int(face_mask_padding_left)) + state_manager.set_item('face_mask_padding', face_mask_padding) diff --git a/facefusion/uis/components/face_selector.py b/facefusion/uis/components/face_selector.py index 19fef55b..2cb31577 100644 --- a/facefusion/uis/components/face_selector.py +++ b/facefusion/uis/components/face_selector.py @@ -1,62 +1,109 @@ -from typing import List, Optional, Tuple, Any, Dict +from typing import List, Optional, Tuple import gradio +from gradio_rangeslider import RangeSlider -import facefusion.globals import facefusion.choices -from facefusion import wording -from facefusion.face_store import clear_static_faces, clear_reference_faces -from facefusion.vision import get_video_frame, read_static_image, normalize_frame_color -from facefusion.filesystem import is_image, is_video +from facefusion import state_manager, wording +from facefusion.common_helper import calc_float_step, calc_int_step from facefusion.face_analyser import get_many_faces -from facefusion.typing import VisionFrame, FaceSelectorMode +from facefusion.face_selector import sort_and_filter_faces +from facefusion.face_store import clear_reference_faces, clear_static_faces +from facefusion.filesystem import is_image, is_video +from facefusion.typing import FaceSelectorMode, FaceSelectorOrder, Gender, Race, VisionFrame from facefusion.uis.core import get_ui_component, get_ui_components, register_ui_component +from facefusion.uis.typing import ComponentOptions +from facefusion.uis.ui_helper import convert_str_none +from facefusion.vision import get_video_frame, normalize_frame_color, read_static_image FACE_SELECTOR_MODE_DROPDOWN : Optional[gradio.Dropdown] = None +FACE_SELECTOR_ORDER_DROPDOWN : Optional[gradio.Dropdown] = None +FACE_SELECTOR_GENDER_DROPDOWN : Optional[gradio.Dropdown] = None +FACE_SELECTOR_RACE_DROPDOWN : Optional[gradio.Dropdown] = None +FACE_SELECTOR_AGE_RANGE_SLIDER : Optional[RangeSlider] = None REFERENCE_FACE_POSITION_GALLERY : Optional[gradio.Gallery] = None REFERENCE_FACE_DISTANCE_SLIDER : Optional[gradio.Slider] = None def render() -> None: global FACE_SELECTOR_MODE_DROPDOWN + global FACE_SELECTOR_ORDER_DROPDOWN + global FACE_SELECTOR_GENDER_DROPDOWN + global FACE_SELECTOR_RACE_DROPDOWN + global FACE_SELECTOR_AGE_RANGE_SLIDER global REFERENCE_FACE_POSITION_GALLERY global REFERENCE_FACE_DISTANCE_SLIDER - reference_face_gallery_args : Dict[str, Any] =\ + reference_face_gallery_options : ComponentOptions =\ { 'label': wording.get('uis.reference_face_gallery'), 'object_fit': 'cover', 'columns': 8, 'allow_preview': False, - 'visible': 'reference' in facefusion.globals.face_selector_mode + 'visible': 'reference' in state_manager.get_item('face_selector_mode') } - if is_image(facefusion.globals.target_path): - reference_frame = read_static_image(facefusion.globals.target_path) - reference_face_gallery_args['value'] = extract_gallery_frames(reference_frame) - if is_video(facefusion.globals.target_path): - reference_frame = get_video_frame(facefusion.globals.target_path, facefusion.globals.reference_frame_number) - reference_face_gallery_args['value'] = extract_gallery_frames(reference_frame) + if is_image(state_manager.get_item('target_path')): + reference_frame = read_static_image(state_manager.get_item('target_path')) + reference_face_gallery_options['value'] = extract_gallery_frames(reference_frame) + if is_video(state_manager.get_item('target_path')): + reference_frame = get_video_frame(state_manager.get_item('target_path'), state_manager.get_item('reference_frame_number')) + reference_face_gallery_options['value'] = extract_gallery_frames(reference_frame) FACE_SELECTOR_MODE_DROPDOWN = gradio.Dropdown( label = wording.get('uis.face_selector_mode_dropdown'), choices = facefusion.choices.face_selector_modes, - value = facefusion.globals.face_selector_mode + value = state_manager.get_item('face_selector_mode') ) - REFERENCE_FACE_POSITION_GALLERY = gradio.Gallery(**reference_face_gallery_args) + REFERENCE_FACE_POSITION_GALLERY = gradio.Gallery(**reference_face_gallery_options) + with gradio.Group(): + with gradio.Row(): + FACE_SELECTOR_ORDER_DROPDOWN = gradio.Dropdown( + label = wording.get('uis.face_selector_order_dropdown'), + choices = facefusion.choices.face_selector_orders, + value = state_manager.get_item('face_selector_order') + ) + FACE_SELECTOR_GENDER_DROPDOWN = gradio.Dropdown( + label = wording.get('uis.face_selector_gender_dropdown'), + choices = [ 'none' ] + facefusion.choices.face_selector_genders, + value = state_manager.get_item('face_selector_gender') or 'none' + ) + FACE_SELECTOR_RACE_DROPDOWN = gradio.Dropdown( + label = wording.get('uis.face_selector_race_dropdown'), + choices = ['none'] + facefusion.choices.face_selector_races, + value = state_manager.get_item('face_selector_race') or 'none' + ) + with gradio.Row(): + face_selector_age_start = state_manager.get_item('face_selector_age_start') or facefusion.choices.face_selector_age_range[0] + face_selector_age_end = state_manager.get_item('face_selector_age_end') or facefusion.choices.face_selector_age_range[-1] + FACE_SELECTOR_AGE_RANGE_SLIDER = RangeSlider( + label = wording.get('uis.face_selector_age_range_slider'), + minimum = facefusion.choices.face_selector_age_range[0], + maximum = facefusion.choices.face_selector_age_range[-1], + value = (face_selector_age_start, face_selector_age_end), + step = calc_int_step(facefusion.choices.face_selector_age_range) + ) REFERENCE_FACE_DISTANCE_SLIDER = gradio.Slider( label = wording.get('uis.reference_face_distance_slider'), - value = facefusion.globals.reference_face_distance, - step = facefusion.choices.reference_face_distance_range[1] - facefusion.choices.reference_face_distance_range[0], + value = state_manager.get_item('reference_face_distance'), + step = calc_float_step(facefusion.choices.reference_face_distance_range), minimum = facefusion.choices.reference_face_distance_range[0], maximum = facefusion.choices.reference_face_distance_range[-1], - visible = 'reference' in facefusion.globals.face_selector_mode + visible = 'reference' in state_manager.get_item('face_selector_mode') ) register_ui_component('face_selector_mode_dropdown', FACE_SELECTOR_MODE_DROPDOWN) + register_ui_component('face_selector_order_dropdown', FACE_SELECTOR_ORDER_DROPDOWN) + register_ui_component('face_selector_gender_dropdown', FACE_SELECTOR_GENDER_DROPDOWN) + register_ui_component('face_selector_race_dropdown', FACE_SELECTOR_RACE_DROPDOWN) + register_ui_component('face_selector_age_range_slider', FACE_SELECTOR_AGE_RANGE_SLIDER) register_ui_component('reference_face_position_gallery', REFERENCE_FACE_POSITION_GALLERY) register_ui_component('reference_face_distance_slider', REFERENCE_FACE_DISTANCE_SLIDER) def listen() -> None: FACE_SELECTOR_MODE_DROPDOWN.change(update_face_selector_mode, inputs = FACE_SELECTOR_MODE_DROPDOWN, outputs = [ REFERENCE_FACE_POSITION_GALLERY, REFERENCE_FACE_DISTANCE_SLIDER ]) + FACE_SELECTOR_ORDER_DROPDOWN.change(update_face_selector_order, inputs = FACE_SELECTOR_ORDER_DROPDOWN, outputs = REFERENCE_FACE_POSITION_GALLERY) + FACE_SELECTOR_GENDER_DROPDOWN.change(update_face_selector_gender, inputs = FACE_SELECTOR_GENDER_DROPDOWN, outputs = REFERENCE_FACE_POSITION_GALLERY) + FACE_SELECTOR_RACE_DROPDOWN.change(update_face_selector_race, inputs = FACE_SELECTOR_RACE_DROPDOWN, outputs = REFERENCE_FACE_POSITION_GALLERY) + FACE_SELECTOR_AGE_RANGE_SLIDER.release(update_face_selector_age_range, inputs = FACE_SELECTOR_AGE_RANGE_SLIDER, outputs = REFERENCE_FACE_POSITION_GALLERY) REFERENCE_FACE_POSITION_GALLERY.select(clear_and_update_reference_face_position) REFERENCE_FACE_DISTANCE_SLIDER.release(update_reference_face_distance, inputs = REFERENCE_FACE_DISTANCE_SLIDER) @@ -69,46 +116,56 @@ def listen() -> None: getattr(ui_component, method)(update_reference_face_position) getattr(ui_component, method)(update_reference_position_gallery, outputs = REFERENCE_FACE_POSITION_GALLERY) - for ui_component in get_ui_components( - [ - 'face_analyser_order_dropdown', - 'face_analyser_age_dropdown', - 'face_analyser_gender_dropdown' - ]): - ui_component.change(update_reference_position_gallery, outputs = REFERENCE_FACE_POSITION_GALLERY) - for ui_component in get_ui_components( [ 'face_detector_model_dropdown', - 'face_detector_size_dropdown' + 'face_detector_size_dropdown', + 'face_detector_angles_checkbox_group' ]): ui_component.change(clear_and_update_reference_position_gallery, outputs = REFERENCE_FACE_POSITION_GALLERY) - for ui_component in get_ui_components( - [ - 'face_detector_score_slider', - 'face_landmarker_score_slider' - ]): - ui_component.release(clear_and_update_reference_position_gallery, outputs=REFERENCE_FACE_POSITION_GALLERY) + face_detector_score_slider = get_ui_component('face_detector_score_slider') + if face_detector_score_slider: + face_detector_score_slider.release(clear_and_update_reference_position_gallery, outputs = REFERENCE_FACE_POSITION_GALLERY) preview_frame_slider = get_ui_component('preview_frame_slider') if preview_frame_slider: - preview_frame_slider.change(update_reference_frame_number, inputs = preview_frame_slider) + preview_frame_slider.release(update_reference_frame_number, inputs = preview_frame_slider) preview_frame_slider.release(update_reference_position_gallery, outputs = REFERENCE_FACE_POSITION_GALLERY) def update_face_selector_mode(face_selector_mode : FaceSelectorMode) -> Tuple[gradio.Gallery, gradio.Slider]: + state_manager.set_item('face_selector_mode', face_selector_mode) if face_selector_mode == 'many': - facefusion.globals.face_selector_mode = face_selector_mode return gradio.Gallery(visible = False), gradio.Slider(visible = False) if face_selector_mode == 'one': - facefusion.globals.face_selector_mode = face_selector_mode return gradio.Gallery(visible = False), gradio.Slider(visible = False) if face_selector_mode == 'reference': - facefusion.globals.face_selector_mode = face_selector_mode return gradio.Gallery(visible = True), gradio.Slider(visible = True) +def update_face_selector_order(face_analyser_order : FaceSelectorOrder) -> gradio.Gallery: + state_manager.set_item('face_selector_order', convert_str_none(face_analyser_order)) + return update_reference_position_gallery() + + +def update_face_selector_gender(face_selector_gender : Gender) -> gradio.Gallery: + state_manager.set_item('face_selector_gender', convert_str_none(face_selector_gender)) + return update_reference_position_gallery() + + +def update_face_selector_race(face_selector_race : Race) -> gradio.Gallery: + state_manager.set_item('face_selector_race', convert_str_none(face_selector_race)) + return update_reference_position_gallery() + + +def update_face_selector_age_range(face_selector_age_range : Tuple[float, float]) -> gradio.Gallery: + face_selector_age_start, face_selector_age_end = face_selector_age_range + state_manager.set_item('face_selector_age_start', int(face_selector_age_start)) + state_manager.set_item('face_selector_age_end', int(face_selector_age_end)) + return update_reference_position_gallery() + + def clear_and_update_reference_face_position(event : gradio.SelectData) -> gradio.Gallery: clear_reference_faces() clear_static_faces() @@ -117,15 +174,15 @@ def clear_and_update_reference_face_position(event : gradio.SelectData) -> gradi def update_reference_face_position(reference_face_position : int = 0) -> None: - facefusion.globals.reference_face_position = reference_face_position + state_manager.set_item('reference_face_position', reference_face_position) def update_reference_face_distance(reference_face_distance : float) -> None: - facefusion.globals.reference_face_distance = reference_face_distance + state_manager.set_item('reference_face_distance', reference_face_distance) def update_reference_frame_number(reference_frame_number : int) -> None: - facefusion.globals.reference_frame_number = reference_frame_number + state_manager.set_item('reference_frame_number', reference_frame_number) def clear_and_update_reference_position_gallery() -> gradio.Gallery: @@ -136,11 +193,11 @@ def clear_and_update_reference_position_gallery() -> gradio.Gallery: def update_reference_position_gallery() -> gradio.Gallery: gallery_vision_frames = [] - if is_image(facefusion.globals.target_path): - temp_vision_frame = read_static_image(facefusion.globals.target_path) + if is_image(state_manager.get_item('target_path')): + temp_vision_frame = read_static_image(state_manager.get_item('target_path')) gallery_vision_frames = extract_gallery_frames(temp_vision_frame) - if is_video(facefusion.globals.target_path): - temp_vision_frame = get_video_frame(facefusion.globals.target_path, facefusion.globals.reference_frame_number) + if is_video(state_manager.get_item('target_path')): + temp_vision_frame = get_video_frame(state_manager.get_item('target_path'), state_manager.get_item('reference_frame_number')) gallery_vision_frames = extract_gallery_frames(temp_vision_frame) if gallery_vision_frames: return gradio.Gallery(value = gallery_vision_frames) @@ -149,7 +206,7 @@ def update_reference_position_gallery() -> gradio.Gallery: def extract_gallery_frames(temp_vision_frame : VisionFrame) -> List[VisionFrame]: gallery_vision_frames = [] - faces = get_many_faces(temp_vision_frame) + faces = sort_and_filter_faces(get_many_faces([ temp_vision_frame ])) for face in faces: start_x, start_y, end_x, end_y = map(int, face.bounding_box) diff --git a/facefusion/uis/components/face_swapper_options.py b/facefusion/uis/components/face_swapper_options.py new file mode 100755 index 00000000..7eb4b713 --- /dev/null +++ b/facefusion/uis/components/face_swapper_options.py @@ -0,0 +1,63 @@ +from typing import List, Optional, Tuple + +import gradio + +from facefusion import state_manager, wording +from facefusion.common_helper import get_first +from facefusion.processors import choices as processors_choices +from facefusion.processors.core import load_processor_module +from facefusion.processors.typing import FaceSwapperModel +from facefusion.uis.core import get_ui_component, register_ui_component + +FACE_SWAPPER_MODEL_DROPDOWN : Optional[gradio.Dropdown] = None +FACE_SWAPPER_PIXEL_BOOST_DROPDOWN : Optional[gradio.Dropdown] = None + + +def render() -> None: + global FACE_SWAPPER_MODEL_DROPDOWN + global FACE_SWAPPER_PIXEL_BOOST_DROPDOWN + + FACE_SWAPPER_MODEL_DROPDOWN = gradio.Dropdown( + label = wording.get('uis.face_swapper_model_dropdown'), + choices = processors_choices.face_swapper_set.keys(), + value = state_manager.get_item('face_swapper_model'), + visible = 'face_swapper' in state_manager.get_item('processors') + ) + FACE_SWAPPER_PIXEL_BOOST_DROPDOWN = gradio.Dropdown( + label = wording.get('uis.face_swapper_pixel_boost_dropdown'), + choices = processors_choices.face_swapper_set.get(state_manager.get_item('face_swapper_model')), + value = state_manager.get_item('face_swapper_pixel_boost'), + visible = 'face_swapper' in state_manager.get_item('processors') + ) + register_ui_component('face_swapper_model_dropdown', FACE_SWAPPER_MODEL_DROPDOWN) + register_ui_component('face_swapper_pixel_boost_dropdown', FACE_SWAPPER_PIXEL_BOOST_DROPDOWN) + + +def listen() -> None: + FACE_SWAPPER_MODEL_DROPDOWN.change(update_face_swapper_model, inputs = FACE_SWAPPER_MODEL_DROPDOWN, outputs = [ FACE_SWAPPER_MODEL_DROPDOWN, FACE_SWAPPER_PIXEL_BOOST_DROPDOWN ]) + FACE_SWAPPER_PIXEL_BOOST_DROPDOWN.change(update_face_swapper_pixel_boost, inputs = FACE_SWAPPER_PIXEL_BOOST_DROPDOWN) + + processors_checkbox_group = get_ui_component('processors_checkbox_group') + if processors_checkbox_group: + processors_checkbox_group.change(remote_update, inputs = processors_checkbox_group, outputs = [ FACE_SWAPPER_MODEL_DROPDOWN, FACE_SWAPPER_PIXEL_BOOST_DROPDOWN ]) + + +def remote_update(processors : List[str]) -> Tuple[gradio.Dropdown, gradio.Dropdown]: + has_face_swapper = 'face_swapper' in processors + return gradio.Dropdown(visible = has_face_swapper), gradio.Dropdown(visible = has_face_swapper) + + +def update_face_swapper_model(face_swapper_model : FaceSwapperModel) -> Tuple[gradio.Dropdown, gradio.Dropdown]: + face_swapper_module = load_processor_module('face_swapper') + face_swapper_module.clear_inference_pool() + state_manager.set_item('face_swapper_model', face_swapper_model) + + if face_swapper_module.pre_check(): + face_swapper_pixel_boost_choices = processors_choices.face_swapper_set.get(state_manager.get_item('face_swapper_model')) + state_manager.set_item('face_swapper_pixel_boost', get_first(face_swapper_pixel_boost_choices)) + return gradio.Dropdown(value = state_manager.get_item('face_swapper_model')), gradio.Dropdown(value = state_manager.get_item('face_swapper_pixel_boost'), choices = face_swapper_pixel_boost_choices) + return gradio.Dropdown(), gradio.Dropdown() + + +def update_face_swapper_pixel_boost(face_swapper_pixel_boost : str) -> None: + state_manager.set_item('face_swapper_pixel_boost', face_swapper_pixel_boost) diff --git a/facefusion/uis/components/frame_colorizer_options.py b/facefusion/uis/components/frame_colorizer_options.py new file mode 100755 index 00000000..f038392b --- /dev/null +++ b/facefusion/uis/components/frame_colorizer_options.py @@ -0,0 +1,77 @@ +from typing import List, Optional, Tuple + +import gradio + +from facefusion import state_manager, wording +from facefusion.common_helper import calc_int_step +from facefusion.processors import choices as processors_choices +from facefusion.processors.core import load_processor_module +from facefusion.processors.typing import FrameColorizerModel +from facefusion.uis.core import get_ui_component, register_ui_component + +FRAME_COLORIZER_MODEL_DROPDOWN : Optional[gradio.Dropdown] = None +FRAME_COLORIZER_BLEND_SLIDER : Optional[gradio.Slider] = None +FRAME_COLORIZER_SIZE_DROPDOWN : Optional[gradio.Dropdown] = None + + +def render() -> None: + global FRAME_COLORIZER_MODEL_DROPDOWN + global FRAME_COLORIZER_BLEND_SLIDER + global FRAME_COLORIZER_SIZE_DROPDOWN + + FRAME_COLORIZER_MODEL_DROPDOWN = gradio.Dropdown( + label = wording.get('uis.frame_colorizer_model_dropdown'), + choices = processors_choices.frame_colorizer_models, + value = state_manager.get_item('frame_colorizer_model'), + visible = 'frame_colorizer' in state_manager.get_item('processors') + ) + FRAME_COLORIZER_BLEND_SLIDER = gradio.Slider( + label = wording.get('uis.frame_colorizer_blend_slider'), + value = state_manager.get_item('frame_colorizer_blend'), + step = calc_int_step(processors_choices.frame_colorizer_blend_range), + minimum = processors_choices.frame_colorizer_blend_range[0], + maximum = processors_choices.frame_colorizer_blend_range[-1], + visible = 'frame_colorizer' in state_manager.get_item('processors') + ) + FRAME_COLORIZER_SIZE_DROPDOWN = gradio.Dropdown( + label = wording.get('uis.frame_colorizer_size_dropdown'), + choices = processors_choices.frame_colorizer_sizes, + value = state_manager.get_item('frame_colorizer_size'), + visible = 'frame_colorizer' in state_manager.get_item('processors') + ) + register_ui_component('frame_colorizer_model_dropdown', FRAME_COLORIZER_MODEL_DROPDOWN) + register_ui_component('frame_colorizer_blend_slider', FRAME_COLORIZER_BLEND_SLIDER) + register_ui_component('frame_colorizer_size_dropdown', FRAME_COLORIZER_SIZE_DROPDOWN) + + +def listen() -> None: + FRAME_COLORIZER_MODEL_DROPDOWN.change(update_frame_colorizer_model, inputs = FRAME_COLORIZER_MODEL_DROPDOWN, outputs = FRAME_COLORIZER_MODEL_DROPDOWN) + FRAME_COLORIZER_BLEND_SLIDER.release(update_frame_colorizer_blend, inputs = FRAME_COLORIZER_BLEND_SLIDER) + FRAME_COLORIZER_SIZE_DROPDOWN.change(update_frame_colorizer_size, inputs = FRAME_COLORIZER_SIZE_DROPDOWN) + + processors_checkbox_group = get_ui_component('processors_checkbox_group') + if processors_checkbox_group: + processors_checkbox_group.change(remote_update, inputs = processors_checkbox_group, outputs = [ FRAME_COLORIZER_MODEL_DROPDOWN, FRAME_COLORIZER_BLEND_SLIDER, FRAME_COLORIZER_SIZE_DROPDOWN ]) + + +def remote_update(processors : List[str]) -> Tuple[gradio.Dropdown, gradio.Slider, gradio.Dropdown]: + has_frame_colorizer = 'frame_colorizer' in processors + return gradio.Dropdown(visible = has_frame_colorizer), gradio.Slider(visible = has_frame_colorizer), gradio.Dropdown(visible = has_frame_colorizer) + + +def update_frame_colorizer_model(frame_colorizer_model : FrameColorizerModel) -> gradio.Dropdown: + frame_colorizer_module = load_processor_module('frame_colorizer') + frame_colorizer_module.clear_inference_pool() + state_manager.set_item('frame_colorizer_model', frame_colorizer_model) + + if frame_colorizer_module.pre_check(): + return gradio.Dropdown(value = state_manager.get_item('frame_colorizer_model')) + return gradio.Dropdown() + + +def update_frame_colorizer_blend(frame_colorizer_blend : float) -> None: + state_manager.set_item('frame_colorizer_blend', int(frame_colorizer_blend)) + + +def update_frame_colorizer_size(frame_colorizer_size : str) -> None: + state_manager.set_item('frame_colorizer_size', frame_colorizer_size) diff --git a/facefusion/uis/components/frame_enhancer_options.py b/facefusion/uis/components/frame_enhancer_options.py new file mode 100755 index 00000000..f8629ef7 --- /dev/null +++ b/facefusion/uis/components/frame_enhancer_options.py @@ -0,0 +1,63 @@ +from typing import List, Optional, Tuple + +import gradio + +from facefusion import state_manager, wording +from facefusion.common_helper import calc_int_step +from facefusion.processors import choices as processors_choices +from facefusion.processors.core import load_processor_module +from facefusion.processors.typing import FrameEnhancerModel +from facefusion.uis.core import get_ui_component, register_ui_component + +FRAME_ENHANCER_MODEL_DROPDOWN : Optional[gradio.Dropdown] = None +FRAME_ENHANCER_BLEND_SLIDER : Optional[gradio.Slider] = None + + +def render() -> None: + global FRAME_ENHANCER_MODEL_DROPDOWN + global FRAME_ENHANCER_BLEND_SLIDER + + FRAME_ENHANCER_MODEL_DROPDOWN = gradio.Dropdown( + label = wording.get('uis.frame_enhancer_model_dropdown'), + choices = processors_choices.frame_enhancer_models, + value = state_manager.get_item('frame_enhancer_model'), + visible = 'frame_enhancer' in state_manager.get_item('processors') + ) + FRAME_ENHANCER_BLEND_SLIDER = gradio.Slider( + label = wording.get('uis.frame_enhancer_blend_slider'), + value = state_manager.get_item('frame_enhancer_blend'), + step = calc_int_step(processors_choices.frame_enhancer_blend_range), + minimum = processors_choices.frame_enhancer_blend_range[0], + maximum = processors_choices.frame_enhancer_blend_range[-1], + visible = 'frame_enhancer' in state_manager.get_item('processors') + ) + register_ui_component('frame_enhancer_model_dropdown', FRAME_ENHANCER_MODEL_DROPDOWN) + register_ui_component('frame_enhancer_blend_slider', FRAME_ENHANCER_BLEND_SLIDER) + + +def listen() -> None: + FRAME_ENHANCER_MODEL_DROPDOWN.change(update_frame_enhancer_model, inputs = FRAME_ENHANCER_MODEL_DROPDOWN, outputs = FRAME_ENHANCER_MODEL_DROPDOWN) + FRAME_ENHANCER_BLEND_SLIDER.release(update_frame_enhancer_blend, inputs = FRAME_ENHANCER_BLEND_SLIDER) + + processors_checkbox_group = get_ui_component('processors_checkbox_group') + if processors_checkbox_group: + processors_checkbox_group.change(remote_update, inputs = processors_checkbox_group, outputs = [ FRAME_ENHANCER_MODEL_DROPDOWN, FRAME_ENHANCER_BLEND_SLIDER ]) + + +def remote_update(processors : List[str]) -> Tuple[gradio.Dropdown, gradio.Slider]: + has_frame_enhancer = 'frame_enhancer' in processors + return gradio.Dropdown(visible = has_frame_enhancer), gradio.Slider(visible = has_frame_enhancer) + + +def update_frame_enhancer_model(frame_enhancer_model : FrameEnhancerModel) -> gradio.Dropdown: + frame_enhancer_module = load_processor_module('frame_enhancer') + frame_enhancer_module.clear_inference_pool() + state_manager.set_item('frame_enhancer_model', frame_enhancer_model) + + if frame_enhancer_module.pre_check(): + return gradio.Dropdown(value = state_manager.get_item('frame_enhancer_model')) + return gradio.Dropdown() + + +def update_frame_enhancer_blend(frame_enhancer_blend : float) -> None: + state_manager.set_item('frame_enhancer_blend', int(frame_enhancer_blend)) diff --git a/facefusion/uis/components/frame_processors.py b/facefusion/uis/components/frame_processors.py deleted file mode 100644 index 4195c63b..00000000 --- a/facefusion/uis/components/frame_processors.py +++ /dev/null @@ -1,40 +0,0 @@ -from typing import List, Optional -import gradio - -import facefusion.globals -from facefusion import wording -from facefusion.processors.frame.core import load_frame_processor_module, clear_frame_processors_modules -from facefusion.filesystem import list_directory -from facefusion.uis.core import register_ui_component - -FRAME_PROCESSORS_CHECKBOX_GROUP : Optional[gradio.CheckboxGroup] = None - - -def render() -> None: - global FRAME_PROCESSORS_CHECKBOX_GROUP - - FRAME_PROCESSORS_CHECKBOX_GROUP = gradio.CheckboxGroup( - label = wording.get('uis.frame_processors_checkbox_group'), - choices = sort_frame_processors(facefusion.globals.frame_processors), - value = facefusion.globals.frame_processors - ) - register_ui_component('frame_processors_checkbox_group', FRAME_PROCESSORS_CHECKBOX_GROUP) - - -def listen() -> None: - FRAME_PROCESSORS_CHECKBOX_GROUP.change(update_frame_processors, inputs = FRAME_PROCESSORS_CHECKBOX_GROUP, outputs = FRAME_PROCESSORS_CHECKBOX_GROUP) - - -def update_frame_processors(frame_processors : List[str]) -> gradio.CheckboxGroup: - facefusion.globals.frame_processors = frame_processors - clear_frame_processors_modules() - for frame_processor in frame_processors: - frame_processor_module = load_frame_processor_module(frame_processor) - if not frame_processor_module.pre_check(): - return gradio.CheckboxGroup() - return gradio.CheckboxGroup(value = facefusion.globals.frame_processors, choices = sort_frame_processors(facefusion.globals.frame_processors)) - - -def sort_frame_processors(frame_processors : List[str]) -> list[str]: - available_frame_processors = list_directory('facefusion/processors/frame/modules') - return sorted(available_frame_processors, key = lambda frame_processor : frame_processors.index(frame_processor) if frame_processor in frame_processors else len(frame_processors)) diff --git a/facefusion/uis/components/frame_processors_options.py b/facefusion/uis/components/frame_processors_options.py deleted file mode 100755 index a705b53b..00000000 --- a/facefusion/uis/components/frame_processors_options.py +++ /dev/null @@ -1,216 +0,0 @@ -from typing import List, Optional, Tuple -import gradio - -import facefusion.globals -from facefusion import face_analyser, wording -from facefusion.processors.frame.core import load_frame_processor_module -from facefusion.processors.frame import globals as frame_processors_globals, choices as frame_processors_choices -from facefusion.processors.frame.typings import FaceDebuggerItem, FaceEnhancerModel, FaceSwapperModel, FrameColorizerModel, FrameEnhancerModel, LipSyncerModel -from facefusion.uis.core import get_ui_component, register_ui_component - -FACE_DEBUGGER_ITEMS_CHECKBOX_GROUP : Optional[gradio.CheckboxGroup] = None -FACE_ENHANCER_MODEL_DROPDOWN : Optional[gradio.Dropdown] = None -FACE_ENHANCER_BLEND_SLIDER : Optional[gradio.Slider] = None -FACE_SWAPPER_MODEL_DROPDOWN : Optional[gradio.Dropdown] = None -FRAME_COLORIZER_MODEL_DROPDOWN : Optional[gradio.Dropdown] = None -FRAME_COLORIZER_BLEND_SLIDER : Optional[gradio.Slider] = None -FRAME_COLORIZER_SIZE_DROPDOWN : Optional[gradio.Dropdown] = None -FRAME_ENHANCER_MODEL_DROPDOWN : Optional[gradio.Dropdown] = None -FRAME_ENHANCER_BLEND_SLIDER : Optional[gradio.Slider] = None -LIP_SYNCER_MODEL_DROPDOWN : Optional[gradio.Dropdown] = None - - -def render() -> None: - global FACE_DEBUGGER_ITEMS_CHECKBOX_GROUP - global FACE_ENHANCER_MODEL_DROPDOWN - global FACE_ENHANCER_BLEND_SLIDER - global FACE_SWAPPER_MODEL_DROPDOWN - global FRAME_COLORIZER_MODEL_DROPDOWN - global FRAME_COLORIZER_BLEND_SLIDER - global FRAME_COLORIZER_SIZE_DROPDOWN - global FRAME_ENHANCER_MODEL_DROPDOWN - global FRAME_ENHANCER_BLEND_SLIDER - global LIP_SYNCER_MODEL_DROPDOWN - - FACE_DEBUGGER_ITEMS_CHECKBOX_GROUP = gradio.CheckboxGroup( - label = wording.get('uis.face_debugger_items_checkbox_group'), - choices = frame_processors_choices.face_debugger_items, - value = frame_processors_globals.face_debugger_items, - visible = 'face_debugger' in facefusion.globals.frame_processors - ) - FACE_ENHANCER_MODEL_DROPDOWN = gradio.Dropdown( - label = wording.get('uis.face_enhancer_model_dropdown'), - choices = frame_processors_choices.face_enhancer_models, - value = frame_processors_globals.face_enhancer_model, - visible = 'face_enhancer' in facefusion.globals.frame_processors - ) - FACE_ENHANCER_BLEND_SLIDER = gradio.Slider( - label = wording.get('uis.face_enhancer_blend_slider'), - value = frame_processors_globals.face_enhancer_blend, - step = frame_processors_choices.face_enhancer_blend_range[1] - frame_processors_choices.face_enhancer_blend_range[0], - minimum = frame_processors_choices.face_enhancer_blend_range[0], - maximum = frame_processors_choices.face_enhancer_blend_range[-1], - visible = 'face_enhancer' in facefusion.globals.frame_processors - ) - FACE_SWAPPER_MODEL_DROPDOWN = gradio.Dropdown( - label = wording.get('uis.face_swapper_model_dropdown'), - choices = frame_processors_choices.face_swapper_models, - value = frame_processors_globals.face_swapper_model, - visible = 'face_swapper' in facefusion.globals.frame_processors - ) - FRAME_COLORIZER_MODEL_DROPDOWN = gradio.Dropdown( - label = wording.get('uis.frame_colorizer_model_dropdown'), - choices = frame_processors_choices.frame_colorizer_models, - value = frame_processors_globals.frame_colorizer_model, - visible = 'frame_colorizer' in facefusion.globals.frame_processors - ) - FRAME_COLORIZER_BLEND_SLIDER = gradio.Slider( - label = wording.get('uis.frame_colorizer_blend_slider'), - value = frame_processors_globals.frame_colorizer_blend, - step = frame_processors_choices.frame_colorizer_blend_range[1] - frame_processors_choices.frame_colorizer_blend_range[0], - minimum = frame_processors_choices.frame_colorizer_blend_range[0], - maximum = frame_processors_choices.frame_colorizer_blend_range[-1], - visible = 'frame_colorizer' in facefusion.globals.frame_processors - ) - FRAME_COLORIZER_SIZE_DROPDOWN = gradio.Dropdown( - label = wording.get('uis.frame_colorizer_size_dropdown'), - choices = frame_processors_choices.frame_colorizer_sizes, - value = frame_processors_globals.frame_colorizer_size, - visible = 'frame_colorizer' in facefusion.globals.frame_processors - ) - FRAME_ENHANCER_MODEL_DROPDOWN = gradio.Dropdown( - label = wording.get('uis.frame_enhancer_model_dropdown'), - choices = frame_processors_choices.frame_enhancer_models, - value = frame_processors_globals.frame_enhancer_model, - visible = 'frame_enhancer' in facefusion.globals.frame_processors - ) - FRAME_ENHANCER_BLEND_SLIDER = gradio.Slider( - label = wording.get('uis.frame_enhancer_blend_slider'), - value = frame_processors_globals.frame_enhancer_blend, - step = frame_processors_choices.frame_enhancer_blend_range[1] - frame_processors_choices.frame_enhancer_blend_range[0], - minimum = frame_processors_choices.frame_enhancer_blend_range[0], - maximum = frame_processors_choices.frame_enhancer_blend_range[-1], - visible = 'frame_enhancer' in facefusion.globals.frame_processors - ) - LIP_SYNCER_MODEL_DROPDOWN = gradio.Dropdown( - label = wording.get('uis.lip_syncer_model_dropdown'), - choices = frame_processors_choices.lip_syncer_models, - value = frame_processors_globals.lip_syncer_model, - visible = 'lip_syncer' in facefusion.globals.frame_processors - ) - register_ui_component('face_debugger_items_checkbox_group', FACE_DEBUGGER_ITEMS_CHECKBOX_GROUP) - register_ui_component('face_enhancer_model_dropdown', FACE_ENHANCER_MODEL_DROPDOWN) - register_ui_component('face_enhancer_blend_slider', FACE_ENHANCER_BLEND_SLIDER) - register_ui_component('face_swapper_model_dropdown', FACE_SWAPPER_MODEL_DROPDOWN) - register_ui_component('frame_colorizer_model_dropdown', FRAME_COLORIZER_MODEL_DROPDOWN) - register_ui_component('frame_colorizer_blend_slider', FRAME_COLORIZER_BLEND_SLIDER) - register_ui_component('frame_colorizer_size_dropdown', FRAME_COLORIZER_SIZE_DROPDOWN) - register_ui_component('frame_enhancer_model_dropdown', FRAME_ENHANCER_MODEL_DROPDOWN) - register_ui_component('frame_enhancer_blend_slider', FRAME_ENHANCER_BLEND_SLIDER) - register_ui_component('lip_syncer_model_dropdown', LIP_SYNCER_MODEL_DROPDOWN) - - -def listen() -> None: - FACE_DEBUGGER_ITEMS_CHECKBOX_GROUP.change(update_face_debugger_items, inputs = FACE_DEBUGGER_ITEMS_CHECKBOX_GROUP) - FACE_ENHANCER_MODEL_DROPDOWN.change(update_face_enhancer_model, inputs = FACE_ENHANCER_MODEL_DROPDOWN, outputs = FACE_ENHANCER_MODEL_DROPDOWN) - FACE_ENHANCER_BLEND_SLIDER.release(update_face_enhancer_blend, inputs = FACE_ENHANCER_BLEND_SLIDER) - FACE_SWAPPER_MODEL_DROPDOWN.change(update_face_swapper_model, inputs = FACE_SWAPPER_MODEL_DROPDOWN, outputs = FACE_SWAPPER_MODEL_DROPDOWN) - FRAME_COLORIZER_MODEL_DROPDOWN.change(update_frame_colorizer_model, inputs = FRAME_COLORIZER_MODEL_DROPDOWN, outputs = FRAME_COLORIZER_MODEL_DROPDOWN) - FRAME_COLORIZER_BLEND_SLIDER.release(update_frame_colorizer_blend, inputs = FRAME_COLORIZER_BLEND_SLIDER) - FRAME_COLORIZER_SIZE_DROPDOWN.change(update_frame_colorizer_size, inputs = FRAME_COLORIZER_SIZE_DROPDOWN, outputs = FRAME_COLORIZER_SIZE_DROPDOWN) - FRAME_ENHANCER_MODEL_DROPDOWN.change(update_frame_enhancer_model, inputs = FRAME_ENHANCER_MODEL_DROPDOWN, outputs = FRAME_ENHANCER_MODEL_DROPDOWN) - FRAME_ENHANCER_BLEND_SLIDER.release(update_frame_enhancer_blend, inputs = FRAME_ENHANCER_BLEND_SLIDER) - LIP_SYNCER_MODEL_DROPDOWN.change(update_lip_syncer_model, inputs = LIP_SYNCER_MODEL_DROPDOWN, outputs = LIP_SYNCER_MODEL_DROPDOWN) - frame_processors_checkbox_group = get_ui_component('frame_processors_checkbox_group') - if frame_processors_checkbox_group: - frame_processors_checkbox_group.change(update_frame_processors, inputs = frame_processors_checkbox_group, outputs = [ FACE_DEBUGGER_ITEMS_CHECKBOX_GROUP, FACE_ENHANCER_MODEL_DROPDOWN, FACE_ENHANCER_BLEND_SLIDER, FACE_SWAPPER_MODEL_DROPDOWN, FRAME_COLORIZER_MODEL_DROPDOWN, FRAME_COLORIZER_BLEND_SLIDER, FRAME_COLORIZER_SIZE_DROPDOWN, FRAME_ENHANCER_MODEL_DROPDOWN, FRAME_ENHANCER_BLEND_SLIDER, LIP_SYNCER_MODEL_DROPDOWN ]) - - -def update_frame_processors(frame_processors : List[str]) -> Tuple[gradio.CheckboxGroup, gradio.Dropdown, gradio.Slider, gradio.Dropdown, gradio.Dropdown, gradio.Slider, gradio.Dropdown, gradio.Dropdown, gradio.Slider, gradio.Dropdown]: - has_face_debugger = 'face_debugger' in frame_processors - has_face_enhancer = 'face_enhancer' in frame_processors - has_face_swapper = 'face_swapper' in frame_processors - has_frame_colorizer = 'frame_colorizer' in frame_processors - has_frame_enhancer = 'frame_enhancer' in frame_processors - has_lip_syncer = 'lip_syncer' in frame_processors - return gradio.CheckboxGroup(visible = has_face_debugger), gradio.Dropdown(visible = has_face_enhancer), gradio.Slider(visible = has_face_enhancer), gradio.Dropdown(visible = has_face_swapper), gradio.Dropdown(visible = has_frame_colorizer), gradio.Slider(visible = has_frame_colorizer), gradio.Dropdown(visible = has_frame_colorizer), gradio.Dropdown(visible = has_frame_enhancer), gradio.Slider(visible = has_frame_enhancer), gradio.Dropdown(visible = has_lip_syncer) - - -def update_face_debugger_items(face_debugger_items : List[FaceDebuggerItem]) -> None: - frame_processors_globals.face_debugger_items = face_debugger_items - - -def update_face_enhancer_model(face_enhancer_model : FaceEnhancerModel) -> gradio.Dropdown: - frame_processors_globals.face_enhancer_model = face_enhancer_model - face_enhancer_module = load_frame_processor_module('face_enhancer') - face_enhancer_module.clear_frame_processor() - face_enhancer_module.set_options('model', face_enhancer_module.MODELS[face_enhancer_model]) - if face_enhancer_module.pre_check(): - return gradio.Dropdown(value = frame_processors_globals.face_enhancer_model) - return gradio.Dropdown() - - -def update_face_enhancer_blend(face_enhancer_blend : int) -> None: - frame_processors_globals.face_enhancer_blend = face_enhancer_blend - - -def update_face_swapper_model(face_swapper_model : FaceSwapperModel) -> gradio.Dropdown: - frame_processors_globals.face_swapper_model = face_swapper_model - if face_swapper_model == 'blendswap_256': - facefusion.globals.face_recognizer_model = 'arcface_blendswap' - if face_swapper_model == 'inswapper_128' or face_swapper_model == 'inswapper_128_fp16': - facefusion.globals.face_recognizer_model = 'arcface_inswapper' - if face_swapper_model == 'simswap_256' or face_swapper_model == 'simswap_512_unofficial': - facefusion.globals.face_recognizer_model = 'arcface_simswap' - if face_swapper_model == 'uniface_256': - facefusion.globals.face_recognizer_model = 'arcface_uniface' - face_swapper_module = load_frame_processor_module('face_swapper') - face_swapper_module.clear_model_initializer() - face_swapper_module.clear_frame_processor() - face_swapper_module.set_options('model', face_swapper_module.MODELS[face_swapper_model]) - if face_analyser.pre_check() and face_swapper_module.pre_check(): - return gradio.Dropdown(value = frame_processors_globals.face_swapper_model) - return gradio.Dropdown() - - -def update_frame_colorizer_model(frame_colorizer_model : FrameColorizerModel) -> gradio.Dropdown: - frame_processors_globals.frame_colorizer_model = frame_colorizer_model - frame_colorizer_module = load_frame_processor_module('frame_colorizer') - frame_colorizer_module.clear_frame_processor() - frame_colorizer_module.set_options('model', frame_colorizer_module.MODELS[frame_colorizer_model]) - if frame_colorizer_module.pre_check(): - return gradio.Dropdown(value = frame_processors_globals.frame_colorizer_model) - return gradio.Dropdown() - - -def update_frame_colorizer_blend(frame_colorizer_blend : int) -> None: - frame_processors_globals.frame_colorizer_blend = frame_colorizer_blend - - -def update_frame_colorizer_size(frame_colorizer_size : str) -> gradio.Dropdown: - frame_processors_globals.frame_colorizer_size = frame_colorizer_size - return gradio.Dropdown(value = frame_processors_globals.frame_colorizer_size) - - -def update_frame_enhancer_model(frame_enhancer_model : FrameEnhancerModel) -> gradio.Dropdown: - frame_processors_globals.frame_enhancer_model = frame_enhancer_model - frame_enhancer_module = load_frame_processor_module('frame_enhancer') - frame_enhancer_module.clear_frame_processor() - frame_enhancer_module.set_options('model', frame_enhancer_module.MODELS[frame_enhancer_model]) - if frame_enhancer_module.pre_check(): - return gradio.Dropdown(value = frame_processors_globals.frame_enhancer_model) - return gradio.Dropdown() - - -def update_frame_enhancer_blend(frame_enhancer_blend : int) -> None: - frame_processors_globals.frame_enhancer_blend = frame_enhancer_blend - - -def update_lip_syncer_model(lip_syncer_model : LipSyncerModel) -> gradio.Dropdown: - frame_processors_globals.lip_syncer_model = lip_syncer_model - lip_syncer_module = load_frame_processor_module('lip_syncer') - lip_syncer_module.clear_frame_processor() - lip_syncer_module.set_options('model', lip_syncer_module.MODELS[lip_syncer_model]) - if lip_syncer_module.pre_check(): - return gradio.Dropdown(value = frame_processors_globals.lip_syncer_model) - return gradio.Dropdown() diff --git a/facefusion/uis/components/instant_runner.py b/facefusion/uis/components/instant_runner.py new file mode 100644 index 00000000..1d3ab136 --- /dev/null +++ b/facefusion/uis/components/instant_runner.py @@ -0,0 +1,110 @@ +from time import sleep +from typing import Optional, Tuple + +import gradio + +from facefusion import process_manager, state_manager, wording +from facefusion.args import collect_step_args +from facefusion.core import process_step +from facefusion.filesystem import is_directory, is_image, is_video +from facefusion.jobs import job_helper, job_manager, job_runner, job_store +from facefusion.temp_helper import clear_temp_directory +from facefusion.typing import Args, UiWorkflow +from facefusion.uis.core import get_ui_component +from facefusion.uis.ui_helper import suggest_output_path + +INSTANT_RUNNER_WRAPPER : Optional[gradio.Row] = None +INSTANT_RUNNER_START_BUTTON : Optional[gradio.Button] = None +INSTANT_RUNNER_STOP_BUTTON : Optional[gradio.Button] = None +INSTANT_RUNNER_CLEAR_BUTTON : Optional[gradio.Button] = None + + +def render() -> None: + global INSTANT_RUNNER_WRAPPER + global INSTANT_RUNNER_START_BUTTON + global INSTANT_RUNNER_STOP_BUTTON + global INSTANT_RUNNER_CLEAR_BUTTON + + if job_manager.init_jobs(state_manager.get_item('jobs_path')): + is_instant_runner = state_manager.get_item('ui_workflow') == 'instant_runner' + + with gradio.Row(visible = is_instant_runner) as INSTANT_RUNNER_WRAPPER: + INSTANT_RUNNER_START_BUTTON = gradio.Button( + value = wording.get('uis.start_button'), + variant = 'primary', + size = 'sm' + ) + INSTANT_RUNNER_STOP_BUTTON = gradio.Button( + value = wording.get('uis.stop_button'), + variant = 'primary', + size = 'sm', + visible = False + ) + INSTANT_RUNNER_CLEAR_BUTTON = gradio.Button( + value = wording.get('uis.clear_button'), + size = 'sm' + ) + + +def listen() -> None: + output_image = get_ui_component('output_image') + output_video = get_ui_component('output_video') + ui_workflow_dropdown = get_ui_component('ui_workflow_dropdown') + + if output_image and output_video: + INSTANT_RUNNER_START_BUTTON.click(start, outputs = [ INSTANT_RUNNER_START_BUTTON, INSTANT_RUNNER_STOP_BUTTON ]) + INSTANT_RUNNER_START_BUTTON.click(run, outputs = [ INSTANT_RUNNER_START_BUTTON, INSTANT_RUNNER_STOP_BUTTON, output_image, output_video ]) + INSTANT_RUNNER_STOP_BUTTON.click(stop, outputs = [ INSTANT_RUNNER_START_BUTTON, INSTANT_RUNNER_STOP_BUTTON ]) + INSTANT_RUNNER_CLEAR_BUTTON.click(clear, outputs = [ output_image, output_video ]) + if ui_workflow_dropdown: + ui_workflow_dropdown.change(remote_update, inputs = ui_workflow_dropdown, outputs = INSTANT_RUNNER_WRAPPER) + + +def remote_update(ui_workflow : UiWorkflow) -> gradio.Row: + is_instant_runner = ui_workflow == 'instant_runner' + + return gradio.Row(visible = is_instant_runner) + + +def start() -> Tuple[gradio.Button, gradio.Button]: + while not process_manager.is_processing(): + sleep(0.5) + return gradio.Button(visible = False), gradio.Button(visible = True) + + +def run() -> Tuple[gradio.Button, gradio.Button, gradio.Image, gradio.Video]: + step_args = collect_step_args() + output_path = step_args.get('output_path') + + if is_directory(step_args.get('output_path')): + step_args['output_path'] = suggest_output_path(step_args.get('output_path'), state_manager.get_item('target_path')) + if job_manager.init_jobs(state_manager.get_item('jobs_path')): + create_and_run_job(step_args) + state_manager.set_item('output_path', output_path) + if is_image(step_args.get('output_path')): + return gradio.Button(visible = True), gradio.Button(visible = False), gradio.Image(value = step_args.get('output_path'), visible = True), gradio.Video(value = None, visible = False) + if is_video(step_args.get('output_path')): + return gradio.Button(visible = True), gradio.Button(visible = False), gradio.Image(value = None, visible = False), gradio.Video(value = step_args.get('output_path'), visible = True) + return gradio.Button(visible = True), gradio.Button(visible = False), gradio.Image(value = None), gradio.Video(value = None) + + +def create_and_run_job(step_args : Args) -> bool: + job_id = job_helper.suggest_job_id('ui') + + for key in job_store.get_job_keys(): + state_manager.sync_item(key) #type:ignore + + return job_manager.create_job(job_id) and job_manager.add_step(job_id, step_args) and job_manager.submit_job(job_id) and job_runner.run_job(job_id, process_step) + + +def stop() -> Tuple[gradio.Button, gradio.Button]: + process_manager.stop() + return gradio.Button(visible = True), gradio.Button(visible = False) + + +def clear() -> Tuple[gradio.Image, gradio.Video]: + while process_manager.is_processing(): + sleep(0.5) + if state_manager.get_item('target_path'): + clear_temp_directory(state_manager.get_item('target_path')) + return gradio.Image(value = None), gradio.Video(value = None) diff --git a/facefusion/uis/components/job_list.py b/facefusion/uis/components/job_list.py new file mode 100644 index 00000000..ae808881 --- /dev/null +++ b/facefusion/uis/components/job_list.py @@ -0,0 +1,50 @@ +from typing import List, Optional + +import gradio + +import facefusion.choices +from facefusion import state_manager, wording +from facefusion.common_helper import get_first +from facefusion.jobs import job_list, job_manager +from facefusion.typing import JobStatus +from facefusion.uis.core import get_ui_component + +JOB_LIST_JOBS_DATAFRAME : Optional[gradio.Dataframe] = None +JOB_LIST_REFRESH_BUTTON : Optional[gradio.Button] = None + + +def render() -> None: + global JOB_LIST_JOBS_DATAFRAME + global JOB_LIST_REFRESH_BUTTON + + if job_manager.init_jobs(state_manager.get_item('jobs_path')): + job_status = get_first(facefusion.choices.job_statuses) + job_headers, job_contents = job_list.compose_job_list(job_status) + + JOB_LIST_JOBS_DATAFRAME = gradio.Dataframe( + headers = job_headers, + value = job_contents, + datatype = [ 'str', 'number', 'date', 'date', 'str' ], + show_label = False + ) + JOB_LIST_REFRESH_BUTTON = gradio.Button( + value = wording.get('uis.refresh_button'), + variant = 'primary', + size = 'sm' + ) + + +def listen() -> None: + job_list_job_status_checkbox_group = get_ui_component('job_list_job_status_checkbox_group') + if job_list_job_status_checkbox_group: + job_list_job_status_checkbox_group.change(update_job_dataframe, inputs = job_list_job_status_checkbox_group, outputs = JOB_LIST_JOBS_DATAFRAME) + JOB_LIST_REFRESH_BUTTON.click(update_job_dataframe, inputs = job_list_job_status_checkbox_group, outputs = JOB_LIST_JOBS_DATAFRAME) + + +def update_job_dataframe(job_statuses : List[JobStatus]) -> gradio.Dataframe: + all_job_contents = [] + + for job_status in job_statuses: + _, job_contents = job_list.compose_job_list(job_status) + all_job_contents.extend(job_contents) + return gradio.Dataframe(value = all_job_contents) diff --git a/facefusion/uis/components/job_list_options.py b/facefusion/uis/components/job_list_options.py new file mode 100644 index 00000000..87636267 --- /dev/null +++ b/facefusion/uis/components/job_list_options.py @@ -0,0 +1,35 @@ +from typing import List, Optional + +import gradio + +import facefusion.choices +from facefusion import state_manager, wording +from facefusion.common_helper import get_first +from facefusion.jobs import job_manager +from facefusion.typing import JobStatus +from facefusion.uis.core import register_ui_component + +JOB_LIST_JOB_STATUS_CHECKBOX_GROUP : Optional[gradio.CheckboxGroup] = None + + +def render() -> None: + global JOB_LIST_JOB_STATUS_CHECKBOX_GROUP + + if job_manager.init_jobs(state_manager.get_item('jobs_path')): + job_status = get_first(facefusion.choices.job_statuses) + + JOB_LIST_JOB_STATUS_CHECKBOX_GROUP = gradio.CheckboxGroup( + label = wording.get('uis.job_list_status_checkbox_group'), + choices = facefusion.choices.job_statuses, + value = job_status + ) + register_ui_component('job_list_job_status_checkbox_group', JOB_LIST_JOB_STATUS_CHECKBOX_GROUP) + + +def listen() -> None: + JOB_LIST_JOB_STATUS_CHECKBOX_GROUP.change(update_job_status_checkbox_group, inputs = JOB_LIST_JOB_STATUS_CHECKBOX_GROUP, outputs = JOB_LIST_JOB_STATUS_CHECKBOX_GROUP) + + +def update_job_status_checkbox_group(job_statuses : List[JobStatus]) -> gradio.CheckboxGroup: + job_statuses = job_statuses or facefusion.choices.job_statuses + return gradio.CheckboxGroup(value = job_statuses) diff --git a/facefusion/uis/components/job_manager.py b/facefusion/uis/components/job_manager.py new file mode 100644 index 00000000..893e433a --- /dev/null +++ b/facefusion/uis/components/job_manager.py @@ -0,0 +1,184 @@ +from typing import List, Optional, Tuple + +import gradio + +from facefusion import logger, state_manager, wording +from facefusion.args import collect_step_args +from facefusion.common_helper import get_first, get_last +from facefusion.filesystem import is_directory +from facefusion.jobs import job_manager +from facefusion.typing import UiWorkflow +from facefusion.uis import choices as uis_choices +from facefusion.uis.core import get_ui_component +from facefusion.uis.typing import JobManagerAction +from facefusion.uis.ui_helper import convert_int_none, convert_str_none, suggest_output_path + +JOB_MANAGER_WRAPPER : Optional[gradio.Column] = None +JOB_MANAGER_JOB_ACTION_DROPDOWN : Optional[gradio.Dropdown] = None +JOB_MANAGER_JOB_ID_TEXTBOX : Optional[gradio.Textbox] = None +JOB_MANAGER_JOB_ID_DROPDOWN : Optional[gradio.Dropdown] = None +JOB_MANAGER_STEP_INDEX_DROPDOWN : Optional[gradio.Dropdown] = None +JOB_MANAGER_APPLY_BUTTON : Optional[gradio.Button] = None + + +def render() -> None: + global JOB_MANAGER_WRAPPER + global JOB_MANAGER_JOB_ACTION_DROPDOWN + global JOB_MANAGER_JOB_ID_TEXTBOX + global JOB_MANAGER_JOB_ID_DROPDOWN + global JOB_MANAGER_STEP_INDEX_DROPDOWN + global JOB_MANAGER_APPLY_BUTTON + + if job_manager.init_jobs(state_manager.get_item('jobs_path')): + is_job_manager = state_manager.get_item('ui_workflow') == 'job_manager' + drafted_job_ids = job_manager.find_job_ids('drafted') or [ 'none' ] + + with gradio.Column(visible = is_job_manager) as JOB_MANAGER_WRAPPER: + JOB_MANAGER_JOB_ACTION_DROPDOWN = gradio.Dropdown( + label = wording.get('uis.job_manager_job_action_dropdown'), + choices = uis_choices.job_manager_actions, + value = get_first(uis_choices.job_manager_actions) + ) + JOB_MANAGER_JOB_ID_TEXTBOX = gradio.Textbox( + label = wording.get('uis.job_manager_job_id_dropdown'), + max_lines = 1, + interactive = True + ) + JOB_MANAGER_JOB_ID_DROPDOWN = gradio.Dropdown( + label = wording.get('uis.job_manager_job_id_dropdown'), + choices = drafted_job_ids, + value = get_last(drafted_job_ids), + interactive = True, + visible = False + ) + JOB_MANAGER_STEP_INDEX_DROPDOWN = gradio.Dropdown( + label = wording.get('uis.job_manager_step_index_dropdown'), + choices = [ 'none' ], + value = 'none', + interactive = True, + visible = False + ) + JOB_MANAGER_APPLY_BUTTON = gradio.Button( + value = wording.get('uis.apply_button'), + variant = 'primary', + size = 'sm' + ) + + +def listen() -> None: + JOB_MANAGER_JOB_ACTION_DROPDOWN.change(update, inputs = [ JOB_MANAGER_JOB_ACTION_DROPDOWN, JOB_MANAGER_JOB_ID_DROPDOWN ], outputs = [ JOB_MANAGER_JOB_ID_TEXTBOX, JOB_MANAGER_JOB_ID_DROPDOWN, JOB_MANAGER_STEP_INDEX_DROPDOWN ]) + JOB_MANAGER_JOB_ID_DROPDOWN.change(update_step_index, inputs = JOB_MANAGER_JOB_ID_DROPDOWN, outputs = JOB_MANAGER_STEP_INDEX_DROPDOWN) + JOB_MANAGER_APPLY_BUTTON.click(apply, inputs = [ JOB_MANAGER_JOB_ACTION_DROPDOWN, JOB_MANAGER_JOB_ID_TEXTBOX, JOB_MANAGER_JOB_ID_DROPDOWN, JOB_MANAGER_STEP_INDEX_DROPDOWN ], outputs = [ JOB_MANAGER_JOB_ACTION_DROPDOWN, JOB_MANAGER_JOB_ID_TEXTBOX, JOB_MANAGER_JOB_ID_DROPDOWN, JOB_MANAGER_STEP_INDEX_DROPDOWN ]) + + ui_workflow_dropdown = get_ui_component('ui_workflow_dropdown') + if ui_workflow_dropdown: + ui_workflow_dropdown.change(remote_update, inputs = ui_workflow_dropdown, outputs = [ JOB_MANAGER_WRAPPER, JOB_MANAGER_JOB_ACTION_DROPDOWN, JOB_MANAGER_JOB_ID_TEXTBOX, JOB_MANAGER_JOB_ID_DROPDOWN, JOB_MANAGER_STEP_INDEX_DROPDOWN ]) + + +def remote_update(ui_workflow : UiWorkflow) -> Tuple[gradio.Row, gradio.Dropdown, gradio.Textbox, gradio.Dropdown, gradio.Dropdown]: + is_job_manager = ui_workflow == 'job_manager' + return gradio.Row(visible = is_job_manager), gradio.Dropdown(value = get_first(uis_choices.job_manager_actions)), gradio.Textbox(value = None, visible = True), gradio.Dropdown(visible = False), gradio.Dropdown(visible = False) + + +def apply(job_action : JobManagerAction, created_job_id : str, selected_job_id : str, selected_step_index : int) -> Tuple[gradio.Dropdown, gradio.Textbox, gradio.Dropdown, gradio.Dropdown]: + created_job_id = convert_str_none(created_job_id) + selected_job_id = convert_str_none(selected_job_id) + selected_step_index = convert_int_none(selected_step_index) + step_args = collect_step_args() + output_path = step_args.get('output_path') + + if is_directory(step_args.get('output_path')): + step_args['output_path'] = suggest_output_path(step_args.get('output_path'), state_manager.get_item('target_path')) + if job_action == 'job-create': + if created_job_id and job_manager.create_job(created_job_id): + updated_job_ids = job_manager.find_job_ids('drafted') or [ 'none' ] + + logger.info(wording.get('job_created').format(job_id = created_job_id), __name__) + return gradio.Dropdown(value = 'job-add-step'), gradio.Textbox(visible = False), gradio.Dropdown(value = created_job_id, choices = updated_job_ids, visible = True), gradio.Dropdown() + else: + logger.error(wording.get('job_not_created').format(job_id = created_job_id), __name__) + if job_action == 'job-submit': + if selected_job_id and job_manager.submit_job(selected_job_id): + updated_job_ids = job_manager.find_job_ids('drafted') or [ 'none' ] + + logger.info(wording.get('job_submitted').format(job_id = selected_job_id), __name__) + return gradio.Dropdown(), gradio.Textbox(), gradio.Dropdown(value = get_last(updated_job_ids), choices = updated_job_ids, visible = True), gradio.Dropdown() + else: + logger.error(wording.get('job_not_submitted').format(job_id = selected_job_id), __name__) + if job_action == 'job-delete': + if selected_job_id and job_manager.delete_job(selected_job_id): + updated_job_ids = job_manager.find_job_ids('drafted') + job_manager.find_job_ids('queued') + job_manager.find_job_ids('failed') + job_manager.find_job_ids('completed') or [ 'none' ] + + logger.info(wording.get('job_deleted').format(job_id = selected_job_id), __name__) + return gradio.Dropdown(), gradio.Textbox(), gradio.Dropdown(value = get_last(updated_job_ids), choices = updated_job_ids, visible = True), gradio.Dropdown() + else: + logger.error(wording.get('job_not_deleted').format(job_id = selected_job_id), __name__) + if job_action == 'job-add-step': + if selected_job_id and job_manager.add_step(selected_job_id, step_args): + state_manager.set_item('output_path', output_path) + logger.info(wording.get('job_step_added').format(job_id = selected_job_id), __name__) + return gradio.Dropdown(), gradio.Textbox(), gradio.Dropdown(visible = True), gradio.Dropdown(visible = False) + else: + state_manager.set_item('output_path', output_path) + logger.error(wording.get('job_step_not_added').format(job_id = selected_job_id), __name__) + if job_action == 'job-remix-step': + if selected_job_id and job_manager.has_step(selected_job_id, selected_step_index) and job_manager.remix_step(selected_job_id, selected_step_index, step_args): + updated_step_choices = get_step_choices(selected_job_id) or [ 'none' ] #type:ignore[list-item] + + state_manager.set_item('output_path', output_path) + logger.info(wording.get('job_remix_step_added').format(job_id = selected_job_id, step_index = selected_step_index), __name__) + return gradio.Dropdown(), gradio.Textbox(), gradio.Dropdown(visible = True), gradio.Dropdown(value = get_last(updated_step_choices), choices = updated_step_choices, visible = True) + else: + state_manager.set_item('output_path', output_path) + logger.error(wording.get('job_remix_step_not_added').format(job_id = selected_job_id, step_index = selected_step_index), __name__) + if job_action == 'job-insert-step': + if selected_job_id and job_manager.has_step(selected_job_id, selected_step_index) and job_manager.insert_step(selected_job_id, selected_step_index, step_args): + updated_step_choices = get_step_choices(selected_job_id) or [ 'none' ] #type:ignore[list-item] + + state_manager.set_item('output_path', output_path) + logger.info(wording.get('job_step_inserted').format(job_id = selected_job_id, step_index = selected_step_index), __name__) + return gradio.Dropdown(), gradio.Textbox(), gradio.Dropdown(visible = True), gradio.Dropdown(value = get_last(updated_step_choices), choices = updated_step_choices, visible = True) + else: + state_manager.set_item('output_path', output_path) + logger.error(wording.get('job_step_not_inserted').format(job_id = selected_job_id, step_index = selected_step_index), __name__) + if job_action == 'job-remove-step': + if selected_job_id and job_manager.has_step(selected_job_id, selected_step_index) and job_manager.remove_step(selected_job_id, selected_step_index): + updated_step_choices = get_step_choices(selected_job_id) or [ 'none' ] #type:ignore[list-item] + + logger.info(wording.get('job_step_removed').format(job_id = selected_job_id, step_index = selected_step_index), __name__) + return gradio.Dropdown(), gradio.Textbox(), gradio.Dropdown(visible = True), gradio.Dropdown(value = get_last(updated_step_choices), choices = updated_step_choices, visible = True) + else: + logger.error(wording.get('job_step_not_removed').format(job_id = selected_job_id, step_index = selected_step_index), __name__) + return gradio.Dropdown(), gradio.Textbox(), gradio.Dropdown(), gradio.Dropdown() + + +def get_step_choices(job_id : str) -> List[int]: + steps = job_manager.get_steps(job_id) + return [ index for index, _ in enumerate(steps) ] + + +def update(job_action : JobManagerAction, selected_job_id : str) -> Tuple[gradio.Textbox, gradio.Dropdown, gradio.Dropdown]: + if job_action == 'job-create': + return gradio.Textbox(value = None, visible = True), gradio.Dropdown(visible = False), gradio.Dropdown(visible = False) + if job_action == 'job-delete': + updated_job_ids = job_manager.find_job_ids('drafted') + job_manager.find_job_ids('queued') + job_manager.find_job_ids('failed') + job_manager.find_job_ids('completed') or [ 'none' ] + updated_job_id = selected_job_id if selected_job_id in updated_job_ids else get_last(updated_job_ids) + + return gradio.Textbox(visible = False), gradio.Dropdown(value = updated_job_id, choices = updated_job_ids, visible = True), gradio.Dropdown(visible = False) + if job_action in [ 'job-submit', 'job-add-step' ]: + updated_job_ids = job_manager.find_job_ids('drafted') or [ 'none' ] + updated_job_id = selected_job_id if selected_job_id in updated_job_ids else get_last(updated_job_ids) + + return gradio.Textbox(visible = False), gradio.Dropdown(value = updated_job_id, choices = updated_job_ids, visible = True), gradio.Dropdown(visible = False) + if job_action in [ 'job-remix-step', 'job-insert-step', 'job-remove-step' ]: + updated_job_ids = job_manager.find_job_ids('drafted') or [ 'none' ] + updated_job_id = selected_job_id if selected_job_id in updated_job_ids else get_last(updated_job_ids) + updated_step_choices = get_step_choices(updated_job_id) or [ 'none' ] #type:ignore[list-item] + + return gradio.Textbox(visible = False), gradio.Dropdown(value = updated_job_id, choices = updated_job_ids, visible = True), gradio.Dropdown(value = get_last(updated_step_choices), choices = updated_step_choices, visible = True) + return gradio.Textbox(visible = False), gradio.Dropdown(visible = False), gradio.Dropdown(visible = False) + + +def update_step_index(job_id : str) -> gradio.Dropdown: + step_choices = get_step_choices(job_id) or [ 'none' ] #type:ignore[list-item] + return gradio.Dropdown(value = get_last(step_choices), choices = step_choices) diff --git a/facefusion/uis/components/job_runner.py b/facefusion/uis/components/job_runner.py new file mode 100644 index 00000000..540a1025 --- /dev/null +++ b/facefusion/uis/components/job_runner.py @@ -0,0 +1,136 @@ +from time import sleep +from typing import Optional, Tuple + +import gradio + +from facefusion import logger, process_manager, state_manager, wording +from facefusion.common_helper import get_first, get_last +from facefusion.core import process_step +from facefusion.jobs import job_manager, job_runner, job_store +from facefusion.typing import UiWorkflow +from facefusion.uis import choices as uis_choices +from facefusion.uis.core import get_ui_component +from facefusion.uis.typing import JobRunnerAction +from facefusion.uis.ui_helper import convert_str_none + +JOB_RUNNER_WRAPPER : Optional[gradio.Column] = None +JOB_RUNNER_JOB_ACTION_DROPDOWN : Optional[gradio.Dropdown] = None +JOB_RUNNER_JOB_ID_DROPDOWN : Optional[gradio.Dropdown] = None +JOB_RUNNER_START_BUTTON : Optional[gradio.Button] = None +JOB_RUNNER_STOP_BUTTON : Optional[gradio.Button] = None + + +def render() -> None: + global JOB_RUNNER_WRAPPER + global JOB_RUNNER_JOB_ACTION_DROPDOWN + global JOB_RUNNER_JOB_ID_DROPDOWN + global JOB_RUNNER_START_BUTTON + global JOB_RUNNER_STOP_BUTTON + + if job_manager.init_jobs(state_manager.get_item('jobs_path')): + is_job_runner = state_manager.get_item('ui_workflow') == 'job_runner' + queued_job_ids = job_manager.find_job_ids('queued') or [ 'none' ] + + with gradio.Column(visible = is_job_runner) as JOB_RUNNER_WRAPPER: + JOB_RUNNER_JOB_ACTION_DROPDOWN = gradio.Dropdown( + label = wording.get('uis.job_runner_job_action_dropdown'), + choices = uis_choices.job_runner_actions, + value = get_first(uis_choices.job_runner_actions) + ) + JOB_RUNNER_JOB_ID_DROPDOWN = gradio.Dropdown( + label = wording.get('uis.job_runner_job_id_dropdown'), + choices = queued_job_ids, + value = get_last(queued_job_ids) + ) + with gradio.Row(): + JOB_RUNNER_START_BUTTON = gradio.Button( + value = wording.get('uis.start_button'), + variant = 'primary', + size = 'sm' + ) + JOB_RUNNER_STOP_BUTTON = gradio.Button( + value = wording.get('uis.stop_button'), + variant = 'primary', + size = 'sm', + visible = False + ) + + +def listen() -> None: + JOB_RUNNER_JOB_ACTION_DROPDOWN.change(update_job_action, inputs = JOB_RUNNER_JOB_ACTION_DROPDOWN, outputs = JOB_RUNNER_JOB_ID_DROPDOWN) + JOB_RUNNER_START_BUTTON.click(start, outputs = [ JOB_RUNNER_START_BUTTON, JOB_RUNNER_STOP_BUTTON ]) + JOB_RUNNER_START_BUTTON.click(run, inputs = [ JOB_RUNNER_JOB_ACTION_DROPDOWN, JOB_RUNNER_JOB_ID_DROPDOWN ], outputs = [ JOB_RUNNER_START_BUTTON, JOB_RUNNER_STOP_BUTTON, JOB_RUNNER_JOB_ID_DROPDOWN ]) + JOB_RUNNER_STOP_BUTTON.click(stop, outputs = [ JOB_RUNNER_START_BUTTON, JOB_RUNNER_STOP_BUTTON ]) + + ui_workflow_dropdown = get_ui_component('ui_workflow_dropdown') + if ui_workflow_dropdown: + ui_workflow_dropdown.change(remote_update, inputs = ui_workflow_dropdown, outputs = [ JOB_RUNNER_WRAPPER, JOB_RUNNER_JOB_ACTION_DROPDOWN, JOB_RUNNER_JOB_ID_DROPDOWN ]) + + +def remote_update(ui_workflow : UiWorkflow) -> Tuple[gradio.Row, gradio.Dropdown, gradio.Dropdown]: + is_job_runner = ui_workflow == 'job_runner' + queued_job_ids = job_manager.find_job_ids('queued') or [ 'none' ] + + return gradio.Row(visible = is_job_runner), gradio.Dropdown(value = get_first(uis_choices.job_runner_actions), choices = uis_choices.job_runner_actions), gradio.Dropdown(value = get_last(queued_job_ids), choices = queued_job_ids) + + +def start() -> Tuple[gradio.Button, gradio.Button]: + while not process_manager.is_processing(): + sleep(0.5) + return gradio.Button(visible = False), gradio.Button(visible = True) + + +def run(job_action : JobRunnerAction, job_id : str) -> Tuple[gradio.Button, gradio.Button, gradio.Dropdown]: + job_id = convert_str_none(job_id) + + for key in job_store.get_job_keys(): + state_manager.sync_item(key) #type:ignore + + if job_action == 'job-run': + logger.info(wording.get('running_job').format(job_id = job_id), __name__) + if job_id and job_runner.run_job(job_id, process_step): + logger.info(wording.get('processing_job_succeed').format(job_id = job_id), __name__) + else: + logger.info(wording.get('processing_job_failed').format(job_id = job_id), __name__) + updated_job_ids = job_manager.find_job_ids('queued') or [ 'none' ] + + return gradio.Button(visible = True), gradio.Button(visible = False), gradio.Dropdown(value = get_last(updated_job_ids), choices = updated_job_ids) + if job_action == 'job-run-all': + logger.info(wording.get('running_jobs'), __name__) + if job_runner.run_jobs(process_step): + logger.info(wording.get('processing_jobs_succeed'), __name__) + else: + logger.info(wording.get('processing_jobs_failed'), __name__) + if job_action == 'job-retry': + logger.info(wording.get('retrying_job').format(job_id = job_id), __name__) + if job_id and job_runner.retry_job(job_id, process_step): + logger.info(wording.get('processing_job_succeed').format(job_id = job_id), __name__) + else: + logger.info(wording.get('processing_job_failed').format(job_id = job_id), __name__) + updated_job_ids = job_manager.find_job_ids('failed') or [ 'none' ] + + return gradio.Button(visible = True), gradio.Button(visible = False), gradio.Dropdown(value = get_last(updated_job_ids), choices = updated_job_ids) + if job_action == 'job-retry-all': + logger.info(wording.get('retrying_jobs'), __name__) + if job_runner.retry_jobs(process_step): + logger.info(wording.get('processing_jobs_succeed'), __name__) + else: + logger.info(wording.get('processing_jobs_failed'), __name__) + return gradio.Button(visible = True), gradio.Button(visible = False), gradio.Dropdown() + + +def stop() -> Tuple[gradio.Button, gradio.Button]: + process_manager.stop() + return gradio.Button(visible = True), gradio.Button(visible = False) + + +def update_job_action(job_action : JobRunnerAction) -> gradio.Dropdown: + if job_action == 'job-run': + updated_job_ids = job_manager.find_job_ids('queued') or [ 'none' ] + + return gradio.Dropdown(value = get_last(updated_job_ids), choices = updated_job_ids, visible = True) + if job_action == 'job-retry': + updated_job_ids = job_manager.find_job_ids('failed') or [ 'none' ] + + return gradio.Dropdown(value = get_last(updated_job_ids), choices = updated_job_ids, visible = True) + return gradio.Dropdown(visible = False) diff --git a/facefusion/uis/components/lip_syncer_options.py b/facefusion/uis/components/lip_syncer_options.py new file mode 100755 index 00000000..7c195d93 --- /dev/null +++ b/facefusion/uis/components/lip_syncer_options.py @@ -0,0 +1,46 @@ +from typing import List, Optional + +import gradio + +from facefusion import state_manager, wording +from facefusion.processors import choices as processors_choices +from facefusion.processors.core import load_processor_module +from facefusion.processors.typing import LipSyncerModel +from facefusion.uis.core import get_ui_component, register_ui_component + +LIP_SYNCER_MODEL_DROPDOWN : Optional[gradio.Dropdown] = None + + +def render() -> None: + global LIP_SYNCER_MODEL_DROPDOWN + + LIP_SYNCER_MODEL_DROPDOWN = gradio.Dropdown( + label = wording.get('uis.lip_syncer_model_dropdown'), + choices = processors_choices.lip_syncer_models, + value = state_manager.get_item('lip_syncer_model'), + visible = 'lip_syncer' in state_manager.get_item('processors') + ) + register_ui_component('lip_syncer_model_dropdown', LIP_SYNCER_MODEL_DROPDOWN) + + +def listen() -> None: + LIP_SYNCER_MODEL_DROPDOWN.change(update_lip_syncer_model, inputs = LIP_SYNCER_MODEL_DROPDOWN, outputs = LIP_SYNCER_MODEL_DROPDOWN) + + processors_checkbox_group = get_ui_component('processors_checkbox_group') + if processors_checkbox_group: + processors_checkbox_group.change(remote_update, inputs = processors_checkbox_group, outputs = LIP_SYNCER_MODEL_DROPDOWN) + + +def remote_update(processors : List[str]) -> gradio.Dropdown: + has_lip_syncer = 'lip_syncer' in processors + return gradio.Dropdown(visible = has_lip_syncer) + + +def update_lip_syncer_model(lip_syncer_model : LipSyncerModel) -> gradio.Dropdown: + lip_syncer_module = load_processor_module('lip_syncer') + lip_syncer_module.clear_inference_pool() + state_manager.set_item('lip_syncer_model', lip_syncer_model) + + if lip_syncer_module.pre_check(): + return gradio.Dropdown(value = state_manager.get_item('lip_syncer_model')) + return gradio.Dropdown() diff --git a/facefusion/uis/components/memory.py b/facefusion/uis/components/memory.py index f67c27ae..1c461621 100644 --- a/facefusion/uis/components/memory.py +++ b/facefusion/uis/components/memory.py @@ -1,10 +1,11 @@ from typing import Optional + import gradio -import facefusion.globals import facefusion.choices +from facefusion import state_manager, wording +from facefusion.common_helper import calc_int_step from facefusion.typing import VideoMemoryStrategy -from facefusion import wording VIDEO_MEMORY_STRATEGY_DROPDOWN : Optional[gradio.Dropdown] = None SYSTEM_MEMORY_LIMIT_SLIDER : Optional[gradio.Slider] = None @@ -17,14 +18,14 @@ def render() -> None: VIDEO_MEMORY_STRATEGY_DROPDOWN = gradio.Dropdown( label = wording.get('uis.video_memory_strategy_dropdown'), choices = facefusion.choices.video_memory_strategies, - value = facefusion.globals.video_memory_strategy + value = state_manager.get_item('video_memory_strategy') ) SYSTEM_MEMORY_LIMIT_SLIDER = gradio.Slider( label = wording.get('uis.system_memory_limit_slider'), - step =facefusion.choices.system_memory_limit_range[1] - facefusion.choices.system_memory_limit_range[0], + step = calc_int_step(facefusion.choices.system_memory_limit_range), minimum = facefusion.choices.system_memory_limit_range[0], maximum = facefusion.choices.system_memory_limit_range[-1], - value = facefusion.globals.system_memory_limit + value = state_manager.get_item('system_memory_limit') ) @@ -34,8 +35,8 @@ def listen() -> None: def update_video_memory_strategy(video_memory_strategy : VideoMemoryStrategy) -> None: - facefusion.globals.video_memory_strategy = video_memory_strategy + state_manager.set_item('video_memory_strategy', video_memory_strategy) -def update_system_memory_limit(system_memory_limit : int) -> None: - facefusion.globals.system_memory_limit = system_memory_limit +def update_system_memory_limit(system_memory_limit : float) -> None: + state_manager.set_item('system_memory_limit', int(system_memory_limit)) diff --git a/facefusion/uis/components/output.py b/facefusion/uis/components/output.py index cfba2a6d..84fd0891 100644 --- a/facefusion/uis/components/output.py +++ b/facefusion/uis/components/output.py @@ -1,29 +1,28 @@ -from typing import Tuple, Optional -from time import sleep +import tempfile +from typing import Optional + import gradio -import facefusion.globals -from facefusion import process_manager, wording -from facefusion.core import conditional_process -from facefusion.memory import limit_system_memory -from facefusion.normalizer import normalize_output_path -from facefusion.uis.core import get_ui_component -from facefusion.filesystem import clear_temp, is_image, is_video +from facefusion import state_manager, wording +from facefusion.uis.core import register_ui_component +OUTPUT_PATH_TEXTBOX : Optional[gradio.Textbox] = None OUTPUT_IMAGE : Optional[gradio.Image] = None OUTPUT_VIDEO : Optional[gradio.Video] = None -OUTPUT_START_BUTTON : Optional[gradio.Button] = None -OUTPUT_CLEAR_BUTTON : Optional[gradio.Button] = None -OUTPUT_STOP_BUTTON : Optional[gradio.Button] = None def render() -> None: + global OUTPUT_PATH_TEXTBOX global OUTPUT_IMAGE global OUTPUT_VIDEO - global OUTPUT_START_BUTTON - global OUTPUT_STOP_BUTTON - global OUTPUT_CLEAR_BUTTON + if not state_manager.get_item('output_path'): + state_manager.set_item('output_path', tempfile.gettempdir()) + OUTPUT_PATH_TEXTBOX = gradio.Textbox( + label = wording.get('uis.output_path_textbox'), + value = state_manager.get_item('output_path'), + max_lines = 1 + ) OUTPUT_IMAGE = gradio.Image( label = wording.get('uis.output_image_or_video'), visible = False @@ -31,58 +30,13 @@ def render() -> None: OUTPUT_VIDEO = gradio.Video( label = wording.get('uis.output_image_or_video') ) - OUTPUT_START_BUTTON = gradio.Button( - value = wording.get('uis.start_button'), - variant = 'primary', - size = 'sm' - ) - OUTPUT_STOP_BUTTON = gradio.Button( - value = wording.get('uis.stop_button'), - variant = 'primary', - size = 'sm', - visible = False - ) - OUTPUT_CLEAR_BUTTON = gradio.Button( - value = wording.get('uis.clear_button'), - size = 'sm' - ) def listen() -> None: - output_path_textbox = get_ui_component('output_path_textbox') - if output_path_textbox: - OUTPUT_START_BUTTON.click(start, outputs = [ OUTPUT_START_BUTTON, OUTPUT_STOP_BUTTON ]) - OUTPUT_START_BUTTON.click(process, outputs = [ OUTPUT_IMAGE, OUTPUT_VIDEO, OUTPUT_START_BUTTON, OUTPUT_STOP_BUTTON ]) - OUTPUT_STOP_BUTTON.click(stop, outputs = [ OUTPUT_START_BUTTON, OUTPUT_STOP_BUTTON ]) - OUTPUT_CLEAR_BUTTON.click(clear, outputs = [ OUTPUT_IMAGE, OUTPUT_VIDEO ]) + OUTPUT_PATH_TEXTBOX.change(update_output_path, inputs = OUTPUT_PATH_TEXTBOX) + register_ui_component('output_image', OUTPUT_IMAGE) + register_ui_component('output_video', OUTPUT_VIDEO) -def start() -> Tuple[gradio.Button, gradio.Button]: - while not process_manager.is_processing(): - sleep(0.5) - return gradio.Button(visible = False), gradio.Button(visible = True) - - -def process() -> Tuple[gradio.Image, gradio.Video, gradio.Button, gradio.Button]: - normed_output_path = normalize_output_path(facefusion.globals.target_path, facefusion.globals.output_path) - if facefusion.globals.system_memory_limit > 0: - limit_system_memory(facefusion.globals.system_memory_limit) - conditional_process() - if is_image(normed_output_path): - return gradio.Image(value = normed_output_path, visible = True), gradio.Video(value = None, visible = False), gradio.Button(visible = True), gradio.Button(visible = False) - if is_video(normed_output_path): - return gradio.Image(value = None, visible = False), gradio.Video(value = normed_output_path, visible = True), gradio.Button(visible = True), gradio.Button(visible = False) - return gradio.Image(value = None), gradio.Video(value = None), gradio.Button(visible = True), gradio.Button(visible = False) - - -def stop() -> Tuple[gradio.Button, gradio.Button]: - process_manager.stop() - return gradio.Button(visible = True), gradio.Button(visible = False) - - -def clear() -> Tuple[gradio.Image, gradio.Video]: - while process_manager.is_processing(): - sleep(0.5) - if facefusion.globals.target_path: - clear_temp(facefusion.globals.target_path) - return gradio.Image(value = None), gradio.Video(value = None) +def update_output_path(output_path : str) -> None: + state_manager.set_item('output_path', output_path) diff --git a/facefusion/uis/components/output_options.py b/facefusion/uis/components/output_options.py index 4919920a..31fe154f 100644 --- a/facefusion/uis/components/output_options.py +++ b/facefusion/uis/components/output_options.py @@ -1,17 +1,18 @@ from typing import Optional, Tuple + import gradio -import facefusion.globals import facefusion.choices -from facefusion import wording -from facefusion.typing import OutputVideoEncoder, OutputVideoPreset, Fps +from facefusion import state_manager, wording +from facefusion.common_helper import calc_int_step from facefusion.filesystem import is_image, is_video +from facefusion.typing import Fps, OutputAudioEncoder, OutputVideoEncoder, OutputVideoPreset from facefusion.uis.core import get_ui_components, register_ui_component -from facefusion.vision import detect_image_resolution, create_image_resolutions, detect_video_fps, detect_video_resolution, create_video_resolutions, pack_resolution +from facefusion.vision import create_image_resolutions, create_video_resolutions, detect_image_resolution, detect_video_fps, detect_video_resolution, pack_resolution -OUTPUT_PATH_TEXTBOX : Optional[gradio.Textbox] = None OUTPUT_IMAGE_QUALITY_SLIDER : Optional[gradio.Slider] = None OUTPUT_IMAGE_RESOLUTION_DROPDOWN : Optional[gradio.Dropdown] = None +OUTPUT_AUDIO_ENCODER_DROPDOWN : Optional[gradio.Dropdown] = None OUTPUT_VIDEO_ENCODER_DROPDOWN : Optional[gradio.Dropdown] = None OUTPUT_VIDEO_PRESET_DROPDOWN : Optional[gradio.Dropdown] = None OUTPUT_VIDEO_RESOLUTION_DROPDOWN : Optional[gradio.Dropdown] = None @@ -20,9 +21,9 @@ OUTPUT_VIDEO_FPS_SLIDER : Optional[gradio.Slider] = None def render() -> None: - global OUTPUT_PATH_TEXTBOX global OUTPUT_IMAGE_QUALITY_SLIDER global OUTPUT_IMAGE_RESOLUTION_DROPDOWN + global OUTPUT_AUDIO_ENCODER_DROPDOWN global OUTPUT_VIDEO_ENCODER_DROPDOWN global OUTPUT_VIDEO_PRESET_DROPDOWN global OUTPUT_VIDEO_RESOLUTION_DROPDOWN @@ -31,74 +32,73 @@ def render() -> None: output_image_resolutions = [] output_video_resolutions = [] - if is_image(facefusion.globals.target_path): - output_image_resolution = detect_image_resolution(facefusion.globals.target_path) + if is_image(state_manager.get_item('target_path')): + output_image_resolution = detect_image_resolution(state_manager.get_item('target_path')) output_image_resolutions = create_image_resolutions(output_image_resolution) - if is_video(facefusion.globals.target_path): - output_video_resolution = detect_video_resolution(facefusion.globals.target_path) + if is_video(state_manager.get_item('target_path')): + output_video_resolution = detect_video_resolution(state_manager.get_item('target_path')) output_video_resolutions = create_video_resolutions(output_video_resolution) - facefusion.globals.output_path = facefusion.globals.output_path or '.' - OUTPUT_PATH_TEXTBOX = gradio.Textbox( - label = wording.get('uis.output_path_textbox'), - value = facefusion.globals.output_path, - max_lines = 1 - ) OUTPUT_IMAGE_QUALITY_SLIDER = gradio.Slider( label = wording.get('uis.output_image_quality_slider'), - value = facefusion.globals.output_image_quality, - step = facefusion.choices.output_image_quality_range[1] - facefusion.choices.output_image_quality_range[0], + value = state_manager.get_item('output_image_quality'), + step = calc_int_step(facefusion.choices.output_image_quality_range), minimum = facefusion.choices.output_image_quality_range[0], maximum = facefusion.choices.output_image_quality_range[-1], - visible = is_image(facefusion.globals.target_path) + visible = is_image(state_manager.get_item('target_path')) ) OUTPUT_IMAGE_RESOLUTION_DROPDOWN = gradio.Dropdown( label = wording.get('uis.output_image_resolution_dropdown'), choices = output_image_resolutions, - value = facefusion.globals.output_image_resolution, - visible = is_image(facefusion.globals.target_path) + value = state_manager.get_item('output_image_resolution'), + visible = is_image(state_manager.get_item('target_path')) + ) + OUTPUT_AUDIO_ENCODER_DROPDOWN = gradio.Dropdown( + label = wording.get('uis.output_audio_encoder_dropdown'), + choices = facefusion.choices.output_audio_encoders, + value = state_manager.get_item('output_audio_encoder'), + visible = is_video(state_manager.get_item('target_path')) ) OUTPUT_VIDEO_ENCODER_DROPDOWN = gradio.Dropdown( label = wording.get('uis.output_video_encoder_dropdown'), choices = facefusion.choices.output_video_encoders, - value = facefusion.globals.output_video_encoder, - visible = is_video(facefusion.globals.target_path) + value = state_manager.get_item('output_video_encoder'), + visible = is_video(state_manager.get_item('target_path')) ) OUTPUT_VIDEO_PRESET_DROPDOWN = gradio.Dropdown( label = wording.get('uis.output_video_preset_dropdown'), choices = facefusion.choices.output_video_presets, - value = facefusion.globals.output_video_preset, - visible = is_video(facefusion.globals.target_path) + value = state_manager.get_item('output_video_preset'), + visible = is_video(state_manager.get_item('target_path')) ) OUTPUT_VIDEO_QUALITY_SLIDER = gradio.Slider( label = wording.get('uis.output_video_quality_slider'), - value = facefusion.globals.output_video_quality, - step = facefusion.choices.output_video_quality_range[1] - facefusion.choices.output_video_quality_range[0], + value = state_manager.get_item('output_video_quality'), + step = calc_int_step(facefusion.choices.output_video_quality_range), minimum = facefusion.choices.output_video_quality_range[0], maximum = facefusion.choices.output_video_quality_range[-1], - visible = is_video(facefusion.globals.target_path) + visible = is_video(state_manager.get_item('target_path')) ) OUTPUT_VIDEO_RESOLUTION_DROPDOWN = gradio.Dropdown( label = wording.get('uis.output_video_resolution_dropdown'), choices = output_video_resolutions, - value = facefusion.globals.output_video_resolution, - visible = is_video(facefusion.globals.target_path) + value = state_manager.get_item('output_video_resolution'), + visible = is_video(state_manager.get_item('target_path')) ) OUTPUT_VIDEO_FPS_SLIDER = gradio.Slider( label = wording.get('uis.output_video_fps_slider'), - value = facefusion.globals.output_video_fps, + value = state_manager.get_item('output_video_fps'), step = 0.01, minimum = 1, maximum = 60, - visible = is_video(facefusion.globals.target_path) + visible = is_video(state_manager.get_item('target_path')) ) - register_ui_component('output_path_textbox', OUTPUT_PATH_TEXTBOX) register_ui_component('output_video_fps_slider', OUTPUT_VIDEO_FPS_SLIDER) def listen() -> None: - OUTPUT_PATH_TEXTBOX.change(update_output_path, inputs = OUTPUT_PATH_TEXTBOX) OUTPUT_IMAGE_QUALITY_SLIDER.release(update_output_image_quality, inputs = OUTPUT_IMAGE_QUALITY_SLIDER) OUTPUT_IMAGE_RESOLUTION_DROPDOWN.change(update_output_image_resolution, inputs = OUTPUT_IMAGE_RESOLUTION_DROPDOWN) + OUTPUT_AUDIO_ENCODER_DROPDOWN.change(update_output_audio_encoder, inputs = OUTPUT_AUDIO_ENCODER_DROPDOWN) OUTPUT_VIDEO_ENCODER_DROPDOWN.change(update_output_video_encoder, inputs = OUTPUT_VIDEO_ENCODER_DROPDOWN) OUTPUT_VIDEO_PRESET_DROPDOWN.change(update_output_video_preset, inputs = OUTPUT_VIDEO_PRESET_DROPDOWN) OUTPUT_VIDEO_QUALITY_SLIDER.release(update_output_video_quality, inputs = OUTPUT_VIDEO_QUALITY_SLIDER) @@ -111,51 +111,51 @@ def listen() -> None: 'target_video' ]): for method in [ 'upload', 'change', 'clear' ]: - getattr(ui_component, method)(remote_update, outputs = [ OUTPUT_IMAGE_QUALITY_SLIDER, OUTPUT_IMAGE_RESOLUTION_DROPDOWN, OUTPUT_VIDEO_ENCODER_DROPDOWN, OUTPUT_VIDEO_PRESET_DROPDOWN, OUTPUT_VIDEO_QUALITY_SLIDER, OUTPUT_VIDEO_RESOLUTION_DROPDOWN, OUTPUT_VIDEO_FPS_SLIDER ]) + getattr(ui_component, method)(remote_update, outputs = [ OUTPUT_IMAGE_QUALITY_SLIDER, OUTPUT_IMAGE_RESOLUTION_DROPDOWN, OUTPUT_AUDIO_ENCODER_DROPDOWN, OUTPUT_VIDEO_ENCODER_DROPDOWN, OUTPUT_VIDEO_PRESET_DROPDOWN, OUTPUT_VIDEO_QUALITY_SLIDER, OUTPUT_VIDEO_RESOLUTION_DROPDOWN, OUTPUT_VIDEO_FPS_SLIDER ]) -def remote_update() -> Tuple[gradio.Slider, gradio.Dropdown, gradio.Dropdown, gradio.Dropdown, gradio.Slider, gradio.Dropdown, gradio.Slider]: - if is_image(facefusion.globals.target_path): - output_image_resolution = detect_image_resolution(facefusion.globals.target_path) +def remote_update() -> Tuple[gradio.Slider, gradio.Dropdown, gradio.Dropdown, gradio.Dropdown, gradio.Dropdown, gradio.Slider, gradio.Dropdown, gradio.Slider]: + if is_image(state_manager.get_item('target_path')): + output_image_resolution = detect_image_resolution(state_manager.get_item('target_path')) output_image_resolutions = create_image_resolutions(output_image_resolution) - facefusion.globals.output_image_resolution = pack_resolution(output_image_resolution) - return gradio.Slider(visible = True), gradio.Dropdown(visible = True, value = facefusion.globals.output_image_resolution, choices = output_image_resolutions), gradio.Dropdown(visible = False), gradio.Dropdown(visible = False), gradio.Slider(visible = False), gradio.Dropdown(visible = False, value = None, choices = None), gradio.Slider(visible = False, value = None) - if is_video(facefusion.globals.target_path): - output_video_resolution = detect_video_resolution(facefusion.globals.target_path) + state_manager.set_item('output_image_resolution', pack_resolution(output_image_resolution)) + return gradio.Slider(visible = True), gradio.Dropdown(value = state_manager.get_item('output_image_resolution'), choices = output_image_resolutions, visible = True), gradio.Dropdown(visible = False), gradio.Dropdown(visible = False), gradio.Dropdown(visible = False), gradio.Slider(visible = False), gradio.Dropdown(visible = False), gradio.Slider(visible = False) + if is_video(state_manager.get_item('target_path')): + output_video_resolution = detect_video_resolution(state_manager.get_item('target_path')) output_video_resolutions = create_video_resolutions(output_video_resolution) - facefusion.globals.output_video_resolution = pack_resolution(output_video_resolution) - facefusion.globals.output_video_fps = detect_video_fps(facefusion.globals.target_path) - return gradio.Slider(visible = False), gradio.Dropdown(visible = False), gradio.Dropdown(visible = True), gradio.Dropdown(visible = True), gradio.Slider(visible = True), gradio.Dropdown(visible = True, value = facefusion.globals.output_video_resolution, choices = output_video_resolutions), gradio.Slider(visible = True, value = facefusion.globals.output_video_fps) - return gradio.Slider(visible = False), gradio.Dropdown(visible = False, value = None, choices = None), gradio.Dropdown(visible = False), gradio.Dropdown(visible = False), gradio.Slider(visible = False), gradio.Dropdown(visible = False, value = None, choices = None), gradio.Slider(visible = False, value = None) + state_manager.set_item('output_video_resolution', pack_resolution(output_video_resolution)) + state_manager.set_item('output_video_fps', detect_video_fps(state_manager.get_item('target_path'))) + return gradio.Slider(visible = False), gradio.Dropdown(visible = False), gradio.Dropdown(visible = True), gradio.Dropdown(visible = True), gradio.Dropdown(visible = True), gradio.Slider(visible = True), gradio.Dropdown(value = state_manager.get_item('output_video_resolution'), choices = output_video_resolutions, visible = True), gradio.Slider(value = state_manager.get_item('output_video_fps'), visible = True) + return gradio.Slider(visible = False), gradio.Dropdown(visible = False), gradio.Dropdown(visible = False), gradio.Dropdown(visible = False), gradio.Dropdown(visible = False), gradio.Slider(visible = False), gradio.Dropdown(visible = False), gradio.Slider(visible = False) -def update_output_path(output_path : str) -> None: - facefusion.globals.output_path = output_path - - -def update_output_image_quality(output_image_quality : int) -> None: - facefusion.globals.output_image_quality = output_image_quality +def update_output_image_quality(output_image_quality : float) -> None: + state_manager.set_item('output_image_quality', int(output_image_quality)) def update_output_image_resolution(output_image_resolution : str) -> None: - facefusion.globals.output_image_resolution = output_image_resolution + state_manager.set_item('output_image_resolution', output_image_resolution) -def update_output_video_encoder(output_video_encoder: OutputVideoEncoder) -> None: - facefusion.globals.output_video_encoder = output_video_encoder +def update_output_audio_encoder(output_audio_encoder : OutputAudioEncoder) -> None: + state_manager.set_item('output_audio_encoder', output_audio_encoder) + + +def update_output_video_encoder(output_video_encoder : OutputVideoEncoder) -> None: + state_manager.set_item('output_video_encoder', output_video_encoder) def update_output_video_preset(output_video_preset : OutputVideoPreset) -> None: - facefusion.globals.output_video_preset = output_video_preset + state_manager.set_item('output_video_preset', output_video_preset) -def update_output_video_quality(output_video_quality : int) -> None: - facefusion.globals.output_video_quality = output_video_quality +def update_output_video_quality(output_video_quality : float) -> None: + state_manager.set_item('output_video_quality', int(output_video_quality)) def update_output_video_resolution(output_video_resolution : str) -> None: - facefusion.globals.output_video_resolution = output_video_resolution + state_manager.set_item('output_video_resolution', output_video_resolution) def update_output_video_fps(output_video_fps : Fps) -> None: - facefusion.globals.output_video_fps = output_video_fps + state_manager.set_item('output_video_fps', output_video_fps) diff --git a/facefusion/uis/components/preview.py b/facefusion/uis/components/preview.py index 72108cf4..6b3eb0a7 100755 --- a/facefusion/uis/components/preview.py +++ b/facefusion/uis/components/preview.py @@ -1,22 +1,23 @@ -from typing import Any, Dict, Optional from time import sleep +from typing import Optional + import cv2 import gradio import numpy -import facefusion.globals -from facefusion import logger, wording -from facefusion.audio import get_audio_frame, create_empty_audio_frame +from facefusion import logger, process_manager, state_manager, wording +from facefusion.audio import create_empty_audio_frame, get_audio_frame from facefusion.common_helper import get_first -from facefusion.core import conditional_append_reference_faces -from facefusion.face_analyser import get_average_face, clear_face_analyser -from facefusion.face_store import clear_static_faces, get_reference_faces, clear_reference_faces -from facefusion.typing import Face, FaceSet, AudioFrame, VisionFrame -from facefusion.vision import get_video_frame, count_video_frame_total, normalize_frame_color, resize_frame_resolution, read_static_image, read_static_images -from facefusion.filesystem import is_image, is_video, filter_audio_paths from facefusion.content_analyser import analyse_frame -from facefusion.processors.frame.core import load_frame_processor_module +from facefusion.core import conditional_append_reference_faces +from facefusion.face_analyser import get_average_face, get_many_faces +from facefusion.face_store import clear_reference_faces, clear_static_faces, get_reference_faces +from facefusion.filesystem import filter_audio_paths, is_image, is_video +from facefusion.processors.core import get_processors_modules +from facefusion.typing import AudioFrame, Face, FaceSet, VisionFrame from facefusion.uis.core import get_ui_component, get_ui_components, register_ui_component +from facefusion.uis.typing import ComponentOptions +from facefusion.vision import count_video_frame_total, detect_frame_orientation, get_video_frame, normalize_frame_color, read_static_image, read_static_images, resize_frame_resolution PREVIEW_IMAGE : Optional[gradio.Image] = None PREVIEW_FRAME_SLIDER : Optional[gradio.Slider] = None @@ -26,12 +27,11 @@ def render() -> None: global PREVIEW_IMAGE global PREVIEW_FRAME_SLIDER - preview_image_args : Dict[str, Any] =\ + preview_image_options : ComponentOptions =\ { - 'label': wording.get('uis.preview_image'), - 'interactive': False + 'label': wording.get('uis.preview_image') } - preview_frame_slider_args : Dict[str, Any] =\ + preview_frame_slider_options : ComponentOptions =\ { 'label': wording.get('uis.preview_frame_slider'), 'step': 1, @@ -40,34 +40,42 @@ def render() -> None: 'visible': False } conditional_append_reference_faces() - reference_faces = get_reference_faces() if 'reference' in facefusion.globals.face_selector_mode else None - source_frames = read_static_images(facefusion.globals.source_paths) - source_face = get_average_face(source_frames) - source_audio_path = get_first(filter_audio_paths(facefusion.globals.source_paths)) + reference_faces = get_reference_faces() if 'reference' in state_manager.get_item('face_selector_mode') else None + source_frames = read_static_images(state_manager.get_item('source_paths')) + source_faces = get_many_faces(source_frames) + source_face = get_average_face(source_faces) + source_audio_path = get_first(filter_audio_paths(state_manager.get_item('source_paths'))) source_audio_frame = create_empty_audio_frame() - if source_audio_path and facefusion.globals.output_video_fps and facefusion.globals.reference_frame_number: - temp_audio_frame = get_audio_frame(source_audio_path, facefusion.globals.output_video_fps, facefusion.globals.reference_frame_number) + + if source_audio_path and state_manager.get_item('output_video_fps') and state_manager.get_item('reference_frame_number'): + temp_audio_frame = get_audio_frame(source_audio_path, state_manager.get_item('output_video_fps'), state_manager.get_item('reference_frame_number')) if numpy.any(temp_audio_frame): source_audio_frame = temp_audio_frame - if is_image(facefusion.globals.target_path): - target_vision_frame = read_static_image(facefusion.globals.target_path) + + if is_image(state_manager.get_item('target_path')): + target_vision_frame = read_static_image(state_manager.get_item('target_path')) preview_vision_frame = process_preview_frame(reference_faces, source_face, source_audio_frame, target_vision_frame) - preview_image_args['value'] = normalize_frame_color(preview_vision_frame) - if is_video(facefusion.globals.target_path): - temp_vision_frame = get_video_frame(facefusion.globals.target_path, facefusion.globals.reference_frame_number) + preview_image_options['value'] = normalize_frame_color(preview_vision_frame) + preview_image_options['elem_classes'] = [ 'image-preview', 'is-' + detect_frame_orientation(preview_vision_frame) ] + + if is_video(state_manager.get_item('target_path')): + temp_vision_frame = get_video_frame(state_manager.get_item('target_path'), state_manager.get_item('reference_frame_number')) preview_vision_frame = process_preview_frame(reference_faces, source_face, source_audio_frame, temp_vision_frame) - preview_image_args['value'] = normalize_frame_color(preview_vision_frame) - preview_image_args['visible'] = True - preview_frame_slider_args['value'] = facefusion.globals.reference_frame_number - preview_frame_slider_args['maximum'] = count_video_frame_total(facefusion.globals.target_path) - preview_frame_slider_args['visible'] = True - PREVIEW_IMAGE = gradio.Image(**preview_image_args) - PREVIEW_FRAME_SLIDER = gradio.Slider(**preview_frame_slider_args) + preview_image_options['value'] = normalize_frame_color(preview_vision_frame) + preview_image_options['elem_classes'] = [ 'image-preview', 'is-' + detect_frame_orientation(preview_vision_frame) ] + preview_image_options['visible'] = True + preview_frame_slider_options['value'] = state_manager.get_item('reference_frame_number') + preview_frame_slider_options['maximum'] = count_video_frame_total(state_manager.get_item('target_path')) + preview_frame_slider_options['visible'] = True + PREVIEW_IMAGE = gradio.Image(**preview_image_options) + PREVIEW_FRAME_SLIDER = gradio.Slider(**preview_frame_slider_options) register_ui_component('preview_frame_slider', PREVIEW_FRAME_SLIDER) def listen() -> None: - PREVIEW_FRAME_SLIDER.release(update_preview_image, inputs = PREVIEW_FRAME_SLIDER, outputs = PREVIEW_IMAGE) + PREVIEW_FRAME_SLIDER.release(update_preview_image, inputs = PREVIEW_FRAME_SLIDER, outputs = PREVIEW_IMAGE, show_progress = 'hidden') + PREVIEW_FRAME_SLIDER.change(slide_preview_image, inputs = PREVIEW_FRAME_SLIDER, outputs = PREVIEW_IMAGE, show_progress = 'hidden') + reference_face_position_gallery = get_ui_component('reference_face_position_gallery') if reference_face_position_gallery: reference_face_position_gallery.select(update_preview_image, inputs = PREVIEW_FRAME_SLIDER, outputs = PREVIEW_IMAGE) @@ -94,23 +102,34 @@ def listen() -> None: [ 'face_debugger_items_checkbox_group', 'frame_colorizer_size_dropdown', - 'face_selector_mode_dropdown', 'face_mask_types_checkbox_group', - 'face_mask_region_checkbox_group', - 'face_analyser_order_dropdown', - 'face_analyser_age_dropdown', - 'face_analyser_gender_dropdown' + 'face_mask_region_checkbox_group' ]): ui_component.change(update_preview_image, inputs = PREVIEW_FRAME_SLIDER, outputs = PREVIEW_IMAGE) for ui_component in get_ui_components( [ + 'age_modifier_direction_slider', + 'expression_restorer_factor_slider', + 'face_editor_eyebrow_direction_slider', + 'face_editor_eye_gaze_horizontal_slider', + 'face_editor_eye_gaze_vertical_slider', + 'face_editor_eye_open_ratio_slider', + 'face_editor_lip_open_ratio_slider', + 'face_editor_mouth_grim_slider', + 'face_editor_mouth_pout_slider', + 'face_editor_mouth_purse_slider', + 'face_editor_mouth_smile_slider', + 'face_editor_mouth_position_horizontal_slider', + 'face_editor_mouth_position_vertical_slider', + 'face_editor_head_pitch_slider', + 'face_editor_head_yaw_slider', + 'face_editor_head_roll_slider', 'face_enhancer_blend_slider', 'frame_colorizer_blend_slider', 'frame_enhancer_blend_slider', - 'trim_frame_start_slider', - 'trim_frame_end_slider', 'reference_face_distance_slider', + 'face_selector_age_range_slider', 'face_mask_blur_slider', 'face_mask_padding_top_slider', 'face_mask_padding_bottom_slider', @@ -122,14 +141,24 @@ def listen() -> None: for ui_component in get_ui_components( [ - 'frame_processors_checkbox_group', + 'age_modifier_model_dropdown', + 'expression_restorer_model_dropdown', + 'processors_checkbox_group', + 'face_editor_model_dropdown', 'face_enhancer_model_dropdown', 'face_swapper_model_dropdown', + 'face_swapper_pixel_boost_dropdown', 'frame_colorizer_model_dropdown', 'frame_enhancer_model_dropdown', 'lip_syncer_model_dropdown', + 'face_selector_mode_dropdown', + 'face_selector_order_dropdown', + 'face_selector_gender_dropdown', + 'face_selector_race_dropdown', 'face_detector_model_dropdown', - 'face_detector_size_dropdown' + 'face_detector_size_dropdown', + 'face_detector_angles_checkbox_group', + 'face_landmarker_model_dropdown' ]): ui_component.change(clear_and_update_preview_image, inputs = PREVIEW_FRAME_SLIDER, outputs = PREVIEW_IMAGE) @@ -142,66 +171,75 @@ def listen() -> None: def clear_and_update_preview_image(frame_number : int = 0) -> gradio.Image: - clear_face_analyser() clear_reference_faces() clear_static_faces() return update_preview_image(frame_number) -def update_preview_image(frame_number : int = 0) -> gradio.Image: - for frame_processor in facefusion.globals.frame_processors: - frame_processor_module = load_frame_processor_module(frame_processor) - while not frame_processor_module.post_check(): - logger.disable() - sleep(0.5) - logger.enable() - conditional_append_reference_faces() - reference_faces = get_reference_faces() if 'reference' in facefusion.globals.face_selector_mode else None - source_frames = read_static_images(facefusion.globals.source_paths) - source_face = get_average_face(source_frames) - source_audio_path = get_first(filter_audio_paths(facefusion.globals.source_paths)) - source_audio_frame = create_empty_audio_frame() - if source_audio_path and facefusion.globals.output_video_fps and facefusion.globals.reference_frame_number: - reference_audio_frame_number = facefusion.globals.reference_frame_number - if facefusion.globals.trim_frame_start: - reference_audio_frame_number -= facefusion.globals.trim_frame_start - temp_audio_frame = get_audio_frame(source_audio_path, facefusion.globals.output_video_fps, reference_audio_frame_number) - if numpy.any(temp_audio_frame): - source_audio_frame = temp_audio_frame - if is_image(facefusion.globals.target_path): - target_vision_frame = read_static_image(facefusion.globals.target_path) - preview_vision_frame = process_preview_frame(reference_faces, source_face, source_audio_frame, target_vision_frame) - preview_vision_frame = normalize_frame_color(preview_vision_frame) - return gradio.Image(value = preview_vision_frame) - if is_video(facefusion.globals.target_path): - temp_vision_frame = get_video_frame(facefusion.globals.target_path, frame_number) - preview_vision_frame = process_preview_frame(reference_faces, source_face, source_audio_frame, temp_vision_frame) - preview_vision_frame = normalize_frame_color(preview_vision_frame) +def slide_preview_image(frame_number : int = 0) -> gradio.Image: + if is_video(state_manager.get_item('target_path')): + preview_vision_frame = normalize_frame_color(get_video_frame(state_manager.get_item('target_path'), frame_number)) + preview_vision_frame = resize_frame_resolution(preview_vision_frame, (1024, 1024)) return gradio.Image(value = preview_vision_frame) return gradio.Image(value = None) +def update_preview_image(frame_number : int = 0) -> gradio.Image: + while process_manager.is_checking(): + sleep(0.5) + conditional_append_reference_faces() + reference_faces = get_reference_faces() if 'reference' in state_manager.get_item('face_selector_mode') else None + source_frames = read_static_images(state_manager.get_item('source_paths')) + source_faces = get_many_faces(source_frames) + source_face = get_average_face(source_faces) + source_audio_path = get_first(filter_audio_paths(state_manager.get_item('source_paths'))) + source_audio_frame = create_empty_audio_frame() + + if source_audio_path and state_manager.get_item('output_video_fps') and state_manager.get_item('reference_frame_number'): + reference_audio_frame_number = state_manager.get_item('reference_frame_number') + if state_manager.get_item('trim_frame_start'): + reference_audio_frame_number -= state_manager.get_item('trim_frame_start') + temp_audio_frame = get_audio_frame(source_audio_path, state_manager.get_item('output_video_fps'), reference_audio_frame_number) + if numpy.any(temp_audio_frame): + source_audio_frame = temp_audio_frame + + if is_image(state_manager.get_item('target_path')): + target_vision_frame = read_static_image(state_manager.get_item('target_path')) + preview_vision_frame = process_preview_frame(reference_faces, source_face, source_audio_frame, target_vision_frame) + preview_vision_frame = normalize_frame_color(preview_vision_frame) + return gradio.Image(value = preview_vision_frame, elem_classes = [ 'image-preview', 'is-' + detect_frame_orientation(preview_vision_frame) ]) + + if is_video(state_manager.get_item('target_path')): + temp_vision_frame = get_video_frame(state_manager.get_item('target_path'), frame_number) + preview_vision_frame = process_preview_frame(reference_faces, source_face, source_audio_frame, temp_vision_frame) + preview_vision_frame = normalize_frame_color(preview_vision_frame) + return gradio.Image(value = preview_vision_frame, elem_classes = [ 'image-preview', 'is-' + detect_frame_orientation(preview_vision_frame) ]) + return gradio.Image(value = None, elem_classes = None) + + def update_preview_frame_slider() -> gradio.Slider: - if is_video(facefusion.globals.target_path): - video_frame_total = count_video_frame_total(facefusion.globals.target_path) + if is_video(state_manager.get_item('target_path')): + video_frame_total = count_video_frame_total(state_manager.get_item('target_path')) return gradio.Slider(maximum = video_frame_total, visible = True) - return gradio.Slider(value = None, maximum = None, visible = False) + return gradio.Slider(value = 0, visible = False) def process_preview_frame(reference_faces : FaceSet, source_face : Face, source_audio_frame : AudioFrame, target_vision_frame : VisionFrame) -> VisionFrame: - target_vision_frame = resize_frame_resolution(target_vision_frame, (640, 640)) + target_vision_frame = resize_frame_resolution(target_vision_frame, (1024, 1024)) + source_vision_frame = target_vision_frame.copy() if analyse_frame(target_vision_frame): return cv2.GaussianBlur(target_vision_frame, (99, 99), 0) - for frame_processor in facefusion.globals.frame_processors: - frame_processor_module = load_frame_processor_module(frame_processor) + + for processor_module in get_processors_modules(state_manager.get_item('processors')): logger.disable() - if frame_processor_module.pre_process('preview'): - logger.enable() - target_vision_frame = frame_processor_module.process_frame( + if processor_module.pre_process('preview'): + target_vision_frame = processor_module.process_frame( { 'reference_faces': reference_faces, 'source_face': source_face, 'source_audio_frame': source_audio_frame, + 'source_vision_frame': source_vision_frame, 'target_vision_frame': target_vision_frame }) + logger.enable() return target_vision_frame diff --git a/facefusion/uis/components/processors.py b/facefusion/uis/components/processors.py new file mode 100644 index 00000000..567f3e11 --- /dev/null +++ b/facefusion/uis/components/processors.py @@ -0,0 +1,40 @@ +from typing import List, Optional + +import gradio + +from facefusion import state_manager, wording +from facefusion.filesystem import list_directory +from facefusion.processors.core import clear_processors_modules, get_processors_modules +from facefusion.uis.core import register_ui_component + +PROCESSORS_CHECKBOX_GROUP : Optional[gradio.CheckboxGroup] = None + + +def render() -> None: + global PROCESSORS_CHECKBOX_GROUP + + PROCESSORS_CHECKBOX_GROUP = gradio.CheckboxGroup( + label = wording.get('uis.processors_checkbox_group'), + choices = sort_processors(state_manager.get_item('processors')), + value = state_manager.get_item('processors') + ) + register_ui_component('processors_checkbox_group', PROCESSORS_CHECKBOX_GROUP) + + +def listen() -> None: + PROCESSORS_CHECKBOX_GROUP.change(update_processors, inputs = PROCESSORS_CHECKBOX_GROUP, outputs = PROCESSORS_CHECKBOX_GROUP) + + +def update_processors(processors : List[str]) -> gradio.CheckboxGroup: + clear_processors_modules(state_manager.get_item('processors')) + state_manager.set_item('processors', processors) + + for processor_module in get_processors_modules(state_manager.get_item('processors')): + if not processor_module.pre_check(): + return gradio.CheckboxGroup() + return gradio.CheckboxGroup(value = state_manager.get_item('processors'), choices = sort_processors(state_manager.get_item('processors'))) + + +def sort_processors(processors : List[str]) -> List[str]: + available_processors = list_directory('facefusion/processors/modules') + return sorted(available_processors, key = lambda processor : processors.index(processor) if processor in processors else len(processors)) diff --git a/facefusion/uis/components/source.py b/facefusion/uis/components/source.py index 4e79d89d..4f9c6f24 100644 --- a/facefusion/uis/components/source.py +++ b/facefusion/uis/components/source.py @@ -1,12 +1,12 @@ -from typing import Optional, List, Tuple +from typing import List, Optional, Tuple + import gradio -import facefusion.globals -from facefusion import wording -from facefusion.uis.typing import File +from facefusion import state_manager, wording from facefusion.common_helper import get_first -from facefusion.filesystem import has_audio, has_image, filter_audio_paths, filter_image_paths +from facefusion.filesystem import filter_audio_paths, filter_image_paths, has_audio, has_image from facefusion.uis.core import register_ui_component +from facefusion.uis.typing import File SOURCE_FILE : Optional[gradio.File] = None SOURCE_AUDIO : Optional[gradio.Audio] = None @@ -18,22 +18,19 @@ def render() -> None: global SOURCE_AUDIO global SOURCE_IMAGE - has_source_audio = has_audio(facefusion.globals.source_paths) - has_source_image = has_image(facefusion.globals.source_paths) + has_source_audio = has_audio(state_manager.get_item('source_paths')) + has_source_image = has_image(state_manager.get_item('source_paths')) SOURCE_FILE = gradio.File( file_count = 'multiple', file_types = [ - '.mp3', - '.wav', - '.png', - '.jpg', - '.webp' + 'audio', + 'image' ], label = wording.get('uis.source_file'), - value = facefusion.globals.source_paths if has_source_audio or has_source_image else None + value = state_manager.get_item('source_paths') if has_source_audio or has_source_image else None ) - source_file_names = [ source_file_value['name'] for source_file_value in SOURCE_FILE.value ] if SOURCE_FILE.value else None + source_file_names = [ source_file_value.get('path') for source_file_value in SOURCE_FILE.value ] if SOURCE_FILE.value else None source_audio_path = get_first(filter_audio_paths(source_file_names)) source_image_path = get_first(filter_image_paths(source_file_names)) SOURCE_AUDIO = gradio.Audio( @@ -61,7 +58,7 @@ def update(files : List[File]) -> Tuple[gradio.Audio, gradio.Image]: if has_source_audio or has_source_image: source_audio_path = get_first(filter_audio_paths(file_names)) source_image_path = get_first(filter_image_paths(file_names)) - facefusion.globals.source_paths = file_names + state_manager.set_item('source_paths', file_names) return gradio.Audio(value = source_audio_path, visible = has_source_audio), gradio.Image(value = source_image_path, visible = has_source_image) - facefusion.globals.source_paths = None + state_manager.clear_item('source_paths') return gradio.Audio(value = None, visible = False), gradio.Image(value = None, visible = False) diff --git a/facefusion/uis/components/target.py b/facefusion/uis/components/target.py index 4b133d8a..63a0d70d 100644 --- a/facefusion/uis/components/target.py +++ b/facefusion/uis/components/target.py @@ -1,12 +1,12 @@ -from typing import Tuple, Optional +from typing import Optional, Tuple + import gradio -import facefusion.globals -from facefusion import wording -from facefusion.face_store import clear_static_faces, clear_reference_faces -from facefusion.uis.typing import File +from facefusion import state_manager, wording +from facefusion.face_store import clear_reference_faces, clear_static_faces from facefusion.filesystem import get_file_size, is_image, is_video from facefusion.uis.core import register_ui_component +from facefusion.uis.typing import ComponentOptions, File from facefusion.vision import get_video_frame, normalize_frame_color FILE_SIZE_LIMIT = 512 * 1024 * 1024 @@ -21,44 +21,41 @@ def render() -> None: global TARGET_IMAGE global TARGET_VIDEO - is_target_image = is_image(facefusion.globals.target_path) - is_target_video = is_video(facefusion.globals.target_path) + is_target_image = is_image(state_manager.get_item('target_path')) + is_target_video = is_video(state_manager.get_item('target_path')) TARGET_FILE = gradio.File( label = wording.get('uis.target_file'), file_count = 'single', file_types = [ - '.png', - '.jpg', - '.webp', - '.webm', - '.mp4' + 'image', + 'video' ], - value = facefusion.globals.target_path if is_target_image or is_target_video else None + value = state_manager.get_item('target_path') if is_target_image or is_target_video else None ) - target_image_args =\ + target_image_options : ComponentOptions =\ { 'show_label': False, 'visible': False } - target_video_args =\ + target_video_options : ComponentOptions =\ { 'show_label': False, 'visible': False } if is_target_image: - target_image_args['value'] = TARGET_FILE.value['name'] - target_image_args['visible'] = True + target_image_options['value'] = TARGET_FILE.value.get('path') + target_image_options['visible'] = True if is_target_video: - if get_file_size(facefusion.globals.target_path) > FILE_SIZE_LIMIT: - preview_vision_frame = normalize_frame_color(get_video_frame(facefusion.globals.target_path)) - target_image_args['value'] = preview_vision_frame - target_image_args['visible'] = True + if get_file_size(state_manager.get_item('target_path')) > FILE_SIZE_LIMIT: + preview_vision_frame = normalize_frame_color(get_video_frame(state_manager.get_item('target_path'))) + target_image_options['value'] = preview_vision_frame + target_image_options['visible'] = True else: - target_video_args['value'] = TARGET_FILE.value['name'] - target_video_args['visible'] = True - TARGET_IMAGE = gradio.Image(**target_image_args) - TARGET_VIDEO = gradio.Video(**target_video_args) + target_video_options['value'] = TARGET_FILE.value.get('path') + target_video_options['visible'] = True + TARGET_IMAGE = gradio.Image(**target_image_options) + TARGET_VIDEO = gradio.Video(**target_video_options) register_ui_component('target_image', TARGET_IMAGE) register_ui_component('target_video', TARGET_VIDEO) @@ -71,13 +68,13 @@ def update(file : File) -> Tuple[gradio.Image, gradio.Video]: clear_reference_faces() clear_static_faces() if file and is_image(file.name): - facefusion.globals.target_path = file.name + state_manager.set_item('target_path', file.name) return gradio.Image(value = file.name, visible = True), gradio.Video(value = None, visible = False) if file and is_video(file.name): - facefusion.globals.target_path = file.name + state_manager.set_item('target_path', file.name) if get_file_size(file.name) > FILE_SIZE_LIMIT: preview_vision_frame = normalize_frame_color(get_video_frame(file.name)) return gradio.Image(value = preview_vision_frame, visible = True), gradio.Video(value = None, visible = False) return gradio.Image(value = None, visible = False), gradio.Video(value = file.name, visible = True) - facefusion.globals.target_path = None + state_manager.clear_item('target_path') return gradio.Image(value = None, visible = False), gradio.Video(value = None, visible = False) diff --git a/facefusion/uis/components/temp_frame.py b/facefusion/uis/components/temp_frame.py index a601653f..c1a98389 100644 --- a/facefusion/uis/components/temp_frame.py +++ b/facefusion/uis/components/temp_frame.py @@ -1,11 +1,11 @@ from typing import Optional + import gradio -import facefusion.globals import facefusion.choices -from facefusion import wording -from facefusion.typing import TempFrameFormat +from facefusion import state_manager, wording from facefusion.filesystem import is_video +from facefusion.typing import TempFrameFormat from facefusion.uis.core import get_ui_component TEMP_FRAME_FORMAT_DROPDOWN : Optional[gradio.Dropdown] = None @@ -17,13 +17,14 @@ def render() -> None: TEMP_FRAME_FORMAT_DROPDOWN = gradio.Dropdown( label = wording.get('uis.temp_frame_format_dropdown'), choices = facefusion.choices.temp_frame_formats, - value = facefusion.globals.temp_frame_format, - visible = is_video(facefusion.globals.target_path) + value = state_manager.get_item('temp_frame_format'), + visible = is_video(state_manager.get_item('target_path')) ) def listen() -> None: TEMP_FRAME_FORMAT_DROPDOWN.change(update_temp_frame_format, inputs = TEMP_FRAME_FORMAT_DROPDOWN) + target_video = get_ui_component('target_video') if target_video: for method in [ 'upload', 'change', 'clear' ]: @@ -31,11 +32,11 @@ def listen() -> None: def remote_update() -> gradio.Dropdown: - if is_video(facefusion.globals.target_path): + if is_video(state_manager.get_item('target_path')): return gradio.Dropdown(visible = True) return gradio.Dropdown(visible = False) def update_temp_frame_format(temp_frame_format : TempFrameFormat) -> None: - facefusion.globals.temp_frame_format = temp_frame_format + state_manager.set_item('temp_frame_format', temp_frame_format) diff --git a/facefusion/uis/components/terminal.py b/facefusion/uis/components/terminal.py new file mode 100644 index 00000000..bbe2a35b --- /dev/null +++ b/facefusion/uis/components/terminal.py @@ -0,0 +1,82 @@ +import io +import logging +import math +import os +from typing import Optional + +import gradio +from tqdm import tqdm + +from facefusion import logger, state_manager, wording +from facefusion.choices import log_level_set +from facefusion.typing import LogLevel + +LOG_LEVEL_DROPDOWN : Optional[gradio.Dropdown] = None +TERMINAL_TEXTBOX : Optional[gradio.Textbox] = None +LOG_BUFFER = io.StringIO() +LOG_HANDLER = logging.StreamHandler(LOG_BUFFER) +TQDM_UPDATE = tqdm.update + + +def render() -> None: + global LOG_LEVEL_DROPDOWN + global TERMINAL_TEXTBOX + + LOG_LEVEL_DROPDOWN = gradio.Dropdown( + label = wording.get('uis.log_level_dropdown'), + choices = log_level_set.keys(), + value = state_manager.get_item('log_level') + ) + TERMINAL_TEXTBOX = gradio.Textbox( + label = wording.get('uis.terminal_textbox'), + value = read_logs, + lines = 8, + max_lines = 8, + every = 0.5, + show_copy_button = True + ) + + +def listen() -> None: + global LOG_LEVEL_DROPDOWN + + LOG_LEVEL_DROPDOWN.change(update_log_level, inputs = LOG_LEVEL_DROPDOWN) + logger.get_package_logger().addHandler(LOG_HANDLER) + tqdm.update = tqdm_update + + +def update_log_level(log_level : LogLevel) -> None: + state_manager.set_item('log_level', log_level) + logger.init(state_manager.get_item('log_level')) + + +def tqdm_update(self : tqdm, n : int = 1) -> None: + TQDM_UPDATE(self, n) + output = create_tqdm_output(self) + + if output: + LOG_BUFFER.seek(0) + log_buffer = LOG_BUFFER.read() + lines = log_buffer.splitlines() + if lines and lines[-1].startswith(self.desc): + position = log_buffer.rfind(lines[-1]) + LOG_BUFFER.seek(position) + else: + LOG_BUFFER.seek(0, os.SEEK_END) + LOG_BUFFER.write(output + os.linesep) + LOG_BUFFER.flush() + + +def create_tqdm_output(self : tqdm) -> Optional[str]: + if not self.disable and self.desc and self.total: + percentage = math.floor(self.n / self.total * 100) + return self.desc + wording.get('colon') + ' ' + str(percentage) + '% (' + str(self.n) + '/' + str(self.total) + ')' + if not self.disable and self.desc and self.unit: + return self.desc + wording.get('colon') + ' ' + str(self.n) + ' ' + self.unit + return None + + +def read_logs() -> str: + LOG_BUFFER.seek(0) + logs = LOG_BUFFER.read().rstrip() + return logs diff --git a/facefusion/uis/components/trim_frame.py b/facefusion/uis/components/trim_frame.py index c5c6c40d..c264f2a9 100644 --- a/facefusion/uis/components/trim_frame.py +++ b/facefusion/uis/components/trim_frame.py @@ -1,79 +1,62 @@ -from typing import Any, Dict, Tuple, Optional -import gradio +from typing import Optional, Tuple -import facefusion.globals -from facefusion import wording +from gradio_rangeslider import RangeSlider + +from facefusion import state_manager, wording from facefusion.face_store import clear_static_faces -from facefusion.vision import count_video_frame_total from facefusion.filesystem import is_video -from facefusion.uis.core import get_ui_components, register_ui_component +from facefusion.uis.core import get_ui_components +from facefusion.uis.typing import ComponentOptions +from facefusion.vision import count_video_frame_total -TRIM_FRAME_START_SLIDER : Optional[gradio.Slider] = None -TRIM_FRAME_END_SLIDER : Optional[gradio.Slider] = None +TRIM_FRAME_RANGE_SLIDER : Optional[RangeSlider] = None def render() -> None: - global TRIM_FRAME_START_SLIDER - global TRIM_FRAME_END_SLIDER + global TRIM_FRAME_RANGE_SLIDER - trim_frame_start_slider_args : Dict[str, Any] =\ + trim_frame_range_slider_options : ComponentOptions =\ { - 'label': wording.get('uis.trim_frame_start_slider'), - 'step': 1, + 'label': wording.get('uis.trim_frame_slider'), 'minimum': 0, - 'maximum': 100, + 'step': 1, 'visible': False } - trim_frame_end_slider_args : Dict[str, Any] =\ - { - 'label': wording.get('uis.trim_frame_end_slider'), - 'step': 1, - 'minimum': 0, - 'maximum': 100, - 'visible': False - } - if is_video(facefusion.globals.target_path): - video_frame_total = count_video_frame_total(facefusion.globals.target_path) - trim_frame_start_slider_args['value'] = facefusion.globals.trim_frame_start or 0 - trim_frame_start_slider_args['maximum'] = video_frame_total - trim_frame_start_slider_args['visible'] = True - trim_frame_end_slider_args['value'] = facefusion.globals.trim_frame_end or video_frame_total - trim_frame_end_slider_args['maximum'] = video_frame_total - trim_frame_end_slider_args['visible'] = True - with gradio.Row(): - TRIM_FRAME_START_SLIDER = gradio.Slider(**trim_frame_start_slider_args) - TRIM_FRAME_END_SLIDER = gradio.Slider(**trim_frame_end_slider_args) - register_ui_component('trim_frame_start_slider', TRIM_FRAME_START_SLIDER) - register_ui_component('trim_frame_end_slider', TRIM_FRAME_END_SLIDER) + if is_video(state_manager.get_item('target_path')): + video_frame_total = count_video_frame_total(state_manager.get_item('target_path')) + trim_frame_start = state_manager.get_item('trim_frame_start') or 0 + trim_frame_end = state_manager.get_item('trim_frame_end') or video_frame_total + trim_frame_range_slider_options['maximum'] = video_frame_total + trim_frame_range_slider_options['value'] = (trim_frame_start, trim_frame_end) + trim_frame_range_slider_options['visible'] = True + TRIM_FRAME_RANGE_SLIDER = RangeSlider(**trim_frame_range_slider_options) def listen() -> None: - TRIM_FRAME_START_SLIDER.release(update_trim_frame_start, inputs = TRIM_FRAME_START_SLIDER) - TRIM_FRAME_END_SLIDER.release(update_trim_frame_end, inputs = TRIM_FRAME_END_SLIDER) + TRIM_FRAME_RANGE_SLIDER.release(update_trim_frame, inputs = TRIM_FRAME_RANGE_SLIDER) for ui_component in get_ui_components( [ 'target_image', 'target_video' ]): for method in [ 'upload', 'change', 'clear' ]: - getattr(ui_component, method)(remote_update, outputs = [ TRIM_FRAME_START_SLIDER, TRIM_FRAME_END_SLIDER ]) + getattr(ui_component, method)(remote_update, outputs = [ TRIM_FRAME_RANGE_SLIDER ]) -def remote_update() -> Tuple[gradio.Slider, gradio.Slider]: - if is_video(facefusion.globals.target_path): - video_frame_total = count_video_frame_total(facefusion.globals.target_path) - facefusion.globals.trim_frame_start = None - facefusion.globals.trim_frame_end = None - return gradio.Slider(value = 0, maximum = video_frame_total, visible = True), gradio.Slider(value = video_frame_total, maximum = video_frame_total, visible = True) - return gradio.Slider(value = None, maximum = None, visible = False), gradio.Slider(value = None, maximum = None, visible = False) +def remote_update() -> RangeSlider: + if is_video(state_manager.get_item('target_path')): + video_frame_total = count_video_frame_total(state_manager.get_item('target_path')) + state_manager.clear_item('trim_frame_start') + state_manager.clear_item('trim_frame_end') + return RangeSlider(value = (0, video_frame_total), maximum = video_frame_total, visible = True) + return RangeSlider(visible = False) -def update_trim_frame_start(trim_frame_start : int) -> None: +def update_trim_frame(trim_frame : Tuple[float, float]) -> None: clear_static_faces() - facefusion.globals.trim_frame_start = trim_frame_start if trim_frame_start > 0 else None - - -def update_trim_frame_end(trim_frame_end : int) -> None: - clear_static_faces() - video_frame_total = count_video_frame_total(facefusion.globals.target_path) - facefusion.globals.trim_frame_end = trim_frame_end if trim_frame_end < video_frame_total else None + trim_frame_start, trim_frame_end = trim_frame + video_frame_total = count_video_frame_total(state_manager.get_item('target_path')) + trim_frame_start = int(trim_frame_start) if trim_frame_start > 0 else None + trim_frame_end = int(trim_frame_end) if trim_frame_end < video_frame_total else None + state_manager.set_item('trim_frame_start', trim_frame_start) + state_manager.set_item('trim_frame_end', trim_frame_end) diff --git a/facefusion/uis/components/ui_workflow.py b/facefusion/uis/components/ui_workflow.py new file mode 100644 index 00000000..47711a38 --- /dev/null +++ b/facefusion/uis/components/ui_workflow.py @@ -0,0 +1,21 @@ +from typing import Optional + +import gradio + +import facefusion +from facefusion import state_manager, wording +from facefusion.uis.core import register_ui_component + +UI_WORKFLOW_DROPDOWN : Optional[gradio.Dropdown] = None + + +def render() -> None: + global UI_WORKFLOW_DROPDOWN + + UI_WORKFLOW_DROPDOWN = gradio.Dropdown( + label = wording.get('uis.ui_workflow'), + choices = facefusion.choices.ui_workflows, + value = state_manager.get_item('ui_workflow'), + interactive = True + ) + register_ui_component('ui_workflow_dropdown', UI_WORKFLOW_DROPDOWN) diff --git a/facefusion/uis/components/webcam.py b/facefusion/uis/components/webcam.py index 8571d9e1..cc3fcebf 100644 --- a/facefusion/uis/components/webcam.py +++ b/facefusion/uis/components/webcam.py @@ -1,26 +1,25 @@ -from typing import Optional, Generator, Deque import os import subprocess +from collections import deque +from concurrent.futures import ThreadPoolExecutor +from typing import Deque, Generator, Optional + import cv2 import gradio -from time import sleep -from concurrent.futures import ThreadPoolExecutor -from collections import deque from tqdm import tqdm -import facefusion.globals -from facefusion import logger, wording +from facefusion import logger, state_manager, wording from facefusion.audio import create_empty_audio_frame from facefusion.common_helper import is_windows from facefusion.content_analyser import analyse_stream -from facefusion.filesystem import filter_image_paths -from facefusion.typing import VisionFrame, Face, Fps -from facefusion.face_analyser import get_average_face -from facefusion.processors.frame.core import get_frame_processors_modules, load_frame_processor_module +from facefusion.face_analyser import get_average_face, get_many_faces from facefusion.ffmpeg import open_ffmpeg -from facefusion.vision import normalize_frame_color, read_static_images, unpack_resolution +from facefusion.filesystem import filter_image_paths +from facefusion.processors.core import get_processors_modules +from facefusion.typing import Face, Fps, VisionFrame +from facefusion.uis.core import get_ui_component from facefusion.uis.typing import StreamMode, WebcamMode -from facefusion.uis.core import get_ui_component, get_ui_components +from facefusion.vision import normalize_frame_color, read_static_images, unpack_resolution WEBCAM_CAPTURE : Optional[cv2.VideoCapture] = None WEBCAM_IMAGE : Optional[gradio.Image] = None @@ -69,32 +68,21 @@ def render() -> None: def listen() -> None: - start_event = None webcam_mode_radio = get_ui_component('webcam_mode_radio') webcam_resolution_dropdown = get_ui_component('webcam_resolution_dropdown') webcam_fps_slider = get_ui_component('webcam_fps_slider') + if webcam_mode_radio and webcam_resolution_dropdown and webcam_fps_slider: start_event = WEBCAM_START_BUTTON.click(start, inputs = [ webcam_mode_radio, webcam_resolution_dropdown, webcam_fps_slider ], outputs = WEBCAM_IMAGE) - WEBCAM_STOP_BUTTON.click(stop, cancels = start_event) - - for ui_component in get_ui_components( - [ - 'frame_processors_checkbox_group', - 'face_swapper_model_dropdown', - 'face_enhancer_model_dropdown', - 'frame_enhancer_model_dropdown', - 'lip_syncer_model_dropdown', - 'source_image' - ]): - ui_component.change(update, cancels = start_event) + WEBCAM_STOP_BUTTON.click(stop, cancels = start_event) def start(webcam_mode : WebcamMode, webcam_resolution : str, webcam_fps : Fps) -> Generator[VisionFrame, None, None]: - facefusion.globals.face_selector_mode = 'one' - facefusion.globals.face_analyser_order = 'large-small' - source_image_paths = filter_image_paths(facefusion.globals.source_paths) + state_manager.set_item('face_selector_mode', 'one') + source_image_paths = filter_image_paths(state_manager.get_item('source_paths')) source_frames = read_static_images(source_image_paths) - source_face = get_average_face(source_frames) + source_faces = get_many_faces(source_frames) + source_face = get_average_face(source_faces) stream = None if webcam_mode in [ 'udp', 'v4l2' ]: @@ -118,34 +106,33 @@ def start(webcam_mode : WebcamMode, webcam_resolution : str, webcam_fps : Fps) - def multi_process_capture(source_face : Face, webcam_capture : cv2.VideoCapture, webcam_fps : Fps) -> Generator[VisionFrame, None, None]: - with tqdm(desc = wording.get('processing'), unit = 'frame', ascii = ' =', disable = facefusion.globals.log_level in [ 'warn', 'error' ]) as progress: - with ThreadPoolExecutor(max_workers = facefusion.globals.execution_thread_count) as executor: + deque_capture_frames: Deque[VisionFrame] = deque() + with tqdm(desc = wording.get('processing'), unit = 'frame', ascii = ' =', disable = state_manager.get_item('log_level') in [ 'warn', 'error' ]) as progress: + progress.set_postfix( + { + 'execution_providers': state_manager.get_item('execution_providers'), + 'execution_thread_count': state_manager.get_item('execution_thread_count') + }) + with ThreadPoolExecutor(max_workers = state_manager.get_item('execution_thread_count')) as executor: futures = [] - deque_capture_frames : Deque[VisionFrame] = deque() + while webcam_capture and webcam_capture.isOpened(): _, capture_frame = webcam_capture.read() if analyse_stream(capture_frame, webcam_fps): return future = executor.submit(process_stream_frame, source_face, capture_frame) futures.append(future) + for future_done in [ future for future in futures if future.done() ]: capture_frame = future_done.result() deque_capture_frames.append(capture_frame) futures.remove(future_done) + while deque_capture_frames: progress.update() yield deque_capture_frames.popleft() -def update() -> None: - for frame_processor in facefusion.globals.frame_processors: - frame_processor_module = load_frame_processor_module(frame_processor) - while not frame_processor_module.post_check(): - logger.disable() - sleep(0.5) - logger.enable() - - def stop() -> gradio.Image: clear_webcam_capture() return gradio.Image(value = None) @@ -153,16 +140,16 @@ def stop() -> gradio.Image: def process_stream_frame(source_face : Face, target_vision_frame : VisionFrame) -> VisionFrame: source_audio_frame = create_empty_audio_frame() - for frame_processor_module in get_frame_processors_modules(facefusion.globals.frame_processors): + for processor_module in get_processors_modules(state_manager.get_item('processors')): logger.disable() - if frame_processor_module.pre_process('stream'): - logger.enable() - target_vision_frame = frame_processor_module.process_frame( + if processor_module.pre_process('stream'): + target_vision_frame = processor_module.process_frame( { 'source_face': source_face, 'source_audio_frame': source_audio_frame, 'target_vision_frame': target_vision_frame }) + logger.enable() return target_vision_frame @@ -176,5 +163,5 @@ def open_stream(stream_mode : StreamMode, stream_resolution : str, stream_fps : if device_name: commands.extend([ '-f', 'v4l2', '/dev/' + device_name ]) except FileNotFoundError: - logger.error(wording.get('stream_not_loaded').format(stream_mode = stream_mode), __name__.upper()) + logger.error(wording.get('stream_not_loaded').format(stream_mode = stream_mode), __name__) return open_ffmpeg(commands) diff --git a/facefusion/uis/components/webcam_options.py b/facefusion/uis/components/webcam_options.py index ea707b05..cbe7390c 100644 --- a/facefusion/uis/components/webcam_options.py +++ b/facefusion/uis/components/webcam_options.py @@ -1,4 +1,5 @@ from typing import Optional + import gradio from facefusion import wording diff --git a/facefusion/uis/core.py b/facefusion/uis/core.py index a664c714..e3b338f4 100644 --- a/facefusion/uis/core.py +++ b/facefusion/uis/core.py @@ -1,18 +1,22 @@ -from typing import Dict, Optional, Any, List -from types import ModuleType -import os import importlib -import sys -import gradio +import os +import warnings +from types import ModuleType +from typing import Any, Dict, List, Optional -import facefusion.globals -from facefusion.uis import overrides -from facefusion import metadata, logger, wording -from facefusion.uis.typing import Component, ComponentName +import gradio +from gradio.themes import Size + +from facefusion import logger, metadata, state_manager, wording +from facefusion.exit_helper import hard_exit from facefusion.filesystem import resolve_relative_path +from facefusion.uis import overrides +from facefusion.uis.typing import Component, ComponentName os.environ['GRADIO_ANALYTICS_ENABLED'] = '0' +warnings.filterwarnings('ignore', category = UserWarning, module = 'gradio') + gradio.processing_utils.encode_array_to_base64 = overrides.encode_array_to_base64 gradio.processing_utils.encode_pil_to_base64 = overrides.encode_pil_to_base64 @@ -35,12 +39,12 @@ def load_ui_layout_module(ui_layout : str) -> Any: if not hasattr(ui_layout_module, method_name): raise NotImplementedError except ModuleNotFoundError as exception: - logger.error(wording.get('ui_layout_not_loaded').format(ui_layout = ui_layout), __name__.upper()) - logger.debug(exception.msg, __name__.upper()) - sys.exit(1) + logger.error(wording.get('ui_layout_not_loaded').format(ui_layout = ui_layout), __name__) + logger.debug(exception.msg, __name__) + hard_exit(1) except NotImplementedError: - logger.error(wording.get('ui_layout_not_implemented').format(ui_layout = ui_layout), __name__.upper()) - sys.exit(1) + logger.error(wording.get('ui_layout_not_implemented').format(ui_layout = ui_layout), __name__) + hard_exit(1) return ui_layout_module @@ -75,9 +79,9 @@ def register_ui_component(component_name : ComponentName, component: Component) def launch() -> None: - ui_layouts_total = len(facefusion.globals.ui_layouts) - with gradio.Blocks(theme = get_theme(), css = get_css(), title = metadata.get('name') + ' ' + metadata.get('version')) as ui: - for ui_layout in facefusion.globals.ui_layouts: + ui_layouts_total = len(state_manager.get_item('ui_layouts')) + with gradio.Blocks(theme = get_theme(), css = get_css(), title = metadata.get('name') + ' ' + metadata.get('version'), fill_width = True) as ui: + for ui_layout in state_manager.get_item('ui_layouts'): ui_layout_module = load_ui_layout_module(ui_layout) if ui_layout_module.pre_render(): if ui_layouts_total > 1: @@ -88,7 +92,7 @@ def launch() -> None: ui_layout_module.render() ui_layout_module.listen() - for ui_layout in facefusion.globals.ui_layouts: + for ui_layout in state_manager.get_item('ui_layouts'): ui_layout_module = load_ui_layout_module(ui_layout) ui_layout_module.run(ui) @@ -97,24 +101,34 @@ def get_theme() -> gradio.Theme: return gradio.themes.Base( primary_hue = gradio.themes.colors.red, secondary_hue = gradio.themes.colors.neutral, + radius_size = Size( + xxs = '0.375rem', + xs = '0.375rem', + sm = '0.375rem', + md = '0.375rem', + lg = '0.375rem', + xl = '0.375rem', + xxl = '0.375rem', + ), font = gradio.themes.GoogleFont('Open Sans') ).set( background_fill_primary = '*neutral_100', block_background_fill = 'white', block_border_width = '0', - block_label_background_fill = '*primary_100', - block_label_background_fill_dark = '*primary_600', + block_label_background_fill = '*neutral_100', + block_label_background_fill_dark = '*neutral_700', block_label_border_width = 'none', block_label_margin = '0.5rem', block_label_radius = '*radius_md', - block_label_text_color = '*primary_500', + block_label_text_color = '*neutral_700', + block_label_text_size = '*text_sm', block_label_text_color_dark = 'white', block_label_text_weight = '600', - block_title_background_fill = '*primary_100', - block_title_background_fill_dark = '*primary_600', + block_title_background_fill = '*neutral_100', + block_title_background_fill_dark = '*neutral_700', block_title_padding = '*block_label_padding', block_title_radius = '*block_label_radius', - block_title_text_color = '*primary_500', + block_title_text_color = '*neutral_700', block_title_text_size = '*text_sm', block_title_text_weight = '600', block_padding = '0.5rem', @@ -151,6 +165,5 @@ def get_theme() -> gradio.Theme: def get_css() -> str: - fixes_css_path = resolve_relative_path('uis/assets/fixes.css') overrides_css_path = resolve_relative_path('uis/assets/overrides.css') - return open(fixes_css_path, 'r').read() + open(overrides_css_path, 'r').read() + return open(overrides_css_path, 'r').read() diff --git a/facefusion/uis/layouts/benchmark.py b/facefusion/uis/layouts/benchmark.py index 0a3324fe..7f501b81 100644 --- a/facefusion/uis/layouts/benchmark.py +++ b/facefusion/uis/layouts/benchmark.py @@ -1,24 +1,23 @@ -import multiprocessing import gradio -import facefusion.globals +from facefusion import state_manager from facefusion.download import conditional_download -from facefusion.uis.components import about, frame_processors, frame_processors_options, execution, execution_thread_count, execution_queue_count, memory, benchmark_options, benchmark +from facefusion.uis.components import about, age_modifier_options, benchmark, benchmark_options, execution, execution_queue_count, execution_thread_count, expression_restorer_options, face_debugger_options, face_editor_options, face_enhancer_options, face_swapper_options, frame_colorizer_options, frame_enhancer_options, lip_syncer_options, memory, processors def pre_check() -> bool: - if not facefusion.globals.skip_download: + if not state_manager.get_item('skip_download'): conditional_download('.assets/examples', [ - 'https://github.com/facefusion/facefusion-assets/releases/download/examples/source.jpg', - 'https://github.com/facefusion/facefusion-assets/releases/download/examples/source.mp3', - 'https://github.com/facefusion/facefusion-assets/releases/download/examples/target-240p.mp4', - 'https://github.com/facefusion/facefusion-assets/releases/download/examples/target-360p.mp4', - 'https://github.com/facefusion/facefusion-assets/releases/download/examples/target-540p.mp4', - 'https://github.com/facefusion/facefusion-assets/releases/download/examples/target-720p.mp4', - 'https://github.com/facefusion/facefusion-assets/releases/download/examples/target-1080p.mp4', - 'https://github.com/facefusion/facefusion-assets/releases/download/examples/target-1440p.mp4', - 'https://github.com/facefusion/facefusion-assets/releases/download/examples/target-2160p.mp4' + 'https://github.com/facefusion/facefusion-assets/releases/download/examples-3.0.0/source.jpg', + 'https://github.com/facefusion/facefusion-assets/releases/download/examples-3.0.0/source.mp3', + 'https://github.com/facefusion/facefusion-assets/releases/download/examples-3.0.0/target-240p.mp4', + 'https://github.com/facefusion/facefusion-assets/releases/download/examples-3.0.0/target-360p.mp4', + 'https://github.com/facefusion/facefusion-assets/releases/download/examples-3.0.0/target-540p.mp4', + 'https://github.com/facefusion/facefusion-assets/releases/download/examples-3.0.0/target-720p.mp4', + 'https://github.com/facefusion/facefusion-assets/releases/download/examples-3.0.0/target-1080p.mp4', + 'https://github.com/facefusion/facefusion-assets/releases/download/examples-3.0.0/target-1440p.mp4', + 'https://github.com/facefusion/facefusion-assets/releases/download/examples-3.0.0/target-2160p.mp4' ]) return True return False @@ -31,13 +30,29 @@ def pre_render() -> bool: def render() -> gradio.Blocks: with gradio.Blocks() as layout: with gradio.Row(): - with gradio.Column(scale = 2): + with gradio.Column(scale = 4): with gradio.Blocks(): about.render() with gradio.Blocks(): - frame_processors.render() + processors.render() with gradio.Blocks(): - frame_processors_options.render() + age_modifier_options.render() + with gradio.Blocks(): + expression_restorer_options.render() + with gradio.Blocks(): + face_debugger_options.render() + with gradio.Blocks(): + face_editor_options.render() + with gradio.Blocks(): + face_enhancer_options.render() + with gradio.Blocks(): + face_swapper_options.render() + with gradio.Blocks(): + frame_colorizer_options.render() + with gradio.Blocks(): + frame_enhancer_options.render() + with gradio.Blocks(): + lip_syncer_options.render() with gradio.Blocks(): execution.render() execution_thread_count.render() @@ -46,15 +61,23 @@ def render() -> gradio.Blocks: memory.render() with gradio.Blocks(): benchmark_options.render() - with gradio.Column(scale = 5): + with gradio.Column(scale = 11): with gradio.Blocks(): benchmark.render() return layout def listen() -> None: - frame_processors.listen() - frame_processors_options.listen() + processors.listen() + age_modifier_options.listen() + expression_restorer_options.listen() + face_debugger_options.listen() + face_editor_options.listen() + face_enhancer_options.listen() + face_swapper_options.listen() + frame_colorizer_options.listen() + frame_enhancer_options.listen() + lip_syncer_options.listen() execution.listen() execution_thread_count.listen() execution_queue_count.listen() @@ -63,5 +86,4 @@ def listen() -> None: def run(ui : gradio.Blocks) -> None: - concurrency_count = min(2, multiprocessing.cpu_count()) - ui.queue(concurrency_count = concurrency_count).launch(show_api = False, quiet = True, inbrowser = facefusion.globals.open_browser) + ui.launch(favicon_path = 'facefusion.ico', inbrowser = state_manager.get_item('open_browser')) diff --git a/facefusion/uis/layouts/default.py b/facefusion/uis/layouts/default.py index 67fff4fb..c5cf2d61 100755 --- a/facefusion/uis/layouts/default.py +++ b/facefusion/uis/layouts/default.py @@ -1,8 +1,7 @@ -import multiprocessing import gradio -import facefusion.globals -from facefusion.uis.components import about, frame_processors, frame_processors_options, execution, execution_thread_count, execution_queue_count, memory, temp_frame, output_options, common_options, source, target, output, preview, trim_frame, face_analyser, face_selector, face_masker +from facefusion import state_manager +from facefusion.uis.components import about, age_modifier_options, common_options, execution, execution_queue_count, execution_thread_count, expression_restorer_options, face_debugger_options, face_detector, face_editor_options, face_enhancer_options, face_landmarker, face_masker, face_selector, face_swapper_options, frame_colorizer_options, frame_enhancer_options, instant_runner, job_manager, job_runner, lip_syncer_options, memory, output, output_options, preview, processors, source, target, temp_frame, terminal, trim_frame, ui_workflow def pre_check() -> bool: @@ -16,13 +15,29 @@ def pre_render() -> bool: def render() -> gradio.Blocks: with gradio.Blocks() as layout: with gradio.Row(): - with gradio.Column(scale = 2): + with gradio.Column(scale = 4): with gradio.Blocks(): about.render() with gradio.Blocks(): - frame_processors.render() + processors.render() with gradio.Blocks(): - frame_processors_options.render() + age_modifier_options.render() + with gradio.Blocks(): + expression_restorer_options.render() + with gradio.Blocks(): + face_debugger_options.render() + with gradio.Blocks(): + face_editor_options.render() + with gradio.Blocks(): + face_enhancer_options.render() + with gradio.Blocks(): + face_swapper_options.render() + with gradio.Blocks(): + frame_colorizer_options.render() + with gradio.Blocks(): + frame_enhancer_options.render() + with gradio.Blocks(): + lip_syncer_options.render() with gradio.Blocks(): execution.render() execution_thread_count.render() @@ -33,14 +48,21 @@ def render() -> gradio.Blocks: temp_frame.render() with gradio.Blocks(): output_options.render() - with gradio.Column(scale = 2): + with gradio.Column(scale = 4): with gradio.Blocks(): source.render() with gradio.Blocks(): target.render() with gradio.Blocks(): output.render() - with gradio.Column(scale = 3): + with gradio.Blocks(): + terminal.render() + with gradio.Blocks(): + ui_workflow.render() + instant_runner.render() + job_runner.render() + job_manager.render() + with gradio.Column(scale = 7): with gradio.Blocks(): preview.render() with gradio.Blocks(): @@ -50,15 +72,25 @@ def render() -> gradio.Blocks: with gradio.Blocks(): face_masker.render() with gradio.Blocks(): - face_analyser.render() + face_detector.render() + with gradio.Blocks(): + face_landmarker.render() with gradio.Blocks(): common_options.render() return layout def listen() -> None: - frame_processors.listen() - frame_processors_options.listen() + processors.listen() + age_modifier_options.listen() + expression_restorer_options.listen() + face_debugger_options.listen() + face_editor_options.listen() + face_enhancer_options.listen() + face_swapper_options.listen() + frame_colorizer_options.listen() + frame_enhancer_options.listen() + lip_syncer_options.listen() execution.listen() execution_thread_count.listen() execution_queue_count.listen() @@ -68,14 +100,18 @@ def listen() -> None: source.listen() target.listen() output.listen() + instant_runner.listen() + job_runner.listen() + job_manager.listen() + terminal.listen() preview.listen() trim_frame.listen() face_selector.listen() face_masker.listen() - face_analyser.listen() + face_detector.listen() + face_landmarker.listen() common_options.listen() def run(ui : gradio.Blocks) -> None: - concurrency_count = min(8, multiprocessing.cpu_count()) - ui.queue(concurrency_count = concurrency_count).launch(show_api = False, quiet = True, inbrowser = facefusion.globals.open_browser) + ui.launch(favicon_path = 'facefusion.ico', inbrowser = state_manager.get_item('open_browser')) diff --git a/facefusion/uis/layouts/jobs.py b/facefusion/uis/layouts/jobs.py new file mode 100755 index 00000000..740e31e8 --- /dev/null +++ b/facefusion/uis/layouts/jobs.py @@ -0,0 +1,35 @@ +import gradio + +from facefusion import state_manager +from facefusion.uis.components import about, job_list, job_list_options + + +def pre_check() -> bool: + return True + + +def pre_render() -> bool: + return True + + +def render() -> gradio.Blocks: + with gradio.Blocks() as layout: + with gradio.Row(): + with gradio.Column(scale = 4): + with gradio.Blocks(): + about.render() + with gradio.Blocks(): + job_list_options.render() + with gradio.Column(scale = 11): + with gradio.Blocks(): + job_list.render() + return layout + + +def listen() -> None: + job_list_options.listen() + job_list.listen() + + +def run(ui : gradio.Blocks) -> None: + ui.launch(favicon_path = 'facefusion.ico', inbrowser = state_manager.get_item('open_browser')) diff --git a/facefusion/uis/layouts/webcam.py b/facefusion/uis/layouts/webcam.py index 424ab221..26f7f10f 100644 --- a/facefusion/uis/layouts/webcam.py +++ b/facefusion/uis/layouts/webcam.py @@ -1,8 +1,7 @@ -import multiprocessing import gradio -import facefusion.globals -from facefusion.uis.components import about, frame_processors, frame_processors_options, execution, execution_thread_count, webcam_options, source, webcam +from facefusion import state_manager +from facefusion.uis.components import about, age_modifier_options, execution, execution_thread_count, face_debugger_options, face_enhancer_options, face_swapper_options, frame_colorizer_options, frame_enhancer_options, lip_syncer_options, processors, source, webcam, webcam_options def pre_check() -> bool: @@ -16,13 +15,25 @@ def pre_render() -> bool: def render() -> gradio.Blocks: with gradio.Blocks() as layout: with gradio.Row(): - with gradio.Column(scale = 2): + with gradio.Column(scale = 4): with gradio.Blocks(): about.render() with gradio.Blocks(): - frame_processors.render() + processors.render() with gradio.Blocks(): - frame_processors_options.render() + age_modifier_options.render() + with gradio.Blocks(): + face_debugger_options.render() + with gradio.Blocks(): + face_enhancer_options.render() + with gradio.Blocks(): + face_swapper_options.render() + with gradio.Blocks(): + frame_colorizer_options.render() + with gradio.Blocks(): + frame_enhancer_options.render() + with gradio.Blocks(): + lip_syncer_options.render() with gradio.Blocks(): execution.render() execution_thread_count.render() @@ -30,15 +41,21 @@ def render() -> gradio.Blocks: webcam_options.render() with gradio.Blocks(): source.render() - with gradio.Column(scale = 5): + with gradio.Column(scale = 11): with gradio.Blocks(): webcam.render() return layout def listen() -> None: - frame_processors.listen() - frame_processors_options.listen() + processors.listen() + age_modifier_options.listen() + face_debugger_options.listen() + face_enhancer_options.listen() + face_swapper_options.listen() + frame_colorizer_options.listen() + frame_enhancer_options.listen() + lip_syncer_options.listen() execution.listen() execution_thread_count.listen() source.listen() @@ -46,5 +63,4 @@ def listen() -> None: def run(ui : gradio.Blocks) -> None: - concurrency_count = min(2, multiprocessing.cpu_count()) - ui.queue(concurrency_count = concurrency_count).launch(show_api = False, quiet = True, inbrowser = facefusion.globals.open_browser) + ui.launch(favicon_path = 'facefusion.ico', inbrowser = state_manager.get_item('open_browser')) diff --git a/facefusion/uis/overrides.py b/facefusion/uis/overrides.py index 7f3c4707..1a1ee11d 100644 --- a/facefusion/uis/overrides.py +++ b/facefusion/uis/overrides.py @@ -1,11 +1,13 @@ +import base64 from typing import Any + import cv2 import numpy -import base64 +from numpy._typing import NDArray -def encode_array_to_base64(array : numpy.ndarray[Any, Any]) -> str: - buffer = cv2.imencode('.jpg', array[:, :, ::-1])[1] +def encode_array_to_base64(array : NDArray[Any]) -> str: + _, buffer = cv2.imencode('.jpg', array[:, :, ::-1]) return 'data:image/jpeg;base64,' + base64.b64encode(buffer.tobytes()).decode('utf-8') diff --git a/facefusion/uis/typing.py b/facefusion/uis/typing.py index 59d06f53..502b6a22 100644 --- a/facefusion/uis/typing.py +++ b/facefusion/uis/typing.py @@ -1,53 +1,80 @@ -from typing import Literal, Any, IO -import gradio +from typing import Any, Dict, IO, Literal File = IO[Any] -Component = gradio.File or gradio.Image or gradio.Video or gradio.Slider +Component = Any +ComponentOptions = Dict[str, Any] ComponentName = Literal\ [ + 'age_modifier_direction_slider', + 'age_modifier_model_dropdown', + 'expression_restorer_factor_slider', + 'expression_restorer_model_dropdown', + 'benchmark_cycles_slider', + 'benchmark_runs_checkbox_group', + 'face_debugger_items_checkbox_group', + 'face_detector_angles_checkbox_group', + 'face_detector_model_dropdown', + 'face_detector_score_slider', + 'face_detector_size_dropdown', + 'face_editor_model_dropdown', + 'face_editor_eyebrow_direction_slider', + 'face_editor_eye_gaze_horizontal_slider', + 'face_editor_eye_gaze_vertical_slider', + 'face_editor_eye_open_ratio_slider', + 'face_editor_lip_open_ratio_slider', + 'face_editor_mouth_grim_slider', + 'face_editor_mouth_pout_slider', + 'face_editor_mouth_purse_slider', + 'face_editor_mouth_smile_slider', + 'face_editor_mouth_position_horizontal_slider', + 'face_editor_mouth_position_vertical_slider', + 'face_editor_head_pitch_slider', + 'face_editor_head_yaw_slider', + 'face_editor_head_roll_slider', + 'face_enhancer_blend_slider', + 'face_enhancer_model_dropdown', + 'face_landmarker_model_dropdown', + 'face_landmarker_score_slider', + 'face_mask_blur_slider', + 'face_mask_padding_bottom_slider', + 'face_mask_padding_left_slider', + 'face_mask_padding_right_slider', + 'face_mask_padding_top_slider', + 'face_mask_region_checkbox_group', + 'face_mask_types_checkbox_group', + 'face_selector_gender_dropdown', + 'face_selector_race_dropdown', + 'face_selector_age_range_slider', + 'face_selector_mode_dropdown', + 'face_selector_order_dropdown', + 'face_swapper_model_dropdown', + 'face_swapper_pixel_boost_dropdown', + 'frame_colorizer_blend_slider', + 'frame_colorizer_model_dropdown', + 'frame_colorizer_size_dropdown', + 'frame_enhancer_blend_slider', + 'frame_enhancer_model_dropdown', + 'job_list_job_status_checkbox_group', + 'lip_syncer_model_dropdown', + 'output_image', + 'output_video', + 'output_video_fps_slider', + 'preview_frame_slider', + 'processors_checkbox_group', + 'reference_face_distance_slider', + 'reference_face_position_gallery', 'source_audio', 'source_image', 'target_image', 'target_video', - 'preview_frame_slider', - 'trim_frame_start_slider', - 'trim_frame_end_slider', - 'face_selector_mode_dropdown', - 'reference_face_position_gallery', - 'reference_face_distance_slider', - 'face_analyser_order_dropdown', - 'face_analyser_age_dropdown', - 'face_analyser_gender_dropdown', - 'face_detector_model_dropdown', - 'face_detector_size_dropdown', - 'face_detector_score_slider', - 'face_landmarker_score_slider', - 'face_mask_types_checkbox_group', - 'face_mask_blur_slider', - 'face_mask_padding_top_slider', - 'face_mask_padding_bottom_slider', - 'face_mask_padding_left_slider', - 'face_mask_padding_right_slider', - 'face_mask_region_checkbox_group', - 'frame_processors_checkbox_group', - 'face_debugger_items_checkbox_group', - 'face_enhancer_model_dropdown', - 'face_enhancer_blend_slider', - 'face_swapper_model_dropdown', - 'frame_colorizer_model_dropdown', - 'frame_colorizer_blend_slider', - 'frame_colorizer_size_dropdown', - 'frame_enhancer_model_dropdown', - 'frame_enhancer_blend_slider', - 'lip_syncer_model_dropdown', - 'output_path_textbox', - 'output_video_fps_slider', - 'benchmark_runs_checkbox_group', - 'benchmark_cycles_slider', + 'ui_workflow_dropdown', + 'webcam_fps_slider', 'webcam_mode_radio', - 'webcam_resolution_dropdown', - 'webcam_fps_slider' + 'webcam_resolution_dropdown' ] +JobManagerAction = Literal['job-create', 'job-submit', 'job-delete', 'job-add-step', 'job-remix-step', 'job-insert-step', 'job-remove-step'] +JobRunnerAction = Literal['job-run', 'job-run-all', 'job-retry', 'job-retry-all'] + WebcamMode = Literal['inline', 'udp', 'v4l2'] StreamMode = Literal['udp', 'v4l2'] diff --git a/facefusion/uis/ui_helper.py b/facefusion/uis/ui_helper.py new file mode 100644 index 00000000..91fa75da --- /dev/null +++ b/facefusion/uis/ui_helper.py @@ -0,0 +1,26 @@ +import hashlib +import os +from typing import Optional + +from facefusion import state_manager +from facefusion.filesystem import is_image, is_video + + +def convert_int_none(value : int) -> Optional[int]: + if value == 'none': + return None + return value + + +def convert_str_none(value : str) -> Optional[str]: + if value == 'none': + return None + return value + + +def suggest_output_path(output_directory_path : str, target_path : str) -> Optional[str]: + if is_image(target_path) or is_video(target_path): + _, target_extension = os.path.splitext(target_path) + output_name = hashlib.sha1(str(state_manager.get_state()).encode('utf-8')).hexdigest()[:8] + return os.path.join(output_directory_path, output_name + target_extension) + return None diff --git a/facefusion/vision.py b/facefusion/vision.py index 692a73a1..d5c925db 100644 --- a/facefusion/vision.py +++ b/facefusion/vision.py @@ -1,13 +1,14 @@ -from typing import Optional, List, Tuple from functools import lru_cache +from typing import List, Optional, Tuple + import cv2 import numpy from cv2.typing import Size -from facefusion.common_helper import is_windows -from facefusion.typing import VisionFrame, Resolution, Fps from facefusion.choices import image_template_sizes, video_template_sizes +from facefusion.common_helper import is_windows from facefusion.filesystem import is_image, is_video, sanitize_path_for_windows +from facefusion.typing import Fps, Orientation, Resolution, VisionFrame @lru_cache(maxsize = 128) @@ -15,8 +16,9 @@ def read_static_image(image_path : str) -> Optional[VisionFrame]: return read_image(image_path) -def read_static_images(image_paths : List[str]) -> Optional[List[VisionFrame]]: +def read_static_images(image_paths : List[str]) -> List[VisionFrame]: frames = [] + if image_paths: for image_path in image_paths: frames.append(read_static_image(image_path)) @@ -176,6 +178,14 @@ def unpack_resolution(resolution : str) -> Resolution: return width, height +def detect_frame_orientation(vision_frame : VisionFrame) -> Orientation: + height, width = vision_frame.shape[:2] + + if width > height: + return 'landscape' + return 'portrait' + + def resize_frame_resolution(vision_frame : VisionFrame, max_resolution : Resolution) -> VisionFrame: height, width = vision_frame.shape[:2] max_width, max_height = max_resolution diff --git a/facefusion/voice_extractor.py b/facefusion/voice_extractor.py index 4404d5a6..60d8c4a6 100644 --- a/facefusion/voice_extractor.py +++ b/facefusion/voice_extractor.py @@ -1,56 +1,57 @@ -from typing import Any, Tuple -from time import sleep -import scipy +from typing import Tuple + import numpy -import onnxruntime +import scipy -import facefusion.globals -from facefusion import process_manager -from facefusion.thread_helper import thread_lock, thread_semaphore -from facefusion.typing import ModelSet, AudioChunk, Audio -from facefusion.execution import apply_execution_provider_options -from facefusion.filesystem import resolve_relative_path, is_file -from facefusion.download import conditional_download +from facefusion import inference_manager +from facefusion.download import conditional_download_hashes, conditional_download_sources +from facefusion.filesystem import resolve_relative_path +from facefusion.thread_helper import thread_semaphore +from facefusion.typing import Audio, AudioChunk, InferencePool, ModelOptions, ModelSet -VOICE_EXTRACTOR = None -MODELS : ModelSet =\ +MODEL_SET : ModelSet =\ { - 'voice_extractor': + 'kim_vocal_2': { - 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models/voice_extractor.onnx', - 'path': resolve_relative_path('../.assets/models/voice_extractor.onnx') + 'hashes': + { + 'voice_extractor': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/kim_vocal_2.hash', + 'path': resolve_relative_path('../.assets/models/kim_vocal_2.hash') + } + }, + 'sources': + { + 'voice_extractor': + { + 'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/kim_vocal_2.onnx', + 'path': resolve_relative_path('../.assets/models/kim_vocal_2.onnx') + } + } } } -def get_voice_extractor() -> Any: - global VOICE_EXTRACTOR - - with thread_lock(): - while process_manager.is_checking(): - sleep(0.5) - if VOICE_EXTRACTOR is None: - model_path = MODELS.get('voice_extractor').get('path') - VOICE_EXTRACTOR = onnxruntime.InferenceSession(model_path, providers = apply_execution_provider_options(facefusion.globals.execution_device_id, facefusion.globals.execution_providers)) - return VOICE_EXTRACTOR +def get_inference_pool() -> InferencePool: + model_sources = get_model_options().get('sources') + return inference_manager.get_inference_pool(__name__, model_sources) -def clear_voice_extractor() -> None: - global VOICE_EXTRACTOR +def clear_inference_pool() -> None: + inference_manager.clear_inference_pool(__name__) - VOICE_EXTRACTOR = None + +def get_model_options() -> ModelOptions: + return MODEL_SET.get('kim_vocal_2') def pre_check() -> bool: download_directory_path = resolve_relative_path('../.assets/models') - model_url = MODELS.get('voice_extractor').get('url') - model_path = MODELS.get('voice_extractor').get('path') + model_hashes = get_model_options().get('hashes') + model_sources = get_model_options().get('sources') - if not facefusion.globals.skip_download: - process_manager.check() - conditional_download(download_directory_path, [ model_url ]) - process_manager.end() - return is_file(model_path) + return conditional_download_hashes(download_directory_path, model_hashes) and conditional_download_sources(download_directory_path, model_sources) def batch_extract_voice(audio : Audio, chunk_size : int, step_size : int) -> Audio: @@ -61,23 +62,32 @@ def batch_extract_voice(audio : Audio, chunk_size : int, step_size : int) -> Aud end = min(start + chunk_size, audio.shape[0]) temp_audio[start:end, ...] += extract_voice(audio[start:end, ...]) temp_chunk[start:end, ...] += 1 + audio = temp_audio / temp_chunk return audio def extract_voice(temp_audio_chunk : AudioChunk) -> AudioChunk: - voice_extractor = get_voice_extractor() - chunk_size = 1024 * (voice_extractor.get_inputs()[0].shape[3] - 1) + voice_extractor = get_inference_pool().get('voice_extractor') + chunk_size = (voice_extractor.get_inputs()[0].shape[3] - 1) * 1024 trim_size = 3840 temp_audio_chunk, pad_size = prepare_audio_chunk(temp_audio_chunk.T, chunk_size, trim_size) temp_audio_chunk = decompose_audio_chunk(temp_audio_chunk, trim_size) + temp_audio_chunk = forward(temp_audio_chunk) + temp_audio_chunk = compose_audio_chunk(temp_audio_chunk, trim_size) + temp_audio_chunk = normalize_audio_chunk(temp_audio_chunk, chunk_size, trim_size, pad_size) + return temp_audio_chunk + + +def forward(temp_audio_chunk : AudioChunk) -> AudioChunk: + voice_extractor = get_inference_pool().get('voice_extractor') + with thread_semaphore(): temp_audio_chunk = voice_extractor.run(None, { - voice_extractor.get_inputs()[0].name: temp_audio_chunk + 'input': temp_audio_chunk })[0] - temp_audio_chunk = compose_audio_chunk(temp_audio_chunk, trim_size) - temp_audio_chunk = normalize_audio_chunk(temp_audio_chunk, chunk_size, trim_size, pad_size) + return temp_audio_chunk @@ -91,6 +101,7 @@ def prepare_audio_chunk(temp_audio_chunk : AudioChunk, chunk_size : int, trim_si for index in range(0, audio_chunk_size, step_size): temp_audio_chunks.append(temp_audio_chunk[:, index:index + chunk_size]) + temp_audio_chunk = numpy.concatenate(temp_audio_chunks, axis = 0) temp_audio_chunk = temp_audio_chunk.reshape((-1, chunk_size)) return temp_audio_chunk, pad_size @@ -99,12 +110,14 @@ def prepare_audio_chunk(temp_audio_chunk : AudioChunk, chunk_size : int, trim_si def decompose_audio_chunk(temp_audio_chunk : AudioChunk, trim_size : int) -> AudioChunk: frame_size = 7680 frame_overlap = 6656 - voice_extractor_shape = get_voice_extractor().get_inputs()[0].shape + frame_total = 3072 + bin_total = 256 + channel_total = 4 window = scipy.signal.windows.hann(frame_size) temp_audio_chunk = scipy.signal.stft(temp_audio_chunk, nperseg = frame_size, noverlap = frame_overlap, window = window)[2] temp_audio_chunk = numpy.stack((numpy.real(temp_audio_chunk), numpy.imag(temp_audio_chunk)), axis = -1).transpose((0, 3, 1, 2)) - temp_audio_chunk = temp_audio_chunk.reshape(-1, 2, 2, trim_size + 1, voice_extractor_shape[3]).reshape(-1, voice_extractor_shape[1], trim_size + 1, voice_extractor_shape[3]) - temp_audio_chunk = temp_audio_chunk[:, :, :voice_extractor_shape[2]] + temp_audio_chunk = temp_audio_chunk.reshape(-1, 2, 2, trim_size + 1, bin_total).reshape(-1, channel_total, trim_size + 1, bin_total) + temp_audio_chunk = temp_audio_chunk[:, :, :frame_total] temp_audio_chunk /= numpy.sqrt(1.0 / window.sum() ** 2) return temp_audio_chunk @@ -112,10 +125,11 @@ def decompose_audio_chunk(temp_audio_chunk : AudioChunk, trim_size : int) -> Aud def compose_audio_chunk(temp_audio_chunk : AudioChunk, trim_size : int) -> AudioChunk: frame_size = 7680 frame_overlap = 6656 - voice_extractor_shape = get_voice_extractor().get_inputs()[0].shape + frame_total = 3072 + bin_total = 256 window = scipy.signal.windows.hann(frame_size) - temp_audio_chunk = numpy.pad(temp_audio_chunk, ((0, 0), (0, 0), (0, trim_size + 1 - voice_extractor_shape[2]), (0, 0))) - temp_audio_chunk = temp_audio_chunk.reshape(-1, 2, trim_size + 1, voice_extractor_shape[3]).transpose((0, 2, 3, 1)) + temp_audio_chunk = numpy.pad(temp_audio_chunk, ((0, 0), (0, 0), (0, trim_size + 1 - frame_total), (0, 0))) + temp_audio_chunk = temp_audio_chunk.reshape(-1, 2, trim_size + 1, bin_total).transpose((0, 2, 3, 1)) temp_audio_chunk = temp_audio_chunk[:, :, :, 0] + 1j * temp_audio_chunk[:, :, :, 1] temp_audio_chunk = scipy.signal.istft(temp_audio_chunk, nperseg = frame_size, noverlap = frame_overlap, window = window)[1] temp_audio_chunk *= numpy.sqrt(1.0 / window.sum() ** 2) diff --git a/facefusion/wording.py b/facefusion/wording.py index 1401e44c..7b5a6b34 100755 --- a/facefusion/wording.py +++ b/facefusion/wording.py @@ -4,6 +4,7 @@ WORDING : Dict[str, Any] =\ { 'conda_not_activated': 'Conda is not activated', 'python_not_supported': 'Python version is not supported, upgrade to {version} or higher', + 'curl_not_installed': 'CURL is not installed', 'ffmpeg_not_installed': 'FFMpeg is not installed', 'creating_temp': 'Creating temporary resources', 'extracting_frames': 'Extracting frames with a resolution of {resolution} and {fps} frames per second', @@ -31,19 +32,54 @@ WORDING : Dict[str, Any] =\ 'processing_image_failed': 'Processing to image failed', 'processing_video_succeed': 'Processing to video succeed in {seconds} seconds', 'processing_video_failed': 'Processing to video failed', - 'model_download_not_done': 'Download of the model is not done', - 'model_file_not_present': 'File of the model is not present', - 'select_image_source': 'Select a image for source path', - 'select_audio_source': 'Select a audio for source path', - 'select_video_target': 'Select a video for target path', - 'select_image_or_video_target': 'Select a image or video for target path', - 'select_file_or_directory_output': 'Select a file or directory for output path', + 'choose_image_source': 'Choose a image for the source', + 'choose_audio_source': 'Choose a audio for the source', + 'choose_video_target': 'Choose a video for the target', + 'choose_image_or_video_target': 'Choose a image or video for the target', + 'specify_image_or_video_output': 'Specify the output image or video within a directory', + 'match_target_and_output_extension': 'Match the target and output extension', 'no_source_face_detected': 'No source face detected', - 'frame_processor_not_loaded': 'Frame processor {frame_processor} could not be loaded', - 'frame_processor_not_implemented': 'Frame processor {frame_processor} not implemented correctly', + 'processor_not_loaded': 'Processor {processor} could not be loaded', + 'processor_not_implemented': 'Processor {processor} not implemented correctly', 'ui_layout_not_loaded': 'UI layout {ui_layout} could not be loaded', 'ui_layout_not_implemented': 'UI layout {ui_layout} not implemented correctly', 'stream_not_loaded': 'Stream {stream_mode} could not be loaded', + 'job_created': 'Job {job_id} created', + 'job_not_created': 'Job {job_id} not created', + 'job_submitted': 'Job {job_id} submitted', + 'job_not_submitted': 'Job {job_id} not submitted', + 'job_all_submitted': 'Jobs submitted', + 'job_all_not_submitted': 'Jobs not submitted', + 'job_deleted': 'Job {job_id} deleted', + 'job_not_deleted': 'Job {job_id} not deleted', + 'job_all_deleted': 'Jobs deleted', + 'job_all_not_deleted': 'Jobs not deleted', + 'job_step_added': 'Step added to job {job_id}', + 'job_step_not_added': 'Step not added to job {job_id}', + 'job_remix_step_added': 'Step {step_index} remixed from job {job_id}', + 'job_remix_step_not_added': 'Step {step_index} not remixed from job {job_id}', + 'job_step_inserted': 'Step {step_index} inserted to job {job_id}', + 'job_step_not_inserted': 'Step {step_index} not inserted to job {job_id}', + 'job_step_removed': 'Step {step_index} removed from job {job_id}', + 'job_step_not_removed': 'Step {step_index} not removed from job {job_id}', + 'running_job': 'Running queued job {job_id}', + 'running_jobs': 'Running all queued jobs', + 'retrying_job': 'Retrying failed job {job_id}', + 'retrying_jobs': 'Retrying all failed jobs', + 'processing_job_succeed': 'Processing of job {job_id} succeed', + 'processing_jobs_succeed': 'Processing of all job succeed', + 'processing_job_failed': 'Processing of job {job_id} failed', + 'processing_jobs_failed': 'Processing of all jobs failed', + 'processing_step': 'Processing step {step_current} of {step_total}', + 'validating_hash_succeed': 'Validating hash for {hash_file_name} succeed', + 'validating_hash_failed': 'Validating hash for {hash_file_name} failed', + 'validating_source_succeed': 'Validating source for {source_file_name} succeed', + 'validating_source_failed': 'Validating source for {source_file_name} failed', + 'deleting_corrupt_source': 'Deleting corrupt source for {source_file_name}', + 'time_ago_now': 'just now', + 'time_ago_minutes': '{minutes} minutes ago', + 'time_ago_hours': '{hours} hours and {minutes} minutes ago', + 'time_ago_days': '{days} days, {hours} hours and {minutes} minutes ago', 'point': '.', 'comma': ',', 'colon': ':', @@ -52,36 +88,28 @@ WORDING : Dict[str, Any] =\ 'help': { # installer - 'install_dependency': 'select the variant of {dependency} to install', + 'install_dependency': 'choose the variant of {dependency} to install', 'skip_conda': 'skip the conda environment check', # general - 'config': 'choose the config file to override defaults', - 'source': 'choose single or multiple source images or audios', - 'target': 'choose single target image or video', - 'output': 'specify the output file or directory', - # misc - 'force_download': 'force automate downloads and exit', - 'skip_download': 'omit automate downloads and remote lookups', - 'headless': 'run the program without a user interface', - 'log_level': 'adjust the message severity displayed in the terminal', - # execution - 'execution_device_id': 'specify the device used for processing', - 'execution_providers': 'accelerate the model inference using different providers (choices: {choices}, ...)', - 'execution_thread_count': 'specify the amount of parallel threads while processing', - 'execution_queue_count': 'specify the amount of frames each thread is processing', - # memory - 'video_memory_strategy': 'balance fast frame processing and low VRAM usage', - 'system_memory_limit': 'limit the available RAM that can be used while processing', + 'config_path': 'choose the config file to override defaults', + 'source_paths': 'choose single or multiple source images or audios', + 'target_path': 'choose single target image or video', + 'output_path': 'specify the output image or video within a directory', + 'jobs_path': 'specify the directory to store jobs', # face analyser - 'face_analyser_order': 'specify the order in which the face analyser detects faces', - 'face_analyser_age': 'filter the detected faces based on their age', - 'face_analyser_gender': 'filter the detected faces based on their gender', - 'face_detector_model': 'choose the model responsible for detecting the face', + 'face_detector_model': 'choose the model responsible for detecting the faces', 'face_detector_size': 'specify the size of the frame provided to the face detector', + 'face_detector_angles': 'specify the angles to rotate the frame before detecting faces', 'face_detector_score': 'filter the detected faces base on the confidence score', - 'face_landmarker_score': 'filter the detected landmarks base on the confidence score', + 'face_landmarker_model': 'choose the model responsible for detecting the face landmarks', + 'face_landmarker_score': 'filter the detected face landmarks base on the confidence score', # face selector 'face_selector_mode': 'use reference based tracking or simple matching', + 'face_selector_order': 'specify the order of the detected faces', + 'face_selector_gender': 'filter the detected faces based on their gender', + 'face_selector_age_start': 'filter the detected faces based on their age start', + 'face_selector_age_end': 'filter the detected faces based on their age end', + 'face_selector_race': 'filter the detected faces based on their race', 'reference_face_position': 'specify the position used to create the reference face', 'reference_face_distance': 'specify the desired similarity between the reference face and target face', 'reference_frame_number': 'specify the frame used to create the reference face', @@ -98,18 +126,39 @@ WORDING : Dict[str, Any] =\ # output creation 'output_image_quality': 'specify the image quality which translates to the compression factor', 'output_image_resolution': 'specify the image output resolution based on the target image', - 'output_video_encoder': 'specify the encoder use for the video compression', + 'output_audio_encoder': 'specify the encoder used for the audio output', + 'output_video_encoder': 'specify the encoder used for the video output', 'output_video_preset': 'balance fast video processing and video file size', 'output_video_quality': 'specify the video quality which translates to the compression factor', 'output_video_resolution': 'specify the video output resolution based on the target video', 'output_video_fps': 'specify the video output fps based on the target video', 'skip_audio': 'omit the audio from the target video', - # frame processors - 'frame_processors': 'load a single or multiple frame processors. (choices: {choices}, ...)', - 'face_debugger_items': 'load a single or multiple frame processors (choices: {choices})', + # processors + 'processors': 'load a single or multiple processors. (choices: {choices}, ...)', + 'age_modifier_model': 'choose the model responsible for aging the face', + 'age_modifier_direction': 'specify the direction in which the age should be modified', + 'expression_restorer_model': 'choose the model responsible for restoring the expression', + 'expression_restorer_factor': 'restore factor of expression from target face', + 'face_debugger_items': 'load a single or multiple processors (choices: {choices})', + 'face_editor_model': 'choose the model responsible for editing the face', + 'face_editor_eyebrow_direction': 'specify the eyebrow direction', + 'face_editor_eye_gaze_horizontal': 'specify the horizontal eye gaze', + 'face_editor_eye_gaze_vertical': 'specify the vertical eye gaze', + 'face_editor_eye_open_ratio': 'specify the ratio of eye opening', + 'face_editor_lip_open_ratio': 'specify the ratio of lip opening', + 'face_editor_mouth_grim': 'specify the mouth grim amount', + 'face_editor_mouth_pout': 'specify the mouth pout amount', + 'face_editor_mouth_purse': 'specify the mouth purse amount', + 'face_editor_mouth_smile': 'specify the mouth smile amount', + 'face_editor_mouth_position_horizontal': 'specify the mouth position horizontal amount', + 'face_editor_mouth_position_vertical': 'specify the mouth position vertical amount', + 'face_editor_head_pitch': 'specify the head pitch amount', + 'face_editor_head_yaw': 'specify the head yaw amount', + 'face_editor_head_roll': 'specify the head roll amount', 'face_enhancer_model': 'choose the model responsible for enhancing the face', 'face_enhancer_blend': 'blend the enhanced into the previous face', 'face_swapper_model': 'choose the model responsible for swapping the face', + 'face_swapper_pixel_boost': 'choose the pixel boost resolution for the face swapper', 'frame_colorizer_model': 'choose the model responsible for colorizing the frame', 'frame_colorizer_blend': 'blend the colorized into the previous frame', 'frame_colorizer_size': 'specify the size of the frame provided to the frame colorizer', @@ -118,94 +167,144 @@ WORDING : Dict[str, Any] =\ 'lip_syncer_model': 'choose the model responsible for syncing the lips', # uis 'open_browser': 'open the browser once the program is ready', - 'ui_layouts': 'launch a single or multiple UI layouts (choices: {choices}, ...)' + 'ui_layouts': 'launch a single or multiple UI layouts (choices: {choices}, ...)', + 'ui_workflow': 'choose the ui workflow', + # execution + 'execution_device_id': 'specify the device used for processing', + 'execution_providers': 'accelerate the model inference using different providers (choices: {choices}, ...)', + 'execution_thread_count': 'specify the amount of parallel threads while processing', + 'execution_queue_count': 'specify the amount of frames each thread is processing', + # memory + 'video_memory_strategy': 'balance fast processing and low VRAM usage', + 'system_memory_limit': 'limit the available RAM that can be used while processing', + # misc + 'skip_download': 'omit downloads and remote lookups', + 'log_level': 'adjust the message severity displayed in the terminal', + # run + 'run': 'run the program', + 'headless_run': 'run the program in headless mode', + 'force_download': 'force automate downloads and exit', + # jobs + 'job_id': 'specify the job id', + 'step_index': 'specify the step index', + # job manager + '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_list': 'list jobs by status', + '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 runner + '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' + }, + 'about': + { + 'become_a_member': 'become a member', + 'join_our_community': 'join our community', + 'read_the_documentation': 'read the documentation' }, 'uis': { - # general - 'start_button': 'START', - 'stop_button': 'STOP', - 'clear_button': 'CLEAR', - # about - 'donate_button': 'DONATE', - # benchmark - 'benchmark_results_dataframe': 'BENCHMARK RESULTS', - # benchmark options - 'benchmark_runs_checkbox_group': 'BENCHMARK RUNS', + 'age_modifier_direction_slider': 'AGE MODIFIER DIRECTION', + 'age_modifier_model_dropdown': 'AGE MODIFIER MODEL', + 'apply_button': 'APPLY', 'benchmark_cycles_slider': 'BENCHMARK CYCLES', - # common options + 'benchmark_runs_checkbox_group': 'BENCHMARK RUNS', + 'clear_button': 'CLEAR', 'common_options_checkbox_group': 'OPTIONS', - # execution 'execution_providers_checkbox_group': 'EXECUTION PROVIDERS', - # execution queue count 'execution_queue_count_slider': 'EXECUTION QUEUE COUNT', - # execution thread count 'execution_thread_count_slider': 'EXECUTION THREAD COUNT', - # face analyser - 'face_analyser_order_dropdown': 'FACE ANALYSER ORDER', - 'face_analyser_age_dropdown': 'FACE ANALYSER AGE', - 'face_analyser_gender_dropdown': 'FACE ANALYSER GENDER', + 'expression_restorer_factor_slider': 'EXPRESSION RESTORER FACTOR', + 'expression_restorer_model_dropdown': 'EXPRESSION RESTORER MODEL', + 'face_debugger_items_checkbox_group': 'FACE DEBUGGER ITEMS', + 'face_detector_angles_checkbox_group': 'FACE DETECTOR ANGLES', 'face_detector_model_dropdown': 'FACE DETECTOR MODEL', - 'face_detector_size_dropdown': 'FACE DETECTOR SIZE', 'face_detector_score_slider': 'FACE DETECTOR SCORE', + 'face_detector_size_dropdown': 'FACE DETECTOR SIZE', + 'face_editor_model_dropdown': 'FACE EDITOR MODEL', + 'face_editor_eye_gaze_horizontal_slider': 'FACE EDITOR EYE GAZE HORIZONTAL', + 'face_editor_eye_gaze_vertical_slider': 'FACE EDITOR EYE GAZE VERTICAL', + 'face_editor_eye_open_ratio_slider': 'FACE EDITOR EYE OPEN RATIO', + 'face_editor_eyebrow_direction_slider': 'FACE EDITOR EYEBROW DIRECTION', + 'face_editor_lip_open_ratio_slider': 'FACE EDITOR LIP OPEN RATIO', + 'face_editor_mouth_grim_slider': 'FACE EDITOR MOUTH GRIM', + 'face_editor_mouth_pout_slider': 'FACE EDITOR MOUTH POUT', + 'face_editor_mouth_purse_slider': 'FACE EDITOR MOUTH PURSE', + 'face_editor_mouth_smile_slider': 'FACE EDITOR MOUTH SMILE', + 'face_editor_mouth_position_horizontal_slider': 'FACE EDITOR MOUTH POSITION HORIZONTAL', + 'face_editor_mouth_position_vertical_slider': 'FACE EDITOR MOUTH POSITION VERTICAL', + 'face_editor_head_pitch_slider': 'FACE EDITOR HEAD PITCH', + 'face_editor_head_yaw_slider': 'FACE EDITOR HEAD YAW', + 'face_editor_head_roll_slider': 'FACE EDITOR HEAD ROLL', + 'face_enhancer_blend_slider': 'FACE ENHANCER BLEND', + 'face_enhancer_model_dropdown': 'FACE ENHANCER MODEL', + 'face_landmarker_model_dropdown': 'FACE LANDMARKER MODEL', 'face_landmarker_score_slider': 'FACE LANDMARKER SCORE', - # face masker - 'face_mask_types_checkbox_group': 'FACE MASK TYPES', 'face_mask_blur_slider': 'FACE MASK BLUR', - 'face_mask_padding_top_slider': 'FACE MASK PADDING TOP', - 'face_mask_padding_right_slider': 'FACE MASK PADDING RIGHT', 'face_mask_padding_bottom_slider': 'FACE MASK PADDING BOTTOM', 'face_mask_padding_left_slider': 'FACE MASK PADDING LEFT', + 'face_mask_padding_right_slider': 'FACE MASK PADDING RIGHT', + 'face_mask_padding_top_slider': 'FACE MASK PADDING TOP', 'face_mask_region_checkbox_group': 'FACE MASK REGIONS', - # face selector + 'face_mask_types_checkbox_group': 'FACE MASK TYPES', + 'face_selector_gender_dropdown': 'FACE SELECTOR GENDER', + 'face_selector_race_dropdown': 'FACE SELECTOR RACE', + 'face_selector_age_range_slider': 'FACE SELECTOR AGE', 'face_selector_mode_dropdown': 'FACE SELECTOR MODE', - 'reference_face_gallery': 'REFERENCE FACE', - 'reference_face_distance_slider': 'REFERENCE FACE DISTANCE', - # frame processors - 'frame_processors_checkbox_group': 'FRAME PROCESSORS', - # frame processors options - 'face_debugger_items_checkbox_group': 'FACE DEBUGGER ITEMS', - 'face_enhancer_model_dropdown': 'FACE ENHANCER MODEL', - 'face_enhancer_blend_slider': 'FACE ENHANCER BLEND', + 'face_selector_order_dropdown': 'FACE SELECTOR ORDER', 'face_swapper_model_dropdown': 'FACE SWAPPER MODEL', - 'frame_colorizer_model_dropdown': 'FRAME COLORIZER MODEL', + 'face_swapper_pixel_boost_dropdown': 'FACE SWAPPER PIXEL BOOST', 'frame_colorizer_blend_slider': 'FRAME COLORIZER BLEND', + 'frame_colorizer_model_dropdown': 'FRAME COLORIZER MODEL', 'frame_colorizer_size_dropdown': 'FRAME COLORIZER SIZE', - 'frame_enhancer_model_dropdown': 'FRAME ENHANCER MODEL', 'frame_enhancer_blend_slider': 'FRAME ENHANCER BLEND', + 'frame_enhancer_model_dropdown': 'FRAME ENHANCER MODEL', + 'job_list_status_checkbox_group': 'JOB STATUS', + 'job_manager_job_action_dropdown': 'JOB_ACTION', + 'job_manager_job_id_dropdown': 'JOB ID', + 'job_manager_step_index_dropdown': 'STEP INDEX', + 'job_runner_job_action_dropdown': 'JOB ACTION', + 'job_runner_job_id_dropdown': 'JOB ID', 'lip_syncer_model_dropdown': 'LIP SYNCER MODEL', - # memory - 'video_memory_strategy_dropdown': 'VIDEO MEMORY STRATEGY', - 'system_memory_limit_slider': 'SYSTEM MEMORY LIMIT', - # output + 'log_level_dropdown': 'LOG LEVEL', + 'output_audio_encoder_dropdown': 'OUTPUT AUDIO ENCODER', 'output_image_or_video': 'OUTPUT', - # output options - 'output_path_textbox': 'OUTPUT PATH', 'output_image_quality_slider': 'OUTPUT IMAGE QUALITY', 'output_image_resolution_dropdown': 'OUTPUT IMAGE RESOLUTION', + 'output_path_textbox': 'OUTPUT PATH', 'output_video_encoder_dropdown': 'OUTPUT VIDEO ENCODER', + 'output_video_fps_slider': 'OUTPUT VIDEO FPS', 'output_video_preset_dropdown': 'OUTPUT VIDEO PRESET', 'output_video_quality_slider': 'OUTPUT VIDEO QUALITY', 'output_video_resolution_dropdown': 'OUTPUT VIDEO RESOLUTION', - 'output_video_fps_slider': 'OUTPUT VIDEO FPS', - # preview - 'preview_image': 'PREVIEW', 'preview_frame_slider': 'PREVIEW FRAME', - # source + 'preview_image': 'PREVIEW', + 'processors_checkbox_group': 'PROCESSORS', + 'reference_face_distance_slider': 'REFERENCE FACE DISTANCE', + 'reference_face_gallery': 'REFERENCE FACE', + 'refresh_button': 'REFRESH', 'source_file': 'SOURCE', - # target + 'start_button': 'START', + 'stop_button': 'STOP', + 'system_memory_limit_slider': 'SYSTEM MEMORY LIMIT', 'target_file': 'TARGET', - # temp frame + 'terminal_textbox': 'TERMINAL', 'temp_frame_format_dropdown': 'TEMP FRAME FORMAT', - # trim frame - 'trim_frame_start_slider': 'TRIM FRAME START', - 'trim_frame_end_slider': 'TRIM FRAME END', - # webcam + 'trim_frame_slider': 'TRIM FRAME', + 'ui_workflow': 'UI WORKFLOW', + 'video_memory_strategy_dropdown': 'VIDEO MEMORY STRATEGY', + 'webcam_fps_slider': 'WEBCAM FPS', 'webcam_image': 'WEBCAM', - # webcam options 'webcam_mode_radio': 'WEBCAM MODE', 'webcam_resolution_dropdown': 'WEBCAM RESOLUTION', - 'webcam_fps_slider': 'WEBCAM FPS' } } @@ -213,8 +312,8 @@ WORDING : Dict[str, Any] =\ def get(key : str) -> Optional[str]: if '.' in key: section, name = key.split('.') - if section in WORDING and name in WORDING[section]: - return WORDING[section][name] + if section in WORDING and name in WORDING.get(section): + return WORDING.get(section).get(name) if key in WORDING: - return WORDING[key] + return WORDING.get(key) return None diff --git a/install.py b/install.py index 6feca23e..000f1e72 100755 --- a/install.py +++ b/install.py @@ -1,10 +1,8 @@ #!/usr/bin/env python3 import os -import subprocess -os.environ['PIP_BREAK_SYSTEM_PACKAGES'] = '1' -subprocess.call([ 'pip', 'install', 'inquirer', '-q' ]) +os.environ['SYSTEM_VERSION_COMPAT'] = '0' from facefusion import installer diff --git a/requirements.txt b/requirements.txt index 8222e415..0f1f443d 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,9 +1,10 @@ filetype==1.2.0 -gradio==3.50.2 -numpy==1.26.4 -onnx==1.16.0 -onnxruntime==1.17.3 -opencv-python==4.9.0.80 -psutil==5.9.8 -tqdm==4.66.4 -scipy==1.13.0 +gradio==4.44.0 +gradio_rangeslider==0.0.6 +numpy==2.1.0 +onnx==1.16.2 +onnxruntime==1.19.2 +opencv-python==4.10.0.84 +psutil==6.0.0 +tqdm==4.66.5 +scipy==1.14.1 diff --git a/tests/helper.py b/tests/helper.py new file mode 100644 index 00000000..45d810bb --- /dev/null +++ b/tests/helper.py @@ -0,0 +1,44 @@ +import os + +from facefusion.filesystem import create_directory, is_directory, is_file, remove_directory +from facefusion.temp_helper import get_base_directory_path +from facefusion.typing import JobStatus + + +def is_test_job_file(file_path : str, job_status : JobStatus) -> bool: + return is_file(get_test_job_file(file_path, job_status)) + + +def get_test_job_file(file_path : str, job_status : JobStatus) -> str: + return os.path.join(get_test_jobs_directory(), job_status, file_path) + + +def get_test_jobs_directory() -> str: + return os.path.join(get_base_directory_path(), 'test-jobs') + + +def get_test_example_file(file_path : str) -> str: + return os.path.join(get_test_examples_directory(), file_path) + + +def get_test_examples_directory() -> str: + return os.path.join(get_base_directory_path(), 'test-examples') + + +def is_test_output_file(file_path : str) -> bool: + return is_file(get_test_output_file(file_path)) + + +def get_test_output_file(file_path : str) -> str: + return os.path.join(get_test_outputs_directory(), file_path) + + +def get_test_outputs_directory() -> str: + return os.path.join(get_base_directory_path(), 'test-outputs') + + +def prepare_test_output_directory() -> bool: + test_outputs_directory = get_test_outputs_directory() + remove_directory(test_outputs_directory) + create_directory(test_outputs_directory) + return is_directory(test_outputs_directory) diff --git a/tests/test_audio.py b/tests/test_audio.py index 765acfb8..66039f1e 100644 --- a/tests/test_audio.py +++ b/tests/test_audio.py @@ -1,26 +1,28 @@ import subprocess + import pytest from facefusion.audio import get_audio_frame, read_static_audio from facefusion.download import conditional_download +from .helper import get_test_example_file, get_test_examples_directory @pytest.fixture(scope = 'module', autouse = True) def before_all() -> None: - conditional_download('.assets/examples', + conditional_download(get_test_examples_directory(), [ - 'https://github.com/facefusion/facefusion-assets/releases/download/examples/source.mp3' + 'https://github.com/facefusion/facefusion-assets/releases/download/examples-3.0.0/source.mp3' ]) - subprocess.run([ 'ffmpeg', '-i', '.assets/examples/source.mp3', '.assets/examples/source.wav' ]) + subprocess.run([ 'ffmpeg', '-i', get_test_example_file('source.mp3'), get_test_example_file('source.wav') ]) def test_get_audio_frame() -> None: - assert get_audio_frame('.assets/examples/source.mp3', 25) is not None - assert get_audio_frame('.assets/examples/source.wav', 25) is not None + assert get_audio_frame(get_test_example_file('source.mp3'), 25) is not None + assert get_audio_frame(get_test_example_file('source.wav'), 25) is not None assert get_audio_frame('invalid', 25) is None def test_read_static_audio() -> None: - assert len(read_static_audio('.assets/examples/source.mp3', 25)) == 280 - assert len(read_static_audio('.assets/examples/source.wav', 25)) == 280 + assert len(read_static_audio(get_test_example_file('source.mp3'), 25)) == 280 + assert len(read_static_audio(get_test_example_file('source.wav'), 25)) == 280 assert read_static_audio('invalid', 25) is None diff --git a/tests/test_cli_age_modifier.py b/tests/test_cli_age_modifier.py new file mode 100644 index 00000000..d4f28143 --- /dev/null +++ b/tests/test_cli_age_modifier.py @@ -0,0 +1,38 @@ +import subprocess +import sys + +import pytest + +from facefusion.download import conditional_download +from facefusion.jobs.job_manager import clear_jobs, init_jobs +from .helper import get_test_example_file, get_test_examples_directory, get_test_jobs_directory, get_test_output_file, is_test_output_file, prepare_test_output_directory + + +@pytest.fixture(scope = 'module', autouse = True) +def before_all() -> None: + conditional_download(get_test_examples_directory(), + [ + 'https://github.com/facefusion/facefusion-assets/releases/download/examples-3.0.0/target-240p.mp4' + ]) + subprocess.run([ 'ffmpeg', '-i', get_test_example_file('target-240p.mp4'), '-vframes', '1', get_test_example_file('target-240p.jpg') ]) + + +@pytest.fixture(scope = 'function', autouse = True) +def before_each() -> None: + clear_jobs(get_test_jobs_directory()) + init_jobs(get_test_jobs_directory()) + prepare_test_output_directory() + + +def test_modify_age_to_image() -> None: + commands = [ sys.executable, 'facefusion.py', 'headless-run', '-j', get_test_jobs_directory(), '--processors', 'age_modifier', '--age-modifier-direction', '100', '-t', get_test_example_file('target-240p.jpg'), '-o', get_test_output_file('test-age-face-to-image.jpg') ] + + assert subprocess.run(commands).returncode == 0 + assert is_test_output_file('test-age-face-to-image.jpg') is True + + +def test_modify_age_to_video() -> None: + commands = [ sys.executable, 'facefusion.py', 'headless-run', '-j', get_test_jobs_directory(), '--processors', 'age_modifier', '--age-modifier-direction', '100', '-t', get_test_example_file('target-240p.mp4'), '-o', get_test_output_file('test-age-face-to-video.mp4'), '--trim-frame-end', '1' ] + + assert subprocess.run(commands).returncode == 0 + assert is_test_output_file('test-age-face-to-video.mp4') is True diff --git a/tests/test_cli_expression_restorer.py b/tests/test_cli_expression_restorer.py new file mode 100644 index 00000000..03dd3064 --- /dev/null +++ b/tests/test_cli_expression_restorer.py @@ -0,0 +1,38 @@ +import subprocess +import sys + +import pytest + +from facefusion.download import conditional_download +from facefusion.jobs.job_manager import clear_jobs, init_jobs +from .helper import get_test_example_file, get_test_examples_directory, get_test_jobs_directory, get_test_output_file, is_test_output_file, prepare_test_output_directory + + +@pytest.fixture(scope = 'module', autouse = True) +def before_all() -> None: + conditional_download(get_test_examples_directory(), + [ + 'https://github.com/facefusion/facefusion-assets/releases/download/examples-3.0.0/target-240p.mp4' + ]) + subprocess.run([ 'ffmpeg', '-i', get_test_example_file('target-240p.mp4'), '-vframes', '1', get_test_example_file('target-240p.jpg') ]) + + +@pytest.fixture(scope = 'function', autouse = True) +def before_each() -> None: + clear_jobs(get_test_jobs_directory()) + init_jobs(get_test_jobs_directory()) + prepare_test_output_directory() + + +def test_restore_expression_to_image() -> None: + commands = [ sys.executable, 'facefusion.py', 'headless-run', '-j', get_test_jobs_directory(), '--processors', 'expression_restorer', '-t', get_test_example_file('target-240p.jpg'), '-o', get_test_output_file('test-restore-expression-to-image.jpg') ] + + assert subprocess.run(commands).returncode == 0 + assert is_test_output_file('test-restore-expression-to-image.jpg') is True + + +def test_restore_expression_to_video() -> None: + commands = [ sys.executable, 'facefusion.py', 'headless-run', '-j', get_test_jobs_directory(), '--processors', 'expression_restorer', '-t', get_test_example_file('target-240p.mp4'), '-o', get_test_output_file('test-restore-expression-to-video.mp4'), '--trim-frame-end', '1' ] + + assert subprocess.run(commands).returncode == 0 + assert is_test_output_file('test-restore-expression-to-video.mp4') is True diff --git a/tests/test_cli_face_debugger.py b/tests/test_cli_face_debugger.py index 51167af7..e41fafb9 100644 --- a/tests/test_cli_face_debugger.py +++ b/tests/test_cli_face_debugger.py @@ -1,31 +1,39 @@ import subprocess import sys + import pytest from facefusion.download import conditional_download +from facefusion.jobs.job_manager import clear_jobs, init_jobs +from .helper import get_test_example_file, get_test_examples_directory, get_test_jobs_directory, get_test_output_file, is_test_output_file, prepare_test_output_directory @pytest.fixture(scope = 'module', autouse = True) def before_all() -> None: - conditional_download('.assets/examples', + conditional_download(get_test_examples_directory(), [ - 'https://github.com/facefusion/facefusion-assets/releases/download/examples/source.jpg', - 'https://github.com/facefusion/facefusion-assets/releases/download/examples/target-240p.mp4' + 'https://github.com/facefusion/facefusion-assets/releases/download/examples-3.0.0/source.jpg', + 'https://github.com/facefusion/facefusion-assets/releases/download/examples-3.0.0/target-240p.mp4' ]) - subprocess.run([ 'ffmpeg', '-i', '.assets/examples/target-240p.mp4', '-vframes', '1', '.assets/examples/target-240p.jpg' ]) + subprocess.run([ 'ffmpeg', '-i', get_test_example_file('target-240p.mp4'), '-vframes', '1', get_test_example_file('target-240p.jpg') ]) + + +@pytest.fixture(scope = 'function', autouse = True) +def before_each() -> None: + clear_jobs(get_test_jobs_directory()) + init_jobs(get_test_jobs_directory()) + prepare_test_output_directory() def test_debug_face_to_image() -> None: - commands = [ sys.executable, 'run.py', '--frame-processors', 'face_debugger', '-t', '.assets/examples/target-240p.jpg', '-o', '.assets/examples/test_debug_face_to_image.jpg', '--headless' ] - run = subprocess.run(commands, stdout = subprocess.PIPE, stderr = subprocess.STDOUT) + commands = [ sys.executable, 'facefusion.py', 'headless-run', '-j', get_test_jobs_directory(), '--processors', 'face_debugger', '-t', get_test_example_file('target-240p.jpg'), '-o', get_test_output_file('test-debug-face-to-image.jpg') ] - assert run.returncode == 0 - assert 'image succeed' in run.stdout.decode() + assert subprocess.run(commands).returncode == 0 + assert is_test_output_file('test-debug-face-to-image.jpg') is True def test_debug_face_to_video() -> None: - commands = [ sys.executable, 'run.py', '--frame-processors', 'face_debugger', '-t', '.assets/examples/target-240p.mp4', '-o', '.assets/examples/test_debug_face_to_video.mp4', '--trim-frame-end', '10', '--headless' ] - run = subprocess.run(commands, stdout = subprocess.PIPE, stderr = subprocess.STDOUT) + commands = [ sys.executable, 'facefusion.py', 'headless-run', '-j', get_test_jobs_directory(), '--processors', 'face_debugger', '-t', get_test_example_file('target-240p.mp4'), '-o', get_test_output_file('test-debug-face-to-video.mp4'), '--trim-frame-end', '1' ] - assert run.returncode == 0 - assert 'video succeed' in run.stdout.decode() + assert subprocess.run(commands).returncode == 0 + assert is_test_output_file('test-debug-face-to-video.mp4') is True diff --git a/tests/test_cli_face_editor.py b/tests/test_cli_face_editor.py new file mode 100644 index 00000000..633ff65f --- /dev/null +++ b/tests/test_cli_face_editor.py @@ -0,0 +1,39 @@ +import subprocess +import sys + +import pytest + +from facefusion.download import conditional_download +from facefusion.jobs.job_manager import clear_jobs, init_jobs +from .helper import get_test_example_file, get_test_examples_directory, get_test_jobs_directory, get_test_output_file, is_test_output_file, prepare_test_output_directory + + +@pytest.fixture(scope = 'module', autouse = True) +def before_all() -> None: + conditional_download(get_test_examples_directory(), + [ + 'https://github.com/facefusion/facefusion-assets/releases/download/examples-3.0.0/source.jpg', + 'https://github.com/facefusion/facefusion-assets/releases/download/examples-3.0.0/target-240p.mp4' + ]) + subprocess.run([ 'ffmpeg', '-i', get_test_example_file('target-240p.mp4'), '-vframes', '1', get_test_example_file('target-240p.jpg') ]) + + +@pytest.fixture(scope = 'function', autouse = True) +def before_each() -> None: + clear_jobs(get_test_jobs_directory()) + init_jobs(get_test_jobs_directory()) + prepare_test_output_directory() + + +def test_edit_face_to_image() -> None: + commands = [ sys.executable, 'facefusion.py', 'headless-run', '-j', get_test_jobs_directory(), '--processors', 'face_editor', '-t', get_test_example_file('target-240p.jpg'), '-o', get_test_output_file('test-edit-face-to-image.jpg') ] + + assert subprocess.run(commands).returncode == 0 + assert is_test_output_file('test-edit-face-to-image.jpg') is True + + +def test_edit_face_to_video() -> None: + commands = [ sys.executable, 'facefusion.py', 'headless-run', '-j', get_test_jobs_directory(), '--processors', 'face_editor', '-t', get_test_example_file('target-240p.mp4'), '-o', get_test_output_file('test-edit-face-to-video.mp4'), '--trim-frame-end', '1' ] + + assert subprocess.run(commands).returncode == 0 + assert is_test_output_file('test-edit-face-to-video.mp4') is True diff --git a/tests/test_cli_face_enhancer.py b/tests/test_cli_face_enhancer.py index ccedf7d5..cc01d8dc 100644 --- a/tests/test_cli_face_enhancer.py +++ b/tests/test_cli_face_enhancer.py @@ -1,32 +1,39 @@ import subprocess import sys + import pytest from facefusion.download import conditional_download +from facefusion.jobs.job_manager import clear_jobs, init_jobs +from .helper import get_test_example_file, get_test_examples_directory, get_test_jobs_directory, get_test_output_file, is_test_output_file, prepare_test_output_directory @pytest.fixture(scope = 'module', autouse = True) def before_all() -> None: - conditional_download('.assets/examples', + conditional_download(get_test_examples_directory(), [ - 'https://github.com/facefusion/facefusion-assets/releases/download/examples/source.jpg', - 'https://github.com/facefusion/facefusion-assets/releases/download/examples/target-240p.mp4' + 'https://github.com/facefusion/facefusion-assets/releases/download/examples-3.0.0/source.jpg', + 'https://github.com/facefusion/facefusion-assets/releases/download/examples-3.0.0/target-240p.mp4' ]) - subprocess.run([ 'ffmpeg', '-i', '.assets/examples/target-240p.mp4', '-vframes', '1', '.assets/examples/target-240p.jpg' ]) + subprocess.run([ 'ffmpeg', '-i', get_test_example_file('target-240p.mp4'), '-vframes', '1', get_test_example_file('target-240p.jpg') ]) + + +@pytest.fixture(scope = 'function', autouse = True) +def before_each() -> None: + clear_jobs(get_test_jobs_directory()) + init_jobs(get_test_jobs_directory()) + prepare_test_output_directory() def test_enhance_face_to_image() -> None: - commands = [ sys.executable, 'run.py', '--frame-processors', 'face_enhancer', '-t', '.assets/examples/target-240p.jpg', '-o', '.assets/examples/test_enhance_face_to_image.jpg', '--headless' ] - run = subprocess.run(commands, stdout = subprocess.PIPE, stderr = subprocess.STDOUT) + commands = [ sys.executable, 'facefusion.py', 'headless-run', '-j', get_test_jobs_directory(), '--processors', 'face_enhancer', '-t', get_test_example_file('target-240p.jpg'), '-o', get_test_output_file('test-enhance-face-to-image.jpg') ] - assert run.returncode == 0 - assert 'image succeed' in run.stdout.decode() + assert subprocess.run(commands).returncode == 0 + assert is_test_output_file('test-enhance-face-to-image.jpg') is True def test_enhance_face_to_video() -> None: - commands = [ sys.executable, 'run.py', '--frame-processors', 'face_enhancer', '-t', '.assets/examples/target-240p.mp4', '-o', '.assets/examples/test_enhance_face_to_video.mp4', '--trim-frame-end', '10', '--headless' ] - run = subprocess.run(commands, stdout = subprocess.PIPE, stderr = subprocess.STDOUT) - - assert run.returncode == 0 - assert 'video succeed' in run.stdout.decode() + commands = [ sys.executable, 'facefusion.py', 'headless-run', '-j', get_test_jobs_directory(), '--processors', 'face_enhancer', '-t', get_test_example_file('target-240p.mp4'), '-o', get_test_output_file('test-enhance-face-to-video.mp4'), '--trim-frame-end', '1' ] + assert subprocess.run(commands).returncode == 0 + assert is_test_output_file('test-enhance-face-to-video.mp4') is True diff --git a/tests/test_cli_face_swapper.py b/tests/test_cli_face_swapper.py index 399870ab..bf0c0983 100644 --- a/tests/test_cli_face_swapper.py +++ b/tests/test_cli_face_swapper.py @@ -1,31 +1,39 @@ import subprocess import sys + import pytest from facefusion.download import conditional_download +from facefusion.jobs.job_manager import clear_jobs, init_jobs +from .helper import get_test_example_file, get_test_examples_directory, get_test_jobs_directory, get_test_output_file, is_test_output_file, prepare_test_output_directory @pytest.fixture(scope = 'module', autouse = True) def before_all() -> None: - conditional_download('.assets/examples', + conditional_download(get_test_examples_directory(), [ - 'https://github.com/facefusion/facefusion-assets/releases/download/examples/source.jpg', - 'https://github.com/facefusion/facefusion-assets/releases/download/examples/target-240p.mp4' + 'https://github.com/facefusion/facefusion-assets/releases/download/examples-3.0.0/source.jpg', + 'https://github.com/facefusion/facefusion-assets/releases/download/examples-3.0.0/target-240p.mp4' ]) - subprocess.run([ 'ffmpeg', '-i', '.assets/examples/target-240p.mp4', '-vframes', '1', '.assets/examples/target-240p.jpg' ]) + subprocess.run([ 'ffmpeg', '-i', get_test_example_file('target-240p.mp4'), '-vframes', '1', get_test_example_file('target-240p.jpg') ]) + + +@pytest.fixture(scope = 'function', autouse = True) +def before_each() -> None: + clear_jobs(get_test_jobs_directory()) + init_jobs(get_test_jobs_directory()) + prepare_test_output_directory() def test_swap_face_to_image() -> None: - commands = [ sys.executable, 'run.py', '--frame-processors', 'face_swapper', '-s', '.assets/examples/source.jpg', '-t', '.assets/examples/target-240p.jpg', '-o', '.assets/examples/test_swap_face_to_image.jpg', '--headless' ] - run = subprocess.run(commands, stdout = subprocess.PIPE, stderr = subprocess.STDOUT) + commands = [ sys.executable, 'facefusion.py', 'headless-run', '-j', get_test_jobs_directory(), '--processors', 'face_swapper', '-s', get_test_example_file('source.jpg'), '-t', get_test_example_file('target-240p.jpg'), '-o', get_test_output_file('test-swap-face-to-image.jpg') ] - assert run.returncode == 0 - assert 'image succeed' in run.stdout.decode() + assert subprocess.run(commands).returncode == 0 + assert is_test_output_file('test-swap-face-to-image.jpg') is True def test_swap_face_to_video() -> None: - commands = [ sys.executable, 'run.py', '--frame-processors', 'face_swapper', '-s', '.assets/examples/source.jpg', '-t', '.assets/examples/target-240p.mp4', '-o', '.assets/examples/test_swap_face_to_video.mp4', '--trim-frame-end', '10', '--headless' ] - run = subprocess.run(commands, stdout = subprocess.PIPE, stderr = subprocess.STDOUT) + commands = [ sys.executable, 'facefusion.py', 'headless-run', '-j', get_test_jobs_directory(), '--processors', 'face_swapper', '-s', get_test_example_file('source.jpg'), '-t', get_test_example_file('target-240p.mp4'), '-o', get_test_output_file('test-swap-face-to-video.mp4'), '--trim-frame-end', '1' ] - assert run.returncode == 0 - assert 'video succeed' in run.stdout.decode() + assert subprocess.run(commands).returncode == 0 + assert is_test_output_file('test-swap-face-to-video.mp4') is True diff --git a/tests/test_cli_frame_colorizer.py b/tests/test_cli_frame_colorizer.py index 97ff08ec..9796651e 100644 --- a/tests/test_cli_frame_colorizer.py +++ b/tests/test_cli_frame_colorizer.py @@ -1,32 +1,40 @@ import subprocess import sys + import pytest from facefusion.download import conditional_download +from facefusion.jobs.job_manager import clear_jobs, init_jobs +from .helper import get_test_example_file, get_test_examples_directory, get_test_jobs_directory, get_test_output_file, is_test_output_file, prepare_test_output_directory @pytest.fixture(scope = 'module', autouse = True) def before_all() -> None: - conditional_download('.assets/examples', + conditional_download(get_test_examples_directory(), [ - 'https://github.com/facefusion/facefusion-assets/releases/download/examples/source.jpg', - 'https://github.com/facefusion/facefusion-assets/releases/download/examples/target-240p.mp4' + 'https://github.com/facefusion/facefusion-assets/releases/download/examples-3.0.0/source.jpg', + 'https://github.com/facefusion/facefusion-assets/releases/download/examples-3.0.0/target-240p.mp4' ]) - subprocess.run([ 'ffmpeg', '-i', '.assets/examples/target-240p.mp4', '-vframes', '1', '-vf', 'hue=s=0', '.assets/examples/target-240p-0sat.jpg' ]) - subprocess.run([ 'ffmpeg', '-i', '.assets/examples/target-240p.mp4', '-vf', 'hue=s=0', '.assets/examples/target-240p-0sat.mp4' ]) + subprocess.run([ 'ffmpeg', '-i', get_test_example_file('target-240p.mp4'), '-vframes', '1', '-vf', 'hue=s=0', get_test_example_file('target-240p-0sat.jpg') ]) + subprocess.run([ 'ffmpeg', '-i', get_test_example_file('target-240p.mp4'), '-vf', 'hue=s=0', get_test_example_file('target-240p-0sat.mp4') ]) + + +@pytest.fixture(scope = 'function', autouse = True) +def before_each() -> None: + clear_jobs(get_test_jobs_directory()) + init_jobs(get_test_jobs_directory()) + prepare_test_output_directory() def test_colorize_frame_to_image() -> None: - commands = [ sys.executable, 'run.py', '--frame-processors', 'frame_colorizer', '-t', '.assets/examples/target-240p-0sat.jpg', '-o', '.assets/examples/test_colorize_frame_to_image.jpg', '--headless' ] - run = subprocess.run(commands, stdout = subprocess.PIPE, stderr = subprocess.STDOUT) + commands = [ sys.executable, 'facefusion.py', 'headless-run', '-j', get_test_jobs_directory(), '--processors', 'frame_colorizer', '-t', get_test_example_file('target-240p-0sat.jpg'), '-o', get_test_output_file('test_colorize-frame-to-image.jpg') ] - assert run.returncode == 0 - assert 'image succeed' in run.stdout.decode() + assert subprocess.run(commands).returncode == 0 + assert is_test_output_file('test_colorize-frame-to-image.jpg') is True def test_colorize_frame_to_video() -> None: - commands = [ sys.executable, 'run.py', '--frame-processors', 'frame_colorizer', '-t', '.assets/examples/target-240p-0sat.mp4', '-o', '.assets/examples/test_colorize_frame_to_video.mp4', '--trim-frame-end', '10', '--headless' ] - run = subprocess.run(commands, stdout = subprocess.PIPE, stderr = subprocess.STDOUT) + commands = [ sys.executable, 'facefusion.py', 'headless-run', '-j', get_test_jobs_directory(), '--processors', 'frame_colorizer', '-t', get_test_example_file('target-240p-0sat.mp4'), '-o', get_test_output_file('test-colorize-frame-to-video.mp4'), '--trim-frame-end', '1' ] - assert run.returncode == 0 - assert 'video succeed' in run.stdout.decode() + assert subprocess.run(commands).returncode == 0 + assert is_test_output_file('test-colorize-frame-to-video.mp4') is True diff --git a/tests/test_cli_frame_enhancer.py b/tests/test_cli_frame_enhancer.py index 89399f46..0530bdae 100644 --- a/tests/test_cli_frame_enhancer.py +++ b/tests/test_cli_frame_enhancer.py @@ -1,31 +1,39 @@ import subprocess import sys + import pytest from facefusion.download import conditional_download +from facefusion.jobs.job_manager import clear_jobs, init_jobs +from .helper import get_test_example_file, get_test_examples_directory, get_test_jobs_directory, get_test_output_file, is_test_output_file, prepare_test_output_directory @pytest.fixture(scope = 'module', autouse = True) def before_all() -> None: - conditional_download('.assets/examples', + conditional_download(get_test_examples_directory(), [ - 'https://github.com/facefusion/facefusion-assets/releases/download/examples/source.jpg', - 'https://github.com/facefusion/facefusion-assets/releases/download/examples/target-240p.mp4' + 'https://github.com/facefusion/facefusion-assets/releases/download/examples-3.0.0/source.jpg', + 'https://github.com/facefusion/facefusion-assets/releases/download/examples-3.0.0/target-240p.mp4' ]) - subprocess.run([ 'ffmpeg', '-i', '.assets/examples/target-240p.mp4', '-vframes', '1', '.assets/examples/target-240p.jpg' ]) + subprocess.run([ 'ffmpeg', '-i', get_test_example_file('target-240p.mp4'), '-vframes', '1', get_test_example_file('target-240p.jpg') ]) + + +@pytest.fixture(scope = 'function', autouse = True) +def before_each() -> None: + clear_jobs(get_test_jobs_directory()) + init_jobs(get_test_jobs_directory()) + prepare_test_output_directory() def test_enhance_frame_to_image() -> None: - commands = [ sys.executable, 'run.py', '--frame-processors', 'frame_enhancer', '-t', '.assets/examples/target-240p.jpg', '-o', '.assets/examples/test_enhance_frame_to_image.jpg', '--headless' ] - run = subprocess.run(commands, stdout = subprocess.PIPE, stderr = subprocess.STDOUT) + commands = [ sys.executable, 'facefusion.py', 'headless-run', '-j', get_test_jobs_directory(), '--processors', 'frame_enhancer', '-t', get_test_example_file('target-240p.jpg'), '-o', get_test_output_file('test-enhance-frame-to-image.jpg') ] - assert run.returncode == 0 - assert 'image succeed' in run.stdout.decode() + assert subprocess.run(commands).returncode == 0 + assert is_test_output_file('test-enhance-frame-to-image.jpg') is True def test_enhance_frame_to_video() -> None: - commands = [ sys.executable, 'run.py', '--frame-processors', 'frame_enhancer', '-t', '.assets/examples/target-240p.mp4', '-o', '.assets/examples/test_enhance_frame_to_video.mp4', '--trim-frame-end', '10', '--headless' ] - run = subprocess.run(commands, stdout = subprocess.PIPE, stderr = subprocess.STDOUT) + commands = [ sys.executable, 'facefusion.py', 'headless-run', '-j', get_test_jobs_directory(), '--processors', 'frame_enhancer', '-t', get_test_example_file('target-240p.mp4'), '-o', get_test_output_file('test-enhance-frame-to-video.mp4'), '--trim-frame-end', '1' ] - assert run.returncode == 0 - assert 'video succeed' in run.stdout.decode() + assert subprocess.run(commands).returncode == 0 + assert is_test_output_file('test-enhance-frame-to-video.mp4') is True diff --git a/tests/test_cli_job_manager.py b/tests/test_cli_job_manager.py new file mode 100644 index 00000000..7abddcc5 --- /dev/null +++ b/tests/test_cli_job_manager.py @@ -0,0 +1,204 @@ +import subprocess +import sys + +import pytest + +from facefusion.download import conditional_download +from facefusion.jobs.job_manager import clear_jobs, count_step_total, init_jobs +from .helper import get_test_example_file, get_test_examples_directory, get_test_jobs_directory, get_test_output_file, is_test_job_file + + +@pytest.fixture(scope = 'module', autouse = True) +def before_all() -> None: + conditional_download(get_test_examples_directory(), + [ + 'https://github.com/facefusion/facefusion-assets/releases/download/examples-3.0.0/source.jpg', + 'https://github.com/facefusion/facefusion-assets/releases/download/examples-3.0.0/target-240p.mp4' + ]) + subprocess.run([ 'ffmpeg', '-i', get_test_example_file('target-240p.mp4'), '-vframes', '1', get_test_example_file('target-240p.jpg') ]) + + +@pytest.fixture(scope = 'function', autouse = True) +def before_each() -> None: + clear_jobs(get_test_jobs_directory()) + init_jobs(get_test_jobs_directory()) + + +def test_job_create() -> None: + commands = [ sys.executable, 'facefusion.py', 'job-create', 'test-job-create', '-j', get_test_jobs_directory() ] + + assert subprocess.run(commands).returncode == 0 + assert is_test_job_file('test-job-create.json', 'drafted') is True + + commands = [ sys.executable, 'facefusion.py', 'job-create', 'test-job-create', '-j', get_test_jobs_directory() ] + + assert subprocess.run(commands).returncode == 1 + + +def test_job_submit() -> None: + commands = [ sys.executable, 'facefusion.py', 'job-submit', 'test-job-submit', '-j', get_test_jobs_directory() ] + + assert subprocess.run(commands).returncode == 1 + + commands = [ sys.executable, 'facefusion.py', 'job-create', 'test-job-submit', '-j', get_test_jobs_directory() ] + subprocess.run(commands) + + assert subprocess.run(commands).returncode == 1 + + commands = [ sys.executable, 'facefusion.py', 'job-add-step', 'test-job-submit', '-j', get_test_jobs_directory(), '-s', get_test_example_file('source.jpg'), '-t', get_test_example_file('target-240p.jpg'), '-o', get_test_output_file('test-job-remix-step.jpg') ] + subprocess.run(commands) + + commands = [ sys.executable, 'facefusion.py', 'job-submit', 'test-job-submit', '-j', get_test_jobs_directory() ] + + assert subprocess.run(commands).returncode == 0 + assert is_test_job_file('test-job-submit.json', 'queued') is True + assert subprocess.run(commands).returncode == 1 + + +def test_submit_all() -> None: + commands = [ sys.executable, 'facefusion.py', 'job-submit-all', '-j', get_test_jobs_directory() ] + + assert subprocess.run(commands).returncode == 1 + + commands = [ sys.executable, 'facefusion.py', 'job-create', 'test-job-submit-all-1', '-j', get_test_jobs_directory() ] + subprocess.run(commands) + + commands = [ sys.executable, 'facefusion.py', 'job-create', 'test-job-submit-all-2', '-j', get_test_jobs_directory() ] + subprocess.run(commands) + + assert subprocess.run(commands).returncode == 1 + + commands = [ sys.executable, 'facefusion.py', 'job-add-step', 'test-job-submit-all-1', '-j', get_test_jobs_directory(), '-s', get_test_example_file('source.jpg'), '-t', get_test_example_file('target-240p.jpg'), '-o', get_test_output_file('test-job-remix-step.jpg') ] + subprocess.run(commands) + + commands = [ sys.executable, 'facefusion.py', 'job-add-step', 'test-job-submit-all-2', '-j', get_test_jobs_directory(), '-s', get_test_example_file('source.jpg'), '-t', get_test_example_file('target-240p.jpg'), '-o', get_test_output_file('test-job-remix-step.jpg') ] + subprocess.run(commands) + + commands = [ sys.executable, 'facefusion.py', 'job-submit-all', '-j', get_test_jobs_directory() ] + + assert subprocess.run(commands).returncode == 0 + assert is_test_job_file('test-job-submit-all-1.json', 'queued') is True + assert is_test_job_file('test-job-submit-all-2.json', 'queued') is True + assert subprocess.run(commands).returncode == 1 + + +def test_job_delete() -> None: + commands = [ sys.executable, 'facefusion.py', 'job-delete', 'test-job-delete', '-j', get_test_jobs_directory() ] + + assert subprocess.run(commands).returncode == 1 + + commands = [ sys.executable, 'facefusion.py', 'job-create', 'test-job-delete', '-j', get_test_jobs_directory() ] + subprocess.run(commands) + + commands = [ sys.executable, 'facefusion.py', 'job-delete', 'test-job-delete', '-j', get_test_jobs_directory() ] + + assert subprocess.run(commands).returncode == 0 + assert is_test_job_file('test-job-delete.json', 'drafted') is False + assert subprocess.run(commands).returncode == 1 + + +def test_job_delete_all() -> None: + commands = [ sys.executable, 'facefusion.py', 'job-delete-all', '-j', get_test_jobs_directory() ] + + assert subprocess.run(commands).returncode == 1 + + commands = [ sys.executable, 'facefusion.py', 'job-create', 'test-job-delete-all-1', '-j', get_test_jobs_directory() ] + subprocess.run(commands) + + commands = [ sys.executable, 'facefusion.py', 'job-create', 'test-job-delete-all-2', '-j', get_test_jobs_directory() ] + subprocess.run(commands) + + commands = [ sys.executable, 'facefusion.py', 'job-delete-all', '-j', get_test_jobs_directory() ] + + assert subprocess.run(commands).returncode == 0 + assert is_test_job_file('test-job-delete-all-1.json', 'drafted') is False + assert is_test_job_file('test-job-delete-all-2.json', 'drafted') is False + assert subprocess.run(commands).returncode == 1 + + +def test_job_add_step() -> None: + commands = [ sys.executable, 'facefusion.py', 'job-add-step', 'test-job-add-step', '-j', get_test_jobs_directory(), '-s', get_test_example_file('source.jpg'), '-t', get_test_example_file('target-240p.jpg'), '-o', get_test_output_file('test-job-remix-step.jpg') ] + + assert subprocess.run(commands).returncode == 1 + assert count_step_total('test-job-add-step') == 0 + + commands = [ sys.executable, 'facefusion.py', 'job-create', 'test-job-add-step', '-j', get_test_jobs_directory() ] + subprocess.run(commands) + + commands = [ sys.executable, 'facefusion.py', 'job-add-step', 'test-job-add-step', '-j', get_test_jobs_directory(), '-s', get_test_example_file('source.jpg'), '-t', get_test_example_file('target-240p.jpg'), '-o', get_test_output_file('test-job-remix-step.jpg') ] + + assert subprocess.run(commands).returncode == 0 + assert count_step_total('test-job-add-step') == 1 + + +def test_job_remix() -> None: + commands = [ sys.executable, 'facefusion.py', 'job-remix-step', 'test-job-remix-step', '0', '-j', get_test_jobs_directory(), '-s', get_test_example_file('source.jpg'), '-o', get_test_output_file('test-job-remix-step.jpg') ] + + assert subprocess.run(commands).returncode == 1 + assert count_step_total('test-job-remix-step') == 0 + + commands = [ sys.executable, 'facefusion.py', 'job-create', 'test-job-remix-step', '-j', get_test_jobs_directory() ] + subprocess.run(commands) + + commands = [ sys.executable, 'facefusion.py', 'job-add-step', 'test-job-remix-step', '-j', get_test_jobs_directory(), '-s', get_test_example_file('source.jpg'), '-t', get_test_example_file('target-240p.jpg'), '-o', get_test_output_file('test-job-remix-step.jpg') ] + subprocess.run(commands) + + commands = [ sys.executable, 'facefusion.py', 'job-remix-step', 'test-job-remix-step', '0', '-j', get_test_jobs_directory(), '-s', get_test_example_file('source.jpg'), '-o', get_test_output_file('test-job-remix-step.jpg') ] + + assert count_step_total('test-job-remix-step') == 1 + assert subprocess.run(commands).returncode == 0 + assert count_step_total('test-job-remix-step') == 2 + + commands = [ sys.executable, 'facefusion.py', 'job-remix-step', 'test-job-remix-step', '-1', '-j', get_test_jobs_directory(), '-s', get_test_example_file('source.jpg'), '-o', get_test_output_file('test-job-remix-step.jpg') ] + + assert subprocess.run(commands).returncode == 0 + assert count_step_total('test-job-remix-step') == 3 + + +def test_job_insert_step() -> None: + commands = [ sys.executable, 'facefusion.py', 'job-insert-step', 'test-job-insert-step', '0', '-j', get_test_jobs_directory(), '-s', get_test_example_file('source.jpg'), '-t', get_test_example_file('target-240p.jpg'), '-o', get_test_output_file('test-job-remix-step.jpg') ] + + assert subprocess.run(commands).returncode == 1 + assert count_step_total('test-job-insert-step') == 0 + + commands = [ sys.executable, 'facefusion.py', 'job-create', 'test-job-insert-step', '-j', get_test_jobs_directory() ] + subprocess.run(commands) + + commands = [ sys.executable, 'facefusion.py', 'job-add-step', 'test-job-insert-step', '-j', get_test_jobs_directory(), '-s', get_test_example_file('source.jpg'), '-t', get_test_example_file('target-240p.jpg'), '-o', get_test_output_file('test-job-remix-step.jpg') ] + subprocess.run(commands) + + commands = [ sys.executable, 'facefusion.py', 'job-insert-step', 'test-job-insert-step', '0', '-j', get_test_jobs_directory(), '-s', get_test_example_file('source.jpg'), '-t', get_test_example_file('target-240p.jpg'), '-o', get_test_output_file('test-job-remix-step.jpg') ] + + assert count_step_total('test-job-insert-step') == 1 + assert subprocess.run(commands).returncode == 0 + assert count_step_total('test-job-insert-step') == 2 + + commands = [ sys.executable, 'facefusion.py', 'job-insert-step', 'test-job-insert-step', '-1', '-j', get_test_jobs_directory(), '-s', get_test_example_file('source.jpg'), '-t', get_test_example_file('target-240p.jpg'), '-o', get_test_output_file('test-job-remix-step.jpg') ] + + assert subprocess.run(commands).returncode == 0 + assert count_step_total('test-job-insert-step') == 3 + + +def test_job_remove_step() -> None: + commands = [ sys.executable, 'facefusion.py', 'job-remove-step', 'test-job-remove-step', '0', '-j', get_test_jobs_directory() ] + + assert subprocess.run(commands).returncode == 1 + + commands = [ sys.executable, 'facefusion.py', 'job-create', 'test-job-remove-step', '-j', get_test_jobs_directory() ] + subprocess.run(commands) + + commands = [ sys.executable, 'facefusion.py', 'job-add-step', 'test-job-remove-step', '-j', get_test_jobs_directory(), '-s', get_test_example_file('source.jpg'), '-t', get_test_example_file('target-240p.jpg'), '-o', get_test_output_file('test-job-remix-step.jpg') ] + subprocess.run(commands) + subprocess.run(commands) + + commands = [ sys.executable, 'facefusion.py', 'job-remove-step', 'test-job-remove-step', '0', '-j', get_test_jobs_directory() ] + + assert count_step_total('test-job-remove-step') == 2 + assert subprocess.run(commands).returncode == 0 + assert count_step_total('test-job-remove-step') == 1 + + commands = [ sys.executable, 'facefusion.py', 'job-remove-step', 'test-job-remove-step', '-1', '-j', get_test_jobs_directory() ] + + assert subprocess.run(commands).returncode == 0 + assert subprocess.run(commands).returncode == 1 + assert count_step_total('test-job-remove-step') == 0 diff --git a/tests/test_cli_job_runner.py b/tests/test_cli_job_runner.py new file mode 100644 index 00000000..906ef243 --- /dev/null +++ b/tests/test_cli_job_runner.py @@ -0,0 +1,147 @@ +import subprocess +import sys + +import pytest + +from facefusion.download import conditional_download +from facefusion.jobs.job_manager import clear_jobs, init_jobs, move_job_file, set_steps_status +from .helper import get_test_example_file, get_test_examples_directory, get_test_jobs_directory, get_test_output_file, is_test_output_file, prepare_test_output_directory + + +@pytest.fixture(scope = 'module', autouse = True) +def before_all() -> None: + conditional_download(get_test_examples_directory(), + [ + 'https://github.com/facefusion/facefusion-assets/releases/download/examples-3.0.0/source.jpg', + 'https://github.com/facefusion/facefusion-assets/releases/download/examples-3.0.0/target-240p.mp4' + ]) + subprocess.run([ 'ffmpeg', '-i', get_test_example_file('target-240p.mp4'), '-vframes', '1', get_test_example_file('target-240p.jpg') ]) + + +@pytest.fixture(scope = 'function', autouse = True) +def before_each() -> None: + clear_jobs(get_test_jobs_directory()) + init_jobs(get_test_jobs_directory()) + prepare_test_output_directory() + + +def test_job_run() -> None: + commands = [ sys.executable, 'facefusion.py', 'job-run', 'test-job-run', '-j', get_test_jobs_directory() ] + + assert subprocess.run(commands).returncode == 1 + + commands = [ sys.executable, 'facefusion.py', 'job-create', 'test-job-run', '-j', get_test_jobs_directory() ] + subprocess.run(commands) + + commands = [ sys.executable, 'facefusion.py', 'job-add-step', 'test-job-run', '-j', get_test_jobs_directory(), '--processors', 'face_debugger', '-t', get_test_example_file('target-240p.jpg'), '-o', get_test_output_file('test-job-run.jpg') ] + subprocess.run(commands) + + commands = [ sys.executable, 'facefusion.py', 'job-run', 'test-job-run', '-j', get_test_jobs_directory() ] + + assert subprocess.run(commands).returncode == 1 + + commands = [ sys.executable, 'facefusion.py', 'job-submit', 'test-job-run', '-j', get_test_jobs_directory() ] + subprocess.run(commands) + + commands = [ sys.executable, 'facefusion.py', 'job-run', 'test-job-run', '-j', get_test_jobs_directory() ] + + assert subprocess.run(commands).returncode == 0 + assert subprocess.run(commands).returncode == 1 + assert is_test_output_file('test-job-run.jpg') is True + + +def test_job_run_all() -> None: + commands = [ sys.executable, 'facefusion.py', 'job-run-all', '-j', get_test_jobs_directory() ] + + assert subprocess.run(commands).returncode == 1 + + commands = [ sys.executable, 'facefusion.py', 'job-create', 'test-job-run-all-1', '-j', get_test_jobs_directory() ] + subprocess.run(commands) + + commands = [ sys.executable, 'facefusion.py', 'job-create', 'test-job-run-all-2', '-j', get_test_jobs_directory() ] + subprocess.run(commands) + + commands = [ sys.executable, 'facefusion.py', 'job-add-step', 'test-job-run-all-1', '-j', get_test_jobs_directory(), '--processors', 'face_debugger', '-t', get_test_example_file('target-240p.jpg'), '-o', get_test_output_file('test-job-run-all-1.jpg') ] + subprocess.run(commands) + + commands = [ sys.executable, 'facefusion.py', 'job-add-step', 'test-job-run-all-2', '-j', get_test_jobs_directory(), '--processors', 'face_debugger', '-t', get_test_example_file('target-240p.mp4'), '-o', get_test_output_file('test-job-run-all-2.mp4'), '--trim-frame-end', '1' ] + subprocess.run(commands) + + commands = [ sys.executable, 'facefusion.py', 'job-add-step', 'test-job-run-all-2', '-j', get_test_jobs_directory(), '--processors', 'face_debugger', '-t', get_test_example_file('target-240p.mp4'), '-o', get_test_output_file('test-job-run-all-2.mp4'), '--trim-frame-start', '0', '--trim-frame-end', '1' ] + subprocess.run(commands) + + commands = [ sys.executable, 'facefusion.py', 'job-run-all', '-j', get_test_jobs_directory() ] + + assert subprocess.run(commands).returncode == 1 + + commands = [ sys.executable, 'facefusion.py', 'job-submit-all', '-j', get_test_jobs_directory() ] + subprocess.run(commands) + + commands = [ sys.executable, 'facefusion.py', 'job-run-all', '-j', get_test_jobs_directory() ] + + assert subprocess.run(commands).returncode == 0 + assert subprocess.run(commands).returncode == 1 + assert is_test_output_file('test-job-run-all-1.jpg') is True + assert is_test_output_file('test-job-run-all-2.mp4') is True + + +def test_job_retry() -> None: + commands = [ sys.executable, 'facefusion.py', 'job-retry', 'test-job-retry', '-j', get_test_jobs_directory() ] + + assert subprocess.run(commands).returncode == 1 + + commands = [ sys.executable, 'facefusion.py', 'job-create', 'test-job-retry', '-j', get_test_jobs_directory() ] + subprocess.run(commands) + + commands = [ sys.executable, 'facefusion.py', 'job-add-step', 'test-job-retry', '-j', get_test_jobs_directory(), '--processors', 'face_debugger', '-t', get_test_example_file('target-240p.jpg'), '-o', get_test_output_file('test-job-retry.jpg') ] + subprocess.run(commands) + + commands = [ sys.executable, 'facefusion.py', 'job-retry', 'test-job-retry', '-j', get_test_jobs_directory() ] + + assert subprocess.run(commands).returncode == 1 + + set_steps_status('test-job-retry', 'failed') + move_job_file('test-job-retry', 'failed') + + commands = [ sys.executable, 'facefusion.py', 'job-retry', 'test-job-retry', '-j', get_test_jobs_directory() ] + + assert subprocess.run(commands).returncode == 0 + assert subprocess.run(commands).returncode == 1 + assert is_test_output_file('test-job-retry.jpg') is True + + +def test_job_retry_all() -> None: + commands = [ sys.executable, 'facefusion.py', 'job-retry-all', '-j', get_test_jobs_directory() ] + + assert subprocess.run(commands).returncode == 1 + + commands = [ sys.executable, 'facefusion.py', 'job-create', 'test-job-retry-all-1', '-j', get_test_jobs_directory() ] + subprocess.run(commands) + + commands = [ sys.executable, 'facefusion.py', 'job-create', 'test-job-retry-all-2', '-j', get_test_jobs_directory() ] + subprocess.run(commands) + + commands = [ sys.executable, 'facefusion.py', 'job-add-step', 'test-job-retry-all-1', '-j', get_test_jobs_directory(), '--processors', 'face_debugger', '-t', get_test_example_file('target-240p.jpg'), '-o', get_test_output_file('test-job-retry-all-1.jpg') ] + subprocess.run(commands) + + commands = [ sys.executable, 'facefusion.py', 'job-add-step', 'test-job-retry-all-2', '-j', get_test_jobs_directory(), '--processors', 'face_debugger', '-t', get_test_example_file('target-240p.mp4'), '-o', get_test_output_file('test-job-retry-all-2.mp4'), '--trim-frame-end', '1' ] + subprocess.run(commands) + + commands = [ sys.executable, 'facefusion.py', 'job-add-step', 'test-job-retry-all-2', '-j', get_test_jobs_directory(), '--processors', 'face_debugger', '-t', get_test_example_file('target-240p.mp4'), '-o', get_test_output_file('test-job-retry-all-2.mp4'), '--trim-frame-start', '0', '--trim-frame-end', '1' ] + subprocess.run(commands) + + commands = [ sys.executable, 'facefusion.py', 'job-retry-all', '-j', get_test_jobs_directory() ] + + assert subprocess.run(commands).returncode == 1 + + set_steps_status('test-job-retry-all-1', 'failed') + set_steps_status('test-job-retry-all-2', 'failed') + move_job_file('test-job-retry-all-1', 'failed') + move_job_file('test-job-retry-all-2', 'failed') + + commands = [ sys.executable, 'facefusion.py', 'job-retry-all', '-j', get_test_jobs_directory() ] + + assert subprocess.run(commands).returncode == 0 + assert subprocess.run(commands).returncode == 1 + assert is_test_output_file('test-job-retry-all-1.jpg') is True + assert is_test_output_file('test-job-retry-all-2.mp4') is True diff --git a/tests/test_cli_lip_syncer.py b/tests/test_cli_lip_syncer.py index 089ff41a..bd8d078d 100644 --- a/tests/test_cli_lip_syncer.py +++ b/tests/test_cli_lip_syncer.py @@ -1,32 +1,40 @@ import subprocess import sys + import pytest from facefusion.download import conditional_download +from facefusion.jobs.job_manager import clear_jobs, init_jobs +from .helper import get_test_example_file, get_test_examples_directory, get_test_jobs_directory, get_test_output_file, is_test_output_file, prepare_test_output_directory @pytest.fixture(scope = 'module', autouse = True) def before_all() -> None: - conditional_download('.assets/examples', + conditional_download(get_test_examples_directory(), [ - 'https://github.com/facefusion/facefusion-assets/releases/download/examples/source.jpg', - 'https://github.com/facefusion/facefusion-assets/releases/download/examples/source.mp3', - 'https://github.com/facefusion/facefusion-assets/releases/download/examples/target-240p.mp4' + 'https://github.com/facefusion/facefusion-assets/releases/download/examples-3.0.0/source.jpg', + 'https://github.com/facefusion/facefusion-assets/releases/download/examples-3.0.0/source.mp3', + 'https://github.com/facefusion/facefusion-assets/releases/download/examples-3.0.0/target-240p.mp4' ]) - subprocess.run([ 'ffmpeg', '-i', '.assets/examples/target-240p.mp4', '-vframes', '1', '.assets/examples/target-240p.jpg' ]) + subprocess.run([ 'ffmpeg', '-i', get_test_example_file('target-240p.mp4'), '-vframes', '1', get_test_example_file('target-240p.jpg') ]) + + +@pytest.fixture(scope = 'function', autouse = True) +def before_each() -> None: + clear_jobs(get_test_jobs_directory()) + init_jobs(get_test_jobs_directory()) + prepare_test_output_directory() def test_sync_lip_to_image() -> None: - commands = [ sys.executable, 'run.py', '--frame-processors', 'lip_syncer', '-s', '.assets/examples/source.mp3', '-t', '.assets/examples/target-240p.jpg', '-o', '.assets/examples/test_sync_lip_to_image.jpg', '--headless' ] - run = subprocess.run(commands, stdout = subprocess.PIPE, stderr = subprocess.STDOUT) + commands = [ sys.executable, 'facefusion.py', 'headless-run', '-j', get_test_jobs_directory(), '--processors', 'lip_syncer', '-s', get_test_example_file('source.mp3'), '-t', get_test_example_file('target-240p.jpg'), '-o', get_test_output_file('test_sync_lip_to_image.jpg') ] - assert run.returncode == 0 - assert 'image succeed' in run.stdout.decode() + assert subprocess.run(commands).returncode == 0 + assert is_test_output_file('test_sync_lip_to_image.jpg') is True def test_sync_lip_to_video() -> None: - commands = [ sys.executable, 'run.py', '--frame-processors', 'lip_syncer', '-s', '.assets/examples/source.mp3', '-t', '.assets/examples/target-240p.mp4', '-o', '.assets/examples/test_sync_lip_to_video.mp4', '--trim-frame-end', '10', '--headless' ] - run = subprocess.run(commands, stdout = subprocess.PIPE, stderr = subprocess.STDOUT) + commands = [ sys.executable, 'facefusion.py', 'headless-run', '-j', get_test_jobs_directory(), '--processors', 'lip_syncer', '-s', get_test_example_file('source.mp3'), '-t', get_test_example_file('target-240p.mp4'), '-o', get_test_output_file('test_sync_lip_to_video.mp4'), '--trim-frame-end', '1' ] - assert run.returncode == 0 - assert 'video succeed' in run.stdout.decode() + assert subprocess.run(commands).returncode == 0 + assert is_test_output_file('test_sync_lip_to_video.mp4') is True diff --git a/tests/test_common_helper.py b/tests/test_common_helper.py index 6cef2c3c..ed7dcfdb 100644 --- a/tests/test_common_helper.py +++ b/tests/test_common_helper.py @@ -1,8 +1,12 @@ -from facefusion.common_helper import create_metavar, create_int_range, create_float_range +from facefusion.common_helper import calc_float_step, calc_int_step, create_float_metavar, create_float_range, create_int_metavar, create_int_range -def test_create_metavar() -> None: - assert create_metavar([ 1, 2, 3, 4, 5 ]) == '[1-5]' +def test_create_int_metavar() -> None: + assert create_int_metavar([ 1, 2, 3, 4, 5 ]) == '[1..5:1]' + + +def test_create_float_metavar() -> None: + assert create_float_metavar([ 0.1, 0.2, 0.3, 0.4, 0.5 ]) == '[0.1..0.5:0.1]' def test_create_int_range() -> None: @@ -13,3 +17,11 @@ def test_create_int_range() -> None: def test_create_float_range() -> None: assert create_float_range(0.0, 1.0, 0.5) == [ 0.0, 0.5, 1.0 ] assert create_float_range(0.0, 1.0, 0.05) == [ 0.0, 0.05, 0.10, 0.15, 0.20, 0.25, 0.30, 0.35, 0.40, 0.45, 0.50, 0.55, 0.60, 0.65, 0.70, 0.75, 0.80, 0.85, 0.90, 0.95, 1.0 ] + + +def test_calc_int_step() -> None: + assert calc_int_step([ 0, 1 ]) == 1 + + +def test_calc_float_step() -> None: + assert calc_float_step([ 0.1, 0.2 ]) == 0.1 diff --git a/tests/test_config.py b/tests/test_config.py index 8c830fd6..88550e51 100644 --- a/tests/test_config.py +++ b/tests/test_config.py @@ -1,4 +1,5 @@ from configparser import ConfigParser + import pytest from facefusion import config diff --git a/tests/test_date_helper.py b/tests/test_date_helper.py new file mode 100644 index 00000000..7ec714f8 --- /dev/null +++ b/tests/test_date_helper.py @@ -0,0 +1,15 @@ +from datetime import datetime, timedelta + +from facefusion.date_helper import describe_time_ago + + +def get_time_ago(days : int, hours : int, minutes : int) -> datetime: + previous_time = datetime.now() - timedelta(days = days, hours = hours, minutes = minutes) + return previous_time.astimezone() + + +def test_describe_time_ago() -> None: + assert describe_time_ago(get_time_ago(0, 0, 0)) == 'just now' + assert describe_time_ago(get_time_ago(0, 0, 5)) == '5 minutes ago' + assert describe_time_ago(get_time_ago(0, 5, 10)) == '5 hours and 10 minutes ago' + assert describe_time_ago(get_time_ago(5, 10, 15)) == '5 days, 10 hours and 15 minutes ago' diff --git a/tests/test_download.py b/tests/test_download.py index 6df94b17..8ca1d368 100644 --- a/tests/test_download.py +++ b/tests/test_download.py @@ -1,23 +1,24 @@ import pytest from facefusion.download import conditional_download, get_download_size, is_download_done +from .helper import get_test_example_file, get_test_examples_directory @pytest.fixture(scope = 'module', autouse = True) def before_all() -> None: - conditional_download('.assets/examples', + conditional_download(get_test_examples_directory(), [ - 'https://github.com/facefusion/facefusion-assets/releases/download/examples/target-240p.mp4' + 'https://github.com/facefusion/facefusion-assets/releases/download/examples-3.0.0/target-240p.mp4' ]) def test_get_download_size() -> None: - assert get_download_size('https://github.com/facefusion/facefusion-assets/releases/download/examples/target-240p.mp4') == 191675 - assert get_download_size('https://github.com/facefusion/facefusion-assets/releases/download/examples/target-360p.mp4') == 370732 + assert get_download_size('https://github.com/facefusion/facefusion-assets/releases/download/examples-3.0.0/target-240p.mp4') == 191675 + assert get_download_size('https://github.com/facefusion/facefusion-assets/releases/download/examples-3.0.0/target-360p.mp4') == 370732 assert get_download_size('invalid') == 0 def test_is_download_done() -> None: - assert is_download_done('https://github.com/facefusion/facefusion-assets/releases/download/examples/target-240p.mp4', '.assets/examples/target-240p.mp4') is True - assert is_download_done('https://github.com/facefusion/facefusion-assets/releases/download/examples/target-240p.mp4', 'invalid') is False + assert is_download_done('https://github.com/facefusion/facefusion-assets/releases/download/examples-3.0.0/target-240p.mp4', get_test_example_file('target-240p.mp4')) is True + assert is_download_done('https://github.com/facefusion/facefusion-assets/releases/download/examples-3.0.0/target-240p.mp4', 'invalid') is False assert is_download_done('invalid', 'invalid') is False diff --git a/tests/test_execution.py b/tests/test_execution.py index eaada164..1823f1e8 100644 --- a/tests/test_execution.py +++ b/tests/test_execution.py @@ -1,27 +1,24 @@ -from facefusion.execution import encode_execution_providers, decode_execution_providers, has_execution_provider, apply_execution_provider_options +from facefusion.execution import create_execution_providers, get_execution_provider_choices, has_execution_provider -def test_encode_execution_providers() -> None: - assert encode_execution_providers([ 'CPUExecutionProvider' ]) == [ 'cpu' ] - - -def test_decode_execution_providers() -> None: - assert decode_execution_providers([ 'cpu' ]) == [ 'CPUExecutionProvider' ] +def test_get_execution_provider_choices() -> None: + assert 'cpu' in get_execution_provider_choices() def test_has_execution_provider() -> None: - assert has_execution_provider('CPUExecutionProvider') is True - assert has_execution_provider('InvalidExecutionProvider') is False + assert has_execution_provider('cpu') is True + assert has_execution_provider('openvino') is False def test_multiple_execution_providers() -> None: execution_provider_with_options =\ [ - 'CPUExecutionProvider', ('CUDAExecutionProvider', { 'device_id': '1', 'cudnn_conv_algo_search': 'DEFAULT' - }) + }), + 'CPUExecutionProvider' ] - assert apply_execution_provider_options('1', [ 'CPUExecutionProvider', 'CUDAExecutionProvider' ]) == execution_provider_with_options + + assert create_execution_providers('1', [ 'cpu', 'cuda' ]) == execution_provider_with_options diff --git a/tests/test_face_analyser.py b/tests/test_face_analyser.py index 957dfc8d..7c351861 100644 --- a/tests/test_face_analyser.py +++ b/tests/test_face_analyser.py @@ -1,103 +1,109 @@ import subprocess + import pytest -import facefusion.globals +from facefusion import face_classifier, face_detector, face_landmarker, face_recognizer, state_manager from facefusion.download import conditional_download -from facefusion.face_analyser import pre_check, clear_face_analyser, get_one_face +from facefusion.face_analyser import get_many_faces, get_one_face from facefusion.typing import Face from facefusion.vision import read_static_image +from .helper import get_test_example_file, get_test_examples_directory @pytest.fixture(scope = 'module', autouse = True) def before_all() -> None: - conditional_download('.assets/examples', + conditional_download(get_test_examples_directory(), [ - 'https://github.com/facefusion/facefusion-assets/releases/download/examples/source.jpg' + 'https://github.com/facefusion/facefusion-assets/releases/download/examples-3.0.0/source.jpg' ]) - subprocess.run([ 'ffmpeg', '-i', '.assets/examples/source.jpg', '-vf', 'crop=iw*0.8:ih*0.8', '.assets/examples/source-80crop.jpg' ]) - subprocess.run([ 'ffmpeg', '-i', '.assets/examples/source.jpg', '-vf', 'crop=iw*0.7:ih*0.7', '.assets/examples/source-70crop.jpg' ]) - subprocess.run([ 'ffmpeg', '-i', '.assets/examples/source.jpg', '-vf', 'crop=iw*0.6:ih*0.6', '.assets/examples/source-60crop.jpg' ]) + subprocess.run([ 'ffmpeg', '-i', get_test_example_file('source.jpg'), '-vf', 'crop=iw*0.8:ih*0.8', get_test_example_file('source-80crop.jpg') ]) + subprocess.run([ 'ffmpeg', '-i', get_test_example_file('source.jpg'), '-vf', 'crop=iw*0.7:ih*0.7', get_test_example_file('source-70crop.jpg') ]) + subprocess.run([ 'ffmpeg', '-i', get_test_example_file('source.jpg'), '-vf', 'crop=iw*0.6:ih*0.6', get_test_example_file('source-60crop.jpg') ]) + state_manager.init_item('execution_device_id', 0) + state_manager.init_item('execution_providers', [ 'cpu' ]) + state_manager.init_item('face_detector_angles', [ 0 ]) + state_manager.init_item('face_detector_model', 'many') + state_manager.init_item('face_detector_score', 0.5) + state_manager.init_item('face_landmarker_model', 'many') + state_manager.init_item('face_landmarker_score', 0.5) + face_classifier.pre_check() + face_landmarker.pre_check() + face_recognizer.pre_check() @pytest.fixture(autouse = True) def before_each() -> None: - facefusion.globals.face_detector_score = 0.5 - facefusion.globals.face_landmarker_score = 0.5 - facefusion.globals.face_recognizer_model = 'arcface_inswapper' - clear_face_analyser() + face_classifier.clear_inference_pool() + face_detector.clear_inference_pool() + face_landmarker.clear_inference_pool() + face_recognizer.clear_inference_pool() def test_get_one_face_with_retinaface() -> None: - facefusion.globals.face_detector_model = 'retinaface' - facefusion.globals.face_detector_size = '320x320' + state_manager.init_item('face_detector_model', 'retinaface') + state_manager.init_item('face_detector_size', '320x320') + face_detector.pre_check() - pre_check() source_paths =\ [ - '.assets/examples/source.jpg', - '.assets/examples/source-80crop.jpg', - '.assets/examples/source-70crop.jpg', - '.assets/examples/source-60crop.jpg' + get_test_example_file('source.jpg'), + get_test_example_file('source-80crop.jpg'), + get_test_example_file('source-70crop.jpg'), + get_test_example_file('source-60crop.jpg') ] for source_path in source_paths: source_frame = read_static_image(source_path) - face = get_one_face(source_frame) + many_faces = get_many_faces([ source_frame ]) + face = get_one_face(many_faces) assert isinstance(face, Face) def test_get_one_face_with_scrfd() -> None: - facefusion.globals.face_detector_model = 'scrfd' - facefusion.globals.face_detector_size = '640x640' + state_manager.init_item('face_detector_model', 'scrfd') + state_manager.init_item('face_detector_size', '640x640') + face_detector.pre_check() - pre_check() source_paths =\ [ - '.assets/examples/source.jpg', - '.assets/examples/source-80crop.jpg', - '.assets/examples/source-70crop.jpg', - '.assets/examples/source-60crop.jpg' + get_test_example_file('source.jpg'), + get_test_example_file('source-80crop.jpg'), + get_test_example_file('source-70crop.jpg'), + get_test_example_file('source-60crop.jpg') ] for source_path in source_paths: source_frame = read_static_image(source_path) - face = get_one_face(source_frame) + many_faces = get_many_faces([ source_frame ]) + face = get_one_face(many_faces) assert isinstance(face, Face) def test_get_one_face_with_yoloface() -> None: - facefusion.globals.face_detector_model = 'yoloface' - facefusion.globals.face_detector_size = '640x640' + state_manager.init_item('face_detector_model', 'yoloface') + state_manager.init_item('face_detector_size', '640x640') + face_detector.pre_check() - pre_check() source_paths =\ [ - '.assets/examples/source.jpg', - '.assets/examples/source-80crop.jpg', - '.assets/examples/source-70crop.jpg', - '.assets/examples/source-60crop.jpg' + get_test_example_file('source.jpg'), + get_test_example_file('source-80crop.jpg'), + get_test_example_file('source-70crop.jpg'), + get_test_example_file('source-60crop.jpg') ] for source_path in source_paths: source_frame = read_static_image(source_path) - face = get_one_face(source_frame) + many_faces = get_many_faces([ source_frame ]) + face = get_one_face(many_faces) assert isinstance(face, Face) -def test_get_one_face_with_yunet() -> None: - facefusion.globals.face_detector_model = 'yunet' - facefusion.globals.face_detector_size = '640x640' +def test_get_many_faces() -> None: + source_path = get_test_example_file('source.jpg') + source_frame = read_static_image(source_path) + many_faces = get_many_faces([ source_frame, source_frame, source_frame ]) - pre_check() - source_paths =\ - [ - '.assets/examples/source.jpg', - '.assets/examples/source-80crop.jpg', - '.assets/examples/source-70crop.jpg', - '.assets/examples/source-60crop.jpg' - ] - for source_path in source_paths: - source_frame = read_static_image(source_path) - face = get_one_face(source_frame) - - assert isinstance(face, Face) + assert isinstance(many_faces[0], Face) + assert isinstance(many_faces[1], Face) + assert isinstance(many_faces[2], Face) diff --git a/tests/test_ffmpeg.py b/tests/test_ffmpeg.py index 5c4bd2d0..ef2e22cf 100644 --- a/tests/test_ffmpeg.py +++ b/tests/test_ffmpeg.py @@ -1,113 +1,127 @@ import glob import subprocess + import pytest -import facefusion.globals -from facefusion import process_manager -from facefusion.filesystem import get_temp_directory_path, create_temp, clear_temp +from facefusion import process_manager, state_manager from facefusion.download import conditional_download -from facefusion.ffmpeg import extract_frames, read_audio_buffer +from facefusion.ffmpeg import concat_video, extract_frames, read_audio_buffer +from facefusion.temp_helper import clear_temp_directory, create_temp_directory, get_temp_directory_path +from .helper import get_test_example_file, get_test_examples_directory, get_test_output_file, prepare_test_output_directory @pytest.fixture(scope = 'module', autouse = True) def before_all() -> None: process_manager.start() - conditional_download('.assets/examples', + conditional_download(get_test_examples_directory(), [ - 'https://github.com/facefusion/facefusion-assets/releases/download/examples/source.jpg', - 'https://github.com/facefusion/facefusion-assets/releases/download/examples/source.mp3', - 'https://github.com/facefusion/facefusion-assets/releases/download/examples/target-240p.mp4' + 'https://github.com/facefusion/facefusion-assets/releases/download/examples-3.0.0/source.jpg', + 'https://github.com/facefusion/facefusion-assets/releases/download/examples-3.0.0/source.mp3', + 'https://github.com/facefusion/facefusion-assets/releases/download/examples-3.0.0/target-240p.mp4' ]) - subprocess.run([ 'ffmpeg', '-i', '.assets/examples/source.mp3', '.assets/examples/source.wav' ]) - subprocess.run([ 'ffmpeg', '-i', '.assets/examples/target-240p.mp4', '-vf', 'fps=25', '.assets/examples/target-240p-25fps.mp4' ]) - subprocess.run([ 'ffmpeg', '-i', '.assets/examples/target-240p.mp4', '-vf', 'fps=30', '.assets/examples/target-240p-30fps.mp4' ]) - subprocess.run([ 'ffmpeg', '-i', '.assets/examples/target-240p.mp4', '-vf', 'fps=60', '.assets/examples/target-240p-60fps.mp4' ]) + subprocess.run([ 'ffmpeg', '-i', get_test_example_file('source.mp3'), get_test_example_file('source.wav') ]) + subprocess.run([ 'ffmpeg', '-i', get_test_example_file('target-240p.mp4'), '-vf', 'fps=25', get_test_example_file('target-240p-25fps.mp4') ]) + subprocess.run([ 'ffmpeg', '-i', get_test_example_file('target-240p.mp4'), '-vf', 'fps=30', get_test_example_file('target-240p-30fps.mp4') ]) + subprocess.run([ 'ffmpeg', '-i', get_test_example_file('target-240p.mp4'), '-vf', 'fps=60', get_test_example_file('target-240p-60fps.mp4') ]) + state_manager.init_item('temp_frame_format', 'jpg') + state_manager.init_item('output_audio_encoder', 'aac') @pytest.fixture(scope = 'function', autouse = True) def before_each() -> None: - facefusion.globals.trim_frame_start = None - facefusion.globals.trim_frame_end = None - facefusion.globals.temp_frame_format = 'jpg' + state_manager.clear_item('trim_frame_start') + state_manager.clear_item('trim_frame_end') + prepare_test_output_directory() def test_extract_frames() -> None: target_paths =\ [ - '.assets/examples/target-240p-25fps.mp4', - '.assets/examples/target-240p-30fps.mp4', - '.assets/examples/target-240p-60fps.mp4' + get_test_example_file('target-240p-25fps.mp4'), + get_test_example_file('target-240p-30fps.mp4'), + get_test_example_file('target-240p-60fps.mp4') ] for target_path in target_paths: temp_directory_path = get_temp_directory_path(target_path) - create_temp(target_path) + create_temp_directory(target_path) assert extract_frames(target_path, '452x240', 30.0) is True assert len(glob.glob1(temp_directory_path, '*.jpg')) == 324 - clear_temp(target_path) + clear_temp_directory(target_path) def test_extract_frames_with_trim_start() -> None: - facefusion.globals.trim_frame_start = 224 - data_provider =\ + state_manager.init_item('trim_frame_start', 224) + providers =\ [ - ('.assets/examples/target-240p-25fps.mp4', 55), - ('.assets/examples/target-240p-30fps.mp4', 100), - ('.assets/examples/target-240p-60fps.mp4', 212) + (get_test_example_file('target-240p-25fps.mp4'), 55), + (get_test_example_file('target-240p-30fps.mp4'), 100), + (get_test_example_file('target-240p-60fps.mp4'), 212) ] - for target_path, frame_total in data_provider: + for target_path, frame_total in providers: temp_directory_path = get_temp_directory_path(target_path) - create_temp(target_path) + create_temp_directory(target_path) assert extract_frames(target_path, '452x240', 30.0) is True assert len(glob.glob1(temp_directory_path, '*.jpg')) == frame_total - clear_temp(target_path) + clear_temp_directory(target_path) def test_extract_frames_with_trim_start_and_trim_end() -> None: - facefusion.globals.trim_frame_start = 124 - facefusion.globals.trim_frame_end = 224 - data_provider =\ + state_manager.init_item('trim_frame_start', 124) + state_manager.init_item('trim_frame_end', 224) + providers =\ [ - ('.assets/examples/target-240p-25fps.mp4', 120), - ('.assets/examples/target-240p-30fps.mp4', 100), - ('.assets/examples/target-240p-60fps.mp4', 50) + (get_test_example_file('target-240p-25fps.mp4'), 120), + (get_test_example_file('target-240p-30fps.mp4'), 100), + (get_test_example_file('target-240p-60fps.mp4'), 50) ] - for target_path, frame_total in data_provider: + for target_path, frame_total in providers: temp_directory_path = get_temp_directory_path(target_path) - create_temp(target_path) + create_temp_directory(target_path) assert extract_frames(target_path, '452x240', 30.0) is True assert len(glob.glob1(temp_directory_path, '*.jpg')) == frame_total - clear_temp(target_path) + clear_temp_directory(target_path) def test_extract_frames_with_trim_end() -> None: - facefusion.globals.trim_frame_end = 100 - data_provider =\ + state_manager.init_item('trim_frame_end', 100) + providers =\ [ - ('.assets/examples/target-240p-25fps.mp4', 120), - ('.assets/examples/target-240p-30fps.mp4', 100), - ('.assets/examples/target-240p-60fps.mp4', 50) + (get_test_example_file('target-240p-25fps.mp4'), 120), + (get_test_example_file('target-240p-30fps.mp4'), 100), + (get_test_example_file('target-240p-60fps.mp4'), 50) ] - for target_path, frame_total in data_provider: + for target_path, frame_total in providers: temp_directory_path = get_temp_directory_path(target_path) - create_temp(target_path) + create_temp_directory(target_path) assert extract_frames(target_path, '426x240', 30.0) is True assert len(glob.glob1(temp_directory_path, '*.jpg')) == frame_total - clear_temp(target_path) + clear_temp_directory(target_path) + + +def test_concat_video() -> None: + output_path = get_test_output_file('test-concat-video.mp4') + temp_output_paths =\ + [ + get_test_example_file('target-240p.mp4'), + get_test_example_file('target-240p.mp4') + ] + + assert concat_video(output_path, temp_output_paths) is True def test_read_audio_buffer() -> None: - assert isinstance(read_audio_buffer('.assets/examples/source.mp3', 1, 1), bytes) - assert isinstance(read_audio_buffer('.assets/examples/source.wav', 1, 1), bytes) - assert read_audio_buffer('.assets/examples/invalid.mp3', 1, 1) is None + assert isinstance(read_audio_buffer(get_test_example_file('source.mp3'), 1, 1), bytes) + assert isinstance(read_audio_buffer(get_test_example_file('source.wav'), 1, 1), bytes) + assert read_audio_buffer(get_test_example_file('invalid.mp3'), 1, 1) is None diff --git a/tests/test_filesystem.py b/tests/test_filesystem.py index 143dbc94..fedac41c 100644 --- a/tests/test_filesystem.py +++ b/tests/test_filesystem.py @@ -1,91 +1,119 @@ -import shutil +import os.path + import pytest from facefusion.common_helper import is_windows from facefusion.download import conditional_download -from facefusion.filesystem import get_file_size, is_file, is_directory, is_audio, has_audio, is_image, has_image, is_video, filter_audio_paths, filter_image_paths, list_directory, sanitize_path_for_windows +from facefusion.filesystem import copy_file, create_directory, filter_audio_paths, filter_image_paths, get_file_size, has_audio, has_image, in_directory, is_audio, is_directory, is_file, is_image, is_video, list_directory, remove_directory, same_file_extension, sanitize_path_for_windows +from .helper import get_test_example_file, get_test_examples_directory, get_test_outputs_directory @pytest.fixture(scope = 'module', autouse = True) def before_all() -> None: - conditional_download('.assets/examples', + conditional_download(get_test_examples_directory(), [ - 'https://github.com/facefusion/facefusion-assets/releases/download/examples/source.jpg', - 'https://github.com/facefusion/facefusion-assets/releases/download/examples/source.mp3', - 'https://github.com/facefusion/facefusion-assets/releases/download/examples/target-240p.mp4' + 'https://github.com/facefusion/facefusion-assets/releases/download/examples-3.0.0/source.jpg', + 'https://github.com/facefusion/facefusion-assets/releases/download/examples-3.0.0/source.mp3', + 'https://github.com/facefusion/facefusion-assets/releases/download/examples-3.0.0/target-240p.mp4' ]) - shutil.copyfile('.assets/examples/source.jpg', '.assets/examples/söurce.jpg') + copy_file(get_test_example_file('source.jpg'), get_test_example_file('söurce.jpg')) def test_get_file_size() -> None: - assert get_file_size('.assets/examples/source.jpg') > 0 + assert get_file_size(get_test_example_file('source.jpg')) > 0 assert get_file_size('invalid') == 0 +def test_same_file_extension() -> None: + assert same_file_extension([ 'target.jpg', 'output.jpg' ]) is True + assert same_file_extension([ 'target.jpg', 'output.mp4' ]) is False + + def test_is_file() -> None: - assert is_file('.assets/examples/source.jpg') is True - assert is_file('.assets/examples') is False + assert is_file(get_test_example_file('source.jpg')) is True + assert is_file(get_test_examples_directory()) is False assert is_file('invalid') is False def test_is_directory() -> None: - assert is_directory('.assets/examples') is True - assert is_directory('.assets/examples/source.jpg') is False + assert is_directory(get_test_examples_directory()) is True + assert is_directory(get_test_example_file('source.jpg')) is False assert is_directory('invalid') is False +def test_in_directory() -> None: + assert in_directory(get_test_example_file('source.jpg')) is True + assert in_directory('source.jpg') is False + assert in_directory('invalid') is False + + def test_is_audio() -> None: - assert is_audio('.assets/examples/source.mp3') is True - assert is_audio('.assets/examples/source.jpg') is False + assert is_audio(get_test_example_file('source.mp3')) is True + assert is_audio(get_test_example_file('source.jpg')) is False assert is_audio('invalid') is False def test_has_audio() -> None: - assert has_audio([ '.assets/examples/source.mp3' ]) is True - assert has_audio([ '.assets/examples/source.mp3', '.assets/examples/source.jpg' ]) is True - assert has_audio([ '.assets/examples/source.jpg', '.assets/examples/source.jpg' ]) is False + assert has_audio([ get_test_example_file('source.mp3') ]) is True + assert has_audio([ get_test_example_file('source.mp3'), get_test_example_file('source.jpg') ]) is True + assert has_audio([ get_test_example_file('source.jpg'), get_test_example_file('source.jpg') ]) is False assert has_audio([ 'invalid' ]) is False def test_is_image() -> None: - assert is_image('.assets/examples/source.jpg') is True - assert is_image('.assets/examples/target-240p.mp4') is False + assert is_image(get_test_example_file('source.jpg')) is True + assert is_image(get_test_example_file('target-240p.mp4')) is False assert is_image('invalid') is False def test_has_image() -> None: - assert has_image([ '.assets/examples/source.jpg' ]) is True - assert has_image([ '.assets/examples/source.jpg', '.assets/examples/source.mp3' ]) is True - assert has_image([ '.assets/examples/source.mp3', '.assets/examples/source.mp3' ]) is False + assert has_image([ get_test_example_file('source.jpg') ]) is True + assert has_image([ get_test_example_file('source.jpg'), get_test_example_file('source.mp3') ]) is True + assert has_image([ get_test_example_file('source.mp3'), get_test_example_file('source.mp3') ]) is False assert has_image([ 'invalid' ]) is False def test_is_video() -> None: - assert is_video('.assets/examples/target-240p.mp4') is True - assert is_video('.assets/examples/source.jpg') is False + assert is_video(get_test_example_file('target-240p.mp4')) is True + assert is_video(get_test_example_file('source.jpg')) is False assert is_video('invalid') is False def test_filter_audio_paths() -> None: - assert filter_audio_paths([ '.assets/examples/source.jpg', '.assets/examples/source.mp3' ]) == [ '.assets/examples/source.mp3' ] - assert filter_audio_paths([ '.assets/examples/source.jpg', '.assets/examples/source.jpg' ]) == [] + assert filter_audio_paths([ get_test_example_file('source.jpg'), get_test_example_file('source.mp3') ]) == [ get_test_example_file('source.mp3') ] + assert filter_audio_paths([ get_test_example_file('source.jpg'), get_test_example_file('source.jpg') ]) == [] assert filter_audio_paths([ 'invalid' ]) == [] def test_filter_image_paths() -> None: - assert filter_image_paths([ '.assets/examples/source.jpg', '.assets/examples/source.mp3' ]) == [ '.assets/examples/source.jpg' ] - assert filter_image_paths([ '.assets/examples/source.mp3', '.assets/examples/source.mp3' ]) == [] + assert filter_image_paths([ get_test_example_file('source.jpg'), get_test_example_file('source.mp3') ]) == [ get_test_example_file('source.jpg') ] + assert filter_image_paths([ get_test_example_file('source.mp3'), get_test_example_file('source.mp3') ]) == [] assert filter_audio_paths([ 'invalid' ]) == [] +def test_sanitize_path_for_windows() -> None: + if is_windows(): + assert sanitize_path_for_windows(get_test_example_file('söurce.jpg')).endswith('SURCE~1.JPG') + assert sanitize_path_for_windows('invalid') is None + + +def test_create_directory() -> None: + create_directory_path = os.path.join(get_test_outputs_directory(), 'create_directory') + + assert create_directory(create_directory_path) is True + assert create_directory(get_test_example_file('source.jpg')) is False + + def test_list_directory() -> None: - assert list_directory('.assets/examples') - assert list_directory('.assets/examples/source.jpg') is None + assert list_directory(get_test_examples_directory()) + assert list_directory(get_test_example_file('source.jpg')) is None assert list_directory('invalid') is None -@pytest.mark.skip() -def test_sanitize_path_for_windows() -> None: - if is_windows(): - assert sanitize_path_for_windows('.assets/examples/söurce.jpg') == 'ASSETS~1/examples/SURCE~1.JPG' - assert sanitize_path_for_windows('invalid') is None +def test_remove_directory() -> None: + remove_directory_path = os.path.join(get_test_outputs_directory(), 'remove_directory') + create_directory(remove_directory_path) + + assert remove_directory(remove_directory_path) is True + assert remove_directory(get_test_example_file('source.jpg')) is False + assert remove_directory('invalid') is False diff --git a/tests/test_inference_pool.py b/tests/test_inference_pool.py new file mode 100644 index 00000000..70352bb8 --- /dev/null +++ b/tests/test_inference_pool.py @@ -0,0 +1,29 @@ +from unittest.mock import patch + +import pytest +from onnxruntime import InferenceSession + +from facefusion import content_analyser, state_manager +from facefusion.inference_manager import INFERENCE_POOLS, get_inference_pool + + +@pytest.fixture(scope = 'module', autouse = True) +def before_all() -> None: + content_analyser.pre_check() + state_manager.init_item('execution_device_id', 0) + state_manager.init_item('execution_providers', [ 'cpu' ]) + + +def test_get_inference_pool() -> None: + model_sources = content_analyser.get_model_options().get('sources') + + with patch('facefusion.inference_manager.detect_app_context', return_value = 'cli'): + get_inference_pool('test', model_sources) + + assert isinstance(INFERENCE_POOLS.get('cli').get('test.cpu').get('content_analyser'), InferenceSession) + + with patch('facefusion.inference_manager.detect_app_context', return_value = 'ui'): + get_inference_pool('test', model_sources) + + assert isinstance(INFERENCE_POOLS.get('ui').get('test.cpu').get('content_analyser'), InferenceSession) + diff --git a/tests/test_job_helper.py b/tests/test_job_helper.py new file mode 100644 index 00000000..08fe6f86 --- /dev/null +++ b/tests/test_job_helper.py @@ -0,0 +1,8 @@ +import os + +from facefusion.jobs.job_helper import get_step_output_path + + +def test_get_step_output_path() -> None: + assert get_step_output_path('test-job', 0, 'test.mp4') == 'test-test-job-0.mp4' + assert get_step_output_path('test-job', 0, 'test/test.mp4') == os.path.join('test', 'test-test-job-0.mp4') diff --git a/tests/test_job_list.py b/tests/test_job_list.py new file mode 100644 index 00000000..732a199f --- /dev/null +++ b/tests/test_job_list.py @@ -0,0 +1,24 @@ +from time import sleep + +import pytest + +from facefusion.jobs.job_list import compose_job_list +from facefusion.jobs.job_manager import clear_jobs, create_job, init_jobs +from .helper import get_test_jobs_directory + + +@pytest.fixture(scope = 'function', autouse = True) +def before_each() -> None: + clear_jobs(get_test_jobs_directory()) + init_jobs(get_test_jobs_directory()) + + +def test_compose_job_list() -> None: + create_job('job-test-compose-job-list-1') + sleep(0.5) + create_job('job-test-compose-job-list-2') + job_headers, job_contents = compose_job_list('drafted') + + assert job_headers == [ 'job id', 'steps', 'date created', 'date updated', 'job status' ] + assert job_contents[0] == [ 'job-test-compose-job-list-1', 0, 'just now', None, 'drafted' ] + assert job_contents[1] == [ 'job-test-compose-job-list-2', 0, 'just now', None, 'drafted' ] diff --git a/tests/test_job_manager.py b/tests/test_job_manager.py new file mode 100644 index 00000000..3ee6c0d1 --- /dev/null +++ b/tests/test_job_manager.py @@ -0,0 +1,373 @@ +from time import sleep + +import pytest + +from facefusion.jobs.job_helper import get_step_output_path +from facefusion.jobs.job_manager import add_step, clear_jobs, count_step_total, create_job, delete_job, delete_jobs, find_job_ids, get_steps, init_jobs, insert_step, move_job_file, remix_step, remove_step, set_step_status, set_steps_status, submit_job, submit_jobs +from .helper import get_test_jobs_directory + + +@pytest.fixture(scope = 'function', autouse = True) +def before_each() -> None: + clear_jobs(get_test_jobs_directory()) + init_jobs(get_test_jobs_directory()) + + +def test_create_job() -> None: + args_1 =\ + { + 'source_path': 'source-1.jpg', + 'target_path': 'target-1.jpg', + 'output_path': 'output-1.jpg' + } + + assert create_job('job-test-create-job') is True + assert create_job('job-test-create-job') is False + + add_step('job-test-submit-job', args_1) + submit_job('job-test-create-job') + + assert create_job('job-test-create-job') is False + + +def test_submit_job() -> None: + args_1 =\ + { + 'source_path': 'source-1.jpg', + 'target_path': 'target-1.jpg', + 'output_path': 'output-1.jpg' + } + + assert submit_job('job-invalid') is False + + create_job('job-test-submit-job') + + assert submit_job('job-test-submit-job') is False + + add_step('job-test-submit-job', args_1) + + assert submit_job('job-test-submit-job') is True + assert submit_job('job-test-submit-job') is False + + +def test_submit_jobs() -> None: + args_1 =\ + { + 'source_path': 'source-1.jpg', + 'target_path': 'target-1.jpg', + 'output_path': 'output-1.jpg' + } + args_2 =\ + { + 'source_path': 'source-2.jpg', + 'target_path': 'target-2.jpg', + 'output_path': 'output-2.jpg' + } + + assert submit_jobs() is False + + create_job('job-test-submit-jobs-1') + create_job('job-test-submit-jobs-2') + + assert submit_jobs() is False + + add_step('job-test-submit-jobs-1', args_1) + add_step('job-test-submit-jobs-2', args_2) + + assert submit_jobs() is True + assert submit_jobs() is False + + +def test_delete_job() -> None: + assert delete_job('job-invalid') is False + + create_job('job-test-delete-job') + + assert delete_job('job-test-delete-job') is True + assert delete_job('job-test-delete-job') is False + + +def test_delete_jobs() -> None: + assert delete_jobs() is False + + create_job('job-test-delete-jobs-1') + create_job('job-test-delete-jobs-2') + + assert delete_jobs() is True + + +@pytest.mark.skip() +def test_find_jobs() -> None: + pass + + +def test_find_job_ids() -> None: + create_job('job-test-find-job-ids-1') + sleep(0.5) + create_job('job-test-find-job-ids-2') + sleep(0.5) + create_job('job-test-find-job-ids-3') + + assert find_job_ids('drafted') == [ 'job-test-find-job-ids-1', 'job-test-find-job-ids-2', 'job-test-find-job-ids-3' ] + assert find_job_ids('queued') == [] + assert find_job_ids('completed') == [] + assert find_job_ids('failed') == [] + + move_job_file('job-test-find-job-ids-1', 'queued') + move_job_file('job-test-find-job-ids-2', 'queued') + move_job_file('job-test-find-job-ids-3', 'queued') + + assert find_job_ids('drafted') == [] + assert find_job_ids('queued') == [ 'job-test-find-job-ids-1', 'job-test-find-job-ids-2', 'job-test-find-job-ids-3' ] + assert find_job_ids('completed') == [] + assert find_job_ids('failed') == [] + + move_job_file('job-test-find-job-ids-1', 'completed') + + assert find_job_ids('drafted') == [] + assert find_job_ids('queued') == [ 'job-test-find-job-ids-2', 'job-test-find-job-ids-3' ] + assert find_job_ids('completed') == [ 'job-test-find-job-ids-1' ] + assert find_job_ids('failed') == [] + + move_job_file('job-test-find-job-ids-2', 'failed') + + assert find_job_ids('drafted') == [] + assert find_job_ids('queued') == [ 'job-test-find-job-ids-3' ] + assert find_job_ids('completed') == [ 'job-test-find-job-ids-1' ] + assert find_job_ids('failed') == [ 'job-test-find-job-ids-2' ] + + move_job_file('job-test-find-job-ids-3', 'completed') + + assert find_job_ids('drafted') == [] + assert find_job_ids('queued') == [] + assert find_job_ids('completed') == [ 'job-test-find-job-ids-1', 'job-test-find-job-ids-3' ] + assert find_job_ids('failed') == [ 'job-test-find-job-ids-2' ] + + +def test_add_step() -> None: + args_1 =\ + { + 'source_path': 'source-1.jpg', + 'target_path': 'target-1.jpg', + 'output_path': 'output-1.jpg' + } + args_2 =\ + { + 'source_path': 'source-2.jpg', + 'target_path': 'target-2.jpg', + 'output_path': 'output-2.jpg' + } + + assert add_step('job-invalid', args_1) is False + + create_job('job-test-add-step') + + assert add_step('job-test-add-step', args_1) is True + assert add_step('job-test-add-step', args_2) is True + + steps = get_steps('job-test-add-step') + + assert steps[0].get('args') == args_1 + assert steps[1].get('args') == args_2 + assert count_step_total('job-test-add-step') == 2 + + +def test_remix_step() -> None: + args_1 =\ + { + 'source_path': 'source-1.jpg', + 'target_path': 'target-1.jpg', + 'output_path': 'output-1.jpg' + } + args_2 =\ + { + 'source_path': 'source-2.jpg', + 'target_path': 'target-2.jpg', + 'output_path': 'output-2.jpg' + } + + assert remix_step('job-invalid', 0, args_1) is False + + create_job('job-test-remix-step') + add_step('job-test-remix-step', args_1) + add_step('job-test-remix-step', args_2) + + assert remix_step('job-test-remix-step', 99, args_1) is False + assert remix_step('job-test-remix-step', 0, args_2) is True + assert remix_step('job-test-remix-step', -1, args_2) is True + + steps = get_steps('job-test-remix-step') + + assert steps[0].get('args') == args_1 + assert steps[1].get('args') == args_2 + assert steps[2].get('args').get('source_path') == args_2.get('source_path') + assert steps[2].get('args').get('target_path') == get_step_output_path('job-test-remix-step', 0, args_1.get('output_path')) + assert steps[2].get('args').get('output_path') == args_2.get('output_path') + assert steps[3].get('args').get('source_path') == args_2.get('source_path') + assert steps[3].get('args').get('target_path') == get_step_output_path('job-test-remix-step', 2, args_2.get('output_path')) + assert steps[3].get('args').get('output_path') == args_2.get('output_path') + assert count_step_total('job-test-remix-step') == 4 + + +def test_insert_step() -> None: + args_1 =\ + { + 'source_path': 'source-1.jpg', + 'target_path': 'target-1.jpg', + 'output_path': 'output-1.jpg' + } + args_2 =\ + { + 'source_path': 'source-2.jpg', + 'target_path': 'target-2.jpg', + 'output_path': 'output-2.jpg' + } + args_3 =\ + { + 'source_path': 'source-3.jpg', + 'target_path': 'target-3.jpg', + 'output_path': 'output-3.jpg' + } + + assert insert_step('job-invalid', 0, args_1) is False + + create_job('job-test-insert-step') + add_step('job-test-insert-step', args_1) + add_step('job-test-insert-step', args_1) + + assert insert_step('job-test-insert-step', 99, args_1) is False + assert insert_step('job-test-insert-step', 0, args_2) is True + assert insert_step('job-test-insert-step', -1, args_3) is True + + steps = get_steps('job-test-insert-step') + + assert steps[0].get('args') == args_2 + assert steps[1].get('args') == args_1 + assert steps[2].get('args') == args_3 + assert steps[3].get('args') == args_1 + assert count_step_total('job-test-insert-step') == 4 + + +def test_remove_step() -> None: + args_1 =\ + { + 'source_path': 'source-1.jpg', + 'target_path': 'target-1.jpg', + 'output_path': 'output-1.jpg' + } + args_2 =\ + { + 'source_path': 'source-2.jpg', + 'target_path': 'target-2.jpg', + 'output_path': 'output-2.jpg' + } + args_3 =\ + { + 'source_path': 'source-3.jpg', + 'target_path': 'target-3.jpg', + 'output_path': 'output-3.jpg' + } + + assert remove_step('job-invalid', 0) is False + + create_job('job-test-remove-step') + add_step('job-test-remove-step', args_1) + add_step('job-test-remove-step', args_2) + add_step('job-test-remove-step', args_1) + add_step('job-test-remove-step', args_3) + + assert remove_step('job-test-remove-step', 99) is False + assert remove_step('job-test-remove-step', 0) is True + assert remove_step('job-test-remove-step', -1) is True + + steps = get_steps('job-test-remove-step') + + assert steps[0].get('args') == args_2 + assert steps[1].get('args') == args_1 + assert count_step_total('job-test-remove-step') == 2 + + +def test_get_steps() -> None: + args_1 =\ + { + 'source_path': 'source-1.jpg', + 'target_path': 'target-1.jpg', + 'output_path': 'output-1.jpg' + } + args_2 =\ + { + 'source_path': 'source-2.jpg', + 'target_path': 'target-2.jpg', + 'output_path': 'output-2.jpg' + } + + assert get_steps('job-invalid') == [] + + create_job('job-test-get-steps') + add_step('job-test-get-steps', args_1) + add_step('job-test-get-steps', args_2) + steps = get_steps('job-test-get-steps') + + assert steps[0].get('args') == args_1 + assert steps[1].get('args') == args_2 + assert count_step_total('job-test-get-steps') == 2 + + +def test_set_step_status() -> None: + args_1 =\ + { + 'source_path': 'source-1.jpg', + 'target_path': 'target-1.jpg', + 'output_path': 'output-1.jpg' + } + args_2 =\ + { + 'source_path': 'source-2.jpg', + 'target_path': 'target-2.jpg', + 'output_path': 'output-2.jpg' + } + + assert set_step_status('job-invalid', 0, 'completed') is False + + create_job('job-test-set-step-status') + add_step('job-test-set-step-status', args_1) + add_step('job-test-set-step-status', args_2) + + assert set_step_status('job-test-set-step-status', 99, 'completed') is False + assert set_step_status('job-test-set-step-status', 0, 'completed') is True + assert set_step_status('job-test-set-step-status', 1, 'failed') is True + + steps = get_steps('job-test-set-step-status') + + assert steps[0].get('status') == 'completed' + assert steps[1].get('status') == 'failed' + assert count_step_total('job-test-set-step-status') == 2 + + +def test_set_steps_status() -> None: + args_1 =\ + { + 'source_path': 'source-1.jpg', + 'target_path': 'target-1.jpg', + 'output_path': 'output-1.jpg' + } + args_2 =\ + { + 'source_path': 'source-2.jpg', + 'target_path': 'target-2.jpg', + 'output_path': 'output-2.jpg' + } + + assert set_steps_status('job-invalid', 'queued') is False + + create_job('job-test-set-steps-status') + add_step('job-test-set-steps-status', args_1) + add_step('job-test-set-steps-status', args_2) + + assert set_steps_status('job-test-set-steps-status', 'queued') is True + + steps = get_steps('job-test-set-steps-status') + + assert steps[0].get('status') == 'queued' + assert steps[1].get('status') == 'queued' + assert count_step_total('job-test-set-steps-status') == 2 diff --git a/tests/test_job_runner.py b/tests/test_job_runner.py new file mode 100644 index 00000000..84e86444 --- /dev/null +++ b/tests/test_job_runner.py @@ -0,0 +1,228 @@ +import subprocess + +import pytest + +from facefusion import state_manager +from facefusion.download import conditional_download +from facefusion.filesystem import copy_file +from facefusion.jobs.job_manager import add_step, clear_jobs, create_job, init_jobs, submit_job, submit_jobs +from facefusion.jobs.job_runner import collect_output_set, finalize_steps, run_job, run_jobs, run_steps +from facefusion.typing import Args +from .helper import get_test_example_file, get_test_examples_directory, get_test_jobs_directory, get_test_output_file, is_test_output_file, prepare_test_output_directory + + +@pytest.fixture(scope = 'module', autouse = True) +def before_all() -> None: + conditional_download(get_test_examples_directory(), + [ + 'https://github.com/facefusion/facefusion-assets/releases/download/examples-3.0.0/source.jpg', + 'https://github.com/facefusion/facefusion-assets/releases/download/examples-3.0.0/target-240p.mp4' + ]) + subprocess.run([ 'ffmpeg', '-i', get_test_example_file('target-240p.mp4'), '-vframes', '1', get_test_example_file('target-240p.jpg') ]) + state_manager.init_item('output_audio_encoder', 'aac') + + +@pytest.fixture(scope = 'function', autouse = True) +def before_each() -> None: + clear_jobs(get_test_jobs_directory()) + init_jobs(get_test_jobs_directory()) + prepare_test_output_directory() + + +def process_step(job_id : str, step_index : int, step_args : Args) -> bool: + return copy_file(step_args.get('target_path'), step_args.get('output_path')) + + +def test_run_job() -> None: + args_1 =\ + { + 'source_path': get_test_example_file('source.jpg'), + 'target_path': get_test_example_file('target-240p.mp4'), + 'output_path': get_test_output_file('output-1.mp4') + } + args_2 =\ + { + 'source_path': get_test_example_file('source.jpg'), + 'target_path': get_test_example_file('target-240p.mp4'), + 'output_path': get_test_output_file('output-2.mp4') + } + args_3 =\ + { + 'source_path': get_test_example_file('source.jpg'), + 'target_path': get_test_example_file('target-240p.jpg'), + 'output_path': get_test_output_file('output-1.jpg') + } + + assert run_job('job-invalid', process_step) is False + + create_job('job-test-run-job') + add_step('job-test-run-job', args_1) + add_step('job-test-run-job', args_2) + add_step('job-test-run-job', args_2) + add_step('job-test-run-job', args_3) + + assert run_job('job-test-run-job', process_step) is False + + submit_job('job-test-run-job') + + assert run_job('job-test-run-job', process_step) is True + + +def test_run_jobs() -> None: + args_1 =\ + { + 'source_path': get_test_example_file('source.jpg'), + 'target_path': get_test_example_file('target-240p.mp4'), + 'output_path': get_test_output_file('output-1.mp4') + } + args_2 =\ + { + 'source_path': get_test_example_file('source.jpg'), + 'target_path': get_test_example_file('target-240p.mp4'), + 'output_path': get_test_output_file('output-2.mp4') + } + args_3 =\ + { + 'source_path': get_test_example_file('source.jpg'), + 'target_path': get_test_example_file('target-240p.jpg'), + 'output_path': get_test_output_file('output-1.jpg') + } + + assert run_jobs(process_step) is False + + create_job('job-test-run-jobs-1') + create_job('job-test-run-jobs-2') + add_step('job-test-run-jobs-1', args_1) + add_step('job-test-run-jobs-1', args_1) + add_step('job-test-run-jobs-2', args_2) + add_step('job-test-run-jobs-3', args_3) + + assert run_jobs(process_step) is False + + submit_jobs() + + assert run_jobs(process_step) is True + + +@pytest.mark.skip() +def test_retry_job() -> None: + pass + + +@pytest.mark.skip() +def test_retry_jobs() -> None: + pass + + +def test_run_steps() -> None: + args_1 =\ + { + 'source_path': get_test_example_file('source.jpg'), + 'target_path': get_test_example_file('target-240p.mp4'), + 'output_path': get_test_output_file('output-1.mp4') + } + args_2 =\ + { + 'source_path': get_test_example_file('source.jpg'), + 'target_path': get_test_example_file('target-240p.mp4'), + 'output_path': get_test_output_file('output-2.mp4') + } + args_3 =\ + { + 'source_path': get_test_example_file('source.jpg'), + 'target_path': get_test_example_file('target-240p.jpg'), + 'output_path': get_test_output_file('output-1.jpg') + } + + assert run_steps('job-invalid', process_step) is False + + create_job('job-test-run-steps') + add_step('job-test-run-steps', args_1) + add_step('job-test-run-steps', args_1) + add_step('job-test-run-steps', args_2) + add_step('job-test-run-steps', args_3) + + assert run_steps('job-test-run-steps', process_step) is True + + +def test_finalize_steps() -> None: + args_1 =\ + { + 'source_path': get_test_example_file('source.jpg'), + 'target_path': get_test_example_file('target-240p.mp4'), + 'output_path': get_test_output_file('output-1.mp4') + } + args_2 =\ + { + 'source_path': get_test_example_file('source.jpg'), + 'target_path': get_test_example_file('target-240p.mp4'), + 'output_path': get_test_output_file('output-2.mp4') + } + args_3 =\ + { + 'source_path': get_test_example_file('source.jpg'), + 'target_path': get_test_example_file('target-240p.jpg'), + 'output_path': get_test_output_file('output-1.jpg') + } + + create_job('job-test-finalize-steps') + add_step('job-test-finalize-steps', args_1) + add_step('job-test-finalize-steps', args_1) + add_step('job-test-finalize-steps', args_2) + add_step('job-test-finalize-steps', args_3) + + copy_file(args_1.get('target_path'), get_test_output_file('output-1-job-test-finalize-steps-0.mp4')) + copy_file(args_1.get('target_path'), get_test_output_file('output-1-job-test-finalize-steps-1.mp4')) + copy_file(args_2.get('target_path'), get_test_output_file('output-2-job-test-finalize-steps-2.mp4')) + copy_file(args_3.get('target_path'), get_test_output_file('output-1-job-test-finalize-steps-3.jpg')) + + assert finalize_steps('job-test-finalize-steps') is True + assert is_test_output_file('output-1.mp4') is True + assert is_test_output_file('output-2.mp4') is True + assert is_test_output_file('output-1.jpg') is True + + +def test_collect_output_set() -> None: + args_1 =\ + { + 'source_path': get_test_example_file('source.jpg'), + 'target_path': get_test_example_file('target-240p.mp4'), + 'output_path': get_test_output_file('output-1.mp4') + } + args_2 =\ + { + 'source_path': get_test_example_file('source.jpg'), + 'target_path': get_test_example_file('target-240p.mp4'), + 'output_path': get_test_output_file('output-2.mp4') + } + args_3 =\ + { + 'source_path': get_test_example_file('source.jpg'), + 'target_path': get_test_example_file('target-240p.jpg'), + 'output_path': get_test_output_file('output-1.jpg') + } + + create_job('job-test-collect-output-set') + add_step('job-test-collect-output-set', args_1) + add_step('job-test-collect-output-set', args_1) + add_step('job-test-collect-output-set', args_2) + add_step('job-test-collect-output-set', args_3) + + output_set =\ + { + get_test_output_file('output-1.mp4'): + [ + get_test_output_file('output-1-job-test-collect-output-set-0.mp4'), + get_test_output_file('output-1-job-test-collect-output-set-1.mp4') + ], + get_test_output_file('output-2.mp4'): + [ + get_test_output_file('output-2-job-test-collect-output-set-2.mp4') + ], + get_test_output_file('output-1.jpg'): + [ + get_test_output_file('output-1-job-test-collect-output-set-3.jpg') + ] + } + + assert collect_output_set('job-test-collect-output-set') == output_set diff --git a/tests/test_json.py b/tests/test_json.py new file mode 100644 index 00000000..c1d8a387 --- /dev/null +++ b/tests/test_json.py @@ -0,0 +1,19 @@ +import tempfile + +from facefusion.json import read_json, write_json + + +def test_read_json() -> None: + _, json_path = tempfile.mkstemp(suffix = '.json') + + assert not read_json(json_path) + + write_json(json_path, {}) + + assert read_json(json_path) == {} + + +def test_write_json() -> None: + _, json_path = tempfile.mkstemp(suffix = '.json') + + assert write_json(json_path, {}) diff --git a/tests/test_normalizer.py b/tests/test_normalizer.py index 3273c58d..0673f64f 100644 --- a/tests/test_normalizer.py +++ b/tests/test_normalizer.py @@ -1,18 +1,4 @@ -from facefusion.common_helper import is_linux, is_macos -from facefusion.normalizer import normalize_output_path, normalize_padding, normalize_fps - - -def test_normalize_output_path() -> None: - if is_linux() or is_macos(): - assert normalize_output_path('.assets/examples/target-240p.mp4', '.assets/examples/target-240p.mp4') == '.assets/examples/target-240p.mp4' - assert normalize_output_path('.assets/examples/target-240p.mp4', '.assets/examples').startswith('.assets/examples/target-240p') - assert normalize_output_path('.assets/examples/target-240p.mp4', '.assets/examples').endswith('.mp4') - assert normalize_output_path('.assets/examples/target-240p.mp4', '.assets/examples/output.mp4') == '.assets/examples/output.mp4' - assert normalize_output_path('.assets/examples/target-240p.mp4', '.assets/examples/invalid') is None - assert normalize_output_path('.assets/examples/target-240p.mp4', '.assets/invalid/output.mp4') is None - assert normalize_output_path('.assets/examples/target-240p.mp4', 'invalid') is None - assert normalize_output_path('.assets/examples/target-240p.mp4', None) is None - assert normalize_output_path(None, '.assets/examples/output.mp4') is None +from facefusion.normalizer import normalize_fps, normalize_padding def test_normalize_padding() -> None: diff --git a/tests/test_process_manager.py b/tests/test_process_manager.py index 1fbe74bb..85e64645 100644 --- a/tests/test_process_manager.py +++ b/tests/test_process_manager.py @@ -1,4 +1,4 @@ -from facefusion.process_manager import set_process_state, is_processing, is_stopping, is_pending, start, stop, end +from facefusion.process_manager import end, is_pending, is_processing, is_stopping, set_process_state, start, stop def test_start() -> None: diff --git a/tests/test_program_helper.py b/tests/test_program_helper.py new file mode 100644 index 00000000..92b64fb2 --- /dev/null +++ b/tests/test_program_helper.py @@ -0,0 +1,40 @@ +from argparse import ArgumentParser + +import pytest + +from facefusion.program_helper import find_argument_group, validate_actions + + +def test_find_argument_group() -> None: + program = ArgumentParser() + program.add_argument_group('test-1') + program.add_argument_group('test-2') + + assert find_argument_group(program, 'test-1') + assert find_argument_group(program, 'test-2') + assert find_argument_group(program, 'invalid') is None + + +@pytest.mark.skip() +def test_validate_args() -> None: + pass + + +def test_validate_actions() -> None: + program = ArgumentParser() + program.add_argument('--test-1', default = 'test_1', choices = [ 'test_1', 'test_2' ]) + program.add_argument('--test-2', default = 'test_2', choices= [ 'test_1', 'test_2' ], nargs = '+') + + assert validate_actions(program) is True + + args =\ + { + 'test_1': 'test_2', + 'test_2': [ 'test_1', 'test_3' ] + } + + for action in program._actions: + if action.dest in args: + action.default = args[action.dest] + + assert validate_actions(program) is False diff --git a/tests/test_temp_helper.py b/tests/test_temp_helper.py new file mode 100644 index 00000000..48aad129 --- /dev/null +++ b/tests/test_temp_helper.py @@ -0,0 +1,33 @@ +import os.path +import tempfile + +import pytest + +from facefusion import state_manager +from facefusion.download import conditional_download +from facefusion.temp_helper import get_temp_directory_path, get_temp_file_path, get_temp_frames_pattern +from .helper import get_test_example_file, get_test_examples_directory + + +@pytest.fixture(scope = 'module', autouse = True) +def before_all() -> None: + conditional_download(get_test_examples_directory(), + [ + 'https://github.com/facefusion/facefusion-assets/releases/download/examples-3.0.0/target-240p.mp4' + ]) + state_manager.init_item('temp_frame_format', 'png') + + +def test_get_temp_file_path() -> None: + temp_directory = tempfile.gettempdir() + assert get_temp_file_path(get_test_example_file('target-240p.mp4')) == os.path.join(temp_directory, 'facefusion', 'target-240p', 'temp.mp4') + + +def test_get_temp_directory_path() -> None: + temp_directory = tempfile.gettempdir() + assert get_temp_directory_path(get_test_example_file('target-240p.mp4')) == os.path.join(temp_directory, 'facefusion', 'target-240p') + + +def test_get_temp_frames_pattern() -> None: + temp_directory = tempfile.gettempdir() + assert get_temp_frames_pattern(get_test_example_file('target-240p.mp4'), '%04d') == os.path.join(temp_directory, 'facefusion', 'target-240p', '%04d.png') diff --git a/tests/test_vision.py b/tests/test_vision.py index 6cf48647..7cb69860 100644 --- a/tests/test_vision.py +++ b/tests/test_vision.py @@ -1,41 +1,43 @@ import subprocess + import pytest from facefusion.download import conditional_download -from facefusion.vision import detect_image_resolution, restrict_image_resolution, create_image_resolutions, get_video_frame, count_video_frame_total, detect_video_fps, restrict_video_fps, detect_video_resolution, restrict_video_resolution, create_video_resolutions, normalize_resolution, pack_resolution, unpack_resolution +from facefusion.vision import count_video_frame_total, create_image_resolutions, create_video_resolutions, detect_image_resolution, detect_video_fps, detect_video_resolution, get_video_frame, normalize_resolution, pack_resolution, restrict_image_resolution, restrict_video_fps, restrict_video_resolution, unpack_resolution +from .helper import get_test_example_file, get_test_examples_directory @pytest.fixture(scope = 'module', autouse = True) def before_all() -> None: - conditional_download('.assets/examples', + conditional_download(get_test_examples_directory(), [ - 'https://github.com/facefusion/facefusion-assets/releases/download/examples/source.jpg', - 'https://github.com/facefusion/facefusion-assets/releases/download/examples/target-240p.mp4', - 'https://github.com/facefusion/facefusion-assets/releases/download/examples/target-1080p.mp4' + 'https://github.com/facefusion/facefusion-assets/releases/download/examples-3.0.0/source.jpg', + 'https://github.com/facefusion/facefusion-assets/releases/download/examples-3.0.0/target-240p.mp4', + 'https://github.com/facefusion/facefusion-assets/releases/download/examples-3.0.0/target-1080p.mp4' ]) - subprocess.run([ 'ffmpeg', '-i', '.assets/examples/target-240p.mp4', '-vframes', '1', '.assets/examples/target-240p.jpg' ]) - subprocess.run([ 'ffmpeg', '-i', '.assets/examples/target-1080p.mp4', '-vframes', '1', '.assets/examples/target-1080p.jpg' ]) - subprocess.run([ 'ffmpeg', '-i', '.assets/examples/target-240p.mp4', '-vframes', '1', '-vf', 'transpose=0', '.assets/examples/target-240p-90deg.jpg' ]) - subprocess.run([ 'ffmpeg', '-i', '.assets/examples/target-1080p.mp4', '-vframes', '1', '-vf', 'transpose=0', '.assets/examples/target-1080p-90deg.jpg' ]) - subprocess.run([ 'ffmpeg', '-i', '.assets/examples/target-240p.mp4', '-vf', 'fps=25', '.assets/examples/target-240p-25fps.mp4' ]) - subprocess.run([ 'ffmpeg', '-i', '.assets/examples/target-240p.mp4', '-vf', 'fps=30', '.assets/examples/target-240p-30fps.mp4' ]) - subprocess.run([ 'ffmpeg', '-i', '.assets/examples/target-240p.mp4', '-vf', 'fps=60', '.assets/examples/target-240p-60fps.mp4' ]) - subprocess.run([ 'ffmpeg', '-i', '.assets/examples/target-240p.mp4', '-vf', 'transpose=0', '.assets/examples/target-240p-90deg.mp4' ]) - subprocess.run([ 'ffmpeg', '-i', '.assets/examples/target-1080p.mp4', '-vf', 'transpose=0', '.assets/examples/target-1080p-90deg.mp4' ]) + subprocess.run([ 'ffmpeg', '-i', get_test_example_file('target-240p.mp4'), '-vframes', '1', get_test_example_file('target-240p.jpg') ]) + subprocess.run([ 'ffmpeg', '-i', get_test_example_file('target-1080p.mp4'), '-vframes', '1', get_test_example_file('target-1080p.jpg') ]) + subprocess.run([ 'ffmpeg', '-i', get_test_example_file('target-240p.mp4'), '-vframes', '1', '-vf', 'transpose=0', get_test_example_file('target-240p-90deg.jpg') ]) + subprocess.run([ 'ffmpeg', '-i', get_test_example_file('target-1080p.mp4'), '-vframes', '1', '-vf', 'transpose=0', get_test_example_file('target-1080p-90deg.jpg') ]) + subprocess.run([ 'ffmpeg', '-i', get_test_example_file('target-240p.mp4'), '-vf', 'fps=25', get_test_example_file('target-240p-25fps.mp4') ]) + subprocess.run([ 'ffmpeg', '-i', get_test_example_file('target-240p.mp4'), '-vf', 'fps=30', get_test_example_file('target-240p-30fps.mp4') ]) + subprocess.run([ 'ffmpeg', '-i', get_test_example_file('target-240p.mp4'), '-vf', 'fps=60', get_test_example_file('target-240p-60fps.mp4') ]) + subprocess.run([ 'ffmpeg', '-i', get_test_example_file('target-240p.mp4'), '-vf', 'transpose=0', get_test_example_file('target-240p-90deg.mp4') ]) + subprocess.run([ 'ffmpeg', '-i', get_test_example_file('target-1080p.mp4'), '-vf', 'transpose=0', get_test_example_file('target-1080p-90deg.mp4') ]) def test_detect_image_resolution() -> None: - assert detect_image_resolution('.assets/examples/target-240p.jpg') == (426, 226) - assert detect_image_resolution('.assets/examples/target-240p-90deg.jpg') == (226, 426) - assert detect_image_resolution('.assets/examples/target-1080p.jpg') == (2048, 1080) - assert detect_image_resolution('.assets/examples/target-1080p-90deg.jpg') == (1080, 2048) + assert detect_image_resolution(get_test_example_file('target-240p.jpg')) == (426, 226) + assert detect_image_resolution(get_test_example_file('target-240p-90deg.jpg')) == (226, 426) + assert detect_image_resolution(get_test_example_file('target-1080p.jpg')) == (2048, 1080) + assert detect_image_resolution(get_test_example_file('target-1080p-90deg.jpg')) == (1080, 2048) assert detect_image_resolution('invalid') is None def test_restrict_image_resolution() -> None: - assert restrict_image_resolution('.assets/examples/target-1080p.jpg', (426, 226)) == (426, 226) - assert restrict_image_resolution('.assets/examples/target-1080p.jpg', (2048, 1080)) == (2048, 1080) - assert restrict_image_resolution('.assets/examples/target-1080p.jpg', (4096, 2160)) == (2048, 1080) + assert restrict_image_resolution(get_test_example_file('target-1080p.jpg'), (426, 226)) == (426, 226) + assert restrict_image_resolution(get_test_example_file('target-1080p.jpg'), (2048, 1080)) == (2048, 1080) + assert restrict_image_resolution(get_test_example_file('target-1080p.jpg'), (4096, 2160)) == (2048, 1080) def test_create_image_resolutions() -> None: @@ -47,42 +49,42 @@ def test_create_image_resolutions() -> None: def test_get_video_frame() -> None: - assert get_video_frame('.assets/examples/target-240p-25fps.mp4') is not None + assert get_video_frame(get_test_example_file('target-240p-25fps.mp4')) is not None assert get_video_frame('invalid') is None def test_count_video_frame_total() -> None: - assert count_video_frame_total('.assets/examples/target-240p-25fps.mp4') == 270 - assert count_video_frame_total('.assets/examples/target-240p-30fps.mp4') == 324 - assert count_video_frame_total('.assets/examples/target-240p-60fps.mp4') == 648 + assert count_video_frame_total(get_test_example_file('target-240p-25fps.mp4')) == 270 + assert count_video_frame_total(get_test_example_file('target-240p-30fps.mp4')) == 324 + assert count_video_frame_total(get_test_example_file('target-240p-60fps.mp4')) == 648 assert count_video_frame_total('invalid') == 0 def test_detect_video_fps() -> None: - assert detect_video_fps('.assets/examples/target-240p-25fps.mp4') == 25.0 - assert detect_video_fps('.assets/examples/target-240p-30fps.mp4') == 30.0 - assert detect_video_fps('.assets/examples/target-240p-60fps.mp4') == 60.0 + assert detect_video_fps(get_test_example_file('target-240p-25fps.mp4')) == 25.0 + assert detect_video_fps(get_test_example_file('target-240p-30fps.mp4')) == 30.0 + assert detect_video_fps(get_test_example_file('target-240p-60fps.mp4')) == 60.0 assert detect_video_fps('invalid') is None def test_restrict_video_fps() -> None: - assert restrict_video_fps('.assets/examples/target-1080p.mp4', 20.0) == 20.0 - assert restrict_video_fps('.assets/examples/target-1080p.mp4', 25.0) == 25.0 - assert restrict_video_fps('.assets/examples/target-1080p.mp4', 60.0) == 25.0 + assert restrict_video_fps(get_test_example_file('target-1080p.mp4'), 20.0) == 20.0 + assert restrict_video_fps(get_test_example_file('target-1080p.mp4'), 25.0) == 25.0 + assert restrict_video_fps(get_test_example_file('target-1080p.mp4'), 60.0) == 25.0 def test_detect_video_resolution() -> None: - assert detect_video_resolution('.assets/examples/target-240p.mp4') == (426, 226) - assert detect_video_resolution('.assets/examples/target-240p-90deg.mp4') == (226, 426) - assert detect_video_resolution('.assets/examples/target-1080p.mp4') == (2048, 1080) - assert detect_video_resolution('.assets/examples/target-1080p-90deg.mp4') == (1080, 2048) + assert detect_video_resolution(get_test_example_file('target-240p.mp4')) == (426, 226) + assert detect_video_resolution(get_test_example_file('target-240p-90deg.mp4')) == (226, 426) + assert detect_video_resolution(get_test_example_file('target-1080p.mp4')) == (2048, 1080) + assert detect_video_resolution(get_test_example_file('target-1080p-90deg.mp4')) == (1080, 2048) assert detect_video_resolution('invalid') is None def test_restrict_video_resolution() -> None: - assert restrict_video_resolution('.assets/examples/target-1080p.mp4', (426, 226)) == (426, 226) - assert restrict_video_resolution('.assets/examples/target-1080p.mp4', (2048, 1080)) == (2048, 1080) - assert restrict_video_resolution('.assets/examples/target-1080p.mp4', (4096, 2160)) == (2048, 1080) + assert restrict_video_resolution(get_test_example_file('target-1080p.mp4'), (426, 226)) == (426, 226) + assert restrict_video_resolution(get_test_example_file('target-1080p.mp4'), (2048, 1080)) == (2048, 1080) + assert restrict_video_resolution(get_test_example_file('target-1080p.mp4'), (4096, 2160)) == (2048, 1080) def test_create_video_resolutions() -> None: diff --git a/tests/test_wording.py b/tests/test_wording.py index 1deaa773..5d987f9e 100644 --- a/tests/test_wording.py +++ b/tests/test_wording.py @@ -3,5 +3,5 @@ from facefusion import wording def test_get() -> None: assert wording.get('python_not_supported') - assert wording.get('help.source') + assert wording.get('help.source_paths') assert wording.get('invalid') is None