The numbers we measured ourselves, published as-is — including what our tools cannot do. All figures are from our own benchmarks, with the method written out.
The numbers we measured ourselves, published as-is — including what our tools cannot do. All figures are from our own benchmarks, with the method written out. Free with no sign-up, and the analysis runs inside your browser — files never leave your device. On our public gate (30 real + 52 AI images) it measured 96.3% at original quality and 91.5% on recompressed copies, with zero real photos confidently mislabelled as AI. Treat it as an indicator, not proof: the newest commercial generators evade every detector.
The numbers we measured ourselves, published as-is — including what our tools cannot do. All figures are from our own benchmarks, with the method written out.
Measured 2026-07 · Last updated 2026-07-17
To fix "most portrait photos land near 50%", we compared every public detector we could run in a browser (ONNX) on one test set of 12 images (6 real + 6 AI). The real ones included recompressed photos and an official portrait; the AI ones mixed Flux photoreal portraits, SDXL and AI art.
The results diverged sharply. Most public models barely separated real from AI, and several flagged real photos as AI. A higher "real average" (right column) means the model points at innocent photos.
No single model catches the newest generators, so we combine two with different failure modes (SwinV2 + Community Forensics) and grid-searched the blend on 40 real + 40 DALL-E 3 + 30 Gemini images (n=110).
Note that we rejected the most accurate option. A noisyOR blend scored 93.6% — the best — but falsely confirmed 3 real photos as AI. Errors here are asymmetric: missing AI fools you once, but confirming a real photo as AI calls a real person's picture fake. So "zero real photos confirmed as AI" is a hard floor, and we maximise accuracy under it.
After reports that Gemini 2.5 Flash Image (nano-banana) went undetected, we measured: models trained through 2024 missed that generation almost entirely (0–13%). A detector has never seen generators released after its training cutoff. This is the structural limit of AI detection — generators keep coming, detectors only know the past.
We retrained in-house on 1,458 images from current generators (nano-banana, Imagen 4 and others), freezing the backbone entirely and training only the 385-parameter head (linear probe) so the model would not forget what real photographs look like.
Our retrained v2 scored 99.1% on the n=110 benchmark, far ahead of v1. Then, just before shipping, we ran it on the original 12-image set and it flagged studio-grade real photographs as AI (an official portrait at 94%). We rolled it back immediately.
The cause: the real photos it trained on came from a single source (Flickr30k). Classic overfitting — passes the benchmark, collapses on the real distribution. The larger benchmark (n=110) missed what the small gate set (12 images) caught.
We then diversified the real photos across four sources (Flickr, picsum, TMDB actors, FFHQ) and made "zero real photos confirmed as AI" on the 12-image gate a per-epoch requirement. That gate went on to disqualify three more flawed candidates. Never ship on one number — that rule came from this incident.
Unlike images, text is not at a trustworthy level yet. Scoring our current stylometric heuristic against our own gate set (181 human texts, 140 AI texts, from public benchmarks with verified provenance), it flagged 24.9% of human writing as AI. One in four.
Raising the threshold does not fix it. Pushing false positives to zero collapses detection to 13.6% — the separation simply is not there. So we changed the wording from "suspected AI writing" (a judgement about the author) to "many patterns common in AI text" (an observation about the text), and we show the measured false-positive rate next to the score.
We also tested adding a small language model's perplexity, and dropped it. Measurement showed the metric tracks how formulaic the writing is, not who wrote it. The templated voice of 2022-era ChatGPT is caught easily (0.14× vs human), but text a current model writes naturally is indistinguishable from human (0.91×). For four real LLM-written Korean formal documents, the perplexity values landed exactly on top of the human range.
Do not use AI-detection output as proof in academic or hiring decisions. Ours included.
Every figure is from our own benchmark only. These are not standings on a standard benchmark, and other test sets will give different numbers.
Images: a 12-image gate set (6 real + 6 AI) plus an n=110 regression benchmark (40 real · 40 DALL-E 3 · 30 Gemini), with JPEG recompression applied to approximate social-media conditions.
Text: human samples come from HC3 (5 English domains) and KLUE (2021) / kowiki (2022-06) — published before ChatGPT existed, so human authorship is guaranteed by date. AI samples are real ChatGPT answers from HC3.
The samples are small (images n=110, text n=321). Read the confidence intervals generously.
The procedures and raw data are public in the repository under docs/DETECTION.md and docs/gates/.