How Checkobot works
Every check runs the same way. Here is exactly what happens to an image and how the verdict is decided.
Two detectors
- Whole-image analysis looks at the entire picture for patterns typical of AI image generators and editors. It runs on every image.
- Face analysis is a dedicated face-forensics model for face swaps, AI face edits and synthetic faces. It runs when the image has a face at least 64 pixels across, and checks the largest face.
The verdict
If either detector crosses its threshold, the verdict is AI and the result names the detector that fired. Otherwise it's No AI detected.
Each threshold is set on our identity-selfie benchmark so that the detector rarely flags a genuine selfie. Photos from the wider web are harder, and get flagged by mistake more often at the same thresholds.
No AI detected means neither detector found signs at its threshold. Some AI images score under it, so we never label anything as untouched.
How we measure
Every number we publish comes from benchmarks that are frozen, locked by file hash and kept out of training by a leak filter, so the model has never seen the images it's scored on.
The main one is an identity-selfie benchmark of 33,655 images: genuine selfies and face photos, plus face swaps, AI face edits and regenerated faces. We also test on face-swap tools held out of training entirely. We'll publish measured catch and false-flag rates, each with its dataset and thresholds, once our current test round is finished. Until then we'd rather say nothing than quote a number we haven't confirmed.
We also check fairness: on genuine selfies from people the model never saw in training, we compare wrong flags across skin-tone groups.
We don't quote a single "accuracy" number. A detector's results depend on its thresholds and on what you test it on, so we always say which.
What we refuse
- Images under 256 pixels on the short side.
- JPEGs compressed below roughly quality 50.
- Files over 20 MB, and formats other than JPEG, PNG, WebP, AVIF, GIF, BMP and TIFF. HEIC photos from iPhones aren't accepted yet: export them as JPEG first.
- A refused image doesn't count against your free checks.
Versions
Every result shows the model and the rules it was checked with, for example "model genai_face_v1 · bands v0.2". When either changes, old results keep the version they were made with.
What we store
We keep a SHA-256 fingerprint of each file, the verdict and the detector scores, so a result page can be shown and mistakes can be investigated. On free checks the image itself is checked in memory and discarded. Paid plans keep checked images in the owner's history (web checks by default, with a switch to turn it off; API keys only when asked).
Known weak spots
- Talking-head avatars and lip-sync from new engines are our weakest area: it misses many of them.
- Illustrated, cartoon, CGI or doll faces can trip the face analysis. It learned from photographs, so drawn faces can look odd to it.
- Heavily distorted or very low-quality photos get flagged by mistake more often than clean ones.
- Old, low-resolution academic deepfakes are harder for it than the swaps and edits made with today's tools.
- Documents, IDs and receipts aren't what it's built for, and it doesn't check audio, live video or liveness (printed photos held up to a camera, screen replays).