Refactoring

FIX: Dynamic loaded module system implementation
This commit is contained in:
Gourieff 2023-06-22 02:28:27 +07:00
parent 46c8980d52
commit c48f04ad79
4 changed files with 28 additions and 11 deletions

View File

@ -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:

View File

@ -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] = {}

View File

@ -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:

View File

@ -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