Merge branch 'next' of https://github.com/K1llMan/roop into next
This commit is contained in:
commit
8488f94b53
35
roop/core.py
35
roop/core.py
@ -126,6 +126,23 @@ def get_video_frame(video_path, frame_number = 1):
|
|||||||
cap.release()
|
cap.release()
|
||||||
|
|
||||||
|
|
||||||
|
def update_slider(video_path):
|
||||||
|
return lambda frame_number: preview.update(get_video_frame(video_path, frame_number))
|
||||||
|
|
||||||
|
|
||||||
|
def process_test_preview(video_path):
|
||||||
|
test_frame = process_faces(
|
||||||
|
get_face_single(cv2.imread(args['source_img'])),
|
||||||
|
get_video_frame(video_path, preview.current_frame.get()),
|
||||||
|
None
|
||||||
|
)
|
||||||
|
preview.update(test_frame)
|
||||||
|
|
||||||
|
|
||||||
|
def preview_handler(video_path):
|
||||||
|
return lambda: preview_thread(process_test_preview(video_path))
|
||||||
|
|
||||||
|
|
||||||
def preview_video(video_path):
|
def preview_video(video_path):
|
||||||
cap = cv2.VideoCapture(video_path)
|
cap = cv2.VideoCapture(video_path)
|
||||||
if not cap.isOpened():
|
if not cap.isOpened():
|
||||||
@ -146,22 +163,8 @@ def preview_video(video_path):
|
|||||||
# Preview
|
# Preview
|
||||||
preview.update(frame)
|
preview.update(frame)
|
||||||
amount_of_frames = cap.get(cv2.CAP_PROP_FRAME_COUNT)
|
amount_of_frames = cap.get(cv2.CAP_PROP_FRAME_COUNT)
|
||||||
|
preview.init_slider(amount_of_frames, update_slider(video_path))
|
||||||
def update_slider(frame_number):
|
preview.set_preview_handler(preview_handler(video_path))
|
||||||
preview.update(get_video_frame(video_path, frame_number))
|
|
||||||
|
|
||||||
preview.init_slider(amount_of_frames, update_slider)
|
|
||||||
|
|
||||||
def test_handler():
|
|
||||||
test_frame = process_faces(
|
|
||||||
get_face_single(cv2.imread(args['source_img'])),
|
|
||||||
get_video_frame(video_path, preview.current_frame.get()),
|
|
||||||
None,
|
|
||||||
roop.globals.all_faces
|
|
||||||
)
|
|
||||||
preview.update(test_frame)
|
|
||||||
|
|
||||||
preview.set_test_handler(lambda: preview_thread(test_handler))
|
|
||||||
|
|
||||||
cap.release()
|
cap.release()
|
||||||
|
|
||||||
|
@ -29,9 +29,9 @@ def swap_face_in_frame(source_face, target_face, frame):
|
|||||||
return frame
|
return frame
|
||||||
|
|
||||||
|
|
||||||
def process_faces(source_face, frame, progress, all_faces=False):
|
def process_faces(source_face, frame, progress):
|
||||||
progress_status = 'S'
|
progress_status = 'S'
|
||||||
if all_faces:
|
if roop.globals.all_faces:
|
||||||
many_faces = get_face_many(frame)
|
many_faces = get_face_many(frame)
|
||||||
if many_faces:
|
if many_faces:
|
||||||
for face in many_faces:
|
for face in many_faces:
|
||||||
@ -56,7 +56,7 @@ def process_video(source_img, frame_paths, preview_callback):
|
|||||||
for frame_path in frame_paths:
|
for frame_path in frame_paths:
|
||||||
frame = cv2.imread(frame_path)
|
frame = cv2.imread(frame_path)
|
||||||
try:
|
try:
|
||||||
result = process_faces(source_face, frame, progress, roop.globals.all_faces)
|
result = process_faces(source_face, frame, progress)
|
||||||
cv2.imwrite(frame_path, result)
|
cv2.imwrite(frame_path, result)
|
||||||
if preview_callback:
|
if preview_callback:
|
||||||
preview_callback(cv2.cvtColor(result, cv2.COLOR_BGR2RGB))
|
preview_callback(cv2.cvtColor(result, cv2.COLOR_BGR2RGB))
|
||||||
|
@ -50,7 +50,7 @@ class PreviewWindow:
|
|||||||
def slider_changed(self, event):
|
def slider_changed(self, event):
|
||||||
self.frame_change(self.frame_slider.get())
|
self.frame_change(self.frame_slider.get())
|
||||||
|
|
||||||
def set_test_handler(self, test_handler):
|
def set_preview_handler(self, test_handler):
|
||||||
self.test_button.config(command = test_handler)
|
self.test_button.config(command = test_handler)
|
||||||
|
|
||||||
# Show the window
|
# Show the window
|
||||||
|
Loading…
Reference in New Issue
Block a user