Compare commits
4 Commits
0ed7f733c1
...
de56b160be
Author | SHA1 | Date |
---|---|---|
|
de56b160be | |
|
40598daea9 | |
|
528c30e3ba | |
|
57e6020efa |
|
@ -14,6 +14,7 @@ Users of this software are expected to use this software responsibly while abidi
|
||||||
### Basic: It is more likely to work on your computer but it will also be very slow. You can follow instructions for the basic install (This usually runs via **CPU**)
|
### Basic: It is more likely to work on your computer but it will also be very slow. You can follow instructions for the basic install (This usually runs via **CPU**)
|
||||||
#### 1.Setup your platform
|
#### 1.Setup your platform
|
||||||
- python (3.10 recommended)
|
- python (3.10 recommended)
|
||||||
|
- python-tk
|
||||||
- pip
|
- pip
|
||||||
- git
|
- git
|
||||||
- [ffmpeg](https://www.youtube.com/watch?v=OlNWCpFdVMA)
|
- [ffmpeg](https://www.youtube.com/watch?v=OlNWCpFdVMA)
|
||||||
|
|
|
@ -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 = 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)
|
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 = 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)
|
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)
|
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:
|
def select_target_path() -> None:
|
||||||
global RECENT_DIRECTORY_TARGET, img_ft, vid_ft
|
global RECENT_DIRECTORY_TARGET, img_ft, vid_ft
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue