Inspiration

We looked at the current state of the AI image detection field and identified a gap between open-weight methods and commercial solutions.

Our goal is to bridge that gap by applying techniques used by commercial solutions—such as Pangram Image—to data that is publicly and openly available. We believe that with the right scale and distribution of training data, open approaches can achieve highly competitive performance.

What It Does

Seer takes an image and produces P(AI)—the probability that an image was AI-generated—at both the global and patch level.

A DINOv3 ViT-L/16 backbone (~305M parameters, approximately 15% of the 2B parameter budget) produces:

  • A calibrated P(AI) score for the entire image
  • A 32×32 patch-level heatmap highlighting regions likely to be AI-generated

Performance

All numbers are from our held-out evaluation suite, scored under a clean protocol at a single fixed threshold of 0.5 — no per-benchmark tuning — and the training loader hard-refuses every evaluation path, so a held-out image cannot leak into training through a config mistake.

Held-out benchmarks (no image below was reachable during training; on OpenFake core/test the generators and the real sources are unseen):

Benchmark n (fake / real) Macro acc AUROC mAP Precision Recall FNR FPR
OpenFake core/test (20 unseen generators vs. unseen DOCCI + ImageNet reals) 89,225 (45,697 / 43,528) 97.27% 99.84% 99.86% 99.83% 94.72% 5.28% 0.17%
CommunityForensics-Eval (21 generators) 51,836 (25,918 / 25,918) 95.79% 99.60% 99.65% 99.79% 91.78% 8.22% 0.19%
NTIRE 2026 public test (unseen proprietary generators) 2,500 (1,300 / 1,200) 91.23% 96.77% 95.69% 93.33% 89.38% 10.62% 6.92%
WildFake DALL·E 3 Advanced (fakes only) 8,843 (8,843 / 0) 100% 99.88% 0.12%
COCO val2017 (real photographs only) 5,000 (0 / 5,000) 0.06%

What each row is testing:

  • OpenFake core/test — the hardest generalization test in the suite: 20 generators absent from training entirely (gpt-image-1.5/2, nano-banana-pro, flux.2-klein-9b, z-image-turbo, midjourney-7, ideogram-2.0, recraft-v2/v3, sora-2, veo-3), scored against real sources it has also never seen (DOCCI + ImageNet). Ranking stays near-ceiling even where the fixed threshold is conservative: AUROC 99.84%, mAP 99.86%.
  • CommunityForensics-Eval — the evaluation protocol Pangram Image reports against: 21 generators, exactly balanced 25,918 / 25,918. This is the head-to-head with the commercial state of the art: 95.79% vs. 97.29% macro accuracy, 99.65% vs. 99.70% mAP — at 15% of the parameter budget, on public data only, with a lower FPR.
  • NTIRE 2026 public test — the organizers' clean-vs-distorted protocol: half the images tagged clean, half carrying a distortion. Clean accuracy 97.68% falls to 84.64% under the hardest distortions (−13 points), but the ranking survives laundering — robust ROC AUC 92.28%, third on the public open-test leaderboard.
  • WildFake DALL·E 3 Advanced — fakes only, so accuracy metrics are undefined without reals; the number that matters is that 11 of 8,843 frontier images slipped through (99.88% recall, 0.12% FNR).
  • COCO val2017 — reals only, the mirror image: 3 of 5,000 organizer-reference photographs flagged (0.06% FPR).

In-the-wild benchmarks (naturally circulated content — provenance unknown, labels follow the community rather than a generator):

Benchmark n (fake / real) Macro acc AUROC mAP Precision Recall FNR FPR
OpenFake reddit/test (AI subreddits vs. photography subreddits) 36,227 (29,116 / 7,111) 88.80% 96.91% 99.19% 99.36% 79.70% 20.30% 2.11%
MIRAGE (human-verified, tagged by manipulation type) 12,073 (10,682 / 1,391) 86.47% 93.34% 99.07% 99.18% 77.90% 22.10% 4.96%

What each row is testing:

  • OpenFake reddit/test — the closest proxy to deployment: synthetic images scraped from AI-generation subreddits against photographs from photography subreddits, after platform re-compression, with no generator metadata at all. Macro accuracy is lower than on the held-out suite because the split is 4:1 fake-skewed and "fake" is defined by subreddit rather than ground truth — but mAP 99.19% says the underlying ranking is intact, and a threshold retune recovers most of the gap.
  • MIRAGE — human-verified and tagged by manipulation type, so it is harder than full synthesis: it includes inpainting, face-swap, and edit slices where only part of the image is AI-generated — exactly the cases the patch-level head exists for.

