| --- |
| 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 |
|
|