Spaces:
Runtime error
Runtime error
from typing import List, Optional | |
import gradio | |
from facefusion import content_analyser, face_classifier, face_detector, face_landmarker, face_masker, face_recognizer, state_manager, voice_extractor, wording | |
from facefusion.execution import get_available_execution_providers | |
from facefusion.filesystem import list_directory | |
from facefusion.processors.core import get_processors_modules | |
from facefusion.typing import ExecutionProvider | |
EXECUTION_PROVIDERS_CHECKBOX_GROUP : Optional[gradio.CheckboxGroup] = None | |
def render() -> None: | |
global EXECUTION_PROVIDERS_CHECKBOX_GROUP | |
EXECUTION_PROVIDERS_CHECKBOX_GROUP = gradio.CheckboxGroup( | |
label = wording.get('uis.execution_providers_checkbox_group'), | |
choices = get_available_execution_providers(), | |
value = state_manager.get_item('execution_providers') | |
) | |
def listen() -> None: | |
EXECUTION_PROVIDERS_CHECKBOX_GROUP.change(update_execution_providers, inputs = EXECUTION_PROVIDERS_CHECKBOX_GROUP, outputs = EXECUTION_PROVIDERS_CHECKBOX_GROUP) | |
def update_execution_providers(execution_providers : List[ExecutionProvider]) -> gradio.CheckboxGroup: | |
common_modules =\ | |
[ | |
content_analyser, | |
face_classifier, | |
face_detector, | |
face_landmarker, | |
face_masker, | |
face_recognizer, | |
voice_extractor | |
] | |
available_processors = [ file.get('name') for file in list_directory('facefusion/processors/modules') ] | |
processor_modules = get_processors_modules(available_processors) | |
for module in common_modules + processor_modules: | |
if hasattr(module, 'clear_inference_pool'): | |
module.clear_inference_pool() | |
execution_providers = execution_providers or get_available_execution_providers() | |
state_manager.set_item('execution_providers', execution_providers) | |
return gradio.CheckboxGroup(value = state_manager.get_item('execution_providers')) | |