diff --git a/facefusion/apis/endpoints/capabilities.py b/facefusion/apis/endpoints/capabilities.py index 8476a35a..43528d0d 100644 --- a/facefusion/apis/endpoints/capabilities.py +++ b/facefusion/apis/endpoints/capabilities.py @@ -15,6 +15,6 @@ async def get_capabilities(request : Request) -> JSONResponse: 'image': facefusion.choices.image_formats, 'video': facefusion.choices.video_formats }, - 'arguments': args_store.get_api_set() + 'arguments': args_store.get_api_argument_set() } return JSONResponse(capabilities, status_code = HTTP_200_OK) diff --git a/facefusion/apis/endpoints/state.py b/facefusion/apis/endpoints/state.py index db96c5c6..712f06e5 100644 --- a/facefusion/apis/endpoints/state.py +++ b/facefusion/apis/endpoints/state.py @@ -23,7 +23,7 @@ async def set_state(request : Request) -> JSONResponse: return await select_target(request) body = await request.json() - api_args = args_store.get_api_args() + api_args = args_store.get_api_arguments() for key, value in body.items(): if key in api_args: diff --git a/facefusion/args_store.py b/facefusion/args_store.py index ce7d2a3c..2d53bcde 100644 --- a/facefusion/args_store.py +++ b/facefusion/args_store.py @@ -1,10 +1,9 @@ from argparse import Action -from typing import List +from typing import Dict, List -from facefusion.types import Args, ArgsStore, Scope +from facefusion.types import Args, ArgumentSet, ArgumentStore, Scope, State - -ARGS_STORE : ArgsStore =\ +ARGUMENT_STORE : ArgumentStore =\ { 'api': {}, 'cli': {}, @@ -12,33 +11,33 @@ ARGS_STORE : ArgsStore =\ } -def get_api_set() -> Args: - return ARGS_STORE.get('api') +def get_api_argument_set() -> Dict[str, ArgumentSet]: + return ARGUMENT_STORE.get('api') -def get_cli_set() -> Args: - return ARGS_STORE.get('cli') +def get_cli_argument_set() -> Dict[str, ArgumentSet]: + return ARGUMENT_STORE.get('cli') -def get_sys_set() -> Args: - return ARGS_STORE.get('sys') +def get_sys_argument_set() -> Dict[str, ArgumentSet]: + return ARGUMENT_STORE.get('sys') -def get_api_args() -> List[str]: - return list(get_api_set().keys()) +def get_api_arguments() -> List[str]: + return list(get_api_argument_set().keys()) -def get_cli_args() -> List[str]: - return list(get_cli_set().keys()) +def get_cli_arguments() -> List[str]: + return list(get_cli_argument_set().keys()) -def get_sys_args() -> List[str]: - return list(get_sys_set().keys()) +def get_sys_arguments() -> List[str]: + return list(get_sys_argument_set().keys()) -def register_arguments(actions : List[Action], scopes : List[Scope]) -> None: +def register_argument_set(actions : List[Action], scopes : List[Scope]) -> None: for action in actions: - value =\ + value : ArgumentSet =\ { 'default': action.default } @@ -48,25 +47,25 @@ def register_arguments(actions : List[Action], scopes : List[Scope]) -> None: for scope in scopes: if scope == 'api': - ARGS_STORE['api'][action.dest] = value + ARGUMENT_STORE['api'][action.dest] = value if scope == 'cli': - ARGS_STORE['cli'][action.dest] = value + ARGUMENT_STORE['cli'][action.dest] = value if scope == 'sys': - ARGS_STORE['sys'][action.dest] = value + ARGUMENT_STORE['sys'][action.dest] = value -def filter_api_args(args : Args) -> Args: +def filter_api_args(state : State) -> Args: api_args =\ { - key: args.get(key) for key in args if key in get_api_set() #type:ignore[literal-required] + key: state.get(key) for key in state if key in get_api_arguments() } return api_args -def filter_cli_args(args : Args) -> Args: +def filter_cli_args(state : State) -> Args: cli_args =\ { - key: args.get(key) for key in args if key in get_cli_args() #type:ignore[literal-required] + key: state.get(key) for key in state if key in get_cli_arguments() } return cli_args @@ -74,14 +73,14 @@ def filter_cli_args(args : Args) -> Args: def filter_step_args(args : Args) -> Args: step_args =\ { - key: args.get(key) for key in args if key in get_cli_args() and key not in get_sys_set() #type:ignore[literal-required] + key: args.get(key) for key in args if key in get_cli_arguments() and key not in get_sys_arguments() } return step_args -def filter_sys_args(args : Args) -> Args: +def filter_sys_args(state : State) -> Args: sys_args =\ { - key: args.get(key) for key in args if key in get_sys_set() #type:ignore[literal-required] + key: state.get(key) for key in state if key in get_sys_arguments() } return sys_args diff --git a/facefusion/processors/modules/age_modifier/core.py b/facefusion/processors/modules/age_modifier/core.py index 62c525ed..f68757c0 100755 --- a/facefusion/processors/modules/age_modifier/core.py +++ b/facefusion/processors/modules/age_modifier/core.py @@ -87,7 +87,7 @@ def get_model_options() -> ModelOptions: def register_args(program : ArgumentParser) -> None: group_processors = find_argument_group(program, 'processors') if group_processors: - facefusion.args_store.register_arguments( + facefusion.args_store.register_argument_set( [ group_processors.add_argument( '--age-modifier-model', diff --git a/facefusion/processors/modules/background_remover/core.py b/facefusion/processors/modules/background_remover/core.py index 4757a68b..bb2c8c69 100644 --- a/facefusion/processors/modules/background_remover/core.py +++ b/facefusion/processors/modules/background_remover/core.py @@ -420,7 +420,7 @@ def get_model_options() -> ModelOptions: def register_args(program : ArgumentParser) -> None: group_processors = find_argument_group(program, 'processors') if group_processors: - facefusion.args_store.register_arguments( + facefusion.args_store.register_argument_set( [ group_processors.add_argument( '--background-remover-model', diff --git a/facefusion/processors/modules/deep_swapper/core.py b/facefusion/processors/modules/deep_swapper/core.py index 4f10d641..eab47931 100755 --- a/facefusion/processors/modules/deep_swapper/core.py +++ b/facefusion/processors/modules/deep_swapper/core.py @@ -276,7 +276,7 @@ def get_model_size() -> Size: def register_args(program : ArgumentParser) -> None: group_processors = find_argument_group(program, 'processors') if group_processors: - facefusion.args_store.register_arguments( + facefusion.args_store.register_argument_set( [ group_processors.add_argument( '--deep-swapper-model', diff --git a/facefusion/processors/modules/expression_restorer/core.py b/facefusion/processors/modules/expression_restorer/core.py index a2ef3bbf..8bcf51f6 100755 --- a/facefusion/processors/modules/expression_restorer/core.py +++ b/facefusion/processors/modules/expression_restorer/core.py @@ -99,7 +99,7 @@ def get_model_options() -> ModelOptions: def register_args(program : ArgumentParser) -> None: group_processors = find_argument_group(program, 'processors') if group_processors: - facefusion.args_store.register_arguments( + facefusion.args_store.register_argument_set( [ group_processors.add_argument( '--expression-restorer-model', diff --git a/facefusion/processors/modules/face_debugger/core.py b/facefusion/processors/modules/face_debugger/core.py index 681a9c6a..790438a2 100755 --- a/facefusion/processors/modules/face_debugger/core.py +++ b/facefusion/processors/modules/face_debugger/core.py @@ -30,7 +30,7 @@ def clear_inference_pool() -> None: def register_args(program : ArgumentParser) -> None: group_processors = find_argument_group(program, 'processors') if group_processors: - facefusion.args_store.register_arguments( + facefusion.args_store.register_argument_set( [ group_processors.add_argument( '--face-debugger-items', diff --git a/facefusion/processors/modules/face_editor/core.py b/facefusion/processors/modules/face_editor/core.py index ac3088d5..28e86b20 100755 --- a/facefusion/processors/modules/face_editor/core.py +++ b/facefusion/processors/modules/face_editor/core.py @@ -129,7 +129,7 @@ def get_model_options() -> ModelOptions: def register_args(program : ArgumentParser) -> None: group_processors = find_argument_group(program, 'processors') if group_processors: - facefusion.args_store.register_arguments( + facefusion.args_store.register_argument_set( [ group_processors.add_argument( '--face-editor-model', diff --git a/facefusion/processors/modules/face_enhancer/core.py b/facefusion/processors/modules/face_enhancer/core.py index bf626ee8..56901d0f 100755 --- a/facefusion/processors/modules/face_enhancer/core.py +++ b/facefusion/processors/modules/face_enhancer/core.py @@ -292,7 +292,7 @@ def get_model_options() -> ModelOptions: def register_args(program : ArgumentParser) -> None: group_processors = find_argument_group(program, 'processors') if group_processors: - facefusion.args_store.register_arguments( + facefusion.args_store.register_argument_set( [ group_processors.add_argument( '--face-enhancer-model', diff --git a/facefusion/processors/modules/face_swapper/core.py b/facefusion/processors/modules/face_swapper/core.py index 75226d6d..04fa6105 100755 --- a/facefusion/processors/modules/face_swapper/core.py +++ b/facefusion/processors/modules/face_swapper/core.py @@ -513,7 +513,7 @@ def get_model_name() -> str: def register_args(program : ArgumentParser) -> None: group_processors = find_argument_group(program, 'processors') if group_processors: - facefusion.args_store.register_arguments( + facefusion.args_store.register_argument_set( [ group_processors.add_argument( '--face-swapper-model', @@ -526,7 +526,7 @@ def register_args(program : ArgumentParser) -> None: ) known_args, _ = program.parse_known_args() face_swapper_pixel_boost_choices = face_swapper_choices.face_swapper_set.get(known_args.face_swapper_model) - facefusion.args_store.register_arguments( + facefusion.args_store.register_argument_set( [ group_processors.add_argument( '--face-swapper-pixel-boost', diff --git a/facefusion/processors/modules/frame_colorizer/core.py b/facefusion/processors/modules/frame_colorizer/core.py index 462c9d35..67b6b28a 100644 --- a/facefusion/processors/modules/frame_colorizer/core.py +++ b/facefusion/processors/modules/frame_colorizer/core.py @@ -184,7 +184,7 @@ def get_model_options() -> ModelOptions: def register_args(program : ArgumentParser) -> None: group_processors = find_argument_group(program, 'processors') if group_processors: - facefusion.args_store.register_arguments( + facefusion.args_store.register_argument_set( [ group_processors.add_argument( '--frame-colorizer-model', diff --git a/facefusion/processors/modules/frame_enhancer/core.py b/facefusion/processors/modules/frame_enhancer/core.py index 81ea622d..6f5f89aa 100644 --- a/facefusion/processors/modules/frame_enhancer/core.py +++ b/facefusion/processors/modules/frame_enhancer/core.py @@ -573,7 +573,7 @@ def get_frame_enhancer_model() -> str: def register_args(program : ArgumentParser) -> None: group_processors = find_argument_group(program, 'processors') if group_processors: - facefusion.args_store.register_arguments( + facefusion.args_store.register_argument_set( [ group_processors.add_argument( '--frame-enhancer-model', diff --git a/facefusion/processors/modules/lip_syncer/core.py b/facefusion/processors/modules/lip_syncer/core.py index 717ae0a2..d6837657 100755 --- a/facefusion/processors/modules/lip_syncer/core.py +++ b/facefusion/processors/modules/lip_syncer/core.py @@ -132,7 +132,7 @@ def get_model_options() -> ModelOptions: def register_args(program : ArgumentParser) -> None: group_processors = find_argument_group(program, 'processors') if group_processors: - facefusion.args_store.register_arguments( + facefusion.args_store.register_argument_set( [ group_processors.add_argument( '--lip-syncer-model', diff --git a/facefusion/program.py b/facefusion/program.py index 8fb01d60..bc74d0a6 100755 --- a/facefusion/program.py +++ b/facefusion/program.py @@ -24,7 +24,7 @@ def create_config_path_program() -> ArgumentParser: program = ArgumentParser(add_help = False) group_paths = program.add_argument_group('paths') - args_store.register_arguments( + args_store.register_argument_set( [ group_paths.add_argument( '--config-path', @@ -43,7 +43,7 @@ def create_workflow_program() -> ArgumentParser: program = ArgumentParser(add_help = False) group_paths = program.add_argument_group('paths') - args_store.register_arguments( + args_store.register_argument_set( [ group_paths.add_argument( '--workflow', @@ -62,7 +62,7 @@ def create_temp_path_program() -> ArgumentParser: program = ArgumentParser(add_help = False) group_paths = program.add_argument_group('paths') - args_store.register_arguments( + args_store.register_argument_set( [ group_paths.add_argument( '--temp-path', @@ -80,7 +80,7 @@ def create_jobs_path_program() -> ArgumentParser: program = ArgumentParser(add_help = False) group_paths = program.add_argument_group('paths') - args_store.register_arguments( + args_store.register_argument_set( [ group_paths.add_argument( '--jobs-path', @@ -98,7 +98,7 @@ def create_source_paths_program() -> ArgumentParser: program = ArgumentParser(add_help = False) group_paths = program.add_argument_group('paths') - args_store.register_arguments( + args_store.register_argument_set( [ group_paths.add_argument( '-s', '--source-paths', @@ -117,7 +117,7 @@ def create_target_path_program() -> ArgumentParser: program = ArgumentParser(add_help = False) group_paths = program.add_argument_group('paths') - args_store.register_arguments( + args_store.register_argument_set( [ group_paths.add_argument( '-t', '--target-path', @@ -135,7 +135,7 @@ def create_output_path_program() -> ArgumentParser: program = ArgumentParser(add_help = False) group_paths = program.add_argument_group('paths') - args_store.register_arguments( + args_store.register_argument_set( [ group_paths.add_argument( '-o', '--output-path', @@ -153,7 +153,7 @@ def create_source_pattern_program() -> ArgumentParser: program = ArgumentParser(add_help = False) group_patterns = program.add_argument_group('patterns') - args_store.register_arguments( + args_store.register_argument_set( [ group_patterns.add_argument( '-s', '--source-pattern', @@ -171,7 +171,7 @@ def create_target_pattern_program() -> ArgumentParser: program = ArgumentParser(add_help = False) group_patterns = program.add_argument_group('patterns') - args_store.register_arguments( + args_store.register_argument_set( [ group_patterns.add_argument( '-t', '--target-pattern', @@ -189,7 +189,7 @@ def create_output_pattern_program() -> ArgumentParser: program = ArgumentParser(add_help = False) group_patterns = program.add_argument_group('patterns') - args_store.register_arguments( + args_store.register_argument_set( [ group_patterns.add_argument( '-o', '--output-pattern', @@ -207,7 +207,7 @@ def create_face_detector_program() -> ArgumentParser: program = ArgumentParser(add_help = False) group_face_detector = program.add_argument_group('face detector') - args_store.register_arguments( + args_store.register_argument_set( [ group_face_detector.add_argument( '--face-detector-model', @@ -222,7 +222,7 @@ def create_face_detector_program() -> ArgumentParser: known_args, _ = program.parse_known_args() face_detector_size_choices = facefusion.choices.face_detector_set.get(known_args.face_detector_model) - args_store.register_arguments( + args_store.register_argument_set( [ group_face_detector.add_argument( '--face-detector-size', @@ -233,7 +233,7 @@ def create_face_detector_program() -> ArgumentParser: ], scopes = [ 'api', 'cli' ] ) - args_store.register_arguments( + args_store.register_argument_set( [ group_face_detector.add_argument( '--face-detector-margin', @@ -245,7 +245,7 @@ def create_face_detector_program() -> ArgumentParser: ], scopes = [ 'api', 'cli' ] ) - args_store.register_arguments( + args_store.register_argument_set( [ group_face_detector.add_argument( '--face-detector-angles', @@ -259,7 +259,7 @@ def create_face_detector_program() -> ArgumentParser: ], scopes = [ 'api', 'cli' ] ) - args_store.register_arguments( + args_store.register_argument_set( [ group_face_detector.add_argument( '--face-detector-score', @@ -280,7 +280,7 @@ def create_face_landmarker_program() -> ArgumentParser: program = ArgumentParser(add_help = False) group_face_landmarker = program.add_argument_group('face landmarker') - args_store.register_arguments( + args_store.register_argument_set( [ group_face_landmarker.add_argument( '--face-landmarker-model', @@ -291,7 +291,7 @@ def create_face_landmarker_program() -> ArgumentParser: ], scopes = [ 'api', 'cli' ] ) - args_store.register_arguments( + args_store.register_argument_set( [ group_face_landmarker.add_argument( '--face-landmarker-score', @@ -312,7 +312,7 @@ def create_face_selector_program() -> ArgumentParser: program = ArgumentParser(add_help = False) group_face_selector = program.add_argument_group('face selector') - args_store.register_arguments( + args_store.register_argument_set( [ group_face_selector.add_argument( '--face-selector-mode', @@ -323,7 +323,7 @@ def create_face_selector_program() -> ArgumentParser: ], scopes = [ 'api', 'cli' ] ) - args_store.register_arguments( + args_store.register_argument_set( [ group_face_selector.add_argument( '--face-selector-order', @@ -334,7 +334,7 @@ def create_face_selector_program() -> ArgumentParser: ], scopes = [ 'api', 'cli' ] ) - args_store.register_arguments( + args_store.register_argument_set( [ group_face_selector.add_argument( '--face-selector-age-start', @@ -347,7 +347,7 @@ def create_face_selector_program() -> ArgumentParser: ], scopes = [ 'api', 'cli' ] ) - args_store.register_arguments( + args_store.register_argument_set( [ group_face_selector.add_argument( '--face-selector-age-end', @@ -360,7 +360,7 @@ def create_face_selector_program() -> ArgumentParser: ], scopes = [ 'api', 'cli' ] ) - args_store.register_arguments( + args_store.register_argument_set( [ group_face_selector.add_argument( '--face-selector-gender', @@ -371,7 +371,7 @@ def create_face_selector_program() -> ArgumentParser: ], scopes = [ 'api', 'cli' ] ) - args_store.register_arguments( + args_store.register_argument_set( [ group_face_selector.add_argument( '--face-selector-race', @@ -382,7 +382,7 @@ def create_face_selector_program() -> ArgumentParser: ], scopes = [ 'api', 'cli' ] ) - args_store.register_arguments( + args_store.register_argument_set( [ group_face_selector.add_argument( '--reference-face-position', @@ -393,7 +393,7 @@ def create_face_selector_program() -> ArgumentParser: ], scopes = [ 'api', 'cli' ] ) - args_store.register_arguments( + args_store.register_argument_set( [ group_face_selector.add_argument( '--reference-face-distance', @@ -406,7 +406,7 @@ def create_face_selector_program() -> ArgumentParser: ], scopes = [ 'api', 'cli' ] ) - args_store.register_arguments( + args_store.register_argument_set( [ group_face_selector.add_argument( '--reference-frame-number', @@ -425,7 +425,7 @@ def create_face_masker_program() -> ArgumentParser: program = ArgumentParser(add_help = False) group_face_masker = program.add_argument_group('face masker') - args_store.register_arguments( + args_store.register_argument_set( [ group_face_masker.add_argument( '--face-occluder-model', @@ -436,7 +436,7 @@ def create_face_masker_program() -> ArgumentParser: ], scopes = [ 'api', 'cli' ] ) - args_store.register_arguments( + args_store.register_argument_set( [ group_face_masker.add_argument( '--face-parser-model', @@ -447,7 +447,7 @@ def create_face_masker_program() -> ArgumentParser: ], scopes = [ 'api', 'cli' ] ) - args_store.register_arguments( + args_store.register_argument_set( [ group_face_masker.add_argument( '--face-mask-types', @@ -460,7 +460,7 @@ def create_face_masker_program() -> ArgumentParser: ], scopes = [ 'api', 'cli' ] ) - args_store.register_arguments( + args_store.register_argument_set( [ group_face_masker.add_argument( '--face-mask-areas', @@ -473,7 +473,7 @@ def create_face_masker_program() -> ArgumentParser: ], scopes = [ 'api', 'cli' ] ) - args_store.register_arguments( + args_store.register_argument_set( [ group_face_masker.add_argument( '--face-mask-regions', @@ -486,7 +486,7 @@ def create_face_masker_program() -> ArgumentParser: ], scopes = [ 'api', 'cli' ] ) - args_store.register_arguments( + args_store.register_argument_set( [ group_face_masker.add_argument( '--face-mask-blur', @@ -499,7 +499,7 @@ def create_face_masker_program() -> ArgumentParser: ], scopes = [ 'api', 'cli' ] ) - args_store.register_arguments( + args_store.register_argument_set( [ group_face_masker.add_argument( '--face-mask-padding', @@ -519,7 +519,7 @@ def create_voice_extractor_program() -> ArgumentParser: program = ArgumentParser(add_help = False) group_voice_extractor = program.add_argument_group('voice extractor') - args_store.register_arguments( + args_store.register_argument_set( [ group_voice_extractor.add_argument( '--voice-extractor-model', @@ -538,7 +538,7 @@ def create_frame_extraction_program() -> ArgumentParser: program = ArgumentParser(add_help = False) group_frame_extraction = program.add_argument_group('frame extraction') - args_store.register_arguments( + args_store.register_argument_set( [ group_frame_extraction.add_argument( '--trim-frame-start', @@ -549,7 +549,7 @@ def create_frame_extraction_program() -> ArgumentParser: ], scopes = [ 'api', 'cli' ] ) - args_store.register_arguments( + args_store.register_argument_set( [ group_frame_extraction.add_argument( '--trim-frame-end', @@ -560,7 +560,7 @@ def create_frame_extraction_program() -> ArgumentParser: ], scopes = [ 'api', 'cli' ] ) - args_store.register_arguments( + args_store.register_argument_set( [ group_frame_extraction.add_argument( '--temp-frame-format', @@ -580,7 +580,7 @@ def create_output_creation_program() -> ArgumentParser: available_encoder_set = get_available_encoder_set() group_output_creation = program.add_argument_group('output creation') - args_store.register_arguments( + args_store.register_argument_set( [ group_output_creation.add_argument( '--output-image-quality', @@ -593,7 +593,7 @@ def create_output_creation_program() -> ArgumentParser: ], scopes = [ 'api', 'cli' ] ) - args_store.register_arguments( + args_store.register_argument_set( [ group_output_creation.add_argument( '--output-image-scale', @@ -605,7 +605,7 @@ def create_output_creation_program() -> ArgumentParser: ], scopes = [ 'api', 'cli' ] ) - args_store.register_arguments( + args_store.register_argument_set( [ group_output_creation.add_argument( '--output-audio-encoder', @@ -616,7 +616,7 @@ def create_output_creation_program() -> ArgumentParser: ], scopes = [ 'api', 'cli' ] ) - args_store.register_arguments( + args_store.register_argument_set( [ group_output_creation.add_argument( '--output-audio-quality', @@ -629,7 +629,7 @@ def create_output_creation_program() -> ArgumentParser: ], scopes = [ 'api', 'cli' ] ) - args_store.register_arguments( + args_store.register_argument_set( [ group_output_creation.add_argument( '--output-audio-volume', @@ -642,7 +642,7 @@ def create_output_creation_program() -> ArgumentParser: ], scopes = [ 'api', 'cli' ] ) - args_store.register_arguments( + args_store.register_argument_set( [ group_output_creation.add_argument( '--output-video-encoder', @@ -653,7 +653,7 @@ def create_output_creation_program() -> ArgumentParser: ], scopes = [ 'api', 'cli' ] ) - args_store.register_arguments( + args_store.register_argument_set( [ group_output_creation.add_argument( '--output-video-preset', @@ -664,7 +664,7 @@ def create_output_creation_program() -> ArgumentParser: ], scopes = [ 'api', 'cli' ] ) - args_store.register_arguments( + args_store.register_argument_set( [ group_output_creation.add_argument( '--output-video-quality', @@ -677,7 +677,7 @@ def create_output_creation_program() -> ArgumentParser: ], scopes = [ 'api', 'cli' ] ) - args_store.register_arguments( + args_store.register_argument_set( [ group_output_creation.add_argument( '--output-video-scale', @@ -689,7 +689,7 @@ def create_output_creation_program() -> ArgumentParser: ], scopes = [ 'api', 'cli' ] ) - args_store.register_arguments( + args_store.register_argument_set( [ group_output_creation.add_argument( '--output-video-fps', @@ -709,7 +709,7 @@ def create_processors_program() -> ArgumentParser: available_processors = [ get_file_name(file_path) for file_path in resolve_file_paths('facefusion/processors/modules') ] group_processors = program.add_argument_group('processors') - args_store.register_arguments( + args_store.register_argument_set( [ group_processors.add_argument( '--processors', @@ -732,7 +732,7 @@ def create_download_providers_program() -> ArgumentParser: program = ArgumentParser(add_help = False) group_download = program.add_argument_group('download') - args_store.register_arguments( + args_store.register_argument_set( [ group_download.add_argument( '--download-providers', @@ -753,7 +753,7 @@ def create_download_scope_program() -> ArgumentParser: program = ArgumentParser(add_help = False) group_download = program.add_argument_group('download') - args_store.register_arguments( + args_store.register_argument_set( [ group_download.add_argument( '--download-scope', @@ -820,7 +820,7 @@ def create_execution_program() -> ArgumentParser: available_execution_providers = get_available_execution_providers() group_execution = program.add_argument_group('execution') - args_store.register_arguments( + args_store.register_argument_set( [ group_execution.add_argument( '--execution-device-ids', @@ -833,7 +833,7 @@ def create_execution_program() -> ArgumentParser: ], scopes = [ 'cli', 'sys' ] ) - args_store.register_arguments( + args_store.register_argument_set( [ group_execution.add_argument( '--execution-providers', @@ -846,7 +846,7 @@ def create_execution_program() -> ArgumentParser: ], scopes = [ 'cli', 'sys' ] ) - args_store.register_arguments( + args_store.register_argument_set( [ group_execution.add_argument( '--execution-thread-count', @@ -867,7 +867,7 @@ def create_memory_program() -> ArgumentParser: program = ArgumentParser(add_help = False) group_memory = program.add_argument_group('memory') - args_store.register_arguments( + args_store.register_argument_set( [ group_memory.add_argument( '--video-memory-strategy', @@ -886,7 +886,7 @@ def create_log_level_program() -> ArgumentParser: program = ArgumentParser(add_help = False) group_misc = program.add_argument_group('misc') - args_store.register_arguments( + args_store.register_argument_set( [ group_misc.add_argument( '--log-level', @@ -905,7 +905,7 @@ def create_halt_on_error_program() -> ArgumentParser: program = ArgumentParser(add_help = False) group_misc = program.add_argument_group('misc') - args_store.register_arguments( + args_store.register_argument_set( [ group_misc.add_argument( '--halt-on-error', diff --git a/facefusion/types.py b/facefusion/types.py index 9caedf28..94b40213 100755 --- a/facefusion/types.py +++ b/facefusion/types.py @@ -1,6 +1,6 @@ from collections import namedtuple from datetime import datetime -from typing import Any, Callable, Dict, List, Literal, Optional, Tuple, TypeAlias, TypedDict +from typing import Any, Callable, Dict, List, Literal, NotRequired, Optional, Tuple, TypeAlias, TypedDict, Union import cv2 import numpy @@ -97,13 +97,19 @@ Margin : TypeAlias = Tuple[int, int, int, int] Orientation = Literal['landscape', 'portrait'] Resolution : TypeAlias = Tuple[int, int] -Args : TypeAlias = Dict[str, Any] +Choice : TypeAlias = Union[int | str] Scope : TypeAlias = Literal['api', 'cli', 'sys'] -ArgsStore = TypedDict('ArgsStore', +Args : TypeAlias = Dict[str, Any] +ArgumentSet = TypedDict('ArgumentSet', { - 'api' : Args, - 'cli' : Args, - 'sys' : Args + 'default' : Any, + 'choices' : NotRequired[List[Choice]] +}) +ArgumentStore = TypedDict('ArgumentStore', +{ + 'api' : Dict[str, ArgumentSet], + 'cli' : Dict[str, ArgumentSet], + 'sys' : Dict[str, ArgumentSet] }) ProcessState = Literal['checking', 'processing', 'stopping', 'pending'] diff --git a/tests/test_api_capabilities.py b/tests/test_api_capabilities.py index a42c100b..562df544 100644 --- a/tests/test_api_capabilities.py +++ b/tests/test_api_capabilities.py @@ -11,7 +11,7 @@ from facefusion.apis.core import create_api @pytest.fixture(scope = 'module') def test_client() -> Iterator[TestClient]: program = ArgumentParser() - args_store.register_arguments( + args_store.register_argument_set( [ program.add_argument( '--source-paths', @@ -20,7 +20,7 @@ def test_client() -> Iterator[TestClient]: ], scopes = [ 'api' ] ) - args_store.register_arguments( + args_store.register_argument_set( [ program.add_argument( '--output-format', diff --git a/tests/test_api_state.py b/tests/test_api_state.py index b39ead4e..bcad4755 100644 --- a/tests/test_api_state.py +++ b/tests/test_api_state.py @@ -25,7 +25,7 @@ def before_all() -> None: @pytest.fixture(scope = 'module') def test_client() -> Iterator[TestClient]: program = ArgumentParser() - args_store.register_arguments( + args_store.register_argument_set( [ program.add_argument( '--source-paths', @@ -34,7 +34,7 @@ def test_client() -> Iterator[TestClient]: ], scopes = [ 'api' ] ) - args_store.register_arguments( + args_store.register_argument_set( [ program.add_argument( '--target-path' @@ -42,7 +42,7 @@ def test_client() -> Iterator[TestClient]: ], scopes = [ 'api' ] ) - args_store.register_arguments( + args_store.register_argument_set( [ program.add_argument( '--execution-providers',