
* Modernize CI * Modernize CI * Modernize CI * Implement dynamic config (#518) * Implement dynamic config * Fix apply config * Move config to general * Move config to general * Move config to general * Add Windows installer * Add --open-browser * Add Windows installer part2 * Use non-commercial license for the installer * Fix create environment in installer * Fix openvino for installer * Fix conda for installer * Fix conda for installer, Remove python and pip as it is part of conda * Improve installer - guess the path * Fix CI * Add missing accept-source-agreements to installer * Install WinGet * Improve WinGet installation steps * Use absolute path for winget * More installer polishing * Add final page to installer, disable version check for Gradio * Remove finish page again * Use NEXT for metadata * Support for /S mode * Use winget-less approach * Improve Conda uninstall * Improve code using platform helpers (#529) * Update dependencies * Feat/fix windows unicode paths (#531) * Fix the Windows unicode path dilemma * Update dependencies * Fix the Windows unicode path dilemma part2 * Remove conda environment on uninstall * Fix uninstall command * Install apps for local user only * Add ultra sharp * Add clear reality * Update README and FUNDING * Update FUNDING.yml * Prevent preview of large videos in Gradio (#540) * Fix order * Refactor temporary file management, Use temporary file for image processing (#542) * Allow webm on target component * Reduce mosaic effect for frame processors * clear static faces on trim frame changes * Fix trim frame component * Downgrade openvino dependency * Prepare next release * Move get_short_path to filesystem, Add/Improve some testing * Prepare installer, Prevent infinite loop for sanitize_path_for_windows * Introduce execution device id * Introduce execution device id * Seems like device id can be a string * Seems like device id can be a string * Make Intel Arc work with OpenVINOExecution * Use latest Git * Update wording * Fix create_float_range * Update preview * Fix Git link
68 lines
2.4 KiB
Python
68 lines
2.4 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, inbrowser = facefusion.globals.open_browser)
|