Spaces:
Build error
Build error
File size: 1,510 Bytes
a1da63c |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
from argparse import ArgumentParser, _ArgumentGroup, _SubParsersAction
from typing import List, Optional
import facefusion.choices
from facefusion.processors import choices as processors_choices
def find_argument_group(program : ArgumentParser, group_name : str) -> Optional[_ArgumentGroup]:
for group in program._action_groups:
if group.title == group_name:
return group
return None
def validate_args(program : ArgumentParser) -> bool:
if not validate_actions(program):
return False
for action in program._actions:
if isinstance(action, _SubParsersAction):
for _, sub_program in action._name_parser_map.items():
if not validate_args(sub_program):
return False
return True
def validate_actions(program : ArgumentParser) -> bool:
for action in program._actions:
if action.default and action.choices:
if isinstance(action.default, list):
if any(default not in action.choices for default in action.default):
return False
elif action.default not in action.choices:
return False
return True
def suggest_face_detector_choices(program : ArgumentParser) -> List[str]:
known_args, _ = program.parse_known_args()
return facefusion.choices.face_detector_set.get(known_args.face_detector_model) #type:ignore[call-overload]
def suggest_face_swapper_pixel_boost_choices(program : ArgumentParser) -> List[str]:
known_args, _ = program.parse_known_args()
return processors_choices.face_swapper_set.get(known_args.face_swapper_model) #type:ignore[call-overload]
|