Deepfakes Software For All
This report presents the forensic synthetic code analysis of deepfakes/faceswap, a Python project with 55,339 GitHub stars. SynthScan v2.0 examined 98,839 lines of code across 371 source files, recording 824 pattern matches distributed across 15 syntactic categories. The overall adjusted score of 11.6 places this repository in the Low AI signal band.
The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).
This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.
Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.
This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.
The scanner identified 824 distinct pattern matches across 15 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | tools/sort/sort.py | 0 | the entry point for triggering the training process. should only be called from :class:`lib.cli.launcher.scriptexecutor` | STRING |
| HIGH | tools/mask/mask.py | 0 | the entry point for triggering the training process. should only be called from :class:`lib.cli.launcher.scriptexecutor` | STRING |
| HIGH | scripts/train.py | 0 | the entry point for triggering the training process. should only be called from :class:`lib.cli.launcher.scriptexecutor` | STRING |
| HIGH | plugins/train/model/phaze_a_defaults.py | 0 | the default options for the faceswap sharpen scaling plugin. defaults files should be named `<plugin_name>_defaults.py` | STRING |
| HIGH | plugins/train/model/realface_defaults.py | 0 | the default options for the faceswap sharpen scaling plugin. defaults files should be named `<plugin_name>_defaults.py` | STRING |
| HIGH | plugins/train/model/dfl_sae_defaults.py | 0 | the default options for the faceswap sharpen scaling plugin. defaults files should be named `<plugin_name>_defaults.py` | STRING |
| HIGH | plugins/train/model/dfaker_defaults.py | 0 | the default options for the faceswap sharpen scaling plugin. defaults files should be named `<plugin_name>_defaults.py` | STRING |
| HIGH | plugins/train/model/unbalanced_defaults.py | 0 | the default options for the faceswap sharpen scaling plugin. defaults files should be named `<plugin_name>_defaults.py` | STRING |
| HIGH | plugins/train/model/dlight_defaults.py | 0 | the default options for the faceswap sharpen scaling plugin. defaults files should be named `<plugin_name>_defaults.py` | STRING |
| HIGH | plugins/train/model/villain_defaults.py | 0 | the default options for the faceswap sharpen scaling plugin. defaults files should be named `<plugin_name>_defaults.py` | STRING |
| HIGH | plugins/train/model/original_defaults.py | 0 | the default options for the faceswap sharpen scaling plugin. defaults files should be named `<plugin_name>_defaults.py` | STRING |
| HIGH | plugins/train/model/dfl_h128_defaults.py | 0 | the default options for the faceswap sharpen scaling plugin. defaults files should be named `<plugin_name>_defaults.py` | STRING |
| HIGH | plugins/extract/detect/retinaface_defaults.py | 0 | the default options for the faceswap sharpen scaling plugin. defaults files should be named `<plugin_name>_defaults.py` | STRING |
| HIGH | plugins/extract/detect/s3fd_defaults.py | 0 | the default options for the faceswap sharpen scaling plugin. defaults files should be named `<plugin_name>_defaults.py` | STRING |
| HIGH | plugins/extract/detect/mtcnn_defaults.py | 0 | the default options for the faceswap sharpen scaling plugin. defaults files should be named `<plugin_name>_defaults.py` | STRING |
| HIGH | plugins/extract/detect/cv2_dnn_defaults.py | 0 | the default options for the faceswap sharpen scaling plugin. defaults files should be named `<plugin_name>_defaults.py` | STRING |
| HIGH | plugins/extract/identity/vggface2_defaults.py | 0 | the default options for the faceswap sharpen scaling plugin. defaults files should be named `<plugin_name>_defaults.py` | STRING |
| HIGH | plugins/extract/identity/t_face_defaults.py | 0 | the default options for the faceswap sharpen scaling plugin. defaults files should be named `<plugin_name>_defaults.py` | STRING |
| HIGH | plugins/extract/align/fan_defaults.py | 0 | the default options for the faceswap sharpen scaling plugin. defaults files should be named `<plugin_name>_defaults.py` | STRING |
| HIGH | plugins/extract/align/hrnet_defaults.py | 0 | the default options for the faceswap sharpen scaling plugin. defaults files should be named `<plugin_name>_defaults.py` | STRING |
| HIGH | plugins/extract/mask/unet_dfl_defaults.py | 0 | the default options for the faceswap sharpen scaling plugin. defaults files should be named `<plugin_name>_defaults.py` | STRING |
| HIGH | plugins/extract/mask/custom_defaults.py | 0 | the default options for the faceswap sharpen scaling plugin. defaults files should be named `<plugin_name>_defaults.py` | STRING |
| HIGH | plugins/extract/mask/bisenet_fp_defaults.py | 0 | the default options for the faceswap sharpen scaling plugin. defaults files should be named `<plugin_name>_defaults.py` | STRING |
| HIGH | plugins/extract/mask/vgg_obstructed_defaults.py | 0 | the default options for the faceswap sharpen scaling plugin. defaults files should be named `<plugin_name>_defaults.py` | STRING |
| HIGH | plugins/extract/mask/vgg_clear_defaults.py | 0 | the default options for the faceswap sharpen scaling plugin. defaults files should be named `<plugin_name>_defaults.py` | STRING |
| HIGH | plugins/convert/color/color_transfer_defaults.py | 0 | the default options for the faceswap sharpen scaling plugin. defaults files should be named `<plugin_name>_defaults.py` | STRING |
| HIGH | plugins/convert/color/match_hist_defaults.py | 0 | the default options for the faceswap sharpen scaling plugin. defaults files should be named `<plugin_name>_defaults.py` | STRING |
| HIGH | plugins/convert/color/manual_balance_defaults.py | 0 | the default options for the faceswap sharpen scaling plugin. defaults files should be named `<plugin_name>_defaults.py` | STRING |
| HIGH | plugins/convert/writer/patch_defaults.py | 0 | the default options for the faceswap sharpen scaling plugin. defaults files should be named `<plugin_name>_defaults.py` | STRING |
| HIGH | plugins/convert/writer/pillow_defaults.py | 0 | the default options for the faceswap sharpen scaling plugin. defaults files should be named `<plugin_name>_defaults.py` | STRING |
| HIGH | plugins/convert/writer/ffmpeg_defaults.py | 0 | the default options for the faceswap sharpen scaling plugin. defaults files should be named `<plugin_name>_defaults.py` | STRING |
| HIGH | plugins/convert/writer/gif_defaults.py | 0 | the default options for the faceswap sharpen scaling plugin. defaults files should be named `<plugin_name>_defaults.py` | STRING |
| HIGH | plugins/convert/writer/opencv_defaults.py | 0 | the default options for the faceswap sharpen scaling plugin. defaults files should be named `<plugin_name>_defaults.py` | STRING |
| HIGH | plugins/convert/mask/mask_blend_defaults.py | 0 | the default options for the faceswap sharpen scaling plugin. defaults files should be named `<plugin_name>_defaults.py` | STRING |
| HIGH | plugins/convert/scaling/sharpen_defaults.py | 0 | the default options for the faceswap sharpen scaling plugin. defaults files should be named `<plugin_name>_defaults.py` | STRING |
| HIGH | plugins/extract/detect/retinaface.py | 0 | run model to get predictions parameters ---------- batch a batch of images ready to feed the model returns ------- the b | STRING |
| HIGH | plugins/extract/detect/cv2_dnn.py | 0 | run model to get predictions parameters ---------- batch a batch of images ready to feed the model returns ------- the b | STRING |
| HIGH | plugins/extract/detect/s3fd.py | 0 | run model to get predictions parameters ---------- batch a batch of images ready to feed the model returns ------- the b | STRING |
| HIGH | plugins/extract/detect/mtcnn.py | 0 | run model to get predictions parameters ---------- batch a batch of images ready to feed the model returns ------- the b | STRING |
| HIGH | plugins/extract/identity/vggface2.py | 0 | format the detected faces for prediction parameters ---------- batch the batch of aligned faces in the correct format fo | STRING |
| HIGH | plugins/extract/identity/t_face.py | 0 | format the detected faces for prediction parameters ---------- batch the batch of aligned faces in the correct format fo | STRING |
| HIGH | plugins/extract/mask/bisenet_fp.py | 0 | format the detected faces for prediction parameters ---------- batch the batch of aligned faces in the correct format fo | STRING |
| HIGH | plugins/extract/mask/vgg_obstructed.py | 0 | format the detected faces for prediction parameters ---------- batch the batch of aligned faces in the correct format fo | STRING |
| HIGH | plugins/extract/mask/vgg_clear.py | 0 | format the detected faces for prediction parameters ---------- batch the batch of aligned faces in the correct format fo | STRING |
| HIGH | plugins/extract/align/hrnet.py | 0 | format the roi faces detection boxes for prediction parameters ---------- batch the batch of face detection bounding box | STRING |
| HIGH | plugins/extract/align/cv2_dnn.py | 0 | format the roi faces detection boxes for prediction parameters ---------- batch the batch of face detection bounding box | STRING |
| HIGH | plugins/extract/align/fan.py | 0 | format the roi faces detection boxes for prediction parameters ---------- batch the batch of face detection bounding box | STRING |
| HIGH | plugins/extract/align/hrnet.py | 0 | predict the 68 point landmarks parameters ---------- feed the batch to feed into the aligner returns ------- the predict | STRING |
| HIGH | plugins/extract/align/fan.py | 0 | predict the 68 point landmarks parameters ---------- feed the batch to feed into the aligner returns ------- the predict | STRING |
| HIGH | plugins/extract/align/cv2_dnn.py | 0 | predict the 68 point landmarks parameters ---------- feed the batch to feed into the aligner returns ------- the predict | STRING |
| HIGH | plugins/extract/mask/bisenet_fp.py | 0 | neural network to process face image into a segmentation mask of the face | STRING |
| HIGH | plugins/extract/mask/vgg_obstructed.py | 0 | neural network to process face image into a segmentation mask of the face | STRING |
| HIGH | plugins/extract/mask/unet_dfl.py | 0 | neural network to process face image into a segmentation mask of the face | STRING |
| HIGH | plugins/extract/mask/vgg_clear.py | 0 | neural network to process face image into a segmentation mask of the face | STRING |
| HIGH | plugins/extract/mask/bisenet_fp.py | 0 | get the masks from the model parameters ---------- batch the batch to feed into the masker returns ------- the predicted | STRING |
| HIGH | plugins/extract/mask/vgg_obstructed.py | 0 | get the masks from the model parameters ---------- batch the batch to feed into the masker returns ------- the predicted | STRING |
| HIGH | plugins/extract/mask/unet_dfl.py | 0 | get the masks from the model parameters ---------- batch the batch to feed into the masker returns ------- the predicted | STRING |
| HIGH | plugins/extract/mask/vgg_clear.py | 0 | get the masks from the model parameters ---------- batch the batch to feed into the masker returns ------- the predicted | STRING |
| HIGH | tests/lib/model/losses/loss_test.py | 0 | tests for faceswap feature losses. adapted from keras tests. | STRING |
| HIGH | tests/lib/model/losses/perceptual_loss_test.py | 0 | tests for faceswap feature losses. adapted from keras tests. | STRING |
| 4 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | setup.py | 27 | logger = logging.getLogger(__name__) | CODE |
| LOW | setup.py | 88 | def set_backend(self, backend: T.Literal["nvidia", "apple_silicon", "cpu", "rocm"]) -> None: | CODE |
| LOW | setup.py | 99 | def set_requirements(self, requirements: str) -> None: | CODE |
| LOW | setup.py | 216 | def set_config(self) -> None: | CODE |
| LOW | update_deps.py | 14 | logger = logging.getLogger(__name__) | CODE |
| LOW | tools/sort/info_loader.py | 19 | logger = logging.getLogger(__name__) | CODE |
| LOW | tools/sort/info_loader.py | 181 | def update_png_header(self, filename: str, alignments: PNGAlignments) -> None: | CODE |
| LOW | tools/sort/sort.py | 24 | logger = logging.getLogger(__name__) | CODE |
| LOW | tools/sort/sort_methods_aligned.py | 22 | logger = logging.getLogger(__name__) | CODE |
| LOW | tools/sort/sort_methods.py | 32 | logger = logging.getLogger(__name__) | CODE |
| LOW | tools/mask/mask.py | 26 | logger = logging.getLogger(__name__) | CODE |
| LOW | tools/mask/mask_import.py | 27 | logger = logging.getLogger(__name__) | CODE |
| LOW | tools/mask/loader.py | 20 | logger = logging.getLogger(__name__) | CODE |
| LOW | tools/mask/mask_output.py | 27 | logger = logging.getLogger(__name__) | CODE |
| LOW | tools/mask/mask_generate.py | 25 | logger = logging.getLogger(__name__) | CODE |
| LOW | tools/mask/mask_generate.py | 147 | def _update_from_face(self, media: FrameFaces) -> None: | CODE |
| LOW | tools/mask/mask_generate.py | 172 | def _update_from_frame(self, media: FrameFaces) -> None: | CODE |
| LOW | tools/effmpeg/effmpeg.py | 23 | logger = logging.getLogger(__name__) | CODE |
| LOW | tools/effmpeg/effmpeg.py | 157 | def _set_output(self) -> None: | CODE |
| LOW | tools/effmpeg/effmpeg.py | 168 | def _set_ref_video(self) -> None: | CODE |
| LOW | tools/effmpeg/effmpeg.py | 207 | def _set_times(self) -> None: | CODE |
| LOW | tools/effmpeg/effmpeg.py | 216 | def _set_fps(self) -> None: | CODE |
| LOW | tools/manual/globals.py | 20 | logger = logging.getLogger(__name__) | CODE |
| LOW | tools/manual/globals.py | 232 | def set_face_index(self, index: int) -> None: | CODE |
| LOW | tools/manual/globals.py | 244 | def set_frame_count(self, count: int) -> None: | CODE |
| LOW | tools/manual/globals.py | 256 | def set_current_frame(self, image: np.ndarray, filename: str) -> None: | CODE |
| LOW | tools/manual/globals.py | 277 | def set_frame_display_dims(self, width: int, height: int) -> None: | CODE |
| LOW | tools/manual/globals.py | 300 | def set_zoomed(self, state: bool) -> None: | CODE |
| LOW | tools/manual/manual.py | 34 | logger = logging.getLogger(__name__) | CODE |
| LOW | tools/manual/manual.py | 289 | def _set_initial_layout(self) -> None: | CODE |
| LOW | tools/manual/manual.py | 397 | def _set_tk_callbacks(self) -> None: | CODE |
| LOW | tools/manual/manual.py | 413 | def _update_options(self, *args) -> None: # pylint:disable=unused-argument | CODE |
| LOW | tools/manual/manual.py | 539 | def set_normalization_method(self, method: T.Literal["none", "clahe", "hist", "mean"]) -> None: | CODE |
| LOW | tools/manual/thumbnails.py | 24 | logger = logging.getLogger(__name__) | CODE |
| LOW | tools/manual/thumbnails.py | 220 | def _set_thumbnail(self, filename: str, frame: np.ndarray, frame_index: int) -> None: | CODE |
| LOW | tools/manual/detected_faces.py | 28 | logger = logging.getLogger(__name__) | CODE |
| LOW | tools/manual/face_viewer/viewport.py | 22 | logger = logging.getLogger(__name__) | CODE |
| LOW | tools/manual/face_viewer/viewport.py | 155 | def _update_viewport(self, refresh_annotations: bool) -> None: | CODE |
| LOW | tools/manual/face_viewer/viewport.py | 741 | def update_mask(self, mask: np.ndarray | None) -> None: | CODE |
| LOW | tools/manual/face_viewer/frame.py | 29 | logger = logging.getLogger(__name__) | CODE |
| LOW | tools/manual/face_viewer/frame.py | 96 | def _update_viewport(self, event: tk.Event) -> None: # pylint:disable=unused-argument | CODE |
| LOW | tools/manual/face_viewer/frame.py | 136 | def set_annotation_display(self, key: str) -> None: | CODE |
| LOW | tools/manual/face_viewer/frame.py | 385 | def _update_mask_type(self) -> None: | CODE |
| LOW | tools/manual/face_viewer/frame.py | 446 | def _update_mesh_color(self) -> None: | CODE |
| LOW | tools/manual/face_viewer/frame.py | 459 | def _update_box_color(self) -> None: | CODE |
| LOW | tools/manual/face_viewer/interact.py | 18 | logger = logging.getLogger(__name__) | CODE |
| LOW | tools/manual/face_viewer/interact.py | 271 | def _set_active_objects(self) -> None: | CODE |
| LOW | tools/manual/face_viewer/interact.py | 346 | def _update_on_edit(self) -> None: | CODE |
| LOW | tools/manual/face_viewer/interact.py | 355 | def _update_face(self) -> None: | CODE |
| LOW | tools/manual/frame_viewer/control.py | 15 | logger = logging.getLogger(__name__) | CODE |
| LOW | tools/manual/frame_viewer/frame.py | 20 | logger = logging.getLogger(__name__) | CODE |
| LOW | tools/manual/frame_viewer/editor/mask.py | 168 | def update_annotation(self) -> None: | CODE |
| LOW | tools/manual/frame_viewer/editor/mask.py | 192 | def _set_face_meta_data(self, mask: align.Mask, face_index: int) -> None: | CODE |
| LOW | tools/manual/frame_viewer/editor/mask.py | 389 | def _update_roi_box(self, mask: align.Mask, face_index: int, color: str) -> None: | CODE |
| LOW | tools/manual/frame_viewer/editor/mask.py | 417 | def _update_cursor(self, event: tk.Event) -> None: | CODE |
| LOW | tools/manual/frame_viewer/editor/_base.py | 14 | logger = logging.getLogger(__name__) | CODE |
| LOW | tools/model/model.py | 26 | logger = logging.getLogger(__name__) | CODE |
| LOW | tools/preview/preview.py | 38 | logger = logging.getLogger(__name__) | CODE |
| LOW | tools/preview/preview.py | 195 | def set_busy(self) -> None: | CODE |
| LOW | tools/preview/preview.py | 241 | def set_needs_patch(self) -> None: | CODE |
| 211 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | setup.py | 4 | CODE | |
| LOW | setup.py | 25 | CODE | |
| LOW | tools/sort/info_loader.py | 2 | CODE | |
| LOW | tools/sort/sort.py | 3 | CODE | |
| LOW | tools/sort/sort_methods_aligned.py | 5 | CODE | |
| LOW | tools/sort/sort_methods.py | 7 | CODE | |
| LOW | tools/mask/mask.py | 3 | CODE | |
| LOW | tools/mask/mask.py | 23 | CODE | |
| LOW | tools/mask/mask_import.py | 3 | CODE | |
| LOW | tools/mask/loader.py | 4 | CODE | |
| LOW | tools/mask/mask_output.py | 3 | CODE | |
| LOW | tools/mask/mask_generate.py | 3 | CODE | |
| LOW | tools/mask/mask_generate.py | 20 | CODE | |
| LOW | tools/mask/mask_generate.py | 21 | CODE | |
| LOW | tools/manual/globals.py | 3 | CODE | |
| LOW | tools/manual/manual.py | 3 | CODE | |
| LOW | tools/manual/thumbnails.py | 3 | CODE | |
| LOW | tools/manual/detected_faces.py | 5 | CODE | |
| LOW | tools/manual/face_viewer/viewport.py | 3 | CODE | |
| LOW | tools/manual/face_viewer/frame.py | 3 | CODE | |
| LOW | tools/manual/face_viewer/interact.py | 3 | CODE | |
| LOW | tools/manual/frame_viewer/frame.py | 17 | CODE | |
| LOW | tools/manual/frame_viewer/frame.py | 17 | CODE | |
| LOW | tools/manual/frame_viewer/frame.py | 17 | CODE | |
| LOW | tools/manual/frame_viewer/frame.py | 17 | CODE | |
| LOW | tools/manual/frame_viewer/frame.py | 17 | CODE | |
| LOW | tools/manual/frame_viewer/frame.py | 17 | CODE | |
| LOW | tools/manual/frame_viewer/editor/mask.py | 3 | CODE | |
| LOW | tools/manual/frame_viewer/editor/__init__.py | 4 | CODE | |
| LOW | tools/manual/frame_viewer/editor/__init__.py | 5 | CODE | |
| LOW | tools/manual/frame_viewer/editor/__init__.py | 6 | CODE | |
| LOW | tools/manual/frame_viewer/editor/__init__.py | 7 | CODE | |
| LOW | tools/manual/frame_viewer/editor/__init__.py | 7 | CODE | |
| LOW | tools/manual/frame_viewer/editor/__init__.py | 8 | CODE | |
| LOW | tools/model/model.py | 3 | CODE | |
| LOW | tools/model/model.py | 18 | CODE | |
| LOW | tools/model/model.py | 18 | CODE | |
| LOW | tools/preview/preview.py | 3 | CODE | |
| LOW | tools/preview/viewer.py | 3 | CODE | |
| LOW | tools/preview/control_panels.py | 3 | CODE | |
| LOW | tools/alignments/media.py | 3 | CODE | |
| LOW | tools/alignments/alignments.py | 14 | CODE | |
| LOW | tools/alignments/alignments.py | 14 | CODE | |
| LOW | tools/alignments/alignments.py | 14 | CODE | |
| LOW | tools/alignments/alignments.py | 15 | CODE | |
| LOW | tools/alignments/alignments.py | 15 | CODE | |
| LOW | tools/alignments/alignments.py | 15 | CODE | |
| LOW | tools/alignments/alignments.py | 16 | CODE | |
| LOW | tools/alignments/alignments.py | 16 | CODE | |
| LOW | tools/alignments/jobs_frames.py | 3 | CODE | |
| LOW | tools/alignments/jobs.py | 3 | CODE | |
| LOW | tools/alignments/jobs_faces.py | 3 | CODE | |
| LOW | plugins/plugin_loader.py | 3 | CODE | |
| LOW | plugins/train/model/phaze_a.py | 5 | CODE | |
| LOW | plugins/train/model/_base/io.py | 11 | CODE | |
| LOW | plugins/train/model/_base/__init__.py | 4 | CODE | |
| LOW | plugins/train/model/_base/__init__.py | 4 | CODE | |
| LOW | plugins/train/model/_base/model.py | 6 | CODE | |
| LOW | plugins/train/model/_base/settings.py | 12 | CODE | |
| LOW | plugins/train/model/_base/settings.py | 25 | CODE | |
| 181 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/sort/sort_methods.py | 167 | def _binning_linear_threshold(self, units: str = "", multiplier: int = 1) -> list[list[str]]: | CODE |
| LOW | tools/mask/mask_import.py | 146 | def _file_list_to_frame_number(self, file_list: list[str]) -> dict[int, str]: | CODE |
| LOW | tools/manual/globals.py | 186 | def var_update_active_viewport(self) -> tk.BooleanVar: | CODE |
| LOW | tools/manual/face_viewer/frame.py | 394 | def _bind_mouse_wheel_scrolling(self) -> None: | CODE |
| LOW | tools/manual/face_viewer/frame.py | 734 | def transport_index_from_frame(self, frame_index: int) -> int | None: | CODE |
| LOW | tools/manual/frame_viewer/control.py | 58 | def _update_total_frame_count(self, *args): # pylint:disable=unused-argument | CODE |
| LOW | tools/manual/frame_viewer/frame.py | 255 | def _add_filter_threshold_slider(self, frame): | CODE |
| LOW | tools/manual/frame_viewer/frame.py | 455 | def _set_selected_action_tkvar(self): | CODE |
| LOW | tools/manual/frame_viewer/frame.py | 503 | def _disable_enable_copy_buttons(self, *args): # pylint:disable=unused-argument | CODE |
| LOW | tools/manual/frame_viewer/frame.py | 516 | def _disable_enable_reload_button(self, *args): # pylint:disable=unused-argument | CODE |
| LOW | tools/manual/frame_viewer/frame.py | 595 | def _display_optional_buttons(self, *args): # pylint:disable=unused-argument | CODE |
| LOW | tools/manual/frame_viewer/editor/mask.py | 138 | def _set_tk_mask_change_callback(self) -> tk.StringVar: | CODE |
| LOW | tools/manual/frame_viewer/editor/mask.py | 144 | def _set_tk_cursor_shape_change_callback(self) -> tk.StringVar: | CODE |
| LOW | tools/manual/frame_viewer/editor/mask.py | 332 | def _update_mask_image_zoomed(self, | CODE |
| LOW | tools/manual/frame_viewer/editor/mask.py | 355 | def _update_mask_image_full_frame(self, | CODE |
| LOW | tools/manual/frame_viewer/editor/_base.py | 576 | def _add_annotation_format_controls(self): | CODE |
| LOW | tools/manual/frame_viewer/editor/landmarks.py | 211 | def _update_cursor_point_mode(self, item_id): | CODE |
| LOW | tools/manual/frame_viewer/editor/landmarks.py | 234 | def _update_cursor_select_mode(self, event): | CODE |
| LOW | tools/manual/frame_viewer/editor/landmarks.py | 337 | def _snap_selection_to_points(self): | CODE |
| LOW | tools/manual/frame_viewer/editor/bounding_box.py | 116 | def _update_anchor_annotation(self, face_index, bounding_box, color): | CODE |
| LOW | tools/manual/frame_viewer/editor/bounding_box.py | 202 | def _check_cursor_bounding_box(self, event): | CODE |
| LOW | tools/manual/frame_viewer/editor/extract_box.py | 72 | def _update_anchor_annotation(self, face_index, extract_box, color): | CODE |
| LOW | tools/preview/preview.py | 522 | def _generate_converter_arguments(arguments: Namespace, | CODE |
| LOW | tools/preview/preview.py | 597 | def _update_converter_arguments(self) -> None: | CODE |
| LOW | tools/preview/control_panels.py | 359 | def _get_control_panel_options(self, | CODE |
| LOW | tools/alignments/alignments.py | 70 | def _get_alignments_locations(self) -> dict[str, list[str | None]]: | CODE |
| LOW | plugins/plugin_loader.py | 267 | def get_available_convert_plugins(convert_category: str, add_none: bool = True) -> list[str]: | CODE |
| LOW | plugins/train/model/phaze_a.py | 321 | def _validate_encoder_architecture(self) -> None: | CODE |
| LOW | plugins/train/model/realface.py | 61 | def get_dense_width_upscalers_numbers(self): | CODE |
| LOW | plugins/train/model/_base/io.py | 124 | def multiple_models_in_folder(self) -> list[str] | None: | CODE |
| LOW | plugins/train/model/_base/io.py | 585 | def _get_optimizer_and_group_ids(self) -> tuple[K_Optimizer, | CODE |
| LOW | plugins/train/model/_base/settings.py | 83 | def _set_keras_mixed_precision(cls, enable: bool) -> None: | CODE |
| LOW | plugins/train/model/_base/settings.py | 125 | def _get_mixed_precision_layers(self, layers: list[dict]) -> list[str]: | CODE |
| LOW | plugins/train/model/_base/settings.py | 190 | def get_mixed_precision_layers(self, | CODE |
| LOW | plugins/train/model/_base/inference.py | 62 | def _get_valid_inputs_for_layer(self, layer) -> list[keras.Layer]: | CODE |
| LOW | plugins/train/model/_base/state.py | 169 | def add_mixed_precision_layers(self, layers: list[str]) -> None: | CODE |
| LOW | plugins/train/trainer/distributed.py | 119 | def _handle_torch_gpu_mismatch_warning( | CODE |
| LOW | plugins/convert/writer/pillow.py | 37 | def _check_transparency_format(self) -> None: | CODE |
| LOW | plugins/convert/writer/opencv.py | 38 | def _check_transparency_format(self) -> None: | CODE |
| LOW | tests/tools/preview/viewer_test.py | 47 | def get_faces_display_instance(self, columns: int = 5, face_size: int = 256) -> FacesDisplay: | CODE |
| LOW | tests/tools/preview/viewer_test.py | 111 | def test_set_display_dimensions(self) -> None: | CODE |
| LOW | tests/tools/preview/viewer_test.py | 310 | def test__crop_destination_faces(self, | CODE |
| LOW | tests/tools/alignments/media_test.py | 802 | def test_get_roi_size_for_frame(self, | CODE |
| LOW | tests/lib/utils_test.py | 353 | def fixture_get_model_instance(monkeypatch: pytest.MonkeyPatch, | CODE |
| LOW | tests/lib/utils_test.py | 387 | def test_get_model_model_filename_input( | CODE |
| LOW | tests/lib/utils_test.py | 410 | def test_get_model_attributes(get_model_instance: GetModel) -> None: | CODE |
| LOW | tests/lib/utils_test.py | 426 | def test_get_model_properties(get_model_instance: GetModel) -> None: | CODE |
| LOW | tests/lib/utils_test.py | 486 | def test_get_model__download_model(mocker: pytest_mock.MockerFixture, | CODE |
| LOW | tests/lib/utils_test.py | 519 | def test_get_model__write_zipfile(mocker: pytest_mock.MockerFixture, | CODE |
| LOW | tests/lib/utils_test.py | 555 | def test_get_model__unzip_model(mocker: pytest_mock.MockerFixture, | CODE |
| LOW | tests/lib/utils_test.py | 578 | def test_get_model__write_model(mocker: pytest_mock.MockerFixture, | CODE |
| LOW | tests/lib/training/data_augmentation_test.py | 105 | def test_constants_get_transform(config: dict[str, T.Any], | CODE |
| LOW | tests/lib/training/data_augmentation_test.py | 123 | def test_constants_get_warp_to_landmarks(size: int, batch_size: int) -> None: | CODE |
| LOW | tests/lib/training/data_augmentation_test.py | 196 | def test_constants_from_config(size: int, | CODE |
| LOW | tests/lib/training/data_augmentation_test.py | 230 | def test_image_augmentation_init(size: int, | CODE |
| LOW | tests/lib/training/data_augmentation_test.py | 250 | def test_image_augmentation_random_lab(size: int, | CODE |
| LOW | tests/lib/training/data_augmentation_test.py | 271 | def test_image_augmentation_random_clahe(size: int, # pylint:disable=too-many-locals | CODE |
| LOW | tests/lib/training/data_augmentation_test.py | 322 | def test_image_augmentation_color_adjust(size: int, | CODE |
| LOW | tests/lib/training/data_augmentation_test.py | 347 | def test_image_augmentation_transform(size: int, | CODE |
| LOW | tests/lib/training/data_augmentation_test.py | 392 | def test_image_augmentation_random_flip(size: int, | CODE |
| 54 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | setup.py | 735 | CODE | |
| LOW | tools/effmpeg/effmpeg.py | 91 | CODE | |
| LOW | tools/effmpeg/effmpeg.py | 216 | CODE | |
| LOW | tools/effmpeg/effmpeg.py | 365 | CODE | |
| LOW | tools/effmpeg/effmpeg.py | 465 | CODE | |
| LOW | tools/effmpeg/effmpeg.py | 483 | CODE | |
| LOW | tools/manual/detected_faces.py | 508 | CODE | |
| LOW | tools/manual/detected_faces.py | 548 | CODE | |
| LOW | tools/manual/face_viewer/viewport.py | 155 | CODE | |
| LOW | tools/manual/frame_viewer/frame.py | 563 | CODE | |
| LOW | tools/manual/frame_viewer/frame.py | 595 | CODE | |
| LOW | tools/preview/control_panels.py | 460 | CODE | |
| LOW | tools/preview/control_panels.py | 617 | CODE | |
| LOW | tools/alignments/alignments.py | 157 | CODE | |
| LOW | tools/alignments/jobs_faces.py | 118 | CODE | |
| LOW | tools/alignments/jobs_faces.py | 422 | CODE | |
| LOW | plugins/plugin_loader.py | 22 | CODE | |
| LOW | plugins/train/model/phaze_a.py | 215 | CODE | |
| LOW | plugins/train/model/_base/io.py | 450 | CODE | |
| LOW | plugins/extract/detect/retinaface.py | 67 | CODE | |
| LOW | plugins/extract/align/hrnet.py | 553 | CODE | |
| LOW | plugins/extract/align/hrnet.py | 618 | CODE | |
| LOW | plugins/convert/writer/patch.py | 129 | CODE | |
| LOW | tests/utils.py | 81 | CODE | |
| LOW | tests/lib/config/ini_test.py | 210 | CODE | |
| LOW | tests/lib/model/layers_test.py | 21 | CODE | |
| LOW | scripts/extract.py | 267 | CODE | |
| LOW | scripts/extract.py | 1001 | CODE | |
| LOW | lib/utils.py | 775 | CODE | |
| LOW | lib/serializer.py | 264 | CODE | |
| LOW | lib/serializer.py | 302 | CODE | |
| LOW | lib/video.py | 787 | CODE | |
| LOW | lib/image.py | 241 | CODE | |
| LOW | lib/config/config.py | 229 | CODE | |
| LOW | lib/config/config.py | 142 | CODE | |
| LOW | lib/config/objects.py | 109 | CODE | |
| LOW | lib/training/tensorboard.py | 197 | CODE | |
| LOW | lib/system/ml_libs.py | 547 | CODE | |
| LOW | lib/align/aligned_face.py | 303 | CODE | |
| LOW | lib/gui/options.py | 349 | CODE | |
| LOW | lib/gui/wrapper.py | 676 | CODE | |
| LOW | lib/gui/display_analysis.py | 331 | CODE | |
| LOW | lib/gui/menu.py | 532 | CODE | |
| LOW | lib/gui/control_helper.py | 359 | CODE | |
| LOW | lib/gui/control_helper.py | 1123 | CODE | |
| LOW | lib/gui/control_helper.py | 1419 | CODE | |
| LOW | lib/gui/analysis/event_reader.py | 559 | CODE | |
| LOW | lib/model/optimizers/adabelief.py | 160 | CODE | |
| LOW | lib/gpu_stats/rocm.py | 332 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | tools/manual/detected_faces.py | 510 | :attr:`~tools.manual.manual.TkGlobals.var_filter_mode.get()`.""" | STRING |
| CRITICAL | tools/manual/detected_faces.py | 550 | :attr:`~tools.manual.manual.TkGlobals.var_filter_mode.get()`. """ | STRING |
| CRITICAL | tools/preview/control_panels.py | 243 | "color": app._patch.converter.cli_arguments.color_adjustment.replace("-", "_"), | CODE |
| CRITICAL | tools/preview/control_panels.py | 244 | "mask_type": app._patch.converter.cli_arguments.mask_type.replace("-", "_"), | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/sort/sort_methods.py | 778 | except Exception: | CODE |
| LOW | plugins/plugin_loader.py | 45 | except Exception: # pylint:disable=broad-except | CODE |
| LOW | plugins/convert/writer/patch.py | 152 | except Exception as err: # pylint:disable=broad-except | CODE |
| LOW | plugins/convert/writer/pillow.py | 85 | except Exception as err: # pylint:disable=broad-except | CODE |
| LOW | plugins/convert/writer/opencv.py | 84 | except Exception as err: # pylint:disable=broad-except | CODE |
| LOW | scripts/train.py | 266 | except Exception as err: | CODE |
| LOW | scripts/train.py | 524 | except Exception as err: | CODE |
| LOW | scripts/extract.py | 318 | except Exception: | CODE |
| LOW | scripts/extract.py | 338 | except Exception: | CODE |
| LOW | lib/convert.py | 190 | except Exception as err: # pylint:disable=broad-except | CODE |
| LOW | lib/logger.py | 113 | except Exception: # pylint:disable=broad-except | CODE |
| LOW | lib/logger.py | 558 | except Exception: # pylint:disable=broad-except | CODE |
| LOW | lib/utils.py | 771 | except Exception as err: # pylint:disable=broad-except | CODE |
| LOW | lib/serializer.py | 140 | except Exception as err: | CODE |
| LOW | lib/serializer.py | 168 | except Exception as err: | CODE |
| LOW | lib/image.py | 145 | except Exception as err: # pylint:disable=broad-except | CODE |
| LOW | lib/image.py | 1361 | except Exception as err: # pylint:disable=broad-except | CODE |
| LOW | lib/multithreading.py | 154 | except Exception: # pylint:disable=broad-except | CODE |
| LOW | lib/multithreading.py | 341 | except Exception: | CODE |
| LOW | lib/cli/launcher.py | 200 | except Exception: # pylint:disable=broad-except | CODE |
| LOW | lib/system/sysinfo.py | 151 | except Exception as err: # pylint:disable=broad-except | CODE |
| LOW | lib/system/sysinfo.py | 237 | except Exception as err: # pylint:disable=broad-except | CODE |
| LOW | lib/gui/menu.py | 264 | except Exception as err: # pylint:disable=broad-except | CODE |
| LOW | lib/gui/utils/misc.py | 76 | except Exception: # pylint:disable=broad-except | CODE |
| LOW | lib/gui/utils/image.py | 363 | except Exception as err: # pylint:disable=broad-except | CODE |
| LOW | lib/infer/plugin_utils.py | 161 | except Exception as err: # pylint:disable=broad-except | CODE |
| LOW | lib/gpu_stats/rocm.py | 355 | except Exception as err: # pylint:disable=broad-except | CODE |
| LOW | lib/gpu_stats/nvidia.py | 56 | except Exception as err: # pylint:disable=broad-except | CODE |
| LOW | lib/gpu_stats/apple_silicon.py | 73 | except Exception as err: # pylint:disable=broad-except | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | plugins/extract/detect/retinaface.py | 660 | CODE | |
| LOW | plugins/extract/align/hrnet.py | 282 | CODE | |
| LOW | plugins/extract/align/hrnet.py | 362 | CODE | |
| LOW | plugins/extract/align/hrnet.py | 428 | CODE | |
| LOW | plugins/extract/align/fan.py | 192 | CODE | |
| LOW | plugins/extract/mask/bisenet_fp.py | 224 | CODE | |
| LOW | plugins/extract/mask/bisenet_fp.py | 402 | CODE | |
| LOW | scripts/fs_media.py | 204 | CODE | |
| LOW | lib/align/aligned_face.py | 137 | CODE | |
| LOW | lib/align/detected_face.py | 55 | CODE | |
| LOW | lib/align/detected_face.py | 414 | CODE | |
| LOW | lib/gui/control_helper.py | 153 | CODE | |
| LOW | lib/gui/control_helper.py | 544 | CODE | |
| LOW | lib/model/normalization.py | 183 | CODE | |
| LOW | lib/model/normalization.py | 413 | CODE | |
| LOW | lib/model/normalization.py | 687 | CODE | |
| LOW | lib/model/losses/feature_loss.py | 290 | CODE | |
| LOW | lib/model/losses/flip.py | 81 | CODE | |
| LOW | lib/model/optimizers/keras_legacy.py | 131 | CODE | |
| LOW | lib/model/optimizers/adabelief.py | 83 | CODE | |
| LOW | lib/model/networks/clip.py | 498 | CODE | |
| LOW | lib/model/networks/clip.py | 538 | CODE | |
| LOW | lib/infer/objects.py | 753 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | .install/macos/faceswap_setup_macos.sh | 444 | # Create a shortcut to launch into the GUI | COMMENT |
| MEDIUM | .install/macos/faceswap_setup_macos.sh | 455 | # Create a simple .app wrapper to launch GUI | COMMENT |
| MEDIUM | .install/linux/faceswap_setup_x64.sh | 459 | # Create a shortcut to launch into the GUI | COMMENT |
| MEDIUM | .install/linux/faceswap_setup_x64.sh | 469 | # Create a shell script to launch the GUI and add a desktop shortcut | COMMENT |
| MEDIUM | tools/manual/frame_viewer/editor/mask.py | 250 | # Create a bounding box rectangle ROI | COMMENT |
| MEDIUM | lib/gui/theme.py | 370 | # Create the elements with the new images | COMMENT |
| MEDIUM | lib/gui/custom_widgets.py | 318 | # Create a new Tcl command whose name is the widget's path name, and | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | .install/macos/faceswap_setup_macos.sh | 259 | # Options pertaining to additional apps that are required | COMMENT |
| MEDIUM | .install/macos/faceswap_setup_macos.sh | 270 | # Options pertaining to the installation of conda | COMMENT |
| MEDIUM | .install/macos/faceswap_setup_macos.sh | 305 | # Options pertaining to the installation of faceswap | COMMENT |
| MEDIUM | .install/linux/faceswap_setup_x64.sh | 276 | # Options pertaining to the installation of conda | COMMENT |
| MEDIUM | .install/linux/faceswap_setup_x64.sh | 309 | # Options pertaining to the installation of faceswap | COMMENT |
| MEDIUM | plugins/convert/color/color_transfer.py | 118 | # space, being sure to utilize the 8-bit unsigned integer data | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .install/macos/faceswap_setup_macos.sh | 208 | # Check if conda is in PATH | COMMENT |
| LOW | .install/macos/faceswap_setup_macos.sh | 392 | # Check if an environment with the given name exists | COMMENT |
| LOW | .install/linux/faceswap_setup_x64.sh | 226 | # Check if conda is in PATH | COMMENT |
| LOW | .install/linux/faceswap_setup_x64.sh | 399 | # Check if an environment with the given name exists | COMMENT |
| LOW | tools/sort/sort.py | 236 | # Check if non-dissimilarity sort method and group method are not the same | COMMENT |
| LOW | lib/utils.py | 77 | # Check if environment variable is set, if so use that | COMMENT |
| LOW | lib/training/preview_tk.py | 925 | if not self._initialized: # Set initialized to True for GUI | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | plugins/extract/detect/mtcnn.py | 141 | # found at | COMMENT |
| LOW | plugins/extract/mask/bisenet_fp.py | 161 | # Permission is hereby granted, free of charge, to any person obtaining a copy | COMMENT |
| LOW | docs/conf.py | 1 | # Configuration file for the Sphinx documentation builder. | COMMENT |
| LOW | .github/workflows/pytest.yml | 41 | steps: | COMMENT |
| LOW | lib/model/optimizers/lion.py | 1 | #! /usr/env/bin/python3 | COMMENT |
| LOW | lib/model/optimizers/adabelief.py | 1 | #! /usr/env/bin/python3 | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | lib/video.py | 732 | self._graph.push(frame.reformat(format=vid.pix_fmt)) | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | lib/model/optimizers/lion.py | 16 | # ============================================================================== | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | plugins/train/trainer/distributed.py | 111 | logger.warning("Batch size %s is sub-optimal for %s GPUs. You may want to adjust your " | CODE |