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 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 = 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(): temp_frame.render() with gradio.Blocks(): output_options.render() with gradio.Column(scale = 2): with gradio.Blocks(): source.render() with gradio.Blocks(): target.render() with gradio.Blocks(): output.render() with gradio.Column(scale = 3): with gradio.Blocks(): preview.render() with gradio.Blocks(): trim_frame.render() with gradio.Blocks(): face_selector.render() with gradio.Blocks(): face_masker.render() with gradio.Blocks(): face_analyser.render() with gradio.Blocks(): common_options.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() temp_frame.listen() output_options.listen() source.listen() target.listen() output.listen() preview.listen() trim_frame.listen() face_selector.listen() face_masker.listen() face_analyser.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)