From 33ed4b89fab9e24e943f0bb97034f5da618ec781 Mon Sep 17 00:00:00 2001 From: Makaru Date: Sat, 11 Jan 2025 16:55:01 +0800 Subject: [PATCH] Update face_swapper.py Update: - Support the opacity of the face swap in the UI --- modules/processors/frame/face_swapper.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/modules/processors/frame/face_swapper.py b/modules/processors/frame/face_swapper.py index c188393..a26db3b 100644 --- a/modules/processors/frame/face_swapper.py +++ b/modules/processors/frame/face_swapper.py @@ -21,10 +21,7 @@ THREAD_LOCK = threading.Lock() NAME = "DLC.FACE-SWAPPER" abs_dir = os.path.dirname(os.path.abspath(__file__)) -models_dir = os.path.join( - os.path.dirname(os.path.dirname(os.path.dirname(abs_dir))), "models" -) - +models_dir = os.path.join(os.path.dirname(os.path.dirname(os.path.dirname(abs_dir))), 'models') def pre_check() -> bool: download_directory_path = abs_dir @@ -59,7 +56,7 @@ def get_face_swapper() -> Any: with THREAD_LOCK: if FACE_SWAPPER is None: - model_path = os.path.join(models_dir, "inswapper_128_fp16.onnx") + model_path = os.path.join(models_dir, 'inswapper_128_fp16.onnx') FACE_SWAPPER = insightface.model_zoo.get_model( model_path, providers=modules.globals.execution_providers ) @@ -93,6 +90,9 @@ def swap_face(source_face: Face, target_face: Face, temp_frame: Frame) -> Frame: swapped_frame = draw_mouth_mask_visualization( swapped_frame, target_face, mouth_mask_data ) + opacity = getattr(modules.globals, "opacity", 1.0) + swapped_frame = cv2.addWeighted(temp_frame, 1 - opacity, swapped_frame, opacity, 0) + return swapped_frame