mirror of
https://github.com/facefusion/facefusion.git
synced 2026-04-22 09:26:02 +02:00
conditional choices, speaking Alias ArgumentValue, different formatting for program.py
This commit is contained in:
+11
-10
@@ -1,7 +1,7 @@
|
||||
from argparse import Action
|
||||
from typing import Any, Dict, List
|
||||
from typing import Dict, List
|
||||
|
||||
from facefusion.types import Args, ArgsStore, Scope
|
||||
from facefusion.types import Args, ArgsStore, ArgumentValue, Scope
|
||||
|
||||
|
||||
ARGS_STORE : ArgsStore =\
|
||||
@@ -24,26 +24,27 @@ def get_cli_args() -> List[str]:
|
||||
return list(ARGS_STORE.get('cli').keys())
|
||||
|
||||
|
||||
def get_capabilities() -> Dict[str, Any]:
|
||||
def get_capabilities() -> Dict[str, ArgumentValue]:
|
||||
return ARGS_STORE.get('api')
|
||||
|
||||
|
||||
def register_argument(action : Action, scopes : List[Scope]) -> None:
|
||||
key = action.dest
|
||||
choices : Any = list(action.choices) if action.choices else None
|
||||
entry =\
|
||||
value =\
|
||||
{
|
||||
'default': action.default,
|
||||
'choices': choices
|
||||
'default': action.default
|
||||
}
|
||||
|
||||
if action.choices:
|
||||
value['choices'] = list(action.choices)
|
||||
|
||||
for scope in scopes:
|
||||
if scope == 'api':
|
||||
ARGS_STORE['api'][key] = entry
|
||||
ARGS_STORE['api'][key] = value
|
||||
if scope == 'cli':
|
||||
ARGS_STORE['cli'][key] = entry
|
||||
ARGS_STORE['cli'][key] = value
|
||||
if scope == 'sys':
|
||||
ARGS_STORE['sys'][key] = entry
|
||||
ARGS_STORE['sys'][key] = value
|
||||
|
||||
|
||||
def filter_api_args(args : Args) -> Args:
|
||||
|
||||
+482
-112
@@ -23,8 +23,13 @@ def create_help_formatter_large(prog : str) -> HelpFormatter:
|
||||
def create_config_path_program() -> ArgumentParser:
|
||||
program = ArgumentParser(add_help = False)
|
||||
group_paths = program.add_argument_group('paths')
|
||||
config_path_action = group_paths.add_argument('--config-path', help = translator.get('help.config_path'), default = 'facefusion.ini')
|
||||
args_store.register_argument(config_path_action, scopes = [ 'cli' ])
|
||||
args_store.register_argument(
|
||||
group_paths.add_argument(
|
||||
'--config-path',
|
||||
help = translator.get('help.config_path'),
|
||||
default = 'facefusion.ini'),
|
||||
scopes = [ 'cli' ]
|
||||
)
|
||||
apply_config_path(program)
|
||||
return program
|
||||
|
||||
@@ -32,164 +37,396 @@ def create_config_path_program() -> ArgumentParser:
|
||||
def create_workflow_program() -> ArgumentParser:
|
||||
program = ArgumentParser(add_help = False)
|
||||
group_paths = program.add_argument_group('paths')
|
||||
workflow_action = group_paths.add_argument('--workflow', help = translator.get('help.workflow'), default = config.get_str_value('workflow', 'workflow', 'auto'), choices = facefusion.choices.workflows)
|
||||
args_store.register_argument(workflow_action, scopes = [ 'api', 'cli' ])
|
||||
args_store.register_argument(
|
||||
group_paths.add_argument(
|
||||
'--workflow',
|
||||
help = translator.get('help.workflow'),
|
||||
default = config.get_str_value('workflow', 'workflow', 'auto'),
|
||||
choices = facefusion.choices.workflows),
|
||||
scopes = [ 'api', 'cli' ]
|
||||
)
|
||||
return program
|
||||
|
||||
|
||||
def create_temp_path_program() -> ArgumentParser:
|
||||
program = ArgumentParser(add_help = False)
|
||||
group_paths = program.add_argument_group('paths')
|
||||
temp_path_action = group_paths.add_argument('--temp-path', help = translator.get('help.temp_path'), default = config.get_str_value('paths', 'temp_path', tempfile.gettempdir()))
|
||||
args_store.register_argument(temp_path_action, scopes = [ 'cli' ])
|
||||
args_store.register_argument(
|
||||
group_paths.add_argument(
|
||||
'--temp-path',
|
||||
help = translator.get('help.temp_path'),
|
||||
default = config.get_str_value('paths', 'temp_path', tempfile.gettempdir())),
|
||||
scopes = [ 'cli' ]
|
||||
)
|
||||
return program
|
||||
|
||||
|
||||
def create_jobs_path_program() -> ArgumentParser:
|
||||
program = ArgumentParser(add_help = False)
|
||||
group_paths = program.add_argument_group('paths')
|
||||
jobs_path_action = group_paths.add_argument('--jobs-path', help = translator.get('help.jobs_path'), default = config.get_str_value('paths', 'jobs_path', '.jobs'))
|
||||
args_store.register_argument(jobs_path_action, scopes = [ 'cli' ])
|
||||
args_store.register_argument(
|
||||
group_paths.add_argument(
|
||||
'--jobs-path',
|
||||
help = translator.get('help.jobs_path'),
|
||||
default = config.get_str_value('paths', 'jobs_path', '.jobs')),
|
||||
scopes = [ 'cli' ]
|
||||
)
|
||||
return program
|
||||
|
||||
|
||||
def create_source_paths_program() -> ArgumentParser:
|
||||
program = ArgumentParser(add_help = False)
|
||||
group_paths = program.add_argument_group('paths')
|
||||
source_paths_action = group_paths.add_argument('-s', '--source-paths', help = translator.get('help.source_paths'), default = config.get_str_list('paths', 'source_paths'), nargs = '+')
|
||||
args_store.register_argument(source_paths_action, scopes = [ 'cli' ])
|
||||
args_store.register_argument(
|
||||
group_paths.add_argument(
|
||||
'-s', '--source-paths',
|
||||
help = translator.get('help.source_paths'),
|
||||
default = config.get_str_list('paths', 'source_paths'),
|
||||
nargs = '+'),
|
||||
scopes = [ 'cli' ]
|
||||
)
|
||||
return program
|
||||
|
||||
|
||||
def create_target_path_program() -> ArgumentParser:
|
||||
program = ArgumentParser(add_help = False)
|
||||
group_paths = program.add_argument_group('paths')
|
||||
target_path_action = group_paths.add_argument('-t', '--target-path', help = translator.get('help.target_path'), default = config.get_str_value('paths', 'target_path'))
|
||||
args_store.register_argument(target_path_action, scopes = [ 'cli' ])
|
||||
args_store.register_argument(
|
||||
group_paths.add_argument(
|
||||
'-t', '--target-path',
|
||||
help = translator.get('help.target_path'),
|
||||
default = config.get_str_value('paths', 'target_path')),
|
||||
scopes = [ 'cli' ]
|
||||
)
|
||||
return program
|
||||
|
||||
|
||||
def create_output_path_program() -> ArgumentParser:
|
||||
program = ArgumentParser(add_help = False)
|
||||
group_paths = program.add_argument_group('paths')
|
||||
output_path_action = group_paths.add_argument('-o', '--output-path', help = translator.get('help.output_path'), default = config.get_str_value('paths', 'output_path'))
|
||||
args_store.register_argument(output_path_action, scopes = [ 'cli' ])
|
||||
args_store.register_argument(
|
||||
group_paths.add_argument(
|
||||
'-o', '--output-path',
|
||||
help = translator.get('help.output_path'),
|
||||
default = config.get_str_value('paths', 'output_path')),
|
||||
scopes = [ 'cli' ]
|
||||
)
|
||||
return program
|
||||
|
||||
|
||||
def create_source_pattern_program() -> ArgumentParser:
|
||||
program = ArgumentParser(add_help = False)
|
||||
group_patterns = program.add_argument_group('patterns')
|
||||
source_pattern_action = group_patterns.add_argument('-s', '--source-pattern', help = translator.get('help.source_pattern'), default = config.get_str_value('patterns', 'source_pattern'))
|
||||
args_store.register_argument(source_pattern_action, scopes = [ 'cli' ])
|
||||
args_store.register_argument(
|
||||
group_patterns.add_argument(
|
||||
'-s', '--source-pattern',
|
||||
help = translator.get('help.source_pattern'),
|
||||
default = config.get_str_value('patterns', 'source_pattern')),
|
||||
scopes = [ 'cli' ]
|
||||
)
|
||||
return program
|
||||
|
||||
|
||||
def create_target_pattern_program() -> ArgumentParser:
|
||||
program = ArgumentParser(add_help = False)
|
||||
group_patterns = program.add_argument_group('patterns')
|
||||
target_pattern_action = group_patterns.add_argument('-t', '--target-pattern', help = translator.get('help.target_pattern'), default = config.get_str_value('patterns', 'target_pattern'))
|
||||
args_store.register_argument(target_pattern_action, scopes = [ 'cli' ])
|
||||
args_store.register_argument(
|
||||
group_patterns.add_argument(
|
||||
'-t', '--target-pattern',
|
||||
help = translator.get('help.target_pattern'),
|
||||
default = config.get_str_value('patterns', 'target_pattern')),
|
||||
scopes = [ 'cli' ]
|
||||
)
|
||||
return program
|
||||
|
||||
|
||||
def create_output_pattern_program() -> ArgumentParser:
|
||||
program = ArgumentParser(add_help = False)
|
||||
group_patterns = program.add_argument_group('patterns')
|
||||
output_pattern_action = group_patterns.add_argument('-o', '--output-pattern', help = translator.get('help.output_pattern'), default = config.get_str_value('patterns', 'output_pattern'))
|
||||
args_store.register_argument(output_pattern_action, scopes = [ 'cli' ])
|
||||
args_store.register_argument(
|
||||
group_patterns.add_argument(
|
||||
'-o', '--output-pattern',
|
||||
help = translator.get('help.output_pattern'),
|
||||
default = config.get_str_value('patterns', 'output_pattern')),
|
||||
scopes = [ 'cli' ]
|
||||
)
|
||||
return program
|
||||
|
||||
|
||||
def create_face_detector_program() -> ArgumentParser:
|
||||
program = ArgumentParser(add_help = False)
|
||||
group_face_detector = program.add_argument_group('face detector')
|
||||
face_detector_model_action = group_face_detector.add_argument('--face-detector-model', help = translator.get('help.face_detector_model'), default = config.get_str_value('face_detector', 'face_detector_model', 'yolo_face'), choices = facefusion.choices.face_detector_models)
|
||||
args_store.register_argument(
|
||||
group_face_detector.add_argument(
|
||||
'--face-detector-model',
|
||||
help = translator.get('help.face_detector_model'),
|
||||
default = config.get_str_value('face_detector', 'face_detector_model', 'yolo_face'),
|
||||
choices = facefusion.choices.face_detector_models),
|
||||
scopes = [ 'api', 'cli' ]
|
||||
)
|
||||
known_args, _ = program.parse_known_args()
|
||||
face_detector_size_choices = facefusion.choices.face_detector_set.get(known_args.face_detector_model)
|
||||
face_detector_size_action = group_face_detector.add_argument('--face-detector-size', help = translator.get('help.face_detector_size'), default = config.get_str_value('face_detector', 'face_detector_size', get_last(face_detector_size_choices)), choices = face_detector_size_choices)
|
||||
face_detector_margin_action = group_face_detector.add_argument('--face-detector-margin', help = translator.get('help.face_detector_margin'), type = partial(sanitize_int_range, int_range = facefusion.choices.face_detector_margin_range), default = config.get_int_list('face_detector', 'face_detector_margin', '0 0 0 0'), nargs = '+')
|
||||
face_detector_angles_action = group_face_detector.add_argument('--face-detector-angles', help = translator.get('help.face_detector_angles'), type = int, default = config.get_int_list('face_detector', 'face_detector_angles', '0'), choices = facefusion.choices.face_detector_angles, nargs = '+', metavar = 'FACE_DETECTOR_ANGLES')
|
||||
face_detector_score_action = group_face_detector.add_argument('--face-detector-score', help = translator.get('help.face_detector_score'), type = float, default = config.get_float_value('face_detector', 'face_detector_score', '0.5'), choices = facefusion.choices.face_detector_score_range, metavar = create_float_metavar(facefusion.choices.face_detector_score_range))
|
||||
args_store.register_argument(face_detector_model_action, scopes = [ 'api', 'cli' ])
|
||||
args_store.register_argument(face_detector_size_action, scopes = [ 'api', 'cli' ])
|
||||
args_store.register_argument(face_detector_margin_action, scopes = [ 'api', 'cli' ])
|
||||
args_store.register_argument(face_detector_angles_action, scopes = [ 'api', 'cli' ])
|
||||
args_store.register_argument(face_detector_score_action, scopes = [ 'api', 'cli' ])
|
||||
args_store.register_argument(
|
||||
group_face_detector.add_argument(
|
||||
'--face-detector-size',
|
||||
help = translator.get('help.face_detector_size'),
|
||||
default = config.get_str_value('face_detector', 'face_detector_size', get_last(face_detector_size_choices)),
|
||||
choices = face_detector_size_choices),
|
||||
scopes = [ 'api', 'cli' ]
|
||||
)
|
||||
args_store.register_argument(
|
||||
group_face_detector.add_argument(
|
||||
'--face-detector-margin',
|
||||
help = translator.get('help.face_detector_margin'),
|
||||
type = partial(sanitize_int_range, int_range = facefusion.choices.face_detector_margin_range),
|
||||
default = config.get_int_list('face_detector', 'face_detector_margin', '0 0 0 0'),
|
||||
nargs = '+'),
|
||||
scopes = [ 'api', 'cli' ]
|
||||
)
|
||||
args_store.register_argument(
|
||||
group_face_detector.add_argument(
|
||||
'--face-detector-angles',
|
||||
help = translator.get('help.face_detector_angles'),
|
||||
type = int,
|
||||
default = config.get_int_list('face_detector', 'face_detector_angles', '0'),
|
||||
choices = facefusion.choices.face_detector_angles,
|
||||
nargs = '+',
|
||||
metavar = 'FACE_DETECTOR_ANGLES'),
|
||||
scopes = [ 'api', 'cli' ]
|
||||
)
|
||||
args_store.register_argument(
|
||||
group_face_detector.add_argument(
|
||||
'--face-detector-score',
|
||||
help = translator.get('help.face_detector_score'),
|
||||
type = float,
|
||||
default = config.get_float_value('face_detector', 'face_detector_score', '0.5'),
|
||||
choices = facefusion.choices.face_detector_score_range,
|
||||
metavar = create_float_metavar(facefusion.choices.face_detector_score_range)),
|
||||
scopes = [ 'api', 'cli' ]
|
||||
)
|
||||
return program
|
||||
|
||||
|
||||
def create_face_landmarker_program() -> ArgumentParser:
|
||||
program = ArgumentParser(add_help = False)
|
||||
group_face_landmarker = program.add_argument_group('face landmarker')
|
||||
face_landmarker_model_action = group_face_landmarker.add_argument('--face-landmarker-model', help = translator.get('help.face_landmarker_model'), default = config.get_str_value('face_landmarker', 'face_landmarker_model', '2dfan4'), choices = facefusion.choices.face_landmarker_models)
|
||||
face_landmarker_score_action = group_face_landmarker.add_argument('--face-landmarker-score', help = translator.get('help.face_landmarker_score'), type = float, default = config.get_float_value('face_landmarker', 'face_landmarker_score', '0.5'), choices = facefusion.choices.face_landmarker_score_range, metavar = create_float_metavar(facefusion.choices.face_landmarker_score_range))
|
||||
args_store.register_argument(face_landmarker_model_action, scopes = [ 'api', 'cli' ])
|
||||
args_store.register_argument(face_landmarker_score_action, scopes = [ 'api', 'cli' ])
|
||||
args_store.register_argument(
|
||||
group_face_landmarker.add_argument(
|
||||
'--face-landmarker-model',
|
||||
help = translator.get('help.face_landmarker_model'),
|
||||
default = config.get_str_value('face_landmarker', 'face_landmarker_model', '2dfan4'),
|
||||
choices = facefusion.choices.face_landmarker_models),
|
||||
scopes = [ 'api', 'cli' ]
|
||||
)
|
||||
args_store.register_argument(
|
||||
group_face_landmarker.add_argument(
|
||||
'--face-landmarker-score',
|
||||
help = translator.get('help.face_landmarker_score'),
|
||||
type = float,
|
||||
default = config.get_float_value('face_landmarker', 'face_landmarker_score', '0.5'),
|
||||
choices = facefusion.choices.face_landmarker_score_range,
|
||||
metavar = create_float_metavar(facefusion.choices.face_landmarker_score_range)),
|
||||
scopes = [ 'api', 'cli' ]
|
||||
)
|
||||
return program
|
||||
|
||||
|
||||
def create_face_selector_program() -> ArgumentParser:
|
||||
program = ArgumentParser(add_help = False)
|
||||
group_face_selector = program.add_argument_group('face selector')
|
||||
face_selector_mode_action = group_face_selector.add_argument('--face-selector-mode', help = translator.get('help.face_selector_mode'), default = config.get_str_value('face_selector', 'face_selector_mode', 'reference'), choices = facefusion.choices.face_selector_modes)
|
||||
face_selector_order_action = group_face_selector.add_argument('--face-selector-order', help = translator.get('help.face_selector_order'), default = config.get_str_value('face_selector', 'face_selector_order', 'large-small'), choices = facefusion.choices.face_selector_orders)
|
||||
face_selector_age_start_action = group_face_selector.add_argument('--face-selector-age-start', help = translator.get('help.face_selector_age_start'), type = int, default = config.get_int_value('face_selector', 'face_selector_age_start'), choices = facefusion.choices.face_selector_age_range, metavar = create_int_metavar(facefusion.choices.face_selector_age_range))
|
||||
face_selector_age_end_action = group_face_selector.add_argument('--face-selector-age-end', help = translator.get('help.face_selector_age_end'), type = int, default = config.get_int_value('face_selector', 'face_selector_age_end'), choices = facefusion.choices.face_selector_age_range, metavar = create_int_metavar(facefusion.choices.face_selector_age_range))
|
||||
face_selector_gender_action = group_face_selector.add_argument('--face-selector-gender', help = translator.get('help.face_selector_gender'), default = config.get_str_value('face_selector', 'face_selector_gender'), choices = facefusion.choices.face_selector_genders)
|
||||
face_selector_race_action = group_face_selector.add_argument('--face-selector-race', help = translator.get('help.face_selector_race'), default = config.get_str_value('face_selector', 'face_selector_race'), choices = facefusion.choices.face_selector_races)
|
||||
reference_face_position_action = group_face_selector.add_argument('--reference-face-position', help = translator.get('help.reference_face_position'), type = int, default = config.get_int_value('face_selector', 'reference_face_position', '0'))
|
||||
reference_face_distance_action = group_face_selector.add_argument('--reference-face-distance', help = translator.get('help.reference_face_distance'), type = float, default = config.get_float_value('face_selector', 'reference_face_distance', '0.3'), choices = facefusion.choices.reference_face_distance_range, metavar = create_float_metavar(facefusion.choices.reference_face_distance_range))
|
||||
reference_frame_number_action = group_face_selector.add_argument('--reference-frame-number', help = translator.get('help.reference_frame_number'), type = int, default = config.get_int_value('face_selector', 'reference_frame_number', '0'))
|
||||
args_store.register_argument(face_selector_mode_action, scopes = [ 'api', 'cli' ])
|
||||
args_store.register_argument(face_selector_order_action, scopes = [ 'api', 'cli' ])
|
||||
args_store.register_argument(face_selector_age_start_action, scopes = [ 'api', 'cli' ])
|
||||
args_store.register_argument(face_selector_age_end_action, scopes = [ 'api', 'cli' ])
|
||||
args_store.register_argument(face_selector_gender_action, scopes = [ 'api', 'cli' ])
|
||||
args_store.register_argument(face_selector_race_action, scopes = [ 'api', 'cli' ])
|
||||
args_store.register_argument(reference_face_position_action, scopes = [ 'api', 'cli' ])
|
||||
args_store.register_argument(reference_face_distance_action, scopes = [ 'api', 'cli' ])
|
||||
args_store.register_argument(reference_frame_number_action, scopes = [ 'api', 'cli' ])
|
||||
args_store.register_argument(
|
||||
group_face_selector.add_argument(
|
||||
'--face-selector-mode',
|
||||
help = translator.get('help.face_selector_mode'),
|
||||
default = config.get_str_value('face_selector', 'face_selector_mode', 'reference'),
|
||||
choices = facefusion.choices.face_selector_modes),
|
||||
scopes = [ 'api', 'cli' ]
|
||||
)
|
||||
args_store.register_argument(
|
||||
group_face_selector.add_argument(
|
||||
'--face-selector-order',
|
||||
help = translator.get('help.face_selector_order'),
|
||||
default = config.get_str_value('face_selector', 'face_selector_order', 'large-small'),
|
||||
choices = facefusion.choices.face_selector_orders),
|
||||
scopes = [ 'api', 'cli' ]
|
||||
)
|
||||
args_store.register_argument(
|
||||
group_face_selector.add_argument(
|
||||
'--face-selector-age-start',
|
||||
help = translator.get('help.face_selector_age_start'),
|
||||
type = int,
|
||||
default = config.get_int_value('face_selector', 'face_selector_age_start'),
|
||||
choices = facefusion.choices.face_selector_age_range,
|
||||
metavar = create_int_metavar(facefusion.choices.face_selector_age_range)),
|
||||
scopes = [ 'api', 'cli' ]
|
||||
)
|
||||
args_store.register_argument(
|
||||
group_face_selector.add_argument(
|
||||
'--face-selector-age-end',
|
||||
help = translator.get('help.face_selector_age_end'),
|
||||
type = int,
|
||||
default = config.get_int_value('face_selector', 'face_selector_age_end'),
|
||||
choices = facefusion.choices.face_selector_age_range,
|
||||
metavar = create_int_metavar(facefusion.choices.face_selector_age_range)),
|
||||
scopes = [ 'api', 'cli' ]
|
||||
)
|
||||
args_store.register_argument(
|
||||
group_face_selector.add_argument(
|
||||
'--face-selector-gender',
|
||||
help = translator.get('help.face_selector_gender'),
|
||||
default = config.get_str_value('face_selector', 'face_selector_gender'),
|
||||
choices = facefusion.choices.face_selector_genders),
|
||||
scopes = [ 'api', 'cli' ]
|
||||
)
|
||||
args_store.register_argument(
|
||||
group_face_selector.add_argument(
|
||||
'--face-selector-race',
|
||||
help = translator.get('help.face_selector_race'),
|
||||
default = config.get_str_value('face_selector', 'face_selector_race'),
|
||||
choices = facefusion.choices.face_selector_races),
|
||||
scopes = [ 'api', 'cli' ]
|
||||
)
|
||||
args_store.register_argument(
|
||||
group_face_selector.add_argument(
|
||||
'--reference-face-position',
|
||||
help = translator.get('help.reference_face_position'),
|
||||
type = int,
|
||||
default = config.get_int_value('face_selector', 'reference_face_position', '0')),
|
||||
scopes = [ 'api', 'cli' ]
|
||||
)
|
||||
args_store.register_argument(
|
||||
group_face_selector.add_argument(
|
||||
'--reference-face-distance',
|
||||
help = translator.get('help.reference_face_distance'),
|
||||
type = float,
|
||||
default = config.get_float_value('face_selector', 'reference_face_distance', '0.3'),
|
||||
choices = facefusion.choices.reference_face_distance_range,
|
||||
metavar = create_float_metavar(facefusion.choices.reference_face_distance_range)),
|
||||
scopes = [ 'api', 'cli' ]
|
||||
)
|
||||
args_store.register_argument(
|
||||
group_face_selector.add_argument(
|
||||
'--reference-frame-number',
|
||||
help = translator.get('help.reference_frame_number'),
|
||||
type = int,
|
||||
default = config.get_int_value('face_selector', 'reference_frame_number', '0')),
|
||||
scopes = [ 'api', 'cli' ]
|
||||
)
|
||||
return program
|
||||
|
||||
|
||||
def create_face_masker_program() -> ArgumentParser:
|
||||
program = ArgumentParser(add_help = False)
|
||||
group_face_masker = program.add_argument_group('face masker')
|
||||
face_occluder_model_action = group_face_masker.add_argument('--face-occluder-model', help = translator.get('help.face_occluder_model'), default = config.get_str_value('face_masker', 'face_occluder_model', 'xseg_1'), choices = facefusion.choices.face_occluder_models)
|
||||
face_parser_model_action = group_face_masker.add_argument('--face-parser-model', help = translator.get('help.face_parser_model'), default = config.get_str_value('face_masker', 'face_parser_model', 'bisenet_resnet_34'), choices = facefusion.choices.face_parser_models)
|
||||
face_mask_types_action = group_face_masker.add_argument('--face-mask-types', help = translator.get('help.face_mask_types').format(choices = ', '.join(facefusion.choices.face_mask_types)), default = config.get_str_list('face_masker', 'face_mask_types', 'box'), choices = facefusion.choices.face_mask_types, nargs = '+', metavar = 'FACE_MASK_TYPES')
|
||||
face_mask_areas_action = group_face_masker.add_argument('--face-mask-areas', help = translator.get('help.face_mask_areas').format(choices = ', '.join(facefusion.choices.face_mask_areas)), default = config.get_str_list('face_masker', 'face_mask_areas', ' '.join(facefusion.choices.face_mask_areas)), choices = facefusion.choices.face_mask_areas, nargs = '+', metavar = 'FACE_MASK_AREAS')
|
||||
face_mask_regions_action = group_face_masker.add_argument('--face-mask-regions', help = translator.get('help.face_mask_regions').format(choices = ', '.join(facefusion.choices.face_mask_regions)), default = config.get_str_list('face_masker', 'face_mask_regions', ' '.join(facefusion.choices.face_mask_regions)), choices = facefusion.choices.face_mask_regions, nargs = '+', metavar = 'FACE_MASK_REGIONS')
|
||||
face_mask_blur_action = group_face_masker.add_argument('--face-mask-blur', help = translator.get('help.face_mask_blur'), type = float, default = config.get_float_value('face_masker', 'face_mask_blur', '0.3'), choices = facefusion.choices.face_mask_blur_range, metavar = create_float_metavar(facefusion.choices.face_mask_blur_range))
|
||||
face_mask_padding_action = group_face_masker.add_argument('--face-mask-padding', help = translator.get('help.face_mask_padding'), type = partial(sanitize_int_range, int_range = facefusion.choices.face_mask_padding_range), default = config.get_int_list('face_masker', 'face_mask_padding', '0 0 0 0'), nargs = '+')
|
||||
args_store.register_argument(face_occluder_model_action, scopes = [ 'api', 'cli' ])
|
||||
args_store.register_argument(face_parser_model_action, scopes = [ 'api', 'cli' ])
|
||||
args_store.register_argument(face_mask_types_action, scopes = [ 'api', 'cli' ])
|
||||
args_store.register_argument(face_mask_areas_action, scopes = [ 'api', 'cli' ])
|
||||
args_store.register_argument(face_mask_regions_action, scopes = [ 'api', 'cli' ])
|
||||
args_store.register_argument(face_mask_blur_action, scopes = [ 'api', 'cli' ])
|
||||
args_store.register_argument(face_mask_padding_action, scopes = [ 'api', 'cli' ])
|
||||
args_store.register_argument(
|
||||
group_face_masker.add_argument(
|
||||
'--face-occluder-model',
|
||||
help = translator.get('help.face_occluder_model'),
|
||||
default = config.get_str_value('face_masker', 'face_occluder_model', 'xseg_1'),
|
||||
choices = facefusion.choices.face_occluder_models),
|
||||
scopes = [ 'api', 'cli' ]
|
||||
)
|
||||
args_store.register_argument(
|
||||
group_face_masker.add_argument(
|
||||
'--face-parser-model',
|
||||
help = translator.get('help.face_parser_model'),
|
||||
default = config.get_str_value('face_masker', 'face_parser_model', 'bisenet_resnet_34'),
|
||||
choices = facefusion.choices.face_parser_models),
|
||||
scopes = [ 'api', 'cli' ]
|
||||
)
|
||||
args_store.register_argument(
|
||||
group_face_masker.add_argument(
|
||||
'--face-mask-types',
|
||||
help = translator.get('help.face_mask_types').format(choices = ', '.join(facefusion.choices.face_mask_types)),
|
||||
default = config.get_str_list('face_masker', 'face_mask_types', 'box'),
|
||||
choices = facefusion.choices.face_mask_types,
|
||||
nargs = '+',
|
||||
metavar = 'FACE_MASK_TYPES'),
|
||||
scopes = [ 'api', 'cli' ]
|
||||
)
|
||||
args_store.register_argument(
|
||||
group_face_masker.add_argument(
|
||||
'--face-mask-areas',
|
||||
help = translator.get('help.face_mask_areas').format(choices = ', '.join(facefusion.choices.face_mask_areas)),
|
||||
default = config.get_str_list('face_masker', 'face_mask_areas', ' '.join(facefusion.choices.face_mask_areas)),
|
||||
choices = facefusion.choices.face_mask_areas,
|
||||
nargs = '+',
|
||||
metavar = 'FACE_MASK_AREAS'),
|
||||
scopes = [ 'api', 'cli' ]
|
||||
)
|
||||
args_store.register_argument(
|
||||
group_face_masker.add_argument(
|
||||
'--face-mask-regions',
|
||||
help = translator.get('help.face_mask_regions').format(choices = ', '.join(facefusion.choices.face_mask_regions)),
|
||||
default = config.get_str_list('face_masker', 'face_mask_regions', ' '.join(facefusion.choices.face_mask_regions)),
|
||||
choices = facefusion.choices.face_mask_regions,
|
||||
nargs = '+',
|
||||
metavar = 'FACE_MASK_REGIONS'),
|
||||
scopes = [ 'api', 'cli' ]
|
||||
)
|
||||
args_store.register_argument(
|
||||
group_face_masker.add_argument(
|
||||
'--face-mask-blur',
|
||||
help = translator.get('help.face_mask_blur'),
|
||||
type = float,
|
||||
default = config.get_float_value('face_masker', 'face_mask_blur', '0.3'),
|
||||
choices = facefusion.choices.face_mask_blur_range,
|
||||
metavar = create_float_metavar(facefusion.choices.face_mask_blur_range)),
|
||||
scopes = [ 'api', 'cli' ]
|
||||
)
|
||||
args_store.register_argument(
|
||||
group_face_masker.add_argument(
|
||||
'--face-mask-padding',
|
||||
help = translator.get('help.face_mask_padding'),
|
||||
type = partial(sanitize_int_range, int_range = facefusion.choices.face_mask_padding_range),
|
||||
default = config.get_int_list('face_masker', 'face_mask_padding', '0 0 0 0'),
|
||||
nargs = '+'),
|
||||
scopes = [ 'api', 'cli' ]
|
||||
)
|
||||
return program
|
||||
|
||||
|
||||
def create_voice_extractor_program() -> ArgumentParser:
|
||||
program = ArgumentParser(add_help = False)
|
||||
group_voice_extractor = program.add_argument_group('voice extractor')
|
||||
voice_extractor_model_action = group_voice_extractor.add_argument('--voice-extractor-model', help = translator.get('help.voice_extractor_model'), default = config.get_str_value('voice_extractor', 'voice_extractor_model', 'kim_vocal_2'), choices = facefusion.choices.voice_extractor_models)
|
||||
args_store.register_argument(voice_extractor_model_action, scopes = [ 'api', 'cli' ])
|
||||
args_store.register_argument(
|
||||
group_voice_extractor.add_argument(
|
||||
'--voice-extractor-model',
|
||||
help = translator.get('help.voice_extractor_model'),
|
||||
default = config.get_str_value('voice_extractor', 'voice_extractor_model', 'kim_vocal_2'),
|
||||
choices = facefusion.choices.voice_extractor_models),
|
||||
scopes = [ 'api', 'cli' ]
|
||||
)
|
||||
return program
|
||||
|
||||
|
||||
def create_frame_extraction_program() -> ArgumentParser:
|
||||
program = ArgumentParser(add_help = False)
|
||||
group_frame_extraction = program.add_argument_group('frame extraction')
|
||||
trim_frame_start_action = group_frame_extraction.add_argument('--trim-frame-start', help = translator.get('help.trim_frame_start'), type = int, default = facefusion.config.get_int_value('frame_extraction', 'trim_frame_start'))
|
||||
trim_frame_end_action = group_frame_extraction.add_argument('--trim-frame-end', help = translator.get('help.trim_frame_end'), type = int, default = facefusion.config.get_int_value('frame_extraction', 'trim_frame_end'))
|
||||
temp_frame_format_action = group_frame_extraction.add_argument('--temp-frame-format', help = translator.get('help.temp_frame_format'), default = config.get_str_value('frame_extraction', 'temp_frame_format', 'png'), choices = facefusion.choices.temp_frame_formats)
|
||||
args_store.register_argument(trim_frame_start_action, scopes = [ 'api', 'cli' ])
|
||||
args_store.register_argument(trim_frame_end_action, scopes = [ 'api', 'cli' ])
|
||||
args_store.register_argument(temp_frame_format_action, scopes = [ 'api', 'cli' ])
|
||||
args_store.register_argument(
|
||||
group_frame_extraction.add_argument(
|
||||
'--trim-frame-start',
|
||||
help = translator.get('help.trim_frame_start'),
|
||||
type = int,
|
||||
default = facefusion.config.get_int_value('frame_extraction', 'trim_frame_start')),
|
||||
scopes = [ 'api', 'cli' ]
|
||||
)
|
||||
args_store.register_argument(
|
||||
group_frame_extraction.add_argument(
|
||||
'--trim-frame-end',
|
||||
help = translator.get('help.trim_frame_end'),
|
||||
type = int,
|
||||
default = facefusion.config.get_int_value('frame_extraction', 'trim_frame_end')),
|
||||
scopes = [ 'api', 'cli' ]
|
||||
)
|
||||
args_store.register_argument(
|
||||
group_frame_extraction.add_argument(
|
||||
'--temp-frame-format',
|
||||
help = translator.get('help.temp_frame_format'),
|
||||
default = config.get_str_value('frame_extraction', 'temp_frame_format', 'png'),
|
||||
choices = facefusion.choices.temp_frame_formats),
|
||||
scopes = [ 'api', 'cli' ]
|
||||
)
|
||||
return program
|
||||
|
||||
|
||||
@@ -197,26 +434,96 @@ def create_output_creation_program() -> ArgumentParser:
|
||||
program = ArgumentParser(add_help = False)
|
||||
available_encoder_set = get_available_encoder_set()
|
||||
group_output_creation = program.add_argument_group('output creation')
|
||||
output_image_quality_action = group_output_creation.add_argument('--output-image-quality', help = translator.get('help.output_image_quality'), type = int, default = config.get_int_value('output_creation', 'output_image_quality', '80'), choices = facefusion.choices.output_image_quality_range, metavar = create_int_metavar(facefusion.choices.output_image_quality_range))
|
||||
output_image_scale_action = group_output_creation.add_argument('--output-image-scale', help = translator.get('help.output_image_scale'), type = float, default = config.get_float_value('output_creation', 'output_image_scale', '1.0'), choices = facefusion.choices.output_image_scale_range)
|
||||
output_audio_encoder_action = group_output_creation.add_argument('--output-audio-encoder', help = translator.get('help.output_audio_encoder'), default = config.get_str_value('output_creation', 'output_audio_encoder', get_first(available_encoder_set.get('audio'))), choices = available_encoder_set.get('audio'))
|
||||
output_audio_quality_action = group_output_creation.add_argument('--output-audio-quality', help = translator.get('help.output_audio_quality'), type = int, default = config.get_int_value('output_creation', 'output_audio_quality', '80'), choices = facefusion.choices.output_audio_quality_range, metavar = create_int_metavar(facefusion.choices.output_audio_quality_range))
|
||||
output_audio_volume_action = group_output_creation.add_argument('--output-audio-volume', help = translator.get('help.output_audio_volume'), type = int, default = config.get_int_value('output_creation', 'output_audio_volume', '100'), choices = facefusion.choices.output_audio_volume_range, metavar = create_int_metavar(facefusion.choices.output_audio_volume_range))
|
||||
output_video_encoder_action = group_output_creation.add_argument('--output-video-encoder', help = translator.get('help.output_video_encoder'), default = config.get_str_value('output_creation', 'output_video_encoder', get_first(available_encoder_set.get('video'))), choices = available_encoder_set.get('video'))
|
||||
output_video_preset_action = group_output_creation.add_argument('--output-video-preset', help = translator.get('help.output_video_preset'), default = config.get_str_value('output_creation', 'output_video_preset', 'veryfast'), choices = facefusion.choices.output_video_presets)
|
||||
output_video_quality_action = group_output_creation.add_argument('--output-video-quality', help = translator.get('help.output_video_quality'), type = int, default = config.get_int_value('output_creation', 'output_video_quality', '80'), choices = facefusion.choices.output_video_quality_range, metavar = create_int_metavar(facefusion.choices.output_video_quality_range))
|
||||
output_video_scale_action = group_output_creation.add_argument('--output-video-scale', help = translator.get('help.output_video_scale'), type = float, default = config.get_float_value('output_creation', 'output_video_scale', '1.0'), choices = facefusion.choices.output_video_scale_range)
|
||||
output_video_fps_action = group_output_creation.add_argument('--output-video-fps', help = translator.get('help.output_video_fps'), type = float, default = config.get_float_value('output_creation', 'output_video_fps'))
|
||||
args_store.register_argument(output_image_quality_action, scopes = [ 'api', 'cli' ])
|
||||
args_store.register_argument(output_image_scale_action, scopes = [ 'api', 'cli' ])
|
||||
args_store.register_argument(output_audio_encoder_action, scopes = [ 'api', 'cli' ])
|
||||
args_store.register_argument(output_audio_quality_action, scopes = [ 'api', 'cli' ])
|
||||
args_store.register_argument(output_audio_volume_action, scopes = [ 'api', 'cli' ])
|
||||
args_store.register_argument(output_video_encoder_action, scopes = [ 'api', 'cli' ])
|
||||
args_store.register_argument(output_video_preset_action, scopes = [ 'api', 'cli' ])
|
||||
args_store.register_argument(output_video_quality_action, scopes = [ 'api', 'cli' ])
|
||||
args_store.register_argument(output_video_scale_action, scopes = [ 'api', 'cli' ])
|
||||
args_store.register_argument(output_video_fps_action, scopes = [ 'api', 'cli' ])
|
||||
args_store.register_argument(
|
||||
group_output_creation.add_argument(
|
||||
'--output-image-quality',
|
||||
help = translator.get('help.output_image_quality'),
|
||||
type = int,
|
||||
default = config.get_int_value('output_creation', 'output_image_quality', '80'),
|
||||
choices = facefusion.choices.output_image_quality_range,
|
||||
metavar = create_int_metavar(facefusion.choices.output_image_quality_range)),
|
||||
scopes = [ 'api', 'cli' ]
|
||||
)
|
||||
args_store.register_argument(
|
||||
group_output_creation.add_argument(
|
||||
'--output-image-scale',
|
||||
help = translator.get('help.output_image_scale'),
|
||||
type = float,
|
||||
default = config.get_float_value('output_creation', 'output_image_scale', '1.0'),
|
||||
choices = facefusion.choices.output_image_scale_range),
|
||||
scopes = [ 'api', 'cli' ]
|
||||
)
|
||||
args_store.register_argument(
|
||||
group_output_creation.add_argument(
|
||||
'--output-audio-encoder',
|
||||
help = translator.get('help.output_audio_encoder'),
|
||||
default = config.get_str_value('output_creation', 'output_audio_encoder', get_first(available_encoder_set.get('audio'))),
|
||||
choices = available_encoder_set.get('audio')),
|
||||
scopes = [ 'api', 'cli' ]
|
||||
)
|
||||
args_store.register_argument(
|
||||
group_output_creation.add_argument(
|
||||
'--output-audio-quality',
|
||||
help = translator.get('help.output_audio_quality'),
|
||||
type = int,
|
||||
default = config.get_int_value('output_creation', 'output_audio_quality', '80'),
|
||||
choices = facefusion.choices.output_audio_quality_range,
|
||||
metavar = create_int_metavar(facefusion.choices.output_audio_quality_range)),
|
||||
scopes = [ 'api', 'cli' ]
|
||||
)
|
||||
args_store.register_argument(
|
||||
group_output_creation.add_argument(
|
||||
'--output-audio-volume',
|
||||
help = translator.get('help.output_audio_volume'),
|
||||
type = int,
|
||||
default = config.get_int_value('output_creation', 'output_audio_volume', '100'),
|
||||
choices = facefusion.choices.output_audio_volume_range,
|
||||
metavar = create_int_metavar(facefusion.choices.output_audio_volume_range)),
|
||||
scopes = [ 'api', 'cli' ]
|
||||
)
|
||||
args_store.register_argument(
|
||||
group_output_creation.add_argument(
|
||||
'--output-video-encoder',
|
||||
help = translator.get('help.output_video_encoder'),
|
||||
default = config.get_str_value('output_creation', 'output_video_encoder', get_first(available_encoder_set.get('video'))),
|
||||
choices = available_encoder_set.get('video')),
|
||||
scopes = [ 'api', 'cli' ]
|
||||
)
|
||||
args_store.register_argument(
|
||||
group_output_creation.add_argument(
|
||||
'--output-video-preset',
|
||||
help = translator.get('help.output_video_preset'),
|
||||
default = config.get_str_value('output_creation', 'output_video_preset', 'veryfast'),
|
||||
choices = facefusion.choices.output_video_presets),
|
||||
scopes = [ 'api', 'cli' ]
|
||||
)
|
||||
args_store.register_argument(
|
||||
group_output_creation.add_argument(
|
||||
'--output-video-quality',
|
||||
help = translator.get('help.output_video_quality'),
|
||||
type = int,
|
||||
default = config.get_int_value('output_creation', 'output_video_quality', '80'),
|
||||
choices = facefusion.choices.output_video_quality_range,
|
||||
metavar = create_int_metavar(facefusion.choices.output_video_quality_range)),
|
||||
scopes = [ 'api', 'cli' ]
|
||||
)
|
||||
args_store.register_argument(
|
||||
group_output_creation.add_argument(
|
||||
'--output-video-scale',
|
||||
help = translator.get('help.output_video_scale'),
|
||||
type = float,
|
||||
default = config.get_float_value('output_creation', 'output_video_scale', '1.0'),
|
||||
choices = facefusion.choices.output_video_scale_range),
|
||||
scopes = [ 'api', 'cli' ]
|
||||
)
|
||||
args_store.register_argument(
|
||||
group_output_creation.add_argument(
|
||||
'--output-video-fps',
|
||||
help = translator.get('help.output_video_fps'),
|
||||
type = float,
|
||||
default = config.get_float_value('output_creation', 'output_video_fps')),
|
||||
scopes = [ 'api', 'cli' ]
|
||||
)
|
||||
return program
|
||||
|
||||
|
||||
@@ -224,8 +531,15 @@ def create_processors_program() -> ArgumentParser:
|
||||
program = ArgumentParser(add_help = False)
|
||||
available_processors = [ get_file_name(file_path) for file_path in resolve_file_paths('facefusion/processors/modules') ]
|
||||
group_processors = program.add_argument_group('processors')
|
||||
processors_action = group_processors.add_argument('--processors', help = translator.get('help.processors').format(choices = ', '.join(available_processors)), default = config.get_str_list('processors', 'processors', 'face_swapper'), choices = available_processors, nargs = '+')
|
||||
args_store.register_argument(processors_action, scopes = [ 'api', 'cli' ])
|
||||
args_store.register_argument(
|
||||
group_processors.add_argument(
|
||||
'--processors',
|
||||
help = translator.get('help.processors').format(choices = ', '.join(available_processors)),
|
||||
default = config.get_str_list('processors', 'processors', 'face_swapper'),
|
||||
choices = available_processors,
|
||||
nargs = '+'),
|
||||
scopes = [ 'api', 'cli' ]
|
||||
)
|
||||
for processor_module in get_processors_modules(available_processors):
|
||||
processor_module.register_args(program)
|
||||
return program
|
||||
@@ -234,16 +548,30 @@ def create_processors_program() -> ArgumentParser:
|
||||
def create_download_providers_program() -> ArgumentParser:
|
||||
program = ArgumentParser(add_help = False)
|
||||
group_download = program.add_argument_group('download')
|
||||
download_providers_action = group_download.add_argument('--download-providers', help = translator.get('help.download_providers').format(choices = ', '.join(facefusion.choices.download_providers)), default = config.get_str_list('download', 'download_providers', ' '.join(facefusion.choices.download_providers)), choices = facefusion.choices.download_providers, nargs = '+', metavar = 'DOWNLOAD_PROVIDERS')
|
||||
args_store.register_argument(download_providers_action, scopes = [ 'cli', 'sys' ])
|
||||
args_store.register_argument(
|
||||
group_download.add_argument(
|
||||
'--download-providers',
|
||||
help = translator.get('help.download_providers').format(choices = ', '.join(facefusion.choices.download_providers)),
|
||||
default = config.get_str_list('download', 'download_providers', ' '.join(facefusion.choices.download_providers)),
|
||||
choices = facefusion.choices.download_providers,
|
||||
nargs = '+',
|
||||
metavar = 'DOWNLOAD_PROVIDERS'),
|
||||
scopes = [ 'cli', 'sys' ]
|
||||
)
|
||||
return program
|
||||
|
||||
|
||||
def create_download_scope_program() -> ArgumentParser:
|
||||
program = ArgumentParser(add_help = False)
|
||||
group_download = program.add_argument_group('download')
|
||||
download_scope_action = group_download.add_argument('--download-scope', help = translator.get('help.download_scope'), default = config.get_str_value('download', 'download_scope', 'lite'), choices = facefusion.choices.download_scopes)
|
||||
args_store.register_argument(download_scope_action, scopes = [ 'cli', 'sys' ])
|
||||
args_store.register_argument(
|
||||
group_download.add_argument(
|
||||
'--download-scope',
|
||||
help = translator.get('help.download_scope'),
|
||||
default = config.get_str_value('download', 'download_scope', 'lite'),
|
||||
choices = facefusion.choices.download_scopes),
|
||||
scopes = [ 'cli', 'sys' ]
|
||||
)
|
||||
return program
|
||||
|
||||
|
||||
@@ -268,36 +596,78 @@ def create_execution_program() -> ArgumentParser:
|
||||
program = ArgumentParser(add_help = False)
|
||||
available_execution_providers = get_available_execution_providers()
|
||||
group_execution = program.add_argument_group('execution')
|
||||
execution_device_ids_action = group_execution.add_argument('--execution-device-ids', help = translator.get('help.execution_device_ids'), type = int, default = config.get_str_list('execution', 'execution_device_ids', '0'), nargs = '+', metavar = 'EXECUTION_DEVICE_IDS')
|
||||
execution_providers_action = group_execution.add_argument('--execution-providers', help = translator.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')
|
||||
execution_thread_count_action = group_execution.add_argument('--execution-thread-count', help = translator.get('help.execution_thread_count'), type = int, default = config.get_int_value('execution', 'execution_thread_count', '8'), choices = facefusion.choices.execution_thread_count_range, metavar = create_int_metavar(facefusion.choices.execution_thread_count_range))
|
||||
args_store.register_argument(execution_device_ids_action, scopes = [ 'cli', 'sys' ])
|
||||
args_store.register_argument(execution_providers_action, scopes = [ 'cli', 'sys' ])
|
||||
args_store.register_argument(execution_thread_count_action, scopes = [ 'cli', 'sys' ])
|
||||
args_store.register_argument(
|
||||
group_execution.add_argument(
|
||||
'--execution-device-ids',
|
||||
help = translator.get('help.execution_device_ids'),
|
||||
type = int,
|
||||
default = config.get_str_list('execution', 'execution_device_ids', '0'),
|
||||
nargs = '+',
|
||||
metavar = 'EXECUTION_DEVICE_IDS'),
|
||||
scopes = [ 'cli', 'sys' ]
|
||||
)
|
||||
args_store.register_argument(
|
||||
group_execution.add_argument(
|
||||
'--execution-providers',
|
||||
help = translator.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'),
|
||||
scopes = [ 'cli', 'sys' ]
|
||||
)
|
||||
args_store.register_argument(
|
||||
group_execution.add_argument(
|
||||
'--execution-thread-count',
|
||||
help = translator.get('help.execution_thread_count'),
|
||||
type = int,
|
||||
default = config.get_int_value('execution', 'execution_thread_count', '8'),
|
||||
choices = facefusion.choices.execution_thread_count_range,
|
||||
metavar = create_int_metavar(facefusion.choices.execution_thread_count_range)),
|
||||
scopes = [ 'cli', 'sys' ]
|
||||
)
|
||||
return program
|
||||
|
||||
|
||||
def create_memory_program() -> ArgumentParser:
|
||||
program = ArgumentParser(add_help = False)
|
||||
group_memory = program.add_argument_group('memory')
|
||||
video_memory_strategy_action = group_memory.add_argument('--video-memory-strategy', help = translator.get('help.video_memory_strategy'), default = config.get_str_value('memory', 'video_memory_strategy', 'strict'), choices = facefusion.choices.video_memory_strategies)
|
||||
args_store.register_argument(video_memory_strategy_action, scopes = [ 'cli', 'sys' ])
|
||||
args_store.register_argument(
|
||||
group_memory.add_argument(
|
||||
'--video-memory-strategy',
|
||||
help = translator.get('help.video_memory_strategy'),
|
||||
default = config.get_str_value('memory', 'video_memory_strategy', 'strict'),
|
||||
choices = facefusion.choices.video_memory_strategies),
|
||||
scopes = [ 'cli', 'sys' ]
|
||||
)
|
||||
return program
|
||||
|
||||
|
||||
def create_log_level_program() -> ArgumentParser:
|
||||
program = ArgumentParser(add_help = False)
|
||||
group_misc = program.add_argument_group('misc')
|
||||
log_level_action = group_misc.add_argument('--log-level', help = translator.get('help.log_level'), default = config.get_str_value('misc', 'log_level', 'info'), choices = facefusion.choices.log_levels)
|
||||
args_store.register_argument(log_level_action, scopes = [ 'cli' ])
|
||||
args_store.register_argument(
|
||||
group_misc.add_argument(
|
||||
'--log-level',
|
||||
help = translator.get('help.log_level'),
|
||||
default = config.get_str_value('misc', 'log_level', 'info'),
|
||||
choices = facefusion.choices.log_levels),
|
||||
scopes = [ 'cli' ]
|
||||
)
|
||||
return program
|
||||
|
||||
|
||||
def create_halt_on_error_program() -> ArgumentParser:
|
||||
program = ArgumentParser(add_help = False)
|
||||
group_misc = program.add_argument_group('misc')
|
||||
halt_on_error_action = group_misc.add_argument('--halt-on-error', help = translator.get('help.halt_on_error'), action = 'store_true', default = config.get_bool_value('misc', 'halt_on_error'))
|
||||
args_store.register_argument(halt_on_error_action, scopes = [ 'cli' ])
|
||||
args_store.register_argument(
|
||||
group_misc.add_argument(
|
||||
'--halt-on-error',
|
||||
help = translator.get('help.halt_on_error'),
|
||||
action = 'store_true',
|
||||
default = config.get_bool_value('misc', 'halt_on_error')),
|
||||
scopes = [ 'cli' ]
|
||||
)
|
||||
return program
|
||||
|
||||
|
||||
|
||||
+4
-3
@@ -99,12 +99,13 @@ Resolution : TypeAlias = Tuple[int, int]
|
||||
|
||||
Args : TypeAlias = Dict[str, Any]
|
||||
Scope : TypeAlias = Literal['api', 'cli', 'sys']
|
||||
ArgumentValue : TypeAlias = Any
|
||||
|
||||
ArgsStore = TypedDict('ArgsStore',
|
||||
{
|
||||
'api' : Dict[str, Any],
|
||||
'cli' : Dict[str, Any],
|
||||
'sys' : Dict[str, Any]
|
||||
'api' : Dict[str, ArgumentValue],
|
||||
'cli' : Dict[str, ArgumentValue],
|
||||
'sys' : Dict[str, ArgumentValue]
|
||||
})
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user