The two lanes
A detector runs two independent checks and they answer different things. Keeping them apart is the single most useful idea on this page.
Pixel analysis
- Works after screenshots and compression
- Returns a likelihood, not an identity
- Generator-agnostic by design
- Cannot name a tool
- Degrades against unseen architectures
File evidence
- Can name the tool exactly
- Cryptographic when signed
- Removed by almost every platform
- Absent from most images
- Trivially stripped on purpose
What a file can declare
When an image still carries its original structure, several kinds of marker may be present. Each is a claim made by the software that wrote it rather than something derived from the pixels.
- Content Credentials. A signed manifest naming the tool and what it did. Some major generators now sign their output, which is the strongest form of this.
- Generation parameters. Several open tools embed the prompt, seed, sampler and model name directly in the file, which is more information than most people expect to find.
- Software identifiers. A plain metadata field naming the application that last saved the image.
- Declared AI watermarks. A flag stating that an invisible watermark was applied, which is a declaration rather than the watermark itself.
- Camera capture assertions. The opposite claim, made by a signing camera, that the file came from a sensor.
All of these disappear the moment an image is uploaded to almost any platform. That is why a file scan is worth running and never worth relying on: when it finds something the finding is strong, and it finds nothing most of the time.
Why naming the generator is hard
It sounds like it should be possible. Different tools produce different aesthetics, and a person who spends time with them can often guess correctly. That intuition does not transfer to a detector for three reasons.
Models share architectures and training data, so their statistical fingerprints overlap heavily. Many tools are fine-tunes of the same base, which makes them close to indistinguishable at the texture level even when their outputs look different to a person.
Outputs also get post-processed. Upscaling, face restoration and editing all happen after generation and rewrite exactly the texture an identification would depend on. By the time an image is published it may carry more of the upscaler than of the generator.
And the target moves constantly. Any identification model is a lookup table of things that already existed, which makes it wrong about anything released since it was trained, in a way that is silent rather than obvious.
What good coverage actually means
The useful question about a detector is not which generators it recognises by name. It is how broad the training was, because breadth is what predicts performance on the model that has not shipped yet.
| Approach | Strength | Weakness |
|---|---|---|
| Train on a few major commercial tools | High accuracy on those tools | Poor generalisation to anything else |
| Train across thousands of generators | Generalises to unseen models | Lower peak accuracy on any single one |
| Look for one architecture's artefact | Very high while it lasts | Fails completely when the method changes |
| Read only file markers | Exact when present | Blind on the majority of images |
The second row is the approach used here, and the trade is deliberate. A detector that is excellent on four products and useless on the fifth is not much use for checking an image somebody sent you.
On product names
Lists of supported generators are a marketing artefact more than a technical one. A pixel model does not have a list; it has a training distribution. Naming products implies a per-tool capability that broad detection does not have and does not need.
Where a name does appear in a result here, it came from the file rather than from the pixels, and the result says so. That distinction is worth insisting on from any tool you use.
How to read a coverage claim
Vendors describe coverage in ways that sound comparable and are not. Three phrasings turn up repeatedly and each means something different.
Detects images from X, Y and Z usually means the benchmark contained those three. It is a statement about testing rather than about capability, and it says nothing about the fourth generator.
Supports over forty generators usually means the training set drew from that many sources. That is more meaningful, because breadth of training is what predicts generalisation, and it is still not a guarantee about any specific tool.
Identifies the source model is the claim to question hardest. Ask whether that identification comes from the file or from the pixels. If it comes from the pixels, ask for the accuracy of the identification separately from the accuracy of the detection, because they are very different numbers.