--- language: - en license: apache-2.0 library_name: dotcheck pipeline_tag: image-classification tags: - image-classification - video - ai-detection - synthetic-media - siglip2 - apache-2.0 - dotcheck - muybridge base_model: google/siglip2-base-patch16-224 base_model_relation: adapter model-index: - name: Muybridge (inhouse-video@2) results: - task: type: image-classification name: binary AI-likeness (video bag p90) dataset: name: DotCheck video holdout (bag p90; Wan2.2 AI) type: other split: holdout metrics: - name: mean_P_AI_real_bag_p90 type: mean_score_real_bag_p90 value: 0.004 - name: mean_P_AI_ai_bag_p90 type: mean_score_ai_bag_p90 value: 0.940 - name: balanced_accuracy_bag_p90 type: balanced_accuracy value: 0.985 source: name: video_gates_video_v2 / Data.json url: https://dotcheck.ai/docs --- # DotCheck/muybridge-video-v2 Apache-2.0 **video-frame** AI-likeness head for DotCheck (chronophotography person **Muybridge**). This repo includes the live .npz head, model card, license, and notices. It is **not** the product video assembly; clip eyes+ears seating is private **Covenant** (DotCheck product path). | Field | Value | |-------|--------| | Hub id | `DotCheck/muybridge-video-v2` | | Wire id | `inhouse-video@2` | | Label | Muybridge (frames person) | | Artifact | `siglip2_base_patch16_224_linear_head_video_v2.npz` | | Backbone | [`google/siglip2-base-patch16-224`](https://huggingface.co/google/siglip2-base-patch16-224) (Apache-2.0) | | Profile | `video` (same tower as Vermeer; **distinct** head) | | Frame contract | **VS1** holdout / product **VS3** densify: edge-aware frames | | Aggregate | **bag p90** of frame scores (public claim for this head) | | Output (frame) | `p ∈ [0,1]` | | Serve | CPU FastAPI image path with `profile=video`; Express samples frames | ## Model description Frozen SigLIP2-base + video-trained linear head. Not a spatiotemporal video transformer. Soundtrack AI-likeness is a separate open head (**Helmholtz** / `inhouse-audio@2`). Product clip scores use private **Covenant** (Muybridge bag + Helmholtz windows + AU6 fuse). Do not rewrite this card’s bag-p90 table as fused-video metrics. **Files in this repo:** `README.md`, `LICENSE`, `NOTICE`, `CITATION.cff`, and the `.npz` head file(s) listed above. ## Architecture ```text video container → sample 3 frames (VS1 timestamps) → per-frame: resize ≤256 → SigLIP2 224 → frozen emb → video head → bag aggregate: p90({p_frame}) ``` Missing video head at serve → `profile=video` returns **503** (no silent image-head fallback). ## Inference Open weights: the live `.npz` head(s) in this repo (Apache-2.0), for use with the frozen upstream backbone named above. This is not a transformers `AutoModel.from_pretrained("DotCheck/…")` package. Product scoring: Check or Pro API (below). Leviathan (shared memory and related product path) is not in these files. ```bash curl -sS -X POST "https://dotcheck-server-c221c1f32c68.herokuapp.com/analyze-video" \ -H "Authorization: Bearer dc_YOUR_KEY" \ -F "file=@clip.mp4" ``` UI: https://dotcheck.ai/check · API: https://dotcheck.ai/api · docs: https://dotcheck.ai/docs ## Training data | Split | Content | |-------|---------| | Fit AI | CogVideoX-2b + Wan2.1 (Apache-2.0), VS1 3-frame bags | | Holdout AI | **Wan2.2-TI2V-5B Diffusers** only (`FIT_MIX_HOLDOUT=0`) | | Real | Commons VS1 ffmpeg + ~20% thumb surface + still mix (`STILL_FRAC=0.20`) | Evidence: `video_gates_video_v2.json` · `VIDEO_GATES_OK`. Prior `@1` bag bal **0.716** on same bags (archived). ## Evaluation ### Bag p90 (public claim SSOT) | Metric | Target | Measured | |--------|--------|---------:| | mean P(AI) \| real | ≤ 0.12 | **0.004** | | mean P(AI) \| AI | ≥ 0.85 | **0.940** | | bal_acc @ thr | ≥ 0.90 | **0.985** | | vs `@1` bal (same bags) | ≥ baseline | **0.985 ≥ 0.716** | ### Secondary single-frame floors (not public headline) | Metric | Target | Measured | |--------|--------|---------:| | mean P(AI) \| real | ≤ 0.15 | 0.004 | | mean P(AI) \| AI | ≥ 0.80 | 0.906 | | separation | ≥ 0.45 | 0.902 | | bal_acc | ≥ 0.88 | 0.955 | ## Intended use - Frame-bag AI-likeness for short clips in DotCheck inference. - Citation of bag-p90 table. ### Out of scope - Product scoring SLA / Leviathan / **Covenant** seating recipe / FUP via Hub download - Full temporal models / standalone audio deepfake courtroom forensics (see Helmholtz for audio head) - Publishing Covenant as Apache weights (assembly stays with DotCheck) - Legal determinations ## Limitations - Aggregation is unordered frame p90; no explicit motion model. - Codec / compression / unseen generators can shift scores. - Silent clips: frames only. When a soundtrack is present, product **Covenant** fuse with Helmholtz is separate from this artifact’s bag-p90 table (see `eval/COVENANT.md` / bake-off JSON for operator protocol; fused public floats only after a commercial panel). ## License [`LICENSE`](LICENSE) — Apache License 2.0 for DotCheck heads in this repo. Upstream backbones: see [`NOTICE`](NOTICE). ## Citation [`CITATION.cff`](CITATION.cff) · wire `inhouse-video@2` / Muybridge@2 · https://dotcheck.ai/docs