AI Slop Code RIsk Monitor

facefusion/facefusion

Industry leading face manipulation platform

15.3 Elevated pattern signal View on GitHub

Maintenance and Governance Review

This report summarizes scanner evidence for facefusion/facefusion, a Python project with 30,206 GitHub stars. SynthScan examined 23,503 lines of code across 241 source files, recording 292 pattern matches distributed across 5 syntactic categories. The legacy adjusted pattern signal is 15.3 (Elevated pattern signal); it is not an authorship estimate.

Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.

15.3
Adjusted Signal
15.3
Raw Pattern Score
100%
Time Factor
2026-10-09
Last Push
30.2K
Stars
Python
Language
23.5K
Lines of Code
241
Files
292
Pattern Hits
2026-10-12
Scan Date
0.01
HC Hit Rate

Risk Review · v3

Use each vector to guide manual verification of the underlying findings.

Cognitive Ownership Risk 42.2/100 · MEDIUM

Can maintainers explain intent, assumptions, and trade-offs? 223 finding(s).

Hallucinated Dependency & Supply Chain Risk 0.0/100 · LOW

Are imports declared and package/API names verified? 0 finding(s).

Agent Over-Engineering Ratio 50.2/100 · HIGH

Are wrappers, guards, and repeated structures necessary? 261 finding(s).

PR Review Velocity Impact 48.0/100 · MEDIUM

Which changes need focused human review? 292 finding(s).

What These Metrics Mean

Adjusted Signal
Legacy pattern score normalized per 1,000 scanned lines and multiplied by the repository-level time factor. It is not an estimate of AI authorship.
Raw Pattern Score
Sum of severity- and context-weighted pattern findings before applying the time factor.
Time Factor
A coarse multiplier based on repository last-push metadata. It does not identify when individual code was written.
Pattern Hits
Count of configured pattern findings. Review each location and surrounding code before acting.
HC Hit Rate
High- and critical-severity findings per scanned file. Severity is a configured detector weight, not proof of a vulnerability or authorship.
Lines / Files
Scan coverage denominators used by the legacy normalized score.

Pattern-Signal History

This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.

Severity Breakdown

Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.

CRITICAL 0HIGH 3MEDIUM 0LOW 289

Directory Score Breakdown

This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.

Pattern Findings

The scanner identified 292 distinct pattern matches across 5 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. 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 configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.

