
* Add real_hatgan_x4 model * Mark it as NEXT * Force download to be executed and exit * Fix frame per second interpolation * 5 to 68 landmark (#456) * changes * changes * Adjust model url * Cleanup 5 to 68 landmark convertion * Move everything to face analyser * Introduce matrix only face helper * Revert facefusion.ini * Adjust limit due false positive analysis * changes (#457) * Use pixel format yuv422p to merge video * Fix some code * Minor cleanup * Add gpen_bfr_1024 and gpen_bfr_2048 * Revert it back to yuv420p due compatibility issues * Add debug back to ffmpeg * Add debug back to ffmpeg * Migrate to conda (#461) * Migrate from venv to conda * Migrate from venv to conda * Message when conda is not activated * Use release for every slider (#463) * Use release event handler for every slider * Move more sliders to release handler * Move more sliders to release handler * Add get_ui_components() to simplify code * Revert some changes on frame slider * Add the first iteration of a frame colorizer * Support for the DDColor model * Improve model file handling * Improve model file handling part2 * Remove deoldify * Remove deoldify * Voice separator (#468) * changes * changes * changes * changes * changes * changes * Rename audio extractor to voice extractor * Cosmetic changes * Cosmetic changes * Fix fps lowering and boosting * Fix fps lowering and boosting * Fix fps lowering and boosting * Some refactoring for audio.py and some astype() here and there (#470) * Some refactoring for audio.py and some astype() here and there * Fix lint * Spacing * Add mp3 to benchmark suite for lip syncer testing * Improve naming * Adjust chunk size * Use higher quality * Revert "Use higher quality" This reverts commitd32f287572
. * Improve naming in ffmpeg.py * Simplify code * Better fps calculation * Fix naming here and there * Add back real esrgan x2 * Remove trailing comma * Update wording and README * Use semaphore to prevent frame colorizer memory issues * Revert "Remove deoldify" This reverts commitbd8034cbc7
. * Remove unused type from frame colorizer * Adjust naming * Add missing clear of model initializer * Change nvenc preset mappping to support old FFMPEG 4 * Update onnxruntime to 1.17.1 * Fix lint * Prepare 2.5.0 * Fix Gradio overrides * Add Deoldify Artistic back * Feat/audio refactoring (#476) * Improve audio naming and variables * Improve audio naming and variables * Refactor voice extractor like crazy * Refactor voice extractor like crazy * Remove spaces * Update the usage --------- Co-authored-by: Harisreedhar <46858047+harisreedhar@users.noreply.github.com>
68 lines
2.3 KiB
Python
68 lines
2.3 KiB
Python
import multiprocessing
|
|
import gradio
|
|
|
|
import facefusion.globals
|
|
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
|
|
|
|
|
|
def pre_check() -> bool:
|
|
if not facefusion.globals.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'
|
|
])
|
|
return True
|
|
return False
|
|
|
|
|
|
def pre_render() -> bool:
|
|
return True
|
|
|
|
|
|
def render() -> gradio.Blocks:
|
|
with gradio.Blocks() as layout:
|
|
with gradio.Row():
|
|
with gradio.Column(scale = 2):
|
|
with gradio.Blocks():
|
|
about.render()
|
|
with gradio.Blocks():
|
|
frame_processors.render()
|
|
with gradio.Blocks():
|
|
frame_processors_options.render()
|
|
with gradio.Blocks():
|
|
execution.render()
|
|
execution_thread_count.render()
|
|
execution_queue_count.render()
|
|
with gradio.Blocks():
|
|
memory.render()
|
|
with gradio.Blocks():
|
|
benchmark_options.render()
|
|
with gradio.Column(scale = 5):
|
|
with gradio.Blocks():
|
|
benchmark.render()
|
|
return layout
|
|
|
|
|
|
def listen() -> None:
|
|
frame_processors.listen()
|
|
frame_processors_options.listen()
|
|
execution.listen()
|
|
execution_thread_count.listen()
|
|
execution_queue_count.listen()
|
|
memory.listen()
|
|
benchmark.listen()
|
|
|
|
|
|
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)
|