From d56d651568d21b54f168533f595964ce4734f3b6 Mon Sep 17 00:00:00 2001 From: henryruhs Date: Sun, 16 Feb 2025 09:43:50 +0100 Subject: [PATCH] Get rid of suggest_execution_provider() via the insert trick --- facefusion/execution.py | 11 ++--------- facefusion/program.py | 4 ++-- 2 files changed, 4 insertions(+), 11 deletions(-) diff --git a/facefusion/execution.py b/facefusion/execution.py index f2a2f35..7b8a122 100644 --- a/facefusion/execution.py +++ b/facefusion/execution.py @@ -17,21 +17,14 @@ def has_execution_provider(execution_provider : ExecutionProvider) -> bool: return execution_provider in get_available_execution_providers() -def suggest_execution_provider(execution_providers : List[ExecutionProvider]) -> ExecutionProvider: - for execution_provider in facefusion.choices.execution_providers: - if execution_provider in execution_providers: - return execution_provider - - return get_last(facefusion.choices.execution_providers) - - def get_available_execution_providers() -> List[ExecutionProvider]: inference_session_providers = get_available_providers() available_execution_providers = [] for execution_provider, execution_provider_value in facefusion.choices.execution_provider_set.items(): if execution_provider_value in inference_session_providers: - available_execution_providers.append(execution_provider) + index = facefusion.choices.execution_providers.index(execution_provider) + available_execution_providers.insert(index, execution_provider) return available_execution_providers diff --git a/facefusion/program.py b/facefusion/program.py index bb3c805..f928b8e 100755 --- a/facefusion/program.py +++ b/facefusion/program.py @@ -4,7 +4,7 @@ from argparse import ArgumentParser, HelpFormatter import facefusion.choices from facefusion import config, metadata, state_manager, wording from facefusion.common_helper import create_float_metavar, create_int_metavar, get_first, get_last -from facefusion.execution import get_available_execution_providers, suggest_execution_provider +from facefusion.execution import get_available_execution_providers from facefusion.ffmpeg import get_available_encoder_set from facefusion.filesystem import get_file_name, resolve_file_paths from facefusion.jobs import job_store @@ -198,7 +198,7 @@ def create_execution_program() -> ArgumentParser: available_execution_providers = get_available_execution_providers() group_execution = program.add_argument_group('execution') group_execution.add_argument('--execution-device-id', help = wording.get('help.execution_device_id'), default = config.get_str_value('execution.execution_device_id', '0')) - group_execution.add_argument('--execution-providers', help = wording.get('help.execution_providers').format(choices = ', '.join(available_execution_providers)), default = config.get_str_list('execution.execution_providers', suggest_execution_provider(available_execution_providers)), choices = available_execution_providers, nargs = '+', metavar = 'EXECUTION_PROVIDERS') + group_execution.add_argument('--execution-providers', help = wording.get('help.execution_providers').format(choices = ', '.join(available_execution_providers)), default = config.get_str_list('execution.execution_providers', get_first(available_execution_providers)), choices = available_execution_providers, nargs = '+', metavar = 'EXECUTION_PROVIDERS') group_execution.add_argument('--execution-thread-count', help = wording.get('help.execution_thread_count'), type = int, default = config.get_int_value('execution.execution_thread_count', '4'), choices = facefusion.choices.execution_thread_count_range, metavar = create_int_metavar(facefusion.choices.execution_thread_count_range)) group_execution.add_argument('--execution-queue-count', help = wording.get('help.execution_queue_count'), type = int, default = config.get_int_value('execution.execution_queue_count', '1'), choices = facefusion.choices.execution_queue_count_range, metavar = create_int_metavar(facefusion.choices.execution_queue_count_range)) job_store.register_job_keys([ 'execution_device_id', 'execution_providers', 'execution_thread_count', 'execution_queue_count' ])