from typing import List, Optional import gradio import facefusion.choices from facefusion import state_manager, translator from facefusion.common_helper import calculate_int_step from facefusion.types import BenchmarkMode, BenchmarkResolution BENCHMARK_MODE_DROPDOWN : Optional[gradio.Dropdown] = None BENCHMARK_RESOLUTIONS_CHECKBOX_GROUP : Optional[gradio.CheckboxGroup] = None BENCHMARK_CYCLE_COUNT_SLIDER : Optional[gradio.Button] = None def render() -> None: global BENCHMARK_MODE_DROPDOWN global BENCHMARK_RESOLUTIONS_CHECKBOX_GROUP global BENCHMARK_CYCLE_COUNT_SLIDER BENCHMARK_MODE_DROPDOWN = gradio.Dropdown( label = translator.get('uis.benchmark_mode_dropdown'), choices = facefusion.choices.benchmark_modes, value = state_manager.get_item('benchmark_mode') ) BENCHMARK_RESOLUTIONS_CHECKBOX_GROUP = gradio.CheckboxGroup( label = translator.get('uis.benchmark_resolutions_checkbox_group'), choices = facefusion.choices.benchmark_resolutions, value = state_manager.get_item('benchmark_resolutions') ) BENCHMARK_CYCLE_COUNT_SLIDER = gradio.Slider( label = translator.get('uis.benchmark_cycle_count_slider'), value = state_manager.get_item('benchmark_cycle_count'), step = calculate_int_step(facefusion.choices.benchmark_cycle_count_range), minimum = facefusion.choices.benchmark_cycle_count_range[0], maximum = facefusion.choices.benchmark_cycle_count_range[-1] ) def listen() -> None: BENCHMARK_MODE_DROPDOWN.change(update_benchmark_mode, inputs = BENCHMARK_MODE_DROPDOWN) BENCHMARK_RESOLUTIONS_CHECKBOX_GROUP.change(update_benchmark_resolutions, inputs = BENCHMARK_RESOLUTIONS_CHECKBOX_GROUP) BENCHMARK_CYCLE_COUNT_SLIDER.release(update_benchmark_cycle_count, inputs = BENCHMARK_CYCLE_COUNT_SLIDER) def update_benchmark_mode(benchmark_mode : BenchmarkMode) -> None: state_manager.set_item('benchmark_mode', benchmark_mode) def update_benchmark_resolutions(benchmark_resolutions : List[BenchmarkResolution]) -> None: state_manager.set_item('benchmark_resolutions', benchmark_resolutions) def update_benchmark_cycle_count(benchmark_cycle_count : int) -> None: state_manager.set_item('benchmark_cycle_count', benchmark_cycle_count)