How to read the columns:

  • Macro acc — mean of per-class accuracy, so a detector that labels everything "fake" still scores 50%.
  • Precision — of everything flagged, the share that truly is AI-generated.
  • Recall — the share of AI-generated images actually flagged.
  • FNR — the share of AI-generated images missed; recall's complement.
  • FPR — the share of real photographs wrongly accused; the number we optimize hardest, because a detector that flags genuine photos is worse than none.
  • AUROC / mAP — threshold-free ranking quality. Near-ceiling values alongside lower thresholded accuracy mean the scores still separate the classes, and a better operating point is one threshold away — no retraining needed.

The trade-off these tables encode: Seer is deliberately biased toward never accusing a real photograph (99.83% precision at 0.17% FPR on OpenFake core/test), which costs recall on borderline fakes. The remaining misses are structural, not random — they concentrate on stylized, illustrative generators (recraft-v3 59% recall, ideogram-2.0 76%), while photorealistic frontier generators sit near-ceiling (gpt-image-1.5 98.6%, flux.2-klein-9b 97.7%).

How We Built It

We performed full fine-tuning on a DINOv3 ViT-L/16 backbone.

We added two prediction heads:

  • Global classification head operating over [CLS ; mean(patch tokens)]
  • Token-wise classification head that produces one logit for every 16×16 patch

The patch-level head is supervised using composite training, including:

  • Fake-over-real composites
  • Real-over-fake composites

Training Data

2.58M public images—1.70M fake, 875K real—across ~4,850 generators:

  • Community Forensics
  • NTIRE 2026
  • Recall-ranked OpenFake
  • GAS-Station
  • FLUX
  • Frontier fakes (Midjourney / DALL·E / SD / Nano Banana Pro)
  • SID_Set (full-synthetic social media)

Real images were sourced from:

  • LAION
  • Open Images
  • Matched photographic datasets

All data was processed through an extensive augmentation pipeline to improve robustness and generalization.

Training

  • Backbone: DINOv3 ViT-L/16
  • Parameters: ~305M
  • Training steps: ~32,000
  • Compute: 1× NVIDIA H100
  • Training time: Nearly 2 days

Tools and stack

  • Development tools: Cursor and Claude Code; training and evaluation compute from RunPod (1× NVIDIA H100)
  • Models / APIs: DINOv3 ViT-L/16 backbone (facebook/dinov3-vitl16-pretrain-lvd1689m) from the Hugging Face Hub, with datasets and weights pulled through the Hub — no third-party inference APIs; the detector runs entirely locally
  • Libraries / frameworks: PyTorch (training and inference), Hugging Face Transformers + Datasets (backbone loading, dataset streaming), Pillow / NumPy (augmentation pipeline), scikit-learn (metrics), matplotlib (heatmaps and error panels); the dashboard is Next.js + TypeScript

Accomplishments We're Proud Of

Strong Out-of-Distribution Performance

OpenFake core/test—unseen generators and unseen real sources:

  • 94.72% recall at 0.17% FPR

NTIRE 2026 open-test leaderboard: third in robust ROC AUC (0.9228), behind MICV and Ant International (both 7B parameters), at 302M—under 5% of their size.

Extremely Low False Positives

The model is also highly conservative when classifying real photographs:

  • 0.06% FPR on COCO val2017
  • 0.19% FPR on CommunityForensics-Eval
  • 0.06% on ImageNet and 0.37% on DOCCI—43,528 held-out reals inside OpenFake core/test

Competitive with Commercial Solutions

Against Pangram Image's published CommunityForensics-Eval results:

  • 1.50 points behind in macro accuracy (95.79% vs. 97.29%), 0.05 behind in mAP
  • 15% of the parameter budget
  • Public data only
  • Lower FPR

This demonstrates that highly competitive AI image detection may be possible without proprietary datasets or multi-billion-parameter models.

What's Next

To compete head-to-head with commercial solutions, the next step would be to begin our own continuous data collection pipeline targeting frontier image-generation services.

AI-generated content detection is fundamentally a continual learning problem.

As companies release increasingly capable generations of image models, detectors must continuously adapt. While our goal is to build models that generalize out-of-distribution, the only way to reliably maintain strong performance against frontier models is to grow alongside them.

Built With

+ 23 more
Share this project:

Updates