From 528c30e3ba034b064d937202365163b9bd35d011 Mon Sep 17 00:00:00 2001 From: barongello Date: Sun, 25 Aug 2024 12:25:19 -0300 Subject: [PATCH] Adding a swap faces button to easily swap source/target images --- modules/ui.py | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/modules/ui.py b/modules/ui.py index 941279c..8280b0f 100644 --- a/modules/ui.py +++ b/modules/ui.py @@ -66,6 +66,9 @@ def create_root(start: Callable[[], None], destroy: Callable[[], None]) -> ctk.C select_face_button = ctk.CTkButton(root, text='Select a face', cursor='hand2', command=lambda: select_source_path()) select_face_button.place(relx=0.1, rely=0.4, relwidth=0.3, relheight=0.1) + swap_faces_button = ctk.CTkButton(root, text='↔', cursor='hand2', command=lambda: swap_faces_paths()) + swap_faces_button.place(relx=0.45, rely=0.4, relwidth=0.1, relheight=0.1) + select_target_button = ctk.CTkButton(root, text='Select a target', cursor='hand2', command=lambda: select_target_path()) select_target_button.place(relx=0.6, rely=0.4, relwidth=0.3, relheight=0.1) @@ -159,6 +162,30 @@ def select_source_path() -> None: source_label.configure(image=None) +def swap_faces_paths() -> None: + global RECENT_DIRECTORY_SOURCE, RECENT_DIRECTORY_TARGET + + source_path = modules.globals.source_path + target_path = modules.globals.target_path + + if not is_image(source_path) or not is_image(target_path): + return + + modules.globals.source_path = target_path + modules.globals.target_path = source_path + + RECENT_DIRECTORY_SOURCE = os.path.dirname(modules.globals.source_path) + RECENT_DIRECTORY_TARGET = os.path.dirname(modules.globals.target_path) + + PREVIEW.withdraw() + + source_image = render_image_preview(modules.globals.source_path, (200, 200)) + source_label.configure(image=source_image) + + target_image = render_image_preview(modules.globals.target_path, (200, 200)) + target_label.configure(image=target_image) + + def select_target_path() -> None: global RECENT_DIRECTORY_TARGET, img_ft, vid_ft