Introduce File using list_directory() (#830)
This commit is contained in:
parent
63399c04d0
commit
cc5ee3be33
@ -105,7 +105,7 @@ def apply_args(args : Args, apply_state_item : ApplyStateItem) -> None:
|
|||||||
apply_state_item('output_video_fps', output_video_fps)
|
apply_state_item('output_video_fps', output_video_fps)
|
||||||
apply_state_item('skip_audio', args.get('skip_audio'))
|
apply_state_item('skip_audio', args.get('skip_audio'))
|
||||||
# processors
|
# processors
|
||||||
available_processors = list_directory('facefusion/processors/modules')
|
available_processors = [ file.get('name') for file in list_directory('facefusion/processors/modules') ]
|
||||||
apply_state_item('processors', args.get('processors'))
|
apply_state_item('processors', args.get('processors'))
|
||||||
for processor_module in get_processors_modules(available_processors):
|
for processor_module in get_processors_modules(available_processors):
|
||||||
processor_module.apply_args(args, apply_state_item)
|
processor_module.apply_args(args, apply_state_item)
|
||||||
|
@ -133,7 +133,7 @@ def force_download() -> ErrorCode:
|
|||||||
face_recognizer,
|
face_recognizer,
|
||||||
voice_extractor
|
voice_extractor
|
||||||
]
|
]
|
||||||
available_processors = list_directory('facefusion/processors/modules')
|
available_processors = [ file.get('name') for file in list_directory('facefusion/processors/modules') ]
|
||||||
processor_modules = get_processors_modules(available_processors)
|
processor_modules = get_processors_modules(available_processors)
|
||||||
|
|
||||||
for module in common_modules + processor_modules:
|
for module in common_modules + processor_modules:
|
||||||
|
@ -7,6 +7,7 @@ from typing import List, Optional
|
|||||||
import filetype
|
import filetype
|
||||||
|
|
||||||
from facefusion.common_helper import is_windows
|
from facefusion.common_helper import is_windows
|
||||||
|
from facefusion.typing import File
|
||||||
|
|
||||||
if is_windows():
|
if is_windows():
|
||||||
import ctypes
|
import ctypes
|
||||||
@ -126,11 +127,23 @@ def create_directory(directory_path : str) -> bool:
|
|||||||
return False
|
return False
|
||||||
|
|
||||||
|
|
||||||
def list_directory(directory_path : str) -> Optional[List[str]]:
|
def list_directory(directory_path : str) -> Optional[List[File]]:
|
||||||
if is_directory(directory_path):
|
if is_directory(directory_path):
|
||||||
file_paths = os.listdir(directory_path)
|
file_paths = sorted(os.listdir(directory_path))
|
||||||
file_paths = [ Path(file_path).stem for file_path in file_paths if not Path(file_path).stem.startswith(('.', '__')) ]
|
files: List[File] = []
|
||||||
return sorted(file_paths)
|
|
||||||
|
for file_path in file_paths:
|
||||||
|
file_name, file_extension = os.path.splitext(file_path)
|
||||||
|
|
||||||
|
if not file_name.startswith(('.', '__')):
|
||||||
|
files.append(
|
||||||
|
{
|
||||||
|
'name': file_name,
|
||||||
|
'extension': file_extension,
|
||||||
|
'path': os.path.join(directory_path, file_path)
|
||||||
|
})
|
||||||
|
|
||||||
|
return files
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
|
||||||
|
@ -169,7 +169,7 @@ def create_output_creation_program() -> ArgumentParser:
|
|||||||
|
|
||||||
def create_processors_program() -> ArgumentParser:
|
def create_processors_program() -> ArgumentParser:
|
||||||
program = ArgumentParser(add_help = False)
|
program = ArgumentParser(add_help = False)
|
||||||
available_processors = list_directory('facefusion/processors/modules')
|
available_processors = [ file.get('name') for file in list_directory('facefusion/processors/modules') ]
|
||||||
group_processors = program.add_argument_group('processors')
|
group_processors = program.add_argument_group('processors')
|
||||||
group_processors.add_argument('--processors', help = wording.get('help.processors').format(choices = ', '.join(available_processors)), default = config.get_str_list('processors.processors', 'face_swapper'), nargs = '+')
|
group_processors.add_argument('--processors', help = wording.get('help.processors').format(choices = ', '.join(available_processors)), default = config.get_str_list('processors.processors', 'face_swapper'), nargs = '+')
|
||||||
job_store.register_step_keys([ 'processors' ])
|
job_store.register_step_keys([ 'processors' ])
|
||||||
@ -180,7 +180,7 @@ def create_processors_program() -> ArgumentParser:
|
|||||||
|
|
||||||
def create_uis_program() -> ArgumentParser:
|
def create_uis_program() -> ArgumentParser:
|
||||||
program = ArgumentParser(add_help = False)
|
program = ArgumentParser(add_help = False)
|
||||||
available_ui_layouts = list_directory('facefusion/uis/layouts')
|
available_ui_layouts = [ file.get('name') for file in list_directory('facefusion/uis/layouts') ]
|
||||||
group_uis = program.add_argument_group('uis')
|
group_uis = program.add_argument_group('uis')
|
||||||
group_uis.add_argument('--open-browser', help = wording.get('help.open_browser'), action = 'store_true', default = config.get_bool_value('uis.open_browser'))
|
group_uis.add_argument('--open-browser', help = wording.get('help.open_browser'), action = 'store_true', default = config.get_bool_value('uis.open_browser'))
|
||||||
group_uis.add_argument('--ui-layouts', help = wording.get('help.ui_layouts').format(choices = ', '.join(available_ui_layouts)), default = config.get_str_list('uis.ui_layouts', 'default'), nargs = '+')
|
group_uis.add_argument('--ui-layouts', help = wording.get('help.ui_layouts').format(choices = ', '.join(available_ui_layouts)), default = config.get_str_list('uis.ui_layouts', 'default'), nargs = '+')
|
||||||
|
@ -167,6 +167,13 @@ DownloadSet = Dict[str, Download]
|
|||||||
|
|
||||||
VideoMemoryStrategy = Literal['strict', 'moderate', 'tolerant']
|
VideoMemoryStrategy = Literal['strict', 'moderate', 'tolerant']
|
||||||
|
|
||||||
|
File = TypedDict('File',
|
||||||
|
{
|
||||||
|
'name' : str,
|
||||||
|
'extension' : str,
|
||||||
|
'path': str
|
||||||
|
})
|
||||||
|
|
||||||
AppContext = Literal['cli', 'ui']
|
AppContext = Literal['cli', 'ui']
|
||||||
|
|
||||||
InferencePool = Dict[str, InferenceSession]
|
InferencePool = Dict[str, InferenceSession]
|
||||||
|
@ -36,7 +36,7 @@ def update_download_providers(download_providers : List[DownloadProviderKey]) ->
|
|||||||
face_masker,
|
face_masker,
|
||||||
voice_extractor
|
voice_extractor
|
||||||
]
|
]
|
||||||
available_processors = list_directory('facefusion/processors/modules')
|
available_processors = [ file.get('name') for file in list_directory('facefusion/processors/modules') ]
|
||||||
processor_modules = get_processors_modules(available_processors)
|
processor_modules = get_processors_modules(available_processors)
|
||||||
|
|
||||||
for module in common_modules + processor_modules:
|
for module in common_modules + processor_modules:
|
||||||
|
@ -36,7 +36,7 @@ def update_execution_providers(execution_providers : List[ExecutionProviderKey])
|
|||||||
face_recognizer,
|
face_recognizer,
|
||||||
voice_extractor
|
voice_extractor
|
||||||
]
|
]
|
||||||
available_processors = list_directory('facefusion/processors/modules')
|
available_processors = [ file.get('name') for file in list_directory('facefusion/processors/modules') ]
|
||||||
processor_modules = get_processors_modules(available_processors)
|
processor_modules = get_processors_modules(available_processors)
|
||||||
|
|
||||||
for module in common_modules + processor_modules:
|
for module in common_modules + processor_modules:
|
||||||
|
@ -39,5 +39,5 @@ def update_processors(processors : List[str]) -> gradio.CheckboxGroup:
|
|||||||
|
|
||||||
|
|
||||||
def sort_processors(processors : List[str]) -> List[str]:
|
def sort_processors(processors : List[str]) -> List[str]:
|
||||||
available_processors = list_directory('facefusion/processors/modules')
|
available_processors = [ file.get('name') for file in list_directory('facefusion/processors/modules') ]
|
||||||
return sorted(available_processors, key = lambda processor : processors.index(processor) if processor in processors else len(processors))
|
return sorted(available_processors, key = lambda processor : processors.index(processor) if processor in processors else len(processors))
|
||||||
|
@ -105,8 +105,11 @@ def test_create_directory() -> None:
|
|||||||
|
|
||||||
|
|
||||||
def test_list_directory() -> None:
|
def test_list_directory() -> None:
|
||||||
assert list_directory(get_test_examples_directory())
|
files = list_directory(get_test_examples_directory())
|
||||||
assert list_directory(get_test_example_file('source.jpg')) is None
|
|
||||||
|
for file in files:
|
||||||
|
assert file.get('path') == get_test_example_file(file.get('name') + file.get('extension'))
|
||||||
|
|
||||||
assert list_directory('invalid') is None
|
assert list_directory('invalid') is None
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user