- added UI elements

- cleaned up some code
This commit is contained in:
chris 2023-05-31 13:54:41 -04:00
parent 7bfdd73783
commit acde1d7681
3 changed files with 20 additions and 10 deletions

View File

@ -21,8 +21,7 @@ def get_face(img_data):
def get_all_faces(img_data):
analysed = face_analyser.get(img_data)
try:
return analysed
return get_face_analyser().get(img_data)
except IndexError:
return None

View File

@ -2,7 +2,7 @@ import os
import cv2
import insightface
import core.globals
from core.config import get_face
from core.config import get_face, get_all_faces
FACE_SWAPPER = None
@ -19,13 +19,15 @@ def process_video(source_img, frame_paths):
source_face = get_face(cv2.imread(source_img))
for frame_path in frame_paths:
frame = cv2.imread(frame_path)
swapper = get_face_swapper()
try:
if core.globals.all_faces:
all_faces = get_all_faces(frame)
result = frame
for singleFace in all_faces:
if singleFace:
result = get_face_swapper().get(result, singleFace, source_face, paste_back=True)
result = swapper.get(result, singleFace, source_face, paste_back=True)
print('.', end='', flush=True)
else:
print('S', end='', flush=True)
@ -33,7 +35,7 @@ def process_video(source_img, frame_paths):
else:
face = get_face(frame)
if face:
result = get_face_swapper().get(frame, face, source_face, paste_back=True)
result = swapper.get(frame, face, source_face, paste_back=True)
cv2.imwrite(frame_path, result)
print('.', end='', flush=True)
else:

13
run.py
View File

@ -157,6 +157,10 @@ def toggle_fps_limit():
args['keep_fps'] = limit_fps.get() != True
def toggle_all_faces():
core.globals.all_faces = True if all_faces.get() == 1 else False
def toggle_keep_frames():
args['keep_frames'] = keep_frames.get() != True
@ -261,16 +265,21 @@ if __name__ == "__main__":
target_button = tk.Button(window, text="Select a target", command=select_target, bg="#2d3436", fg="#74b9ff", highlightthickness=4, relief="flat", highlightbackground="#74b9ff", activebackground="#74b9ff", borderwidth=4)
target_button.place(x=360,y=320,width=180,height=80)
# All faces checkbox
all_faces = tk.IntVar()
all_faces_checkbox = tk.Checkbutton(window, relief="groove", activebackground="#2d3436", activeforeground="#74b9ff", selectcolor="black", text="Process all faces in frame", fg="#dfe6e9", borderwidth=0, highlightthickness=0, bg="#2d3436", variable=all_faces, command=toggle_all_faces)
all_faces_checkbox.place(x=30,y=500,width=240,height=31)
# FPS limit checkbox
limit_fps = tk.IntVar()
fps_checkbox = tk.Checkbutton(window, relief="groove", activebackground="#2d3436", activeforeground="#74b9ff", selectcolor="black", text="Limit FPS to 30 ", fg="#dfe6e9", borderwidth=0, highlightthickness=0, bg="#2d3436", variable=limit_fps, command=toggle_fps_limit)
fps_checkbox.place(x=30,y=500,width=240,height=31)
fps_checkbox.place(x=30,y=475,width=240,height=31)
fps_checkbox.select()
# Keep frames checkbox
keep_frames = tk.IntVar()
frames_checkbox = tk.Checkbutton(window, relief="groove", activebackground="#2d3436", activeforeground="#74b9ff", selectcolor="black", text="Keep frames dir ", fg="#dfe6e9", borderwidth=0, highlightthickness=0, bg="#2d3436", variable=keep_frames, command=toggle_keep_frames)
frames_checkbox.place(x=37,y=450,width=240,height=31)
frames_checkbox.place(x=30,y=450,width=240,height=31)
# Start button
start_button = tk.Button(window, text="Start", bg="#f1c40f", relief="flat", borderwidth=0, highlightthickness=0, command=lambda: [save_file(), start()])