Repository Analysis

hacksider/Deep-Live-Cam

real time face swap and one-click video deepfake with only a single image

36.4 Strong AI signal View on GitHub
36.4
Adjusted Score
36.4
Raw Score
100%
Time Factor
2026-05-24
Last Push
93,437
Stars
Python
Language
9,023
Lines of Code
51
Files
198
Pattern Hits
2026-05-31
Scan Date

Score History

Severity Breakdown

CRITICAL 0HIGH 0MEDIUM 75LOW 123

Pattern Findings

198 matches across 9 categories. Click a row to expand file-level details.

Decorative Section Separators49 hits · 148 pts
SeverityFileLineSnippet
MEDIUMmodules/ui.py84# ─── constants ────────────────────────────────────────────────────────────
MEDIUMmodules/ui.py108# ─── modern dark stylesheet ───────────────────────────────────────────────
MEDIUMmodules/ui.py240# ─── image utilities ─────────────────────────────────────────────────────
MEDIUMmodules/ui.py296# ─── persistence ─────────────────────────────────────────────────────────
MEDIUMmodules/ui.py351# ─── thread-safe status bridge ───────────────────────────────────────────
MEDIUMmodules/ui.py367# ─── public API ──────────────────────────────────────────────────────────
MEDIUMmodules/ui.py397# ─── camera enumeration (unchanged from tk version) ──────────────────────
MEDIUMmodules/ui.py427# ─── main window ─────────────────────────────────────────────────────────
MEDIUMmodules/ui.py510 # ── image row ────────────────────────────────────────────────────────
MEDIUMmodules/ui.py564 # ── options card ─────────────────────────────────────────────────────
MEDIUMmodules/ui.py632 # ── sliders card ─────────────────────────────────────────────────────
MEDIUMmodules/ui.py673 # ── action row ───────────────────────────────────────────────────────
MEDIUMmodules/ui.py696 # ── camera card ──────────────────────────────────────────────────────
MEDIUMmodules/ui.py724 # ── slot handlers ────────────────────────────────────────────────────
MEDIUMmodules/ui.py951# ─── preview window (still-image / video scrub) ──────────────────────────
MEDIUMmodules/ui.py1004# ─── webcam preview window ───────────────────────────────────────────────
MEDIUMmodules/ui.py1256# ─── mapper dialogs (image/video + live) ────────────────────────────────
MEDIUMmodules/ui.py1503# ─── entry point ─────────────────────────────────────────────────────────
MEDIUMmodules/ui.py215# ─── module-level state ───────────────────────────────────────────────────
MEDIUMmodules/gpu_processing.py52# ---------------------------------------------------------------------------
MEDIUMmodules/gpu_processing.py54# ---------------------------------------------------------------------------
MEDIUMmodules/gpu_processing.py26# ---------------------------------------------------------------------------
MEDIUMmodules/gpu_processing.py28# ---------------------------------------------------------------------------
MEDIUMmodules/gpu_processing.py82# ---------------------------------------------------------------------------
MEDIUMmodules/gpu_processing.py84# ---------------------------------------------------------------------------
MEDIUMmodules/gpu_processing.py114# ---------------------------------------------------------------------------
MEDIUMmodules/gpu_processing.py116# ---------------------------------------------------------------------------
MEDIUMmodules/gpu_processing.py142# ---------------------------------------------------------------------------
MEDIUMmodules/gpu_processing.py144# ---------------------------------------------------------------------------
MEDIUMmodules/gpu_processing.py181# ---------------------------------------------------------------------------
MEDIUMmodules/gpu_processing.py183# ---------------------------------------------------------------------------
MEDIUMmodules/gpu_processing.py226# ---------------------------------------------------------------------------
MEDIUMmodules/gpu_processing.py228# ---------------------------------------------------------------------------
MEDIUMmodules/gpu_processing.py251# ---------------------------------------------------------------------------
MEDIUMmodules/gpu_processing.py253# ---------------------------------------------------------------------------
MEDIUMmodules/gpu_processing.py277# ---------------------------------------------------------------------------
MEDIUMmodules/gpu_processing.py279# ---------------------------------------------------------------------------
MEDIUMmodules/onnx_optimize.py97# ---------------------------------------------------------------------------
MEDIUMmodules/onnx_optimize.py99# ---------------------------------------------------------------------------
MEDIUMmodules/onnx_optimize.py209# ---------------------------------------------------------------------------
MEDIUMmodules/onnx_optimize.py215# ---------------------------------------------------------------------------
MEDIUMmodules/onnx_optimize.py351# ---------------------------------------------------------------------------
MEDIUMmodules/onnx_optimize.py353# ---------------------------------------------------------------------------
MEDIUMmodules/onnx_optimize.py426# ---------------------------------------------------------------------------
MEDIUMmodules/onnx_optimize.py437# ---------------------------------------------------------------------------
MEDIUMmodules/onnx_optimize.py531# ---------------------------------------------------------------------------
MEDIUMmodules/onnx_optimize.py533# ---------------------------------------------------------------------------
MEDIUMmodules/processors/frame/face_swapper.py1089# ==========================
MEDIUMmodules/processors/frame/face_swapper.py1091# ==========================
Excessive Try-Catch Wrapping72 hits · 80 pts
SeverityFileLineSnippet
LOWmodules/face_analyser.py216 except Exception as e: # pragma: no cover - never break the swap
MEDIUMmodules/face_analyser.py217 print(f"Error computing 2d106 landmarks: {e}")
MEDIUMmodules/ui.py409 print(f"Error detecting cameras: {exc}")
LOWmodules/ui.py1231 except Exception:
LOWmodules/ui.py1236 except Exception:
LOWmodules/ui.py1240 except Exception:
LOWmodules/ui.py408 except Exception as exc:
LOWmodules/ui.py794 except Exception as exc:
LOWmodules/core.py220 except Exception as e:
MEDIUMmodules/core.py221 print("Error copying file:", str(e))
LOWmodules/gpu_processing.py48 except Exception:
LOWmodules/platform_info.py26 except Exception:
LOWmodules/platform_info.py34 except Exception:
MEDIUMmodules/platform_info.py22def _detect_torch_cuda() -> bool:
MEDIUMmodules/platform_info.py30def _detect_onnx_providers() -> List[str]:
LOWmodules/utilities.py37 except Exception as error:
LOWmodules/utilities.py59 except Exception:
LOWmodules/utilities.py347 except Exception:
LOWmodules/video_capture.py73 except Exception:
LOWmodules/video_capture.py109 except Exception as e:
LOWmodules/video_capture.py155 except Exception:
LOWmodules/onnx_optimize.py124 except Exception:
LOWmodules/processors/frame/face_enhancer.py105 except Exception as e:
LOWmodules/processors/frame/face_enhancer.py368 except Exception as e:
LOWmodules/processors/frame/core.py71 except Exception as e:
LOWmodules/processors/frame/core.py81 except Exception as e:
LOWmodules/processors/frame/core.py106 except Exception as e:
MEDIUMmodules/processors/frame/core.py107 print(f"Error processing frame: {e}")
LOWmodules/processors/frame/core.py159 except Exception as e:
LOWmodules/processors/frame/core.py312 except Exception as e:
LOWmodules/processors/frame/core.py318 except Exception:
LOWmodules/processors/frame/core.py398 except Exception as e:
LOWmodules/processors/frame/core.py406 except Exception:
LOWmodules/processors/frame/face_enhancer_gpen512.py75 except Exception as e:
LOWmodules/processors/frame/face_enhancer_gpen512.py80 except Exception as e:
LOWmodules/processors/frame/_onnx_enhancer.py85 except Exception:
LOWmodules/processors/frame/_onnx_enhancer.py110 except Exception:
LOWmodules/processors/frame/_onnx_enhancer.py136 except Exception as e:
LOWmodules/processors/frame/face_masking.py411 except Exception as e:
LOWmodules/processors/frame/face_masking.py503 except Exception as e:
LOWmodules/processors/frame/face_masking.py543 except Exception as e:
LOWmodules/processors/frame/face_enhancer_gpen256.py75 except Exception as e:
LOWmodules/processors/frame/face_enhancer_gpen256.py80 except Exception as e:
MEDIUMmodules/processors/frame/face_swapper.py562 print(f"Error during face swap: {e}")
MEDIUMmodules/processors/frame/face_swapper.py1218 print(f"Error in create_lower_mouth_mask: {e}") # Print unexpected errors
MEDIUMmodules/processors/frame/face_swapper.py1277 # print(f"Error drawing text for visualization: {e}") # Optional debug
MEDIUMmodules/processors/frame/face_swapper.py1378 print(f"Error applying mouth area: {e}") # Optional debug
MEDIUMmodules/processors/frame/face_swapper.py1457 print(f"Error creating convex hull for face mask: {hull_e}")
MEDIUMmodules/processors/frame/face_swapper.py1264 print(f"Error drawing polygon for visualization: {e}") # Optional debug
MEDIUMmodules/processors/frame/face_swapper.py1474 print(f"Error creating face mask: {e}") # Print unexpected errors
LOWmodules/processors/frame/face_swapper.py561 except Exception as e:
LOWmodules/processors/frame/face_swapper.py1217 except Exception as e:
LOWmodules/processors/frame/face_swapper.py1377 except Exception as e:
LOWmodules/processors/frame/face_swapper.py1456 except Exception as hull_e:
LOWmodules/processors/frame/face_swapper.py122 except Exception:
LOWmodules/processors/frame/face_swapper.py172 except Exception:
LOWmodules/processors/frame/face_swapper.py286 except Exception as e:
LOWmodules/processors/frame/face_swapper.py366 except Exception:
LOWmodules/processors/frame/face_swapper.py423 except Exception as e:
LOWmodules/processors/frame/face_swapper.py926 except Exception as e:
12 more matches not shown…
Self-Referential Comments12 hits · 39 pts
SeverityFileLineSnippet
MEDIUMtkinter_fix.py8 # Create a monkey patch for the internal _tkinter module
MEDIUMtkinter_fix.py15 # Define the missing ::tk::ScreenChanged procedure
MEDIUMmodules/tkinter_fix.py5 # Create a monkey patch for the internal _tkinter module
MEDIUMmodules/tkinter_fix.py12 # Define the missing ::tk::ScreenChanged procedure
MEDIUMmodules/utilities.py292 # Create a specific SSL context for macOS to avoid globally disabling verification
MEDIUMmodules/processors/frame/face_masking.py55 # Create a slightly larger convex hull for padding
MEDIUMmodules/processors/frame/face_masking.py129 # Create the mask
MEDIUMmodules/processors/frame/face_swapper.py569 # Create a mask for the target face
MEDIUMmodules/processors/frame/face_swapper.py572 # Create the mouth mask using the ORIGINAL frame (before swap) for cutout
MEDIUMmodules/processors/frame/face_swapper.py1186 # Create the mask ROI
MEDIUMmodules/processors/frame/face_swapper.py1311 # Define the Region of Interest (ROI) on the target frame (swapped frame)
MEDIUMmodules/processors/frame/face_swapper.py1349 # Create a mask based on the mouth_polygon, relative to the ROI
Deep Nesting21 hits · 18 pts
SeverityFileLineSnippet
LOWmodules/face_analyser.py329
LOWmodules/face_analyser.py354
LOWmodules/ui.py1045
LOWmodules/utilities.py80
LOWmodules/utilities.py282
LOWmodules/video_capture.py37
LOWmodules/onnx_optimize.py217
LOWmodules/onnx_optimize.py355
LOWmodules/onnx_optimize.py439
LOWmodules/processors/frame/face_enhancer.py287
LOWmodules/processors/frame/core.py58
LOWmodules/processors/frame/core.py84
LOWmodules/processors/frame/core.py118
LOWmodules/processors/frame/core.py258
LOWmodules/processors/frame/_onnx_enhancer.py24
LOWmodules/processors/frame/face_swapper.py67
LOWmodules/processors/frame/face_swapper.py227
LOWmodules/processors/frame/face_swapper.py733
LOWmodules/processors/frame/face_swapper.py770
LOWmodules/processors/frame/face_swapper.py895
LOWmodules/processors/frame/face_swapper.py1010
Hyper-Verbose Identifiers15 hits · 16 pts
SeverityFileLineSnippet
LOWtests/test_face_analyser_get_one_face.py59 def test_uses_supplied_detected_faces_without_reanalysing_frame(self):
LOWtests/test_face_analyser_get_one_face.py71 def test_supplied_empty_detected_faces_returns_none(self):
LOWtests/test_face_analyser_get_one_face.py81 def test_without_supplied_faces_preserves_existing_detection_path(self):
LOWmodules/face_analyser.py255def get_unique_faces_from_target_image() -> Any:
LOWmodules/face_analyser.py278def get_unique_faces_from_target_video() -> Any:
LOWmodules/core.py119def encode_execution_providers(execution_providers: List[str]) -> List[str]:
LOWmodules/core.py123def decode_execution_providers(execution_providers: List[str]) -> List[str]:
LOWmodules/core.py134def suggest_default_execution_provider() -> str:
LOWmodules/core.py143def suggest_execution_providers() -> List[str]:
LOWmodules/core.py147def suggest_execution_threads() -> int:
LOWmodules/processors/frame/core.py32def load_frame_processor_module(frame_processor: str) -> Any:
LOWmodules/processors/frame/core.py48def get_frame_processors_modules(frame_processors: List[str]) -> List[ModuleType]:
LOWmodules/processors/frame/core.py58def set_frame_processors_modules_from_ui(frame_processors: List[str]) -> None:
LOWmodules/processors/frame/face_swapper.py1227def draw_mouth_mask_visualization(
LOWmodules/processors/frame/face_swapper.py428def _cuda_graph_swap_inference(blob: np.ndarray, latent: np.ndarray) -> np.ndarray:
Unused Imports14 hits · 12 pts
SeverityFileLineSnippet
LOWbenchmark_pipeline.py17
LOWmodules/face_analyser.py8
LOWmodules/run.py4
LOWmodules/ui.py11
LOWmodules/cluster_analysis.py3
LOWmodules/gpu_processing.py19
LOWmodules/gpu_processing.py24
LOWmodules/platform_info.py10
LOWmodules/video_capture.py3
LOWmodules/processors/frame/face_enhancer.py14
LOWmodules/processors/frame/face_enhancer_gpen512.py8
LOWmodules/processors/frame/face_masking.py5
LOWmodules/processors/frame/face_enhancer_gpen256.py8
LOWmodules/processors/frame/face_swapper.py19
Redundant / Tautological Comments8 hits · 8 pts
SeverityFileLineSnippet
LOWmodules/processors/frame/face_swapper.py568 if mouth_mask_enabled: # Check if mouth_mask is enabled
LOWmodules/processors/frame/face_swapper.py789 # Check if target is a file path (image or video) or live stream
LOWmodules/processors/frame/face_swapper.py801 if target_info: # Check if target info exists
LOWmodules/processors/frame/face_swapper.py808 if target_frames_data: # Check if frame data exists
LOWmodules/processors/frame/face_swapper.py812 if faces_in_frame: # Check if faces exist
LOWmodules/processors/frame/face_swapper.py977 # Check if processing actually returned a frame
LOWmodules/processors/frame/face_swapper.py1238 # Check if polygon is valid for drawing
LOWmodules/processors/frame/face_swapper.py1334 # Check if mouth_cutout has valid dimensions before resizing
AI Slop Vocabulary3 hits · 5 pts
SeverityFileLineSnippet
LOWmodules/processors/frame/face_swapper.py1451 # Fallback: use bounding box of landmarks? Or just return empty mask?
MEDIUMmodules/processors/frame/face_swapper.py123 pass # fall through to the robust bbox-ellipse path below
LOWmodules/processors/frame/face_swapper.py1381 pass # Don't crash, just return the frame as is
Over-Commented Block4 hits · 4 pts
SeverityFileLineSnippet
LOWmodules/gpu_processing.py21import os
LOWmodules/video_capture.py41 # device_index comes from pygrabber.FilterGraph (DirectShow
LOWmodules/onnx_optimize.py421 del graph.node[:]
LOWmodules/processors/frame/face_swapper.py1101 # Validate face and landmarks