real time face swap and one-click video deepfake with only a single image
198 matches across 9 categories. Click a row to expand file-level details.
| Severity | File | Line | Snippet |
|---|---|---|---|
| MEDIUM | modules/ui.py | 84 | # ─── constants ──────────────────────────────────────────────────────────── |
| MEDIUM | modules/ui.py | 108 | # ─── modern dark stylesheet ─────────────────────────────────────────────── |
| MEDIUM | modules/ui.py | 240 | # ─── image utilities ───────────────────────────────────────────────────── |
| MEDIUM | modules/ui.py | 296 | # ─── persistence ───────────────────────────────────────────────────────── |
| MEDIUM | modules/ui.py | 351 | # ─── thread-safe status bridge ─────────────────────────────────────────── |
| MEDIUM | modules/ui.py | 367 | # ─── public API ────────────────────────────────────────────────────────── |
| MEDIUM | modules/ui.py | 397 | # ─── camera enumeration (unchanged from tk version) ────────────────────── |
| MEDIUM | modules/ui.py | 427 | # ─── main window ───────────────────────────────────────────────────────── |
| MEDIUM | modules/ui.py | 510 | # ── image row ──────────────────────────────────────────────────────── |
| MEDIUM | modules/ui.py | 564 | # ── options card ───────────────────────────────────────────────────── |
| MEDIUM | modules/ui.py | 632 | # ── sliders card ───────────────────────────────────────────────────── |
| MEDIUM | modules/ui.py | 673 | # ── action row ─────────────────────────────────────────────────────── |
| MEDIUM | modules/ui.py | 696 | # ── camera card ────────────────────────────────────────────────────── |
| MEDIUM | modules/ui.py | 724 | # ── slot handlers ──────────────────────────────────────────────────── |
| MEDIUM | modules/ui.py | 951 | # ─── preview window (still-image / video scrub) ────────────────────────── |
| MEDIUM | modules/ui.py | 1004 | # ─── webcam preview window ─────────────────────────────────────────────── |
| MEDIUM | modules/ui.py | 1256 | # ─── mapper dialogs (image/video + live) ──────────────────────────────── |
| MEDIUM | modules/ui.py | 1503 | # ─── entry point ───────────────────────────────────────────────────────── |
| MEDIUM | modules/ui.py | 215 | # ─── module-level state ─────────────────────────────────────────────────── |
| MEDIUM | modules/gpu_processing.py | 52 | # --------------------------------------------------------------------------- |
| MEDIUM | modules/gpu_processing.py | 54 | # --------------------------------------------------------------------------- |
| MEDIUM | modules/gpu_processing.py | 26 | # --------------------------------------------------------------------------- |
| MEDIUM | modules/gpu_processing.py | 28 | # --------------------------------------------------------------------------- |
| MEDIUM | modules/gpu_processing.py | 82 | # --------------------------------------------------------------------------- |
| MEDIUM | modules/gpu_processing.py | 84 | # --------------------------------------------------------------------------- |
| MEDIUM | modules/gpu_processing.py | 114 | # --------------------------------------------------------------------------- |
| MEDIUM | modules/gpu_processing.py | 116 | # --------------------------------------------------------------------------- |
| MEDIUM | modules/gpu_processing.py | 142 | # --------------------------------------------------------------------------- |
| MEDIUM | modules/gpu_processing.py | 144 | # --------------------------------------------------------------------------- |
| MEDIUM | modules/gpu_processing.py | 181 | # --------------------------------------------------------------------------- |
| MEDIUM | modules/gpu_processing.py | 183 | # --------------------------------------------------------------------------- |
| MEDIUM | modules/gpu_processing.py | 226 | # --------------------------------------------------------------------------- |
| MEDIUM | modules/gpu_processing.py | 228 | # --------------------------------------------------------------------------- |
| MEDIUM | modules/gpu_processing.py | 251 | # --------------------------------------------------------------------------- |
| MEDIUM | modules/gpu_processing.py | 253 | # --------------------------------------------------------------------------- |
| MEDIUM | modules/gpu_processing.py | 277 | # --------------------------------------------------------------------------- |
| MEDIUM | modules/gpu_processing.py | 279 | # --------------------------------------------------------------------------- |
| MEDIUM | modules/onnx_optimize.py | 97 | # --------------------------------------------------------------------------- |
| MEDIUM | modules/onnx_optimize.py | 99 | # --------------------------------------------------------------------------- |
| MEDIUM | modules/onnx_optimize.py | 209 | # --------------------------------------------------------------------------- |
| MEDIUM | modules/onnx_optimize.py | 215 | # --------------------------------------------------------------------------- |
| MEDIUM | modules/onnx_optimize.py | 351 | # --------------------------------------------------------------------------- |
| MEDIUM | modules/onnx_optimize.py | 353 | # --------------------------------------------------------------------------- |
| MEDIUM | modules/onnx_optimize.py | 426 | # --------------------------------------------------------------------------- |
| MEDIUM | modules/onnx_optimize.py | 437 | # --------------------------------------------------------------------------- |
| MEDIUM | modules/onnx_optimize.py | 531 | # --------------------------------------------------------------------------- |
| MEDIUM | modules/onnx_optimize.py | 533 | # --------------------------------------------------------------------------- |
| MEDIUM | modules/processors/frame/face_swapper.py | 1089 | # ========================== |
| MEDIUM | modules/processors/frame/face_swapper.py | 1091 | # ========================== |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | modules/face_analyser.py | 216 | except Exception as e: # pragma: no cover - never break the swap |
| MEDIUM | modules/face_analyser.py | 217 | print(f"Error computing 2d106 landmarks: {e}") |
| MEDIUM | modules/ui.py | 409 | print(f"Error detecting cameras: {exc}") |
| LOW | modules/ui.py | 1231 | except Exception: |
| LOW | modules/ui.py | 1236 | except Exception: |
| LOW | modules/ui.py | 1240 | except Exception: |
| LOW | modules/ui.py | 408 | except Exception as exc: |
| LOW | modules/ui.py | 794 | except Exception as exc: |
| LOW | modules/core.py | 220 | except Exception as e: |
| MEDIUM | modules/core.py | 221 | print("Error copying file:", str(e)) |
| LOW | modules/gpu_processing.py | 48 | except Exception: |
| LOW | modules/platform_info.py | 26 | except Exception: |
| LOW | modules/platform_info.py | 34 | except Exception: |
| MEDIUM | modules/platform_info.py | 22 | def _detect_torch_cuda() -> bool: |
| MEDIUM | modules/platform_info.py | 30 | def _detect_onnx_providers() -> List[str]: |
| LOW | modules/utilities.py | 37 | except Exception as error: |
| LOW | modules/utilities.py | 59 | except Exception: |
| LOW | modules/utilities.py | 347 | except Exception: |
| LOW | modules/video_capture.py | 73 | except Exception: |
| LOW | modules/video_capture.py | 109 | except Exception as e: |
| LOW | modules/video_capture.py | 155 | except Exception: |
| LOW | modules/onnx_optimize.py | 124 | except Exception: |
| LOW | modules/processors/frame/face_enhancer.py | 105 | except Exception as e: |
| LOW | modules/processors/frame/face_enhancer.py | 368 | except Exception as e: |
| LOW | modules/processors/frame/core.py | 71 | except Exception as e: |
| LOW | modules/processors/frame/core.py | 81 | except Exception as e: |
| LOW | modules/processors/frame/core.py | 106 | except Exception as e: |
| MEDIUM | modules/processors/frame/core.py | 107 | print(f"Error processing frame: {e}") |
| LOW | modules/processors/frame/core.py | 159 | except Exception as e: |
| LOW | modules/processors/frame/core.py | 312 | except Exception as e: |
| LOW | modules/processors/frame/core.py | 318 | except Exception: |
| LOW | modules/processors/frame/core.py | 398 | except Exception as e: |
| LOW | modules/processors/frame/core.py | 406 | except Exception: |
| LOW | modules/processors/frame/face_enhancer_gpen512.py | 75 | except Exception as e: |
| LOW | modules/processors/frame/face_enhancer_gpen512.py | 80 | except Exception as e: |
| LOW | modules/processors/frame/_onnx_enhancer.py | 85 | except Exception: |
| LOW | modules/processors/frame/_onnx_enhancer.py | 110 | except Exception: |
| LOW | modules/processors/frame/_onnx_enhancer.py | 136 | except Exception as e: |
| LOW | modules/processors/frame/face_masking.py | 411 | except Exception as e: |
| LOW | modules/processors/frame/face_masking.py | 503 | except Exception as e: |
| LOW | modules/processors/frame/face_masking.py | 543 | except Exception as e: |
| LOW | modules/processors/frame/face_enhancer_gpen256.py | 75 | except Exception as e: |
| LOW | modules/processors/frame/face_enhancer_gpen256.py | 80 | except Exception as e: |
| MEDIUM | modules/processors/frame/face_swapper.py | 562 | print(f"Error during face swap: {e}") |
| MEDIUM | modules/processors/frame/face_swapper.py | 1218 | print(f"Error in create_lower_mouth_mask: {e}") # Print unexpected errors |
| MEDIUM | modules/processors/frame/face_swapper.py | 1277 | # print(f"Error drawing text for visualization: {e}") # Optional debug |
| MEDIUM | modules/processors/frame/face_swapper.py | 1378 | print(f"Error applying mouth area: {e}") # Optional debug |
| MEDIUM | modules/processors/frame/face_swapper.py | 1457 | print(f"Error creating convex hull for face mask: {hull_e}") |
| MEDIUM | modules/processors/frame/face_swapper.py | 1264 | print(f"Error drawing polygon for visualization: {e}") # Optional debug |
| MEDIUM | modules/processors/frame/face_swapper.py | 1474 | print(f"Error creating face mask: {e}") # Print unexpected errors |
| LOW | modules/processors/frame/face_swapper.py | 561 | except Exception as e: |
| LOW | modules/processors/frame/face_swapper.py | 1217 | except Exception as e: |
| LOW | modules/processors/frame/face_swapper.py | 1377 | except Exception as e: |
| LOW | modules/processors/frame/face_swapper.py | 1456 | except Exception as hull_e: |
| LOW | modules/processors/frame/face_swapper.py | 122 | except Exception: |
| LOW | modules/processors/frame/face_swapper.py | 172 | except Exception: |
| LOW | modules/processors/frame/face_swapper.py | 286 | except Exception as e: |
| LOW | modules/processors/frame/face_swapper.py | 366 | except Exception: |
| LOW | modules/processors/frame/face_swapper.py | 423 | except Exception as e: |
| LOW | modules/processors/frame/face_swapper.py | 926 | except Exception as e: |
| 12 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| MEDIUM | tkinter_fix.py | 8 | # Create a monkey patch for the internal _tkinter module |
| MEDIUM | tkinter_fix.py | 15 | # Define the missing ::tk::ScreenChanged procedure |
| MEDIUM | modules/tkinter_fix.py | 5 | # Create a monkey patch for the internal _tkinter module |
| MEDIUM | modules/tkinter_fix.py | 12 | # Define the missing ::tk::ScreenChanged procedure |
| MEDIUM | modules/utilities.py | 292 | # Create a specific SSL context for macOS to avoid globally disabling verification |
| MEDIUM | modules/processors/frame/face_masking.py | 55 | # Create a slightly larger convex hull for padding |
| MEDIUM | modules/processors/frame/face_masking.py | 129 | # Create the mask |
| MEDIUM | modules/processors/frame/face_swapper.py | 569 | # Create a mask for the target face |
| MEDIUM | modules/processors/frame/face_swapper.py | 572 | # Create the mouth mask using the ORIGINAL frame (before swap) for cutout |
| MEDIUM | modules/processors/frame/face_swapper.py | 1186 | # Create the mask ROI |
| MEDIUM | modules/processors/frame/face_swapper.py | 1311 | # Define the Region of Interest (ROI) on the target frame (swapped frame) |
| MEDIUM | modules/processors/frame/face_swapper.py | 1349 | # Create a mask based on the mouth_polygon, relative to the ROI |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | modules/face_analyser.py | 329 | |
| LOW | modules/face_analyser.py | 354 | |
| LOW | modules/ui.py | 1045 | |
| LOW | modules/utilities.py | 80 | |
| LOW | modules/utilities.py | 282 | |
| LOW | modules/video_capture.py | 37 | |
| LOW | modules/onnx_optimize.py | 217 | |
| LOW | modules/onnx_optimize.py | 355 | |
| LOW | modules/onnx_optimize.py | 439 | |
| LOW | modules/processors/frame/face_enhancer.py | 287 | |
| LOW | modules/processors/frame/core.py | 58 | |
| LOW | modules/processors/frame/core.py | 84 | |
| LOW | modules/processors/frame/core.py | 118 | |
| LOW | modules/processors/frame/core.py | 258 | |
| LOW | modules/processors/frame/_onnx_enhancer.py | 24 | |
| LOW | modules/processors/frame/face_swapper.py | 67 | |
| LOW | modules/processors/frame/face_swapper.py | 227 | |
| LOW | modules/processors/frame/face_swapper.py | 733 | |
| LOW | modules/processors/frame/face_swapper.py | 770 | |
| LOW | modules/processors/frame/face_swapper.py | 895 | |
| LOW | modules/processors/frame/face_swapper.py | 1010 |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | tests/test_face_analyser_get_one_face.py | 59 | def test_uses_supplied_detected_faces_without_reanalysing_frame(self): |
| LOW | tests/test_face_analyser_get_one_face.py | 71 | def test_supplied_empty_detected_faces_returns_none(self): |
| LOW | tests/test_face_analyser_get_one_face.py | 81 | def test_without_supplied_faces_preserves_existing_detection_path(self): |
| LOW | modules/face_analyser.py | 255 | def get_unique_faces_from_target_image() -> Any: |
| LOW | modules/face_analyser.py | 278 | def get_unique_faces_from_target_video() -> Any: |
| LOW | modules/core.py | 119 | def encode_execution_providers(execution_providers: List[str]) -> List[str]: |
| LOW | modules/core.py | 123 | def decode_execution_providers(execution_providers: List[str]) -> List[str]: |
| LOW | modules/core.py | 134 | def suggest_default_execution_provider() -> str: |
| LOW | modules/core.py | 143 | def suggest_execution_providers() -> List[str]: |
| LOW | modules/core.py | 147 | def suggest_execution_threads() -> int: |
| LOW | modules/processors/frame/core.py | 32 | def load_frame_processor_module(frame_processor: str) -> Any: |
| LOW | modules/processors/frame/core.py | 48 | def get_frame_processors_modules(frame_processors: List[str]) -> List[ModuleType]: |
| LOW | modules/processors/frame/core.py | 58 | def set_frame_processors_modules_from_ui(frame_processors: List[str]) -> None: |
| LOW | modules/processors/frame/face_swapper.py | 1227 | def draw_mouth_mask_visualization( |
| LOW | modules/processors/frame/face_swapper.py | 428 | def _cuda_graph_swap_inference(blob: np.ndarray, latent: np.ndarray) -> np.ndarray: |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | benchmark_pipeline.py | 17 | |
| LOW | modules/face_analyser.py | 8 | |
| LOW | modules/run.py | 4 | |
| LOW | modules/ui.py | 11 | |
| LOW | modules/cluster_analysis.py | 3 | |
| LOW | modules/gpu_processing.py | 19 | |
| LOW | modules/gpu_processing.py | 24 | |
| LOW | modules/platform_info.py | 10 | |
| LOW | modules/video_capture.py | 3 | |
| LOW | modules/processors/frame/face_enhancer.py | 14 | |
| LOW | modules/processors/frame/face_enhancer_gpen512.py | 8 | |
| LOW | modules/processors/frame/face_masking.py | 5 | |
| LOW | modules/processors/frame/face_enhancer_gpen256.py | 8 | |
| LOW | modules/processors/frame/face_swapper.py | 19 |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | modules/processors/frame/face_swapper.py | 568 | if mouth_mask_enabled: # Check if mouth_mask is enabled |
| LOW | modules/processors/frame/face_swapper.py | 789 | # Check if target is a file path (image or video) or live stream |
| LOW | modules/processors/frame/face_swapper.py | 801 | if target_info: # Check if target info exists |
| LOW | modules/processors/frame/face_swapper.py | 808 | if target_frames_data: # Check if frame data exists |
| LOW | modules/processors/frame/face_swapper.py | 812 | if faces_in_frame: # Check if faces exist |
| LOW | modules/processors/frame/face_swapper.py | 977 | # Check if processing actually returned a frame |
| LOW | modules/processors/frame/face_swapper.py | 1238 | # Check if polygon is valid for drawing |
| LOW | modules/processors/frame/face_swapper.py | 1334 | # Check if mouth_cutout has valid dimensions before resizing |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | modules/processors/frame/face_swapper.py | 1451 | # Fallback: use bounding box of landmarks? Or just return empty mask? |
| MEDIUM | modules/processors/frame/face_swapper.py | 123 | pass # fall through to the robust bbox-ellipse path below |
| LOW | modules/processors/frame/face_swapper.py | 1381 | pass # Don't crash, just return the frame as is |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | modules/gpu_processing.py | 21 | import os |
| LOW | modules/video_capture.py | 41 | # device_index comes from pygrabber.FilterGraph (DirectShow |
| LOW | modules/onnx_optimize.py | 421 | del graph.node[:] |
| LOW | modules/processors/frame/face_swapper.py | 1101 | # Validate face and landmarks |