From dbbf3445b6898b2f68bf5c2afaa6915ad6a2786f Mon Sep 17 00:00:00 2001 From: henryruhs Date: Wed, 22 Jan 2025 22:51:52 +0100 Subject: [PATCH] We name it InferenceSessionProvider --- facefusion/execution.py | 24 ++++++++++++------------ facefusion/inference_manager.py | 6 +++--- facefusion/typing.py | 1 + tests/test_execution.py | 8 ++++---- 4 files changed, 20 insertions(+), 19 deletions(-) diff --git a/facefusion/execution.py b/facefusion/execution.py index b59df2e..5241ff7 100644 --- a/facefusion/execution.py +++ b/facefusion/execution.py @@ -8,7 +8,7 @@ from onnxruntime import get_available_providers, set_default_logger_severity import facefusion.choices from facefusion.common_helper import get_last -from facefusion.typing import ExecutionDevice, ExecutionProvider, ValueAndUnit +from facefusion.typing import ExecutionDevice, ExecutionProvider, InferenceSessionProvider, ValueAndUnit set_default_logger_severity(3) @@ -26,28 +26,28 @@ def suggest_execution_provider(execution_providers : List[ExecutionProvider]) -> def get_available_execution_providers() -> List[ExecutionProvider]: - inference_execution_providers = get_available_providers() + 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_execution_providers: + if execution_provider_value in inference_session_providers: available_execution_providers.append(execution_provider) return available_execution_providers -def create_inference_execution_providers(execution_device_id : str, execution_providers : List[ExecutionProvider]) -> List[Any]: - inference_execution_providers : List[Any] = [] +def create_inference_session_providers(execution_device_id : str, execution_providers : List[ExecutionProvider]) -> List[InferenceSessionProvider]: + inference_session_providers : List[InferenceSessionProvider] = [] for execution_provider in execution_providers: if execution_provider == 'cuda': - inference_execution_providers.append((facefusion.choices.execution_provider_set.get(execution_provider), + inference_session_providers.append((facefusion.choices.execution_provider_set.get(execution_provider), { 'device_id': execution_device_id, 'cudnn_conv_algo_search': 'DEFAULT' if is_geforce_16_series() else 'EXHAUSTIVE' })) if execution_provider == 'tensorrt': - inference_execution_providers.append((facefusion.choices.execution_provider_set.get(execution_provider), + inference_session_providers.append((facefusion.choices.execution_provider_set.get(execution_provider), { 'device_id': execution_device_id, 'trt_engine_cache_enable': True, @@ -57,23 +57,23 @@ def create_inference_execution_providers(execution_device_id : str, execution_pr 'trt_builder_optimization_level': 5 })) if execution_provider in [ 'directml', 'rocm' ]: - inference_execution_providers.append((facefusion.choices.execution_provider_set.get(execution_provider), + inference_session_providers.append((facefusion.choices.execution_provider_set.get(execution_provider), { 'device_id': execution_device_id })) if execution_provider == 'openvino': - inference_execution_providers.append((facefusion.choices.execution_provider_set.get(execution_provider), + inference_session_providers.append((facefusion.choices.execution_provider_set.get(execution_provider), { 'device_type': 'GPU' if execution_device_id == '0' else 'GPU.' + execution_device_id, 'precision': 'FP32' })) if execution_provider == 'coreml': - inference_execution_providers.append(facefusion.choices.execution_provider_set.get(execution_provider)) + inference_session_providers.append(facefusion.choices.execution_provider_set.get(execution_provider)) if 'cpu' in execution_providers: - inference_execution_providers.append(facefusion.choices.execution_provider_set.get('cpu')) + inference_session_providers.append(facefusion.choices.execution_provider_set.get('cpu')) - return inference_execution_providers + return inference_session_providers def is_geforce_16_series() -> bool: diff --git a/facefusion/inference_manager.py b/facefusion/inference_manager.py index 7c1e9b7..4560801 100644 --- a/facefusion/inference_manager.py +++ b/facefusion/inference_manager.py @@ -6,7 +6,7 @@ from onnxruntime import InferenceSession from facefusion import process_manager, state_manager from facefusion.app_context import detect_app_context -from facefusion.execution import create_inference_execution_providers +from facefusion.execution import create_inference_session_providers from facefusion.filesystem import is_file from facefusion.typing import DownloadSet, ExecutionProvider, InferencePool, InferencePoolSet @@ -61,8 +61,8 @@ def clear_inference_pool(model_context : str) -> None: def create_inference_session(model_path : str, execution_device_id : str, execution_providers : List[ExecutionProvider]) -> InferenceSession: - inference_execution_providers = create_inference_execution_providers(execution_device_id, execution_providers) - return InferenceSession(model_path, providers = inference_execution_providers) + inference_session_providers = create_inference_session_providers(execution_device_id, execution_providers) + return InferenceSession(model_path, providers = inference_session_providers) def get_inference_context(model_context : str, execution_device_id : str, execution_providers : List[ExecutionProvider]) -> str: diff --git a/facefusion/typing.py b/facefusion/typing.py index 249ab9b..1882d68 100755 --- a/facefusion/typing.py +++ b/facefusion/typing.py @@ -131,6 +131,7 @@ ModelInitializer = NDArray[Any] ExecutionProvider = Literal['cpu', 'coreml', 'cuda', 'directml', 'openvino', 'rocm', 'tensorrt'] ExecutionProviderValue = Literal['CPUExecutionProvider', 'CoreMLExecutionProvider', 'CUDAExecutionProvider', 'DmlExecutionProvider', 'OpenVINOExecutionProvider', 'ROCMExecutionProvider', 'TensorrtExecutionProvider'] ExecutionProviderSet = Dict[ExecutionProvider, ExecutionProviderValue] +InferenceSessionProvider = Any ValueAndUnit = TypedDict('ValueAndUnit', { 'value' : int, diff --git a/tests/test_execution.py b/tests/test_execution.py index 0f4fe2f..3c4a8c1 100644 --- a/tests/test_execution.py +++ b/tests/test_execution.py @@ -1,4 +1,4 @@ -from facefusion.execution import create_inference_execution_providers, get_available_execution_providers, has_execution_provider +from facefusion.execution import create_inference_session_providers, get_available_execution_providers, has_execution_provider def test_has_execution_provider() -> None: @@ -10,8 +10,8 @@ def test_get_available_execution_providers() -> None: assert 'cpu' in get_available_execution_providers() -def test_create_inference_execution_providers() -> None: - execution_providers =\ +def test_create_inference_session_providers() -> None: + inference_session_providers =\ [ ('CUDAExecutionProvider', { @@ -21,4 +21,4 @@ def test_create_inference_execution_providers() -> None: 'CPUExecutionProvider' ] - assert create_inference_execution_providers('1', [ 'cpu', 'cuda' ]) == execution_providers + assert create_inference_session_providers('1', [ 'cpu', 'cuda' ]) == inference_session_providers