mirror of
https://github.com/s0md3v/roop.git
synced 2025-12-06 18:08:29 +00:00
Refactoring
FIX: Dynamic loaded module system implementation
This commit is contained in:
parent
46c8980d52
commit
c48f04ad79
@ -74,9 +74,9 @@ def parse_args() -> None:
|
||||
|
||||
#for ENHANCER tumbler:
|
||||
if 'face_enhancer' in args.frame_processor:
|
||||
roop.globals.enhancer = True
|
||||
roop.globals.fp_ui['face_enhancer'] = True
|
||||
else:
|
||||
roop.globals.enhancer = False
|
||||
roop.globals.fp_ui['face_enhancer'] = False
|
||||
|
||||
# translate deprecated args
|
||||
if args.source_path_deprecated:
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
from typing import List
|
||||
from typing import List, Dict
|
||||
|
||||
source_path = None
|
||||
target_path = None
|
||||
@ -15,4 +15,4 @@ execution_providers: List[str] = []
|
||||
execution_threads = None
|
||||
headless = None
|
||||
log_level = 'error'
|
||||
enhancer = None
|
||||
fp_ui: Dict[str, bool] = {}
|
||||
|
||||
@ -8,7 +8,7 @@ from tqdm import tqdm
|
||||
import roop
|
||||
import roop.globals
|
||||
|
||||
|
||||
FRAME_PROCESSORS_MODULES: List[ModuleType] = []
|
||||
FRAME_PROCESSORS_INTERFACE = [
|
||||
'pre_check',
|
||||
'pre_start',
|
||||
@ -30,17 +30,29 @@ def load_frame_processor_module(frame_processor: str) -> Any:
|
||||
|
||||
|
||||
def get_frame_processors_modules(frame_processors: List[str]) -> List[ModuleType]:
|
||||
FRAME_PROCESSORS_MODULES: List[ModuleType] = []
|
||||
global FRAME_PROCESSORS_MODULES
|
||||
|
||||
if not FRAME_PROCESSORS_MODULES:
|
||||
for frame_processor in frame_processors:
|
||||
frame_processor_module = load_frame_processor_module(frame_processor)
|
||||
FRAME_PROCESSORS_MODULES.append(frame_processor_module)
|
||||
if roop.globals.enhancer == True and 'face_enhancer' not in frame_processors:
|
||||
frame_processor_module = load_frame_processor_module('face_enhancer')
|
||||
FRAME_PROCESSORS_MODULES.append(frame_processor_module)
|
||||
set_frame_processors_modules_from_ui(frame_processors)
|
||||
return FRAME_PROCESSORS_MODULES
|
||||
|
||||
def set_frame_processors_modules_from_ui(frame_processors: List[str]) -> None:
|
||||
global FRAME_PROCESSORS_MODULES
|
||||
for frame_processor, state in roop.globals.fp_ui.items():
|
||||
if state == True and frame_processor not in frame_processors:
|
||||
frame_processor_module = load_frame_processor_module(frame_processor)
|
||||
FRAME_PROCESSORS_MODULES.append(frame_processor_module)
|
||||
roop.globals.frame_processors.append(frame_processor)
|
||||
if state == False:
|
||||
frame_processor_module = load_frame_processor_module(frame_processor)
|
||||
try:
|
||||
FRAME_PROCESSORS_MODULES.remove(frame_processor_module)
|
||||
roop.globals.frame_processors.remove(frame_processor)
|
||||
except:
|
||||
pass
|
||||
|
||||
def multi_process_frame(source_path: str, temp_frame_paths: List[str], process_frames: Callable[[str, List[str], Any], None], progress: Any = None) -> None:
|
||||
with ThreadPoolExecutor(max_workers=roop.globals.execution_threads) as executor:
|
||||
|
||||
@ -75,9 +75,10 @@ def create_root(start: Callable[[], None], destroy: Callable[[], None]) -> ctk.C
|
||||
keep_frames_switch.place(relx=0.1, rely=0.65)
|
||||
|
||||
# for FRAME PROCESSOR ENHANCER tumbler:
|
||||
enhancer_value = ctk.BooleanVar(value=roop.globals.enhancer)
|
||||
enhancer_switch = ctk.CTkSwitch(root, text='Enhancer', variable=enhancer_value, command=lambda: setattr(roop.globals, 'enhancer', enhancer_value.get()))
|
||||
enhancer_value = ctk.BooleanVar(value=roop.globals.fp_ui['face_enhancer'])
|
||||
enhancer_switch = ctk.CTkSwitch(root, text='Face Enhancer', variable=enhancer_value, cursor='hand2', command=lambda: update_tumbler('face_enhancer',enhancer_value.get()))
|
||||
enhancer_switch.place(relx=0.1, rely=0.7)
|
||||
|
||||
keep_audio_value = ctk.BooleanVar(value=roop.globals.keep_audio)
|
||||
keep_audio_switch = ctk.CTkSwitch(root, text='Keep audio', variable=keep_audio_value, cursor='hand2', command=lambda: setattr(roop.globals, 'keep_audio', keep_audio_value.get()))
|
||||
keep_audio_switch.place(relx=0.6, rely=0.6)
|
||||
@ -129,6 +130,10 @@ def update_status(text: str) -> None:
|
||||
ROOT.update()
|
||||
|
||||
|
||||
def update_tumbler(var: str, value: bool) -> None:
|
||||
roop.globals.fp_ui[var] = value
|
||||
|
||||
|
||||
def select_source_path() -> None:
|
||||
global RECENT_DIRECTORY_SOURCE
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user