AI Slop Code RIsk Monitor

Wan-Video/Wan2.2

Wan: Open and Advanced Large-Scale Video Generative Models

15.5 Elevated pattern signal View on GitHub

Maintenance and Governance Review

This report summarizes scanner evidence for Wan-Video/Wan2.2, a Python project with 17,868 GitHub stars. SynthScan examined 20,241 lines of code across 67 source files, recording 215 pattern matches distributed across 10 syntactic categories. The legacy adjusted pattern signal is 15.5 (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.5
Adjusted Signal
15.5
Raw Pattern Score
100%
Time Factor
2026-09-21
Last Push
17.9K
Stars
Python
Language
20.2K
Lines of Code
67
Files
215
Pattern Hits
2026-10-12
Scan Date
0.37
HC Hit Rate

Risk Review · v3

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

Cognitive Ownership Risk 20.9/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 19.1/100 · LOW

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

Agent Over-Engineering Ratio 36.0/100 · MEDIUM

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

PR Review Velocity Impact 57.0/100 · HIGH

Which changes need focused human review? 215 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

Run additional scans to build a history of the legacy pattern signal. Score changes are not a measure of AI adoption or code quality.

No multi-scan history yet — run the scanner again to build trend data.

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 25MEDIUM 1LOW 189

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 215 distinct pattern matches across 10 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.

Cross-File Repetition22 hits · 110 pts
SeverityFileLineSnippetContext
HIGHwan/animate.py0initializes the wan text-to-video generation model components. args: config (easydict): object containing model parameteSTRING
HIGHwan/speech2video.py0initializes the wan text-to-video generation model components. args: config (easydict): object containing model parameteSTRING
HIGHwan/image2video.py0initializes the wan text-to-video generation model components. args: config (easydict): object containing model parameteSTRING
HIGHwan/textimage2video.py0initializes the wan text-to-video generation model components. args: config (easydict): object containing model parameteSTRING
HIGHwan/text2video.py0initializes the wan text-to-video generation model components. args: config (easydict): object containing model parameteSTRING
HIGHwan/animate.py0configures a model object. this includes setting evaluation modes, applying distributed parallel strategy, and handling STRING
HIGHwan/speech2video.py0configures a model object. this includes setting evaluation modes, applying distributed parallel strategy, and handling STRING
HIGHwan/textimage2video.py0configures a model object. this includes setting evaluation modes, applying distributed parallel strategy, and handling STRING
HIGHwan/text2video.py0configures a model object. this includes setting evaluation modes, applying distributed parallel strategy, and handling STRING
HIGHwan/image2video.py0configures a model object. this includes setting evaluation modes, applying distributed parallel strategy, and handling STRING
HIGHwan/modules/model.py0args: x(tensor): shape [b, l, num_heads, c / num_heads] seq_lens(tensor): shape [b] grid_sizes(tensor): shape [b, 3], thSTRING
HIGHwan/modules/animate/model_animate.py0args: x(tensor): shape [b, l, num_heads, c / num_heads] seq_lens(tensor): shape [b] grid_sizes(tensor): shape [b, 3], thSTRING
HIGHwan/modules/s2v/model_s2v.py0args: x(tensor): shape [b, l, num_heads, c / num_heads] seq_lens(tensor): shape [b] grid_sizes(tensor): shape [b, 3], thSTRING
HIGHwan/modules/model.py0args: x(tensor): shape [b, l1, c] e(tensor): shape [b, l1, c]STRING
HIGHwan/modules/animate/model_animate.py0args: x(tensor): shape [b, l1, c] e(tensor): shape [b, l1, c]STRING
HIGHwan/modules/s2v/model_s2v.py0args: x(tensor): shape [b, l1, c] e(tensor): shape [b, l1, c]STRING
HIGHwan/modules/model.py0reconstruct video tensors from patch embeddings. args: x (list[tensor]): list of patchified features, each with shape [lSTRING
HIGHwan/modules/animate/model_animate.py0reconstruct video tensors from patch embeddings. args: x (list[tensor]): list of patchified features, each with shape [lSTRING
HIGHwan/modules/s2v/model_s2v.py0reconstruct video tensors from patch embeddings. args: x (list[tensor]): list of patchified features, each with shape [lSTRING
HIGHwan/modules/model.py0initialize model parameters using xavier initialization.STRING
HIGHwan/modules/animate/model_animate.py0initialize model parameters using xavier initialization.STRING
HIGHwan/modules/s2v/model_s2v.py0initialize model parameters using xavier initialization.STRING
Unused Imports86 hits · 86 pts
SeverityFileLineSnippetContext
LOWwan/animate.py19CODE
LOWwan/speech2video.py9CODE
LOWwan/speech2video.py17CODE
LOWwan/speech2video.py25CODE
LOWwan/speech2video.py25CODE
LOWwan/__init__.py2CODE
LOWwan/__init__.py2CODE
LOWwan/__init__.py2CODE
LOWwan/__init__.py3CODE
LOWwan/__init__.py4CODE
LOWwan/__init__.py5CODE
LOWwan/__init__.py6CODE
LOWwan/__init__.py7CODE
LOWwan/distributed/ulysses.py2CODE
LOWwan/utils/prompt_extend.py11CODE
LOWwan/utils/prompt_extend.py24CODE
LOWwan/utils/__init__.py2CODE
LOWwan/utils/__init__.py2CODE
LOWwan/utils/__init__.py2CODE
LOWwan/utils/__init__.py7CODE
LOWwan/utils/qwen_vl_utils.py3CODE
LOWwan/utils/fm_solvers_unipc.py19CODE
LOWwan/configs/wan_i2v_A14B.py2CODE
LOWwan/configs/__init__.py2CODE
LOWwan/modules/__init__.py2CODE
LOWwan/modules/__init__.py3CODE
LOWwan/modules/__init__.py4CODE
LOWwan/modules/__init__.py4CODE
LOWwan/modules/__init__.py4CODE
LOWwan/modules/__init__.py4CODE
LOWwan/modules/__init__.py5CODE
LOWwan/modules/__init__.py6CODE
LOWwan/modules/__init__.py7CODE
LOWwan/modules/animate/__init__.py2CODE
LOWwan/modules/animate/__init__.py3CODE
LOWwan/modules/animate/model_animate.py3CODE
LOWwan/modules/animate/model_animate.py4CODE
LOWwan/modules/animate/model_animate.py7CODE
LOWwan/modules/animate/model_animate.py15CODE
LOWwan/modules/animate/model_animate.py23CODE
LOWwan/modules/animate/model_animate.py23CODE
LOWwan/modules/animate/face_blocks.py12CODE
LOWwan/modules/animate/preprocess/sam_utils.py4CODE
LOWwan/modules/animate/preprocess/sam_utils.py5CODE
LOWwan/modules/animate/preprocess/sam_utils.py12CODE
LOWwan/modules/animate/preprocess/video_predictor.py5CODE
LOWwan/modules/animate/preprocess/video_predictor.py7CODE
LOWwan/modules/animate/preprocess/video_predictor.py7CODE
LOWwan/modules/animate/preprocess/video_predictor.py9CODE
LOWwan/modules/animate/preprocess/video_predictor.py9CODE
LOWwan/modules/animate/preprocess/human_visualization.py2CODE
LOWwan/modules/animate/preprocess/human_visualization.py4CODE
LOWwan/modules/animate/preprocess/retarget_pose.py2CODE
LOWwan/modules/animate/preprocess/retarget_pose.py3CODE
LOWwan/modules/animate/preprocess/retarget_pose.py5CODE
LOWwan/modules/animate/preprocess/retarget_pose.py8CODE
LOWwan/modules/animate/preprocess/__init__.py2CODE
LOWwan/modules/animate/preprocess/__init__.py3CODE
LOWwan/modules/animate/preprocess/utils.py2CODE
LOWwan/modules/s2v/model_s2v.py3CODE
26 more matches not shown…
AI Structural Patterns36 hits · 36 pts
SeverityFileLineSnippetContext
LOWwan/animate.py38CODE
LOWwan/animate.py297CODE
LOWwan/speech2video.py49CODE
LOWwan/speech2video.py392CODE
LOWwan/textimage2video.py36CODE
LOWwan/textimage2video.py162CODE
LOWwan/textimage2video.py239CODE
LOWwan/textimage2video.py413CODE
LOWwan/text2video.py33CODE
LOWwan/text2video.py203CODE
LOWwan/image2video.py35CODE
LOWwan/image2video.py206CODE
LOWwan/utils/fm_solvers.py131CODE
LOWwan/utils/fm_solvers_unipc.py79CODE
LOWwan/modules/attention.py24CODE
LOWwan/modules/attention.py133CODE
LOWwan/modules/model.py305CODE
LOWwan/modules/vae2_2.py736CODE
LOWwan/modules/animate/motion_encoder.py60CODE
LOWwan/modules/animate/motion_encoder.py202CODE
LOWwan/modules/animate/model_animate.py250CODE
LOWwan/modules/animate/clip.py434CODE
LOWwan/modules/animate/clip.py211CODE
LOWwan/modules/animate/clip.py330CODE
LOWwan/modules/animate/xlm_roberta.py81CODE
LOWwan/modules/animate/face_blocks.py109CODE
LOWwan/modules/animate/preprocess/pose2d.py69CODE
LOWwan/modules/animate/preprocess/human_visualization.py255CODE
LOWwan/modules/animate/preprocess/human_visualization.py586CODE
LOWwan/modules/animate/preprocess/human_visualization.py750CODE
LOWwan/modules/animate/preprocess/retarget_pose.py757CODE
LOWwan/modules/animate/preprocess/process_pipepline.py38CODE
LOWwan/modules/s2v/model_s2v.py255CODE
LOWwan/modules/s2v/auxi_blocks.py118CODE
LOWwan/modules/s2v/motioner.py401CODE
LOWwan/modules/s2v/motioner.py619CODE
Deep Nesting26 hits · 26 pts
SeverityFileLineSnippetContext
LOWgenerate.py315CODE
LOWwan/animate.py297CODE
LOWwan/speech2video.py392CODE
LOWwan/utils/fm_solvers.py417CODE
LOWwan/utils/fm_solvers.py488CODE
LOWwan/utils/utils.py172CODE
LOWwan/utils/qwen_vl_utils.py85CODE
LOWwan/utils/qwen_vl_utils.py328CODE
LOWwan/modules/vae2_1.py68CODE
LOWwan/modules/vae2_1.py101CODE
LOWwan/modules/t5.py27CODE
LOWwan/modules/vae2_2.py73CODE
LOWwan/modules/vae2_2.py112CODE
LOWwan/modules/animate/face_blocks.py32CODE
LOWwan/modules/animate/preprocess/pose2d.py207CODE
LOWwan/modules/animate/preprocess/pose2d.py357CODE
LOWwan/modules/animate/preprocess/retarget_pose.py159CODE
LOWwan/modules/animate/preprocess/retarget_pose.py369CODE
LOWwan/modules/animate/preprocess/retarget_pose.py760CODE
LOWwan/modules/animate/preprocess/process_pipepline.py280CODE
LOWwan/modules/animate/preprocess/pose2d_utils.py9CODE
LOWwan/modules/animate/preprocess/pose2d_utils.py790CODE
LOWwan/modules/s2v/auxi_blocks.py35CODE
LOWwan/modules/s2v/s2v_utils.py6CODE
LOWwan/modules/s2v/motioner.py42CODE
LOWwan/modules/s2v/audio_utils.py55CODE
Docstring Block Structure3 hits · 15 pts
SeverityFileLineSnippetContext
HIGHwan/utils/utils.py146 Convert a string to a boolean. Supported true values: 'yes', 'true', 't', 'y', '1' Supported false values:STRING
HIGHwan/utils/qwen_vl_utils.py138calculate the number of frames for video used for model inputs. Args: ele (dict): a dict contains the confiSTRING
HIGHwan/modules/animate/preprocess/pose2d.py358 Load images from various input types. Args: inputs (Union[str, np.ndarray, List[npSTRING
Modern Structural Boilerplate14 hits · 14 pts
SeverityFileLineSnippetContext
LOWwan/utils/__init__.py9__all__ = [CODE
LOWwan/utils/utils.py14__all__ = ['save_video', 'save_image', 'str2bool']CODE
LOWwan/utils/qwen_vl_utils.py23logger = logging.getLogger(__name__)CODE
LOWwan/modules/attention.py18__all__ = [CODE
LOWwan/modules/vae2_1.py10__all__ = [CODE
LOWwan/modules/t5.py12__all__ = [CODE
LOWwan/modules/__init__.py9__all__ = [CODE
LOWwan/modules/model.py11__all__ = ['WanModel']CODE
LOWwan/modules/vae2_2.py10__all__ = [CODE
LOWwan/modules/tokenizers.py9__all__ = ['HuggingfaceTokenizer']CODE
LOWwan/modules/animate/__init__.py4__all__ = ['WanAnimateModel', 'CLIPModel']CODE
LOWwan/modules/animate/clip.py15__all__ = [CODE
LOWwan/modules/animate/xlm_roberta.py7__all__ = ['XLMRoberta', 'xlm_roberta_large']CODE
LOWwan/modules/s2v/__init__.py5__all__ = ['WanModel_S2V', 'AudioEncoder']CODE
Hyper-Verbose Identifiers16 hits · 13 pts
SeverityFileLineSnippetContext
LOWwan/animate.py284 def prepare_source_for_replace(self, src_bg_path, src_mask_path):STRING
LOWwan/speech2video.py252 def prepare_default_cond_input(self,STRING
LOWwan/text2video.py169 def _prepare_model_for_timestep(self, t, boundary, offload_model):STRING
LOWwan/image2video.py172 def _prepare_model_for_timestep(self, t, boundary, offload_model):STRING
LOWwan/utils/fm_solvers.py417 def dpm_solver_first_order_update(CODE
LOWwan/utils/fm_solvers.py488 def multistep_dpm_solver_second_order_update(CODE
LOWwan/utils/fm_solvers.py598 def multistep_dpm_solver_third_order_update(CODE
LOWwan/utils/fm_solvers_unipc.py352 def multistep_uni_p_bh_update(STRING
LOWwan/utils/fm_solvers_unipc.py488 def multistep_uni_c_bh_update(STRING
LOWwan/modules/t5.py245 def _relative_position_bucket(self, rel_pos):CODE
LOWwan/modules/animate/preprocess/retarget_pose.py369def fix_lack_keypoints_use_sym(skeleton):CODE
LOWwan/modules/animate/preprocess/pose2d_utils.py757def keypoints_from_regression(regression_preds, center, scale, img_size):CODE
LOWwan/modules/animate/preprocess/pose2d_utils.py974def multilabel_classification_accuracy(pred, gt, mask, thr=0.5):CODE
LOWwan/modules/s2v/model_s2v.py484 def process_motion_frame_pack(self,CODE
LOWwan/modules/s2v/model_s2v.py496 def process_motion_transformer_motioner(self,CODE
LOWwan/modules/s2v/audio_encoder.py136 def get_audio_embed_bucket_fps(self,CODE
Excessive Try-Catch Wrapping6 hits · 6 pts
SeverityFileLineSnippetContext
LOWwan/utils/prompt_extend.py185 except Exception as e:CODE
LOWwan/utils/prompt_extend.py248 except Exception as e:CODE
LOWwan/utils/utils.py84 except Exception as e:CODE
LOWwan/utils/utils.py119 except Exception as e:CODE
LOWwan/utils/utils.py141 except Exception as e:CODE
LOWwan/modules/animate/preprocess/pose2d_utils.py1095 except Exception as e:CODE
Over-Commented Block5 hits · 5 pts
SeverityFileLineSnippetContext
LOWwan/modules/animate/preprocess/human_visualization.py321 # [4, 5], # left armCOMMENT
LOWwan/modules/animate/preprocess/human_visualization.py341 # [255, 85, 0],COMMENT
LOWwan/modules/animate/preprocess/human_visualization.py481 limbSeq = [COMMENT
LOWwan/modules/animate/preprocess/human_visualization.py501 ]COMMENT
LOWwan/modules/animate/preprocess/human_visualization.py521 # [255, 0, 85],COMMENT
Dead Code1 hit · 2 pts
SeverityFileLineSnippetContext
MEDIUMwan/modules/animate/preprocess/human_visualization.py1277CODE