Hyper-Verbose Identifiers192 hits · 226 pts
SeverityFileLineSnippetContext
LOWtests/test_inference_manager.py58def test_resolve_static_inference_providers(override_module : SimpleNamespace, adjust_module : SimpleNamespace) -> None:CODE
LOWtests/test_download.py4def test_get_static_download_size() -> None:CODE
LOWtests/test_download.py16def test_resolve_download_url_by_provider() -> None:CODE
LOWtests/test_ffprobe.py39def test_extract_audio_metadata() -> None:CODE
LOWtests/test_ffprobe.py55def test_extract_video_metadata() -> None:CODE
LOWtests/test_state_manager.py31def test_get_item_and_set_item() -> None:CODE
LOWtests/test_cli_frame_enhancer.py43def test_enhance_frame_to_image(workflow_strategy : WorkflowStrategy) -> None:CODE
LOWtests/test_cli_frame_enhancer.py51def test_enhance_frame_to_video(workflow_strategy : WorkflowStrategy) -> None:CODE
LOWtests/test_common_helper.py8def test_create_float_metavar() -> None:CODE
LOW⚡tests/test_execution.py4def test_has_execution_provider() -> None:CODE
LOW⚡tests/test_execution.py9def test_get_available_execution_providers() -> None:CODE
LOW⚡tests/test_execution.py13def test_create_inference_providers() -> None:CODE
LOWtests/test_video_manager.py58def test_conditional_seek_video_reader() -> None:CODE
LOWtests/test_video_manager.py126def test_collect_video_frames() -> None:CODE
LOWtests/test_cli_expression_restorer.py42def test_restore_expression_to_image(workflow_strategy : WorkflowStrategy) -> None:CODE
LOWtests/test_cli_expression_restorer.py50def test_restore_expression_to_video(workflow_strategy : WorkflowStrategy) -> None:CODE
LOWtests/helper.py24def get_test_examples_directory() -> str:CODE
LOWtests/helper.py36def get_test_outputs_directory() -> str:CODE
LOWtests/helper.py40def prepare_test_output_directory() -> bool:CODE
LOWtests/test_vision.py117def test_detect_image_resolution() -> None:CODE
LOWtests/test_vision.py125def test_restrict_image_resolution() -> None:CODE
LOW⚡tests/test_vision.py148def test_count_video_frame_total() -> None:CODE
LOW⚡tests/test_vision.py155def test_predict_video_frame_total() -> None:CODE
LOW⚡tests/test_vision.py164def test_resolve_extract_frame_number() -> None:CODE
LOW⚡tests/test_vision.py171def test_resolve_target_frame_number() -> None:CODE
LOWtests/test_vision.py192def test_detect_video_duration() -> None:CODE
LOWtests/test_vision.py198def test_count_trim_frame_total() -> None:CODE
LOWtests/test_vision.py220def test_detect_video_resolution() -> None:CODE
LOWtests/test_vision.py228def test_restrict_video_resolution() -> None:CODE
LOWtests/test_vision.py240def test_normalize_resolution() -> None:CODE
LOWtests/test_vision.py256def test_calc_histogram_difference() -> None:CODE
LOWtests/test_job_helper.py6def test_get_step_output_path() -> None:CODE
LOWtests/test_temp_helper.py27def test_get_temp_directory_path() -> None:CODE
LOWtests/test_temp_helper.py32def test_get_temp_frame_pattern() -> None:CODE
LOWtests/test_face_detector.py47def test_detect_with_retinaface() -> None:CODE
LOWtests/test_face_detector.py81def test_detect_with_yolo_face() -> None:CODE
LOWtests/test_cli_face_enhancer.py43def test_enhance_face_to_image(workflow_strategy : WorkflowStrategy) -> None:CODE
LOWtests/test_cli_face_enhancer.py51def test_enhance_face_to_video(workflow_strategy : WorkflowStrategy) -> None:CODE
LOWtests/test_face_creator.py104def test_average_face_geometry() -> None:CODE
LOWtests/test_cli_background_remover.py43def test_remove_background_to_image(workflow_strategy : WorkflowStrategy) -> None:CODE
LOWtests/test_cli_background_remover.py51def test_remove_background_to_video(workflow_strategy : WorkflowStrategy) -> None:CODE
LOWtests/test_ffmpeg.py89def get_available_encoder_set() -> EncoderSet:CODE
LOWtests/test_ffmpeg.py99def test_get_available_encoder_set() -> None:CODE
LOWtests/test_ffmpeg_builder.py60def test_restrict_color_transfer() -> None:CODE
LOWtests/test_ffmpeg_builder.py72def test_set_audio_sample_size() -> None:CODE
LOWtests/test_cli_batch_runner.py49def test_batch_run_sources_to_targets() -> None:CODE
LOWtests/test_cli_frame_colorizer.py57def test_colorize_frame_to_image(workflow_strategy : WorkflowStrategy) -> None:CODE
LOWtests/test_cli_frame_colorizer.py65def test_colorize_frame_to_video(workflow_strategy : WorkflowStrategy) -> None:CODE
LOWfacefusion/execution.py31def get_available_execution_providers() -> List[ExecutionProvider]:CODE
LOWfacefusion/execution.py43def create_inference_providers(execution_device_id : int, execution_providers : List[ExecutionProvider]) -> List[InferenCODE
LOWfacefusion/execution.py125def resolve_cudnn_conv_algo_search() -> str:CODE
LOWfacefusion/execution.py136def resolve_openvino_device_type(execution_device_id : int) -> str:CODE
LOWfacefusion/execution.py148def detect_static_execution_devices() -> List[ExecutionDevice]:CODE
LOWfacefusion/content_analyser.py123def override_inference_providers() -> List[InferenceProvider]:CODE
LOWfacefusion/vision.py65def restrict_image_resolution(image_path : str, resolution : Resolution) -> Resolution:CODE
LOWfacefusion/vision.py117def predict_video_frame_total(video_path : str, fps : Fps, trim_frame_start : int, trim_frame_end : int) -> int:CODE
LOWfacefusion/vision.py128def resolve_extract_frame_number(video_fps : Fps, fps : Fps, frame_number : int) -> int:CODE
LOWfacefusion/vision.py132def resolve_target_frame_number(video_fps : Fps, fps : Fps, frame_number : int) -> int:CODE
LOWfacefusion/vision.py191def restrict_video_resolution(video_path : str, resolution : Resolution) -> Resolution:CODE
LOWfacefusion/vision.py284def conditional_match_frame_color(source_vision_frame : VisionFrame, target_vision_frame : VisionFrame) -> VisionFrame:CODE
132 more matches not shown…
Modern Structural Boilerplate63 hits · 83 pts
SeverityFileLineSnippetContext
LOWfacefusion/state_manager.py32def set_item(key : Union[StateKey, ProcessorStateKey], value : Any) -> None:CODE
LOWfacefusion/ffmpeg.py43def update_progress(progress : tqdm, frame_number : int) -> None:CODE
LOWfacefusion/frame_store.py13def set_frame(id : str, frame_number : int, vision_frame : VisionFrame) -> None:CODE
LOWfacefusion/face_store.py21def set_faces(vision_frame : VisionFrame, faces : List[Face]) -> None:CODE
LOWfacefusion/process_manager.py10def set_process_state(process_state : ProcessState) -> None:CODE
LOW⚡facefusion/uis/components/face_enhancer_options.py75def update_face_enhancer_blend(face_enhancer_blend : float) -> None:CODE
LOW⚡facefusion/uis/components/face_enhancer_options.py79def update_face_enhancer_weight(face_enhancer_weight : FaceEnhancerWeight) -> None:CODE
LOW⚡…cefusion/uis/components/expression_restorer_options.py73def update_expression_restorer_factor(expression_restorer_factor : float) -> None:CODE
LOWfacefusion/uis/components/memory.py26def update_video_memory_strategy(video_memory_strategy : VideoMemoryStrategy) -> None:CODE
LOW⚡facefusion/uis/components/face_editor_options.py219def update_face_editor_eyebrow_direction(face_editor_eyebrow_direction : float) -> None:CODE
LOW⚡facefusion/uis/components/face_editor_options.py223def update_face_editor_eye_gaze_horizontal(face_editor_eye_gaze_horizontal : float) -> None:CODE
LOW⚡facefusion/uis/components/face_editor_options.py227def update_face_editor_eye_gaze_vertical(face_editor_eye_gaze_vertical : float) -> None:CODE
LOW⚡facefusion/uis/components/face_editor_options.py231def update_face_editor_eye_open_ratio(face_editor_eye_open_ratio : float) -> None:CODE
LOW⚡facefusion/uis/components/face_editor_options.py235def update_face_editor_lip_open_ratio(face_editor_lip_open_ratio : float) -> None:CODE
LOW⚡facefusion/uis/components/face_editor_options.py239def update_face_editor_mouth_grim(face_editor_mouth_grim : float) -> None:CODE
LOW⚡facefusion/uis/components/face_editor_options.py243def update_face_editor_mouth_pout(face_editor_mouth_pout : float) -> None:CODE
LOW⚡facefusion/uis/components/face_editor_options.py247def update_face_editor_mouth_purse(face_editor_mouth_purse : float) -> None:CODE
LOW⚡facefusion/uis/components/face_editor_options.py251def update_face_editor_mouth_smile(face_editor_mouth_smile : float) -> None:CODE
LOW⚡facefusion/uis/components/face_editor_options.py255def update_face_editor_mouth_position_horizontal(face_editor_mouth_position_horizontal : float) -> None:CODE
LOW⚡facefusion/uis/components/face_editor_options.py259def update_face_editor_mouth_position_vertical(face_editor_mouth_position_vertical : float) -> None:CODE
LOW⚡facefusion/uis/components/face_editor_options.py263def update_face_editor_head_pitch(face_editor_head_pitch : float) -> None:CODE
LOW⚡facefusion/uis/components/face_editor_options.py267def update_face_editor_head_yaw(face_editor_head_yaw : float) -> None:CODE
LOW⚡facefusion/uis/components/face_editor_options.py271def update_face_editor_head_roll(face_editor_head_roll : float) -> None:CODE
LOWfacefusion/uis/components/terminal.py46def update_log_level(log_level : LogLevel) -> None:CODE
LOWfacefusion/uis/components/lip_syncer_options.py63def update_lip_syncer_weight(lip_syncer_weight : LipSyncerWeight) -> None:CODE
LOW⚡facefusion/uis/components/age_modifier_options.py63def update_age_modifier_direction(age_modifier_direction : float) -> None:CODE
LOW⚡facefusion/uis/components/background_remover_options.py152def update_background_remover_fill_color(red : int, green : int, blue : int, alpha : int) -> None:CODE
LOW⚡facefusion/uis/components/background_remover_options.py160def update_background_remover_despill_color(red : int, green : int, blue : int, alpha : int) -> None:CODE
LOW⚡facefusion/uis/components/face_landmarker.py49def update_face_landmarker_score(face_landmarker_score : Score) -> None:CODE
LOWfacefusion/uis/components/trim_frame.py55def update_trim_frame(trim_frame : Tuple[float, float]) -> None:CODE
LOW⚡facefusion/uis/components/face_swapper_options.py75def update_face_swapper_pixel_boost(face_swapper_pixel_boost : str) -> None:CODE
LOW⚡facefusion/uis/components/face_swapper_options.py79def update_face_swapper_weight(face_swapper_weight : FaceSwapperWeight) -> None:CODE
LOWfacefusion/uis/components/face_tracker.py31def update_face_tracker_score(face_tracker_score : Score) -> None:CODE
LOWfacefusion/uis/components/execution_thread_count.py28def update_execution_thread_count(execution_thread_count : float) -> None:CODE
LOW⚡facefusion/uis/components/face_selector.py177def update_reference_face_position(event : gradio.SelectData) -> None:CODE
LOW⚡facefusion/uis/components/face_selector.py185def update_reference_face_distance(reference_face_distance : float) -> None:CODE
LOW⚡facefusion/uis/components/face_selector.py189def update_reference_frame_number(reference_frame_number : int = 0) -> None:CODE
LOWfacefusion/uis/components/face_debugger_options.py39def update_face_debugger_items(face_debugger_items : List[FaceDebuggerItem]) -> None:CODE
LOWfacefusion/uis/components/temp_frame.py40def update_temp_frame_format(temp_frame_format : TempFrameFormat) -> None:CODE
LOW⚡facefusion/uis/components/frame_enhancer_options.py63def update_frame_enhancer_blend(frame_enhancer_blend : float) -> None:CODE
LOWfacefusion/uis/components/workflow.py26def update_workflow_strategy(workflow_strategy : WorkflowStrategy) -> None:CODE
LOW⚡facefusion/uis/components/benchmark_options.py45def update_benchmark_mode(benchmark_mode : BenchmarkMode) -> None:CODE
LOW⚡facefusion/uis/components/benchmark_options.py49def update_benchmark_resolutions(benchmark_resolutions : List[BenchmarkResolution]) -> None:CODE
LOW⚡facefusion/uis/components/benchmark_options.py53def update_benchmark_cycle_count(benchmark_cycle_count : int) -> None:CODE
LOW⚡facefusion/uis/components/output_options.py177def update_output_image_quality(output_image_quality : float) -> None:CODE
LOW⚡facefusion/uis/components/output_options.py181def update_output_image_scale(output_image_scale : Scale) -> None:CODE
LOW⚡facefusion/uis/components/output_options.py185def update_output_audio_encoder(output_audio_encoder : AudioEncoder) -> None:CODE
LOW⚡facefusion/uis/components/output_options.py189def update_output_audio_quality(output_audio_quality : float) -> None:CODE
LOW⚡facefusion/uis/components/output_options.py193def update_output_audio_volume(output_audio_volume: float) -> None:CODE
LOW⚡facefusion/uis/components/output_options.py197def update_output_video_encoder(output_video_encoder : VideoEncoder) -> None:CODE
LOW⚡facefusion/uis/components/output_options.py201def update_output_video_preset(output_video_preset : VideoPreset) -> None:CODE
LOW⚡facefusion/uis/components/output_options.py205def update_output_video_quality(output_video_quality : float) -> None:CODE
LOW⚡facefusion/uis/components/output_options.py209def update_output_video_scale(output_video_scale : Scale) -> None:CODE
LOW⚡facefusion/uis/components/output_options.py213def update_output_video_fps(output_video_fps : Fps) -> None:CODE
LOWfacefusion/uis/components/face_masker.py172def update_face_mask_blur(face_mask_blur : float) -> None:CODE
LOWfacefusion/uis/components/face_masker.py176def update_face_mask_padding(face_mask_padding_top : float, face_mask_padding_right : float, face_mask_padding_bottom : CODE
LOW⚡facefusion/uis/components/deep_swapper_options.py63def update_deep_swapper_morph(deep_swapper_morph : int) -> None:CODE
LOW⚡facefusion/uis/components/frame_colorizer_options.py73def update_frame_colorizer_size(frame_colorizer_size : str) -> None:CODE
LOW⚡facefusion/uis/components/frame_colorizer_options.py77def update_frame_colorizer_blend(frame_colorizer_blend : float) -> None:CODE
LOWfacefusion/uis/components/output.py47def update_output_path(output_path : str) -> None:CODE
3 more matches not shown…
Deep Nesting31 hits · 31 pts
SeverityFileLineSnippetContext
LOWfacefusion/streamer.py20CODE
LOWfacefusion/face_creator.py73CODE
LOWfacefusion/face_creator.py100CODE
LOWfacefusion/program_helper.py12CODE
LOWfacefusion/program_helper.py23CODE
LOWfacefusion/content_analyser.py168CODE
LOWfacefusion/vision.py89CODE
LOWfacefusion/conda.py8CODE
LOWfacefusion/download.py21CODE
LOWfacefusion/download.py77CODE
LOWfacefusion/download.py104CODE
LOWfacefusion/ffmpeg.py16CODE
LOWfacefusion/core.py113CODE
LOWfacefusion/core.py261CODE
LOWfacefusion/inference_manager.py98CODE
LOWfacefusion/face_selector.py41CODE
LOWfacefusion/face_selector.py65CODE
LOWfacefusion/workflows/to_video.py52CODE
LOWfacefusion/workflows/to_video.py115CODE
LOWfacefusion/workflows/to_video.py182CODE
LOWfacefusion/jobs/job_manager.py52CODE
LOWfacefusion/jobs/job_manager.py70CODE
LOWfacefusion/jobs/job_runner.py19CODE
LOWfacefusion/jobs/job_runner.py41CODE
LOWfacefusion/jobs/job_runner.py78CODE
LOWfacefusion/uis/core.py83CODE
LOWfacefusion/uis/components/webcam.py85CODE
LOWfacefusion/uis/layouts/benchmark.py11CODE
LOWfacefusion/uis/layouts/jobs.py11CODE
LOWfacefusion/uis/layouts/default.py11CODE
LOWfacefusion/uis/layouts/webcam.py11CODE
Empty Error Handlers3 hits · 15 pts
SeverityFileLineSnippetContext
HIGHfacefusion/translator.py14except ImportError:CODE
HIGHfacefusion/json.py14except JSONDecodeError:CODE
HIGHfacefusion/uis/components/webcam.py110except Exception:CODE
Excessive Try-Catch Wrapping3 hits · 3 pts
SeverityFileLineSnippetContext
LOWfacefusion/execution.py158 except Exception:CODE
LOWfacefusion/inference_manager.py87 except Exception:CODE
LOWfacefusion/uis/components/webcam.py110 except Exception:CODE