Spaces:
Runtime error
Runtime error
from typing import Any, Generator, List, Optional | |
import gradio | |
from facefusion import benchmarker, state_manager, wording | |
from facefusion.types import BenchmarkResolution | |
from facefusion.uis.core import get_ui_component | |
BENCHMARK_BENCHMARKS_DATAFRAME : Optional[gradio.Dataframe] = None | |
BENCHMARK_START_BUTTON : Optional[gradio.Button] = None | |
def render() -> None: | |
global BENCHMARK_BENCHMARKS_DATAFRAME | |
global BENCHMARK_START_BUTTON | |
BENCHMARK_BENCHMARKS_DATAFRAME = gradio.Dataframe( | |
headers = | |
[ | |
'target_path', | |
'cycle_count', | |
'average_run', | |
'fastest_run', | |
'slowest_run', | |
'relative_fps' | |
], | |
datatype = | |
[ | |
'str', | |
'number', | |
'number', | |
'number', | |
'number', | |
'number' | |
], | |
show_label = False | |
) | |
BENCHMARK_START_BUTTON = gradio.Button( | |
value = wording.get('uis.start_button'), | |
variant = 'primary', | |
size = 'sm' | |
) | |
def listen() -> None: | |
benchmark_resolutions_checkbox_group = get_ui_component('benchmark_resolutions_checkbox_group') | |
benchmark_cycle_count_slider = get_ui_component('benchmark_cycle_count_slider') | |
if benchmark_resolutions_checkbox_group and benchmark_cycle_count_slider: | |
BENCHMARK_START_BUTTON.click(start, inputs = [ benchmark_resolutions_checkbox_group, benchmark_cycle_count_slider ], outputs = BENCHMARK_BENCHMARKS_DATAFRAME) | |
def start(benchmark_resolutions : List[BenchmarkResolution], benchmark_cycle_count : int) -> Generator[List[Any], None, None]: | |
state_manager.set_item('benchmark_resolutions', benchmark_resolutions) | |
state_manager.set_item('benchmark_cycle_count', benchmark_cycle_count) | |
state_manager.sync_item('execution_providers') | |
state_manager.sync_item('execution_thread_count') | |
state_manager.sync_item('execution_queue_count') | |
for benchmark in benchmarker.run(): | |
yield [ list(benchmark_set.values()) for benchmark_set in benchmark ] | |