Spaces:
Running
Running
| from typing import List, Optional | |
| import gradio | |
| import onnxruntime | |
| import DeepFakeAI.globals | |
| from DeepFakeAI import wording | |
| from DeepFakeAI.face_analyser import clear_face_analyser | |
| from DeepFakeAI.processors.frame.core import clear_frame_processors_modules | |
| from DeepFakeAI.uis.typing import Update | |
| from DeepFakeAI.utilities import encode_execution_providers, decode_execution_providers | |
| EXECUTION_PROVIDERS_CHECKBOX_GROUP : Optional[gradio.CheckboxGroup] = None | |
| EXECUTION_THREAD_COUNT_SLIDER : Optional[gradio.Slider] = None | |
| EXECUTION_QUEUE_COUNT_SLIDER : Optional[gradio.Slider] = None | |
| def render() -> None: | |
| global EXECUTION_PROVIDERS_CHECKBOX_GROUP | |
| global EXECUTION_THREAD_COUNT_SLIDER | |
| global EXECUTION_QUEUE_COUNT_SLIDER | |
| with gradio.Box(): | |
| EXECUTION_PROVIDERS_CHECKBOX_GROUP = gradio.CheckboxGroup( | |
| label = wording.get('execution_providers_checkbox_group_label'), | |
| choices = encode_execution_providers(onnxruntime.get_available_providers()), | |
| value = encode_execution_providers(DeepFakeAI.globals.execution_providers) | |
| ) | |
| EXECUTION_THREAD_COUNT_SLIDER = gradio.Slider( | |
| label = wording.get('execution_thread_count_slider_label'), | |
| value = DeepFakeAI.globals.execution_thread_count, | |
| step = 1, | |
| minimum = 1, | |
| maximum = 128 | |
| ) | |
| EXECUTION_QUEUE_COUNT_SLIDER = gradio.Slider( | |
| label = wording.get('execution_queue_count_slider_label'), | |
| value = DeepFakeAI.globals.execution_queue_count, | |
| step = 1, | |
| minimum = 1, | |
| maximum = 16 | |
| ) | |
| def listen() -> None: | |
| EXECUTION_PROVIDERS_CHECKBOX_GROUP.change(update_execution_providers, inputs = EXECUTION_PROVIDERS_CHECKBOX_GROUP, outputs = EXECUTION_PROVIDERS_CHECKBOX_GROUP) | |
| EXECUTION_THREAD_COUNT_SLIDER.change(update_execution_thread_count, inputs = EXECUTION_THREAD_COUNT_SLIDER, outputs = EXECUTION_THREAD_COUNT_SLIDER) | |
| EXECUTION_QUEUE_COUNT_SLIDER.change(update_execution_queue_count, inputs = EXECUTION_QUEUE_COUNT_SLIDER, outputs = EXECUTION_QUEUE_COUNT_SLIDER) | |
| def update_execution_providers(execution_providers : List[str]) -> Update: | |
| clear_face_analyser() | |
| clear_frame_processors_modules() | |
| DeepFakeAI.globals.execution_providers = decode_execution_providers(execution_providers) | |
| return gradio.update(value = execution_providers) | |
| def update_execution_thread_count(execution_thread_count : int = 1) -> Update: | |
| DeepFakeAI.globals.execution_thread_count = execution_thread_count | |
| return gradio.update(value = execution_thread_count) | |
| def update_execution_queue_count(execution_queue_count : int = 1) -> Update: | |
| DeepFakeAI.globals.execution_queue_count = execution_queue_count | |
| return gradio.update(value = execution_queue_count) | |