--- language: - en license: apache-2.0 library_name: dotcheck pipeline_tag: image-classification tags: - image-classification - ai-detection - synthetic-media - siglip2 - apache-2.0 - dotcheck - vermeer base_model: google/siglip2-base-patch16-224 base_model_relation: adapter model-index: - name: Vermeer (inhouse@5) results: - task: type: image-classification name: binary AI-likeness (image) dataset: name: DotCheck image holdout (Commons/wiki reals vs Kandinsky 2.2 AI) type: other split: holdout metrics: - name: mean_P_AI_real type: mean_score_real value: 0.018 - name: mean_P_AI_ai type: mean_score_ai value: 0.988 - name: balanced_accuracy type: balanced_accuracy value: 0.9875 source: name: quality_gates_v5 / Data.json url: https://dotcheck.ai/docs --- # DotCheck/vermeer-image-v5 Apache-2.0 image AI-likeness head for DotCheck. This repo includes the live .npz head, model card, license, and notices. | Field | Value | |-------|--------| | Hub id | `DotCheck/vermeer-image-v5` | | Wire id | `inhouse@5` | | Label | Vermeer | | Artifact | `siglip2_base_patch16_224_linear_head_v5.npz` | | Backbone | [`google/siglip2-base-patch16-224`](https://huggingface.co/google/siglip2-base-patch16-224) (Apache-2.0) | | Head | trained linear / logistic on frozen SigLIP2 embeddings | | Output | `p ∈ [0,1]` — P(AI-like); higher ⇒ more AI-like | | Serve | CPU FastAPI (`POST /v1/analyze-image`); public clients → Express | | Encode | client transport max side **256**; processor → **224** | ## Model description Frozen SigLIP2-base vision tower + DotCheck head (`*.npz`). No fine-tune of the backbone in the served stack. This card documents the **production** image engine; prior CLIP ViT-B/32 `@5` is archived and not loaded. **Files in this repo:** `README.md`, `LICENSE`, `NOTICE`, `CITATION.cff`, and the `.npz` head file(s) listed above. ## Architecture ```text JPEG/PNG bytes → resize (max side 256 at product edge) → AutoProcessor / SigLIP2 encode (224) → frozen embedding → linear/logistic head (npz) → p_AI ``` Shared SigLIP2 process with video (`inhouse-video@2`); **separate** head artifact. ## 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. HTTP (Pro API key `dc_…`; create in product Dashboard): ```bash curl -sS -X POST "https://dotcheck-server-c221c1f32c68.herokuapp.com/analyze-image" \ -H "Authorization: Bearer dc_YOUR_KEY" \ -F "file=@photo.jpg" ``` Guest UI: https://dotcheck.ai/check · contract: https://dotcheck.ai/api · gates PDF/tables: https://dotcheck.ai/docs Response includes wire `engine` (`inhouse@5`) and `engine_label` (`Vermeer`). ## Training data | Split | Content | |-------|---------| | Fit AI | Commercial-clean self-gen (SD family); no NC / GenImage / CIFAKE / CommunityForensics* | | Fit real | Diversified Commons / Picsum + JPEG/size stress | | Holdout AI | **Kandinsky 2.2** (generator family withheld from fit) | | Holdout real | Wiki / Commons-style reals (~200 / class in gate protocol) | Evidence: `eval/results/quality_gates_v5.json` · `IMAGE_GATES_OK`. ## Evaluation | Metric | Target | Measured | |--------|--------|---------:| | mean P(AI) \| real | ≤ 0.12 | **0.018** | | mean P(AI) \| AI | ≥ 0.88 | **0.988** | | separation (AI−real) | ≥ 0.55 | **0.970** | | bal_acc @ thr | ≥ 0.92 | **0.9875** | SSOT floats: repo `Data.json` / `MODEL-CHOICE.md`. Do not cite `eval/candidates.yaml` (stale). ## Intended use - Binary AI-likeness scoring for still images in DotCheck inference. - Reproducible citation of the holdout table above. ### Out of scope - Product scoring SLA / Leviathan / FUP via Hub download - Generator identification / provenance (optional Pro vendor confirm is a separate path) - Legal determinations of authorship ## Limitations - Domain shift: heavy recompression, novel generators, adversarial edits. - Score = likeliness under this model, not a calibrated posterior over all generators. - Closed commercial gens not in holdout may differ; not measured here. ## License [`LICENSE`](LICENSE) — Apache License 2.0 for DotCheck heads in this repo. Upstream backbones: see [`NOTICE`](NOTICE). ## Citation [`CITATION.cff`](CITATION.cff). Prefer wire `inhouse@5` / label Vermeer@5 + https://dotcheck.ai/docs.