|
import tempfile |
|
from typing import Optional |
|
|
|
import gradio |
|
|
|
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 |
|
|
|
|
|
def render() -> None: |
|
global OUTPUT_PATH_TEXTBOX |
|
global OUTPUT_IMAGE |
|
global OUTPUT_VIDEO |
|
|
|
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 |
|
) |
|
OUTPUT_VIDEO = gradio.Video( |
|
label = wording.get('uis.output_image_or_video') |
|
) |
|
|
|
|
|
def listen() -> None: |
|
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 update_output_path(output_path : str) -> None: |
|
state_manager.set_item('output_path', output_path) |
|
|