FIX: Restore Mouth Mask Functionality

MOUTH MASK FIXED:
- Added mouth mask processing back to swap_face_ultra_fast()
- Mouth Mask toggle now works properly
- Only processes mouth mask when enabled (no FPS impact when off)
- Kept FPS optimization while restoring functionality

 FUNCTIONALITY RESTORED:
- create_face_mask() for target face
- create_lower_mouth_mask() for mouth area
- apply_mouth_area() for mouth blending
- draw_mouth_mask_visualization() for debug display

 FPS STATUS:
- Maintained 10-19 FPS improvement
- Mouth mask only processes when toggle is ON
- No FPS impact when mouth mask is OFF
- Best of both worlds: speed + functionality

 WHAT WORKS NOW:
- Mouth Mask toggle
- Show Mouth Mask Box toggle
- Fast face swapping
- Good FPS performance
pull/1411/head
asateesh99 2025-07-16 04:33:10 +05:30
parent 2faaecbe15
commit f08c81f22a
1 changed files with 25 additions and 2 deletions

View File

@ -113,9 +113,32 @@ def swap_face_stable(source_face: Face, target_face: Face, temp_frame: Frame) ->
def swap_face_ultra_fast(source_face: Face, target_face: Face, temp_frame: Frame) -> Frame:
"""Absolute fastest face swap possible - no extra processing"""
"""Fast face swap with mouth mask support"""
face_swapper = get_face_swapper()
return face_swapper.get(temp_frame, target_face, source_face, paste_back=True)
swapped_frame = face_swapper.get(temp_frame, target_face, source_face, paste_back=True)
# Add mouth mask functionality back (only if enabled)
if modules.globals.mouth_mask:
# Create a mask for the target face
face_mask = create_face_mask(target_face, temp_frame)
# Create the mouth mask
mouth_mask, mouth_cutout, mouth_box, lower_lip_polygon = (
create_lower_mouth_mask(target_face, temp_frame)
)
# Apply the mouth area
swapped_frame = apply_mouth_area(
swapped_frame, mouth_cutout, mouth_box, face_mask, lower_lip_polygon
)
if modules.globals.show_mouth_mask_box:
mouth_mask_data = (mouth_mask, mouth_cutout, mouth_box, lower_lip_polygon)
swapped_frame = draw_mouth_mask_visualization(
swapped_frame, target_face, mouth_mask_data
)
return swapped_frame
def improve_forehead_matching(swapped_frame: Frame, source_face: Face, target_face: Face, original_frame: Frame) -> Frame: