mirror of
https://github.com/facefusion/facefusion.git
synced 2026-07-27 12:30:55 +02:00
add groups to capabilities
This commit is contained in:
@@ -15,6 +15,6 @@ async def get_capabilities(request : Request) -> JSONResponse:
|
||||
'image': facefusion.choices.image_formats,
|
||||
'video': facefusion.choices.video_formats
|
||||
},
|
||||
'arguments': capability_store.get_api_capability_set()
|
||||
'arguments': capability_store.get_api_capability_group()
|
||||
}
|
||||
return JSONResponse(capabilities, status_code = HTTP_200_OK)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
from argparse import Action
|
||||
from typing import Dict, List
|
||||
|
||||
from facefusion.types import CapabilitySet, CapabilityStore, Scope
|
||||
from facefusion.types import CapabilityGroup, CapabilitySet, CapabilityStore, Group, Scope
|
||||
|
||||
CAPABILITY_STORE : CapabilityStore =\
|
||||
{
|
||||
@@ -11,6 +11,16 @@ CAPABILITY_STORE : CapabilityStore =\
|
||||
}
|
||||
|
||||
|
||||
def get_api_capability_group() -> CapabilityGroup:
|
||||
capability_group : CapabilityGroup = {}
|
||||
|
||||
for name, value in CAPABILITY_STORE.get('api').items():
|
||||
for group in value.get('groups'):
|
||||
capability_group.setdefault(group, {})[name] = value
|
||||
|
||||
return capability_group
|
||||
|
||||
|
||||
def get_api_capability_set() -> Dict[str, CapabilitySet]:
|
||||
return CAPABILITY_STORE.get('api')
|
||||
|
||||
@@ -35,11 +45,12 @@ def get_sys_arguments() -> List[str]:
|
||||
return list(get_sys_capability_set().keys())
|
||||
|
||||
|
||||
def register_capability_set(actions : List[Action], scopes : List[Scope]) -> None:
|
||||
def register_capability_set(actions : List[Action], scopes : List[Scope], groups : List[Group]) -> None:
|
||||
for action in actions:
|
||||
value : CapabilitySet =\
|
||||
{
|
||||
'default': action.default
|
||||
'default': action.default,
|
||||
'groups': groups
|
||||
}
|
||||
|
||||
if action.choices:
|
||||
|
||||
@@ -142,7 +142,8 @@ def register_args(program : ArgumentParser) -> None:
|
||||
metavar = create_int_metavar(age_modifier_choices.age_modifier_direction_range)
|
||||
)
|
||||
],
|
||||
scopes = [ 'api', 'cli' ]
|
||||
scopes = [ 'api', 'cli' ],
|
||||
groups = [ 'age_modifier' ]
|
||||
)
|
||||
|
||||
|
||||
|
||||
@@ -519,7 +519,8 @@ def register_args(program : ArgumentParser) -> None:
|
||||
nargs = '+'
|
||||
)
|
||||
],
|
||||
scopes = [ 'api', 'cli' ]
|
||||
scopes = [ 'api', 'cli' ],
|
||||
groups = [ 'background_remover' ]
|
||||
)
|
||||
|
||||
|
||||
|
||||
@@ -294,7 +294,8 @@ def register_args(program : ArgumentParser) -> None:
|
||||
metavar = create_int_metavar(deep_swapper_choices.deep_swapper_morph_range)
|
||||
)
|
||||
],
|
||||
scopes = [ 'api', 'cli' ]
|
||||
scopes = [ 'api', 'cli' ],
|
||||
groups = [ 'deep_swapper' ]
|
||||
)
|
||||
|
||||
|
||||
|
||||
@@ -125,7 +125,8 @@ def register_args(program : ArgumentParser) -> None:
|
||||
metavar = 'EXPRESSION_RESTORER_AREAS'
|
||||
)
|
||||
],
|
||||
scopes = [ 'api', 'cli' ]
|
||||
scopes = [ 'api', 'cli' ],
|
||||
groups = [ 'expression_restorer' ]
|
||||
)
|
||||
|
||||
|
||||
|
||||
@@ -44,7 +44,8 @@ def register_args(program : ArgumentParser) -> None:
|
||||
metavar = 'FACE_DEBUGGER_ITEMS'
|
||||
)
|
||||
],
|
||||
scopes = [ 'api', 'cli' ]
|
||||
scopes = [ 'api', 'cli' ],
|
||||
groups = [ 'face_debugger' ]
|
||||
)
|
||||
|
||||
|
||||
|
||||
@@ -251,7 +251,8 @@ def register_args(program : ArgumentParser) -> None:
|
||||
metavar = create_float_metavar(face_editor_choices.face_editor_head_roll_range)
|
||||
)
|
||||
],
|
||||
scopes = [ 'api', 'cli' ]
|
||||
scopes = [ 'api', 'cli' ],
|
||||
groups = [ 'face_editor' ]
|
||||
)
|
||||
|
||||
|
||||
|
||||
@@ -319,7 +319,8 @@ def register_args(program : ArgumentParser) -> None:
|
||||
metavar = create_float_metavar(face_enhancer_choices.face_enhancer_weight_range)
|
||||
)
|
||||
],
|
||||
scopes = [ 'api', 'cli' ]
|
||||
scopes = [ 'api', 'cli' ],
|
||||
groups = [ 'face_enhancer' ]
|
||||
)
|
||||
|
||||
|
||||
|
||||
@@ -537,7 +537,8 @@ def register_args(program : ArgumentParser) -> None:
|
||||
choices = face_swapper_choices.face_swapper_models
|
||||
)
|
||||
],
|
||||
scopes = [ 'api', 'cli' ]
|
||||
scopes = [ 'api', 'cli' ],
|
||||
groups = [ 'face_swapper' ]
|
||||
)
|
||||
known_args, _ = program.parse_known_args()
|
||||
face_swapper_pixel_boost_choices = face_swapper_choices.face_swapper_set.get(known_args.face_swapper_model)
|
||||
@@ -557,7 +558,8 @@ def register_args(program : ArgumentParser) -> None:
|
||||
choices = face_swapper_choices.face_swapper_weight_range
|
||||
)
|
||||
],
|
||||
scopes = [ 'api', 'cli' ]
|
||||
scopes = [ 'api', 'cli' ],
|
||||
groups = [ 'face_swapper' ]
|
||||
)
|
||||
|
||||
|
||||
|
||||
@@ -211,7 +211,8 @@ def register_args(program : ArgumentParser) -> None:
|
||||
metavar = create_int_metavar(frame_colorizer_choices.frame_colorizer_blend_range)
|
||||
)
|
||||
],
|
||||
scopes = [ 'api', 'cli' ]
|
||||
scopes = [ 'api', 'cli' ],
|
||||
groups = [ 'frame_colorizer' ]
|
||||
)
|
||||
|
||||
|
||||
|
||||
@@ -599,7 +599,8 @@ def register_args(program : ArgumentParser) -> None:
|
||||
metavar = create_int_metavar(frame_enhancer_choices.frame_enhancer_blend_range)
|
||||
)
|
||||
],
|
||||
scopes = [ 'api', 'cli' ]
|
||||
scopes = [ 'api', 'cli' ],
|
||||
groups = [ 'frame_enhancer' ]
|
||||
)
|
||||
|
||||
|
||||
|
||||
@@ -151,7 +151,8 @@ def register_args(program : ArgumentParser) -> None:
|
||||
metavar = create_float_metavar(lip_syncer_choices.lip_syncer_weight_range)
|
||||
)
|
||||
],
|
||||
scopes = [ 'api', 'cli' ]
|
||||
scopes = [ 'api', 'cli' ],
|
||||
groups = [ 'lip_syncer' ]
|
||||
)
|
||||
|
||||
|
||||
|
||||
+120
-60
@@ -32,7 +32,8 @@ def create_config_path_program() -> ArgumentParser:
|
||||
default = 'facefusion.ini'
|
||||
)
|
||||
],
|
||||
scopes = [ 'cli' ]
|
||||
scopes = [ 'cli' ],
|
||||
groups = [ 'paths' ]
|
||||
)
|
||||
|
||||
apply_config_path(program)
|
||||
@@ -52,7 +53,8 @@ def create_workflow_program() -> ArgumentParser:
|
||||
choices = facefusion.choices.workflows
|
||||
)
|
||||
],
|
||||
scopes = [ 'api', 'cli' ]
|
||||
scopes = [ 'api', 'cli' ],
|
||||
groups = [ 'paths' ]
|
||||
)
|
||||
|
||||
return program
|
||||
@@ -70,7 +72,8 @@ def create_temp_path_program() -> ArgumentParser:
|
||||
default = config.get_str_value('paths', 'temp_path', tempfile.gettempdir())
|
||||
)
|
||||
],
|
||||
scopes = [ 'cli' ]
|
||||
scopes = [ 'cli' ],
|
||||
groups = [ 'paths' ]
|
||||
)
|
||||
|
||||
return program
|
||||
@@ -88,7 +91,8 @@ def create_jobs_path_program() -> ArgumentParser:
|
||||
default = config.get_str_value('paths', 'jobs_path', '.jobs')
|
||||
)
|
||||
],
|
||||
scopes = [ 'cli' ]
|
||||
scopes = [ 'cli' ],
|
||||
groups = [ 'paths' ]
|
||||
)
|
||||
|
||||
return program
|
||||
@@ -107,7 +111,8 @@ def create_source_paths_program() -> ArgumentParser:
|
||||
nargs = '+'
|
||||
)
|
||||
],
|
||||
scopes = [ 'cli' ]
|
||||
scopes = [ 'cli' ],
|
||||
groups = [ 'paths' ]
|
||||
)
|
||||
|
||||
return program
|
||||
@@ -125,7 +130,8 @@ def create_target_path_program() -> ArgumentParser:
|
||||
default = config.get_str_value('paths', 'target_path')
|
||||
)
|
||||
],
|
||||
scopes = [ 'cli' ]
|
||||
scopes = [ 'cli' ],
|
||||
groups = [ 'paths' ]
|
||||
)
|
||||
|
||||
return program
|
||||
@@ -143,7 +149,8 @@ def create_output_path_program() -> ArgumentParser:
|
||||
default = config.get_str_value('paths', 'output_path')
|
||||
)
|
||||
],
|
||||
scopes = [ 'cli' ]
|
||||
scopes = [ 'cli' ],
|
||||
groups = [ 'paths' ]
|
||||
)
|
||||
|
||||
return program
|
||||
@@ -161,7 +168,8 @@ def create_source_pattern_program() -> ArgumentParser:
|
||||
default = config.get_str_value('patterns', 'source_pattern')
|
||||
)
|
||||
],
|
||||
scopes = [ 'cli' ]
|
||||
scopes = [ 'cli' ],
|
||||
groups = [ 'patterns' ]
|
||||
)
|
||||
|
||||
return program
|
||||
@@ -179,7 +187,8 @@ def create_target_pattern_program() -> ArgumentParser:
|
||||
default = config.get_str_value('patterns', 'target_pattern')
|
||||
)
|
||||
],
|
||||
scopes = [ 'cli' ]
|
||||
scopes = [ 'cli' ],
|
||||
groups = [ 'patterns' ]
|
||||
)
|
||||
|
||||
return program
|
||||
@@ -197,7 +206,8 @@ def create_output_pattern_program() -> ArgumentParser:
|
||||
default = config.get_str_value('patterns', 'output_pattern')
|
||||
)
|
||||
],
|
||||
scopes = [ 'cli' ]
|
||||
scopes = [ 'cli' ],
|
||||
groups = [ 'patterns' ]
|
||||
)
|
||||
|
||||
return program
|
||||
@@ -216,7 +226,8 @@ def create_face_detector_program() -> ArgumentParser:
|
||||
choices = facefusion.choices.face_detector_models
|
||||
)
|
||||
],
|
||||
scopes = [ 'api', 'cli' ]
|
||||
scopes = [ 'api', 'cli' ],
|
||||
groups = [ 'face_detector' ]
|
||||
)
|
||||
|
||||
known_args, _ = program.parse_known_args()
|
||||
@@ -231,7 +242,8 @@ def create_face_detector_program() -> ArgumentParser:
|
||||
choices = face_detector_size_choices
|
||||
)
|
||||
],
|
||||
scopes = [ 'api', 'cli' ]
|
||||
scopes = [ 'api', 'cli' ],
|
||||
groups = [ 'face_detector' ]
|
||||
)
|
||||
capability_store.register_capability_set(
|
||||
[
|
||||
@@ -243,7 +255,8 @@ def create_face_detector_program() -> ArgumentParser:
|
||||
nargs = '+'
|
||||
)
|
||||
],
|
||||
scopes = [ 'api', 'cli' ]
|
||||
scopes = [ 'api', 'cli' ],
|
||||
groups = [ 'face_detector' ]
|
||||
)
|
||||
capability_store.register_capability_set(
|
||||
[
|
||||
@@ -257,7 +270,8 @@ def create_face_detector_program() -> ArgumentParser:
|
||||
metavar = 'FACE_DETECTOR_ANGLES'
|
||||
)
|
||||
],
|
||||
scopes = [ 'api', 'cli' ]
|
||||
scopes = [ 'api', 'cli' ],
|
||||
groups = [ 'face_detector' ]
|
||||
)
|
||||
capability_store.register_capability_set(
|
||||
[
|
||||
@@ -270,7 +284,8 @@ def create_face_detector_program() -> ArgumentParser:
|
||||
metavar = create_float_metavar(facefusion.choices.face_detector_score_range)
|
||||
)
|
||||
],
|
||||
scopes = [ 'api', 'cli' ]
|
||||
scopes = [ 'api', 'cli' ],
|
||||
groups = [ 'face_detector' ]
|
||||
)
|
||||
|
||||
return program
|
||||
@@ -289,7 +304,8 @@ def create_face_landmarker_program() -> ArgumentParser:
|
||||
choices = facefusion.choices.face_landmarker_models
|
||||
)
|
||||
],
|
||||
scopes = [ 'api', 'cli' ]
|
||||
scopes = [ 'api', 'cli' ],
|
||||
groups = [ 'face_landmarker' ]
|
||||
)
|
||||
capability_store.register_capability_set(
|
||||
[
|
||||
@@ -302,7 +318,8 @@ def create_face_landmarker_program() -> ArgumentParser:
|
||||
metavar = create_float_metavar(facefusion.choices.face_landmarker_score_range)
|
||||
)
|
||||
],
|
||||
scopes = [ 'api', 'cli' ]
|
||||
scopes = [ 'api', 'cli' ],
|
||||
groups = [ 'face_landmarker' ]
|
||||
)
|
||||
|
||||
return program
|
||||
@@ -321,7 +338,8 @@ def create_face_selector_program() -> ArgumentParser:
|
||||
choices = facefusion.choices.face_selector_modes
|
||||
)
|
||||
],
|
||||
scopes = [ 'api', 'cli' ]
|
||||
scopes = [ 'api', 'cli' ],
|
||||
groups = [ 'face_selector' ]
|
||||
)
|
||||
capability_store.register_capability_set(
|
||||
[
|
||||
@@ -332,7 +350,8 @@ def create_face_selector_program() -> ArgumentParser:
|
||||
choices = facefusion.choices.face_selector_orders
|
||||
)
|
||||
],
|
||||
scopes = [ 'api', 'cli' ]
|
||||
scopes = [ 'api', 'cli' ],
|
||||
groups = [ 'face_selector' ]
|
||||
)
|
||||
capability_store.register_capability_set(
|
||||
[
|
||||
@@ -345,7 +364,8 @@ def create_face_selector_program() -> ArgumentParser:
|
||||
metavar = create_int_metavar(facefusion.choices.face_selector_age_range)
|
||||
)
|
||||
],
|
||||
scopes = [ 'api', 'cli' ]
|
||||
scopes = [ 'api', 'cli' ],
|
||||
groups = [ 'face_selector' ]
|
||||
)
|
||||
capability_store.register_capability_set(
|
||||
[
|
||||
@@ -358,7 +378,8 @@ def create_face_selector_program() -> ArgumentParser:
|
||||
metavar = create_int_metavar(facefusion.choices.face_selector_age_range)
|
||||
)
|
||||
],
|
||||
scopes = [ 'api', 'cli' ]
|
||||
scopes = [ 'api', 'cli' ],
|
||||
groups = [ 'face_selector' ]
|
||||
)
|
||||
capability_store.register_capability_set(
|
||||
[
|
||||
@@ -369,7 +390,8 @@ def create_face_selector_program() -> ArgumentParser:
|
||||
choices = facefusion.choices.face_selector_genders
|
||||
)
|
||||
],
|
||||
scopes = [ 'api', 'cli' ]
|
||||
scopes = [ 'api', 'cli' ],
|
||||
groups = [ 'face_selector' ]
|
||||
)
|
||||
capability_store.register_capability_set(
|
||||
[
|
||||
@@ -380,7 +402,8 @@ def create_face_selector_program() -> ArgumentParser:
|
||||
choices = facefusion.choices.face_selector_races
|
||||
)
|
||||
],
|
||||
scopes = [ 'api', 'cli' ]
|
||||
scopes = [ 'api', 'cli' ],
|
||||
groups = [ 'face_selector' ]
|
||||
)
|
||||
capability_store.register_capability_set(
|
||||
[
|
||||
@@ -391,7 +414,8 @@ def create_face_selector_program() -> ArgumentParser:
|
||||
default = config.get_int_value('face_selector', 'reference_face_position', '0')
|
||||
)
|
||||
],
|
||||
scopes = [ 'api', 'cli' ]
|
||||
scopes = [ 'api', 'cli' ],
|
||||
groups = [ 'face_selector' ]
|
||||
)
|
||||
capability_store.register_capability_set(
|
||||
[
|
||||
@@ -404,7 +428,8 @@ def create_face_selector_program() -> ArgumentParser:
|
||||
metavar = create_float_metavar(facefusion.choices.reference_face_distance_range)
|
||||
)
|
||||
],
|
||||
scopes = [ 'api', 'cli' ]
|
||||
scopes = [ 'api', 'cli' ],
|
||||
groups = [ 'face_selector' ]
|
||||
)
|
||||
capability_store.register_capability_set(
|
||||
[
|
||||
@@ -415,7 +440,8 @@ def create_face_selector_program() -> ArgumentParser:
|
||||
default = config.get_int_value('face_selector', 'reference_frame_number', '0')
|
||||
)
|
||||
],
|
||||
scopes = [ 'api', 'cli' ]
|
||||
scopes = [ 'api', 'cli' ],
|
||||
groups = [ 'face_selector' ]
|
||||
)
|
||||
|
||||
return program
|
||||
@@ -436,7 +462,8 @@ def create_face_tracker_program() -> ArgumentParser:
|
||||
metavar = create_float_metavar(facefusion.choices.face_tracker_score_range)
|
||||
)
|
||||
],
|
||||
scopes = [ 'api', 'cli' ]
|
||||
scopes = [ 'api', 'cli' ],
|
||||
groups = [ 'face_tracker' ]
|
||||
)
|
||||
|
||||
return program
|
||||
@@ -455,7 +482,8 @@ def create_face_masker_program() -> ArgumentParser:
|
||||
choices = facefusion.choices.face_occluder_models
|
||||
)
|
||||
],
|
||||
scopes = [ 'api', 'cli' ]
|
||||
scopes = [ 'api', 'cli' ],
|
||||
groups = [ 'face_masker' ]
|
||||
)
|
||||
capability_store.register_capability_set(
|
||||
[
|
||||
@@ -466,7 +494,8 @@ def create_face_masker_program() -> ArgumentParser:
|
||||
choices = facefusion.choices.face_parser_models
|
||||
)
|
||||
],
|
||||
scopes = [ 'api', 'cli' ]
|
||||
scopes = [ 'api', 'cli' ],
|
||||
groups = [ 'face_masker' ]
|
||||
)
|
||||
capability_store.register_capability_set(
|
||||
[
|
||||
@@ -479,7 +508,8 @@ def create_face_masker_program() -> ArgumentParser:
|
||||
metavar = 'FACE_MASK_TYPES'
|
||||
)
|
||||
],
|
||||
scopes = [ 'api', 'cli' ]
|
||||
scopes = [ 'api', 'cli' ],
|
||||
groups = [ 'face_masker' ]
|
||||
)
|
||||
capability_store.register_capability_set(
|
||||
[
|
||||
@@ -492,7 +522,8 @@ def create_face_masker_program() -> ArgumentParser:
|
||||
metavar = 'FACE_MASK_AREAS'
|
||||
)
|
||||
],
|
||||
scopes = [ 'api', 'cli' ]
|
||||
scopes = [ 'api', 'cli' ],
|
||||
groups = [ 'face_masker' ]
|
||||
)
|
||||
capability_store.register_capability_set(
|
||||
[
|
||||
@@ -505,7 +536,8 @@ def create_face_masker_program() -> ArgumentParser:
|
||||
metavar = 'FACE_MASK_REGIONS'
|
||||
)
|
||||
],
|
||||
scopes = [ 'api', 'cli' ]
|
||||
scopes = [ 'api', 'cli' ],
|
||||
groups = [ 'face_masker' ]
|
||||
)
|
||||
capability_store.register_capability_set(
|
||||
[
|
||||
@@ -518,7 +550,8 @@ def create_face_masker_program() -> ArgumentParser:
|
||||
metavar = create_float_metavar(facefusion.choices.face_mask_blur_range)
|
||||
)
|
||||
],
|
||||
scopes = [ 'api', 'cli' ]
|
||||
scopes = [ 'api', 'cli' ],
|
||||
groups = [ 'face_masker' ]
|
||||
)
|
||||
capability_store.register_capability_set(
|
||||
[
|
||||
@@ -530,7 +563,8 @@ def create_face_masker_program() -> ArgumentParser:
|
||||
nargs = '+'
|
||||
)
|
||||
],
|
||||
scopes = [ 'api', 'cli' ]
|
||||
scopes = [ 'api', 'cli' ],
|
||||
groups = [ 'face_masker' ]
|
||||
)
|
||||
|
||||
return program
|
||||
@@ -549,7 +583,8 @@ def create_voice_extractor_program() -> ArgumentParser:
|
||||
choices = facefusion.choices.voice_extractor_models
|
||||
)
|
||||
],
|
||||
scopes = [ 'api', 'cli' ]
|
||||
scopes = [ 'api', 'cli' ],
|
||||
groups = [ 'voice_extractor' ]
|
||||
)
|
||||
|
||||
return program
|
||||
@@ -568,7 +603,8 @@ def create_frame_extraction_program() -> ArgumentParser:
|
||||
default = facefusion.config.get_int_value('frame_extraction', 'trim_frame_start')
|
||||
)
|
||||
],
|
||||
scopes = [ 'api', 'cli' ]
|
||||
scopes = [ 'api', 'cli' ],
|
||||
groups = [ 'frame_extraction' ]
|
||||
)
|
||||
capability_store.register_capability_set(
|
||||
[
|
||||
@@ -579,7 +615,8 @@ def create_frame_extraction_program() -> ArgumentParser:
|
||||
default = facefusion.config.get_int_value('frame_extraction', 'trim_frame_end')
|
||||
)
|
||||
],
|
||||
scopes = [ 'api', 'cli' ]
|
||||
scopes = [ 'api', 'cli' ],
|
||||
groups = [ 'frame_extraction' ]
|
||||
)
|
||||
capability_store.register_capability_set(
|
||||
[
|
||||
@@ -590,7 +627,8 @@ def create_frame_extraction_program() -> ArgumentParser:
|
||||
choices = facefusion.choices.temp_frame_formats
|
||||
)
|
||||
],
|
||||
scopes = [ 'api', 'cli' ]
|
||||
scopes = [ 'api', 'cli' ],
|
||||
groups = [ 'frame_extraction' ]
|
||||
)
|
||||
|
||||
return program
|
||||
@@ -611,7 +649,8 @@ def create_frame_distribution_program() -> ArgumentParser:
|
||||
metavar = create_int_metavar(facefusion.choices.target_frame_amount_range)
|
||||
)
|
||||
],
|
||||
scopes = [ 'api', 'cli' ]
|
||||
scopes = [ 'api', 'cli' ],
|
||||
groups = [ 'frame_distribution' ]
|
||||
)
|
||||
|
||||
return program
|
||||
@@ -633,7 +672,8 @@ def create_output_creation_program() -> ArgumentParser:
|
||||
metavar = create_int_metavar(facefusion.choices.output_image_quality_range)
|
||||
)
|
||||
],
|
||||
scopes = [ 'api', 'cli' ]
|
||||
scopes = [ 'api', 'cli' ],
|
||||
groups = [ 'output_creation' ]
|
||||
)
|
||||
capability_store.register_capability_set(
|
||||
[
|
||||
@@ -645,7 +685,8 @@ def create_output_creation_program() -> ArgumentParser:
|
||||
choices = facefusion.choices.output_image_scale_range
|
||||
)
|
||||
],
|
||||
scopes = [ 'api', 'cli' ]
|
||||
scopes = [ 'api', 'cli' ],
|
||||
groups = [ 'output_creation' ]
|
||||
)
|
||||
capability_store.register_capability_set(
|
||||
[
|
||||
@@ -656,7 +697,8 @@ def create_output_creation_program() -> ArgumentParser:
|
||||
choices = available_encoder_set.get('audio')
|
||||
)
|
||||
],
|
||||
scopes = [ 'api', 'cli' ]
|
||||
scopes = [ 'api', 'cli' ],
|
||||
groups = [ 'output_creation' ]
|
||||
)
|
||||
capability_store.register_capability_set(
|
||||
[
|
||||
@@ -669,7 +711,8 @@ def create_output_creation_program() -> ArgumentParser:
|
||||
metavar = create_int_metavar(facefusion.choices.output_audio_quality_range)
|
||||
)
|
||||
],
|
||||
scopes = [ 'api', 'cli' ]
|
||||
scopes = [ 'api', 'cli' ],
|
||||
groups = [ 'output_creation' ]
|
||||
)
|
||||
capability_store.register_capability_set(
|
||||
[
|
||||
@@ -682,7 +725,8 @@ def create_output_creation_program() -> ArgumentParser:
|
||||
metavar = create_int_metavar(facefusion.choices.output_audio_volume_range)
|
||||
)
|
||||
],
|
||||
scopes = [ 'api', 'cli' ]
|
||||
scopes = [ 'api', 'cli' ],
|
||||
groups = [ 'output_creation' ]
|
||||
)
|
||||
capability_store.register_capability_set(
|
||||
[
|
||||
@@ -693,7 +737,8 @@ def create_output_creation_program() -> ArgumentParser:
|
||||
choices = available_encoder_set.get('video')
|
||||
)
|
||||
],
|
||||
scopes = [ 'api', 'cli' ]
|
||||
scopes = [ 'api', 'cli' ],
|
||||
groups = [ 'output_creation' ]
|
||||
)
|
||||
capability_store.register_capability_set(
|
||||
[
|
||||
@@ -704,7 +749,8 @@ def create_output_creation_program() -> ArgumentParser:
|
||||
choices = facefusion.choices.video_presets
|
||||
)
|
||||
],
|
||||
scopes = [ 'api', 'cli' ]
|
||||
scopes = [ 'api', 'cli' ],
|
||||
groups = [ 'output_creation' ]
|
||||
)
|
||||
capability_store.register_capability_set(
|
||||
[
|
||||
@@ -717,7 +763,8 @@ def create_output_creation_program() -> ArgumentParser:
|
||||
metavar = create_int_metavar(facefusion.choices.output_video_quality_range)
|
||||
)
|
||||
],
|
||||
scopes = [ 'api', 'cli' ]
|
||||
scopes = [ 'api', 'cli' ],
|
||||
groups = [ 'output_creation' ]
|
||||
)
|
||||
capability_store.register_capability_set(
|
||||
[
|
||||
@@ -729,7 +776,8 @@ def create_output_creation_program() -> ArgumentParser:
|
||||
choices = facefusion.choices.output_video_scale_range
|
||||
)
|
||||
],
|
||||
scopes = [ 'api', 'cli' ]
|
||||
scopes = [ 'api', 'cli' ],
|
||||
groups = [ 'output_creation' ]
|
||||
)
|
||||
capability_store.register_capability_set(
|
||||
[
|
||||
@@ -740,7 +788,8 @@ def create_output_creation_program() -> ArgumentParser:
|
||||
default = config.get_float_value('output_creation', 'output_video_fps')
|
||||
)
|
||||
],
|
||||
scopes = [ 'api', 'cli' ]
|
||||
scopes = [ 'api', 'cli' ],
|
||||
groups = [ 'output_creation' ]
|
||||
)
|
||||
capability_store.register_capability_set(
|
||||
[
|
||||
@@ -751,7 +800,8 @@ def create_output_creation_program() -> ArgumentParser:
|
||||
default = config.get_float_value('output_creation', 'output_audio_fps', '25.0')
|
||||
)
|
||||
],
|
||||
scopes = [ 'api', 'cli' ]
|
||||
scopes = [ 'api', 'cli' ],
|
||||
groups = [ 'output_creation' ]
|
||||
)
|
||||
|
||||
return program
|
||||
@@ -772,7 +822,8 @@ def create_processors_program() -> ArgumentParser:
|
||||
nargs = '+'
|
||||
)
|
||||
],
|
||||
scopes = [ 'api', 'cli' ]
|
||||
scopes = [ 'api', 'cli' ],
|
||||
groups = [ 'processors' ]
|
||||
)
|
||||
|
||||
for processor_module in get_processors_modules(available_processors):
|
||||
@@ -796,7 +847,8 @@ def create_download_providers_program() -> ArgumentParser:
|
||||
metavar = 'DOWNLOAD_PROVIDERS'
|
||||
)
|
||||
],
|
||||
scopes = [ 'cli', 'sys' ]
|
||||
scopes = [ 'cli', 'sys' ],
|
||||
groups = [ 'download' ]
|
||||
)
|
||||
|
||||
return program
|
||||
@@ -815,7 +867,8 @@ def create_download_scope_program() -> ArgumentParser:
|
||||
choices = facefusion.choices.download_scopes
|
||||
)
|
||||
],
|
||||
scopes = [ 'cli', 'sys' ]
|
||||
scopes = [ 'cli', 'sys' ],
|
||||
groups = [ 'download' ]
|
||||
)
|
||||
|
||||
return program
|
||||
@@ -873,7 +926,8 @@ def create_api_program() -> ArgumentParser:
|
||||
choices = facefusion.choices.api_security_strategies
|
||||
)
|
||||
],
|
||||
scopes = [ 'api' ]
|
||||
scopes = [ 'api' ],
|
||||
groups = [ 'api' ]
|
||||
)
|
||||
|
||||
return program
|
||||
@@ -895,7 +949,8 @@ def create_execution_program() -> ArgumentParser:
|
||||
metavar = 'EXECUTION_DEVICE_IDS'
|
||||
)
|
||||
],
|
||||
scopes = [ 'cli', 'sys' ]
|
||||
scopes = [ 'cli', 'sys' ],
|
||||
groups = [ 'execution' ]
|
||||
)
|
||||
capability_store.register_capability_set(
|
||||
[
|
||||
@@ -908,7 +963,8 @@ def create_execution_program() -> ArgumentParser:
|
||||
metavar = 'EXECUTION_PROVIDERS'
|
||||
)
|
||||
],
|
||||
scopes = [ 'cli', 'sys' ]
|
||||
scopes = [ 'cli', 'sys' ],
|
||||
groups = [ 'execution' ]
|
||||
)
|
||||
capability_store.register_capability_set(
|
||||
[
|
||||
@@ -921,7 +977,8 @@ def create_execution_program() -> ArgumentParser:
|
||||
metavar = create_int_metavar(facefusion.choices.execution_thread_count_range)
|
||||
)
|
||||
],
|
||||
scopes = [ 'cli', 'sys' ]
|
||||
scopes = [ 'cli', 'sys' ],
|
||||
groups = [ 'execution' ]
|
||||
)
|
||||
|
||||
return program
|
||||
@@ -940,7 +997,8 @@ def create_memory_program() -> ArgumentParser:
|
||||
choices = facefusion.choices.video_memory_strategies
|
||||
)
|
||||
],
|
||||
scopes = [ 'cli', 'sys' ]
|
||||
scopes = [ 'cli', 'sys' ],
|
||||
groups = [ 'memory' ]
|
||||
)
|
||||
|
||||
return program
|
||||
@@ -959,7 +1017,8 @@ def create_log_level_program() -> ArgumentParser:
|
||||
choices = facefusion.choices.log_levels
|
||||
)
|
||||
],
|
||||
scopes = [ 'cli' ]
|
||||
scopes = [ 'cli' ],
|
||||
groups = [ 'misc' ]
|
||||
)
|
||||
|
||||
return program
|
||||
@@ -978,7 +1037,8 @@ def create_halt_on_error_program() -> ArgumentParser:
|
||||
default = config.get_bool_value('misc', 'halt_on_error')
|
||||
)
|
||||
],
|
||||
scopes = [ 'cli' ]
|
||||
scopes = [ 'cli' ],
|
||||
groups = [ 'misc' ]
|
||||
)
|
||||
|
||||
return program
|
||||
|
||||
+4
-1
@@ -135,11 +135,13 @@ Args : TypeAlias = Dict[str, Any]
|
||||
|
||||
Choice : TypeAlias = Union[int | str]
|
||||
Scope : TypeAlias = Literal['api', 'cli', 'sys']
|
||||
Group : TypeAlias = str
|
||||
|
||||
CapabilitySet = TypedDict('CapabilitySet',
|
||||
{
|
||||
'default' : Any,
|
||||
'choices' : NotRequired[List[Choice]]
|
||||
'choices' : NotRequired[List[Choice]],
|
||||
'groups' : NotRequired[List[Group]]
|
||||
})
|
||||
CapabilityStore = TypedDict('CapabilityStore',
|
||||
{
|
||||
@@ -147,6 +149,7 @@ CapabilityStore = TypedDict('CapabilityStore',
|
||||
'cli' : Dict[str, CapabilitySet],
|
||||
'sys' : Dict[str, CapabilitySet]
|
||||
})
|
||||
CapabilityGroup : TypeAlias = Dict[Group, Dict[str, CapabilitySet]]
|
||||
|
||||
ProcessState = Literal['checking', 'processing', 'stopping', 'pending']
|
||||
UpdateProgress : TypeAlias = Callable[[int], None]
|
||||
|
||||
@@ -18,7 +18,8 @@ def before_all() -> None:
|
||||
nargs = '+'
|
||||
)
|
||||
],
|
||||
scopes = [ 'api' ]
|
||||
scopes = [ 'api' ],
|
||||
groups = [ 'paths' ]
|
||||
)
|
||||
capability_store.register_capability_set(
|
||||
[
|
||||
@@ -28,7 +29,8 @@ def before_all() -> None:
|
||||
choices = [ 'mp4', 'mkv', 'webm' ]
|
||||
)
|
||||
],
|
||||
scopes = [ 'api' ]
|
||||
scopes = [ 'api' ],
|
||||
groups = [ 'paths' ]
|
||||
)
|
||||
|
||||
|
||||
@@ -55,5 +57,5 @@ def test_get_capabilities(test_client : TestClient) -> None:
|
||||
|
||||
assert 'mp4' in capabilities_body.get('formats').get('video')
|
||||
|
||||
assert capabilities_body.get('arguments').get('source_paths').get('default') is None
|
||||
assert capabilities_body.get('arguments').get('output_format').get('choices') == [ 'mp4', 'mkv', 'webm' ]
|
||||
assert capabilities_body.get('arguments').get('paths').get('source_paths').get('default') is None
|
||||
assert capabilities_body.get('arguments').get('paths').get('output_format').get('choices') == [ 'mp4', 'mkv', 'webm' ]
|
||||
|
||||
@@ -22,7 +22,8 @@ def before_all() -> None:
|
||||
nargs = '+'
|
||||
)
|
||||
],
|
||||
scopes = [ 'api' ]
|
||||
scopes = [ 'api' ],
|
||||
groups = [ 'paths' ]
|
||||
)
|
||||
capability_store.register_capability_set(
|
||||
[
|
||||
@@ -30,7 +31,8 @@ def before_all() -> None:
|
||||
'--target-path'
|
||||
)
|
||||
],
|
||||
scopes = [ 'api' ]
|
||||
scopes = [ 'api' ],
|
||||
groups = [ 'paths' ]
|
||||
)
|
||||
capability_store.register_capability_set(
|
||||
[
|
||||
@@ -39,7 +41,8 @@ def before_all() -> None:
|
||||
nargs = '+'
|
||||
)
|
||||
],
|
||||
scopes = [ 'api' ]
|
||||
scopes = [ 'api' ],
|
||||
groups = [ 'paths' ]
|
||||
)
|
||||
|
||||
state_manager.init_item('execution_providers', [ 'cpu' ])
|
||||
|
||||
Reference in New Issue
Block a user