the numbers
how it works
Diffusion-family image editors (Gemini / nano-banana, GPT Image, FLUX Kontext…) re-encode the entire image even when you ask for a tiny change — typically 99%+ of pixels shift. Honest workflows don't look like that:
- Hand edit from source files — unchanged pixels are bit-identical. Even two JPEG exports of the same flattened art match exactly outside the edit, because JPEG is deterministic.
- Compression / resizing — fuzz clings to edges and detail; flat areas stay almost exactly still. Interpolating a constant returns the constant.
- Color grade — shifts everything, but symmetrically: flat areas move as much as edges, and nothing is redrawn.
- AI subtle re-render (Gemini class) — drift everywhere, including flat fills, and edges are jittered — lines land a hair off.
- AI full repaint (GPT Image class) — large fractions of the image change hard; details are plausibly redrawn, not smudged.
- AI + mask-back composite — a coherent region (usually the character or subject) is a pixel-exact copy of the original while everything around it drifts. Compression never traces an outline.
The detector measures a handful of statistics that separate those signatures — drift in flat regions, edge/flat asymmetry, bit-identical fraction and its shape, hard-repaint fraction, JPEG grid periodicity, canvas-size fingerprints — and runs a transparent rule cascade calibrated on labeled pairs from the actual models.
Limits: you need the true original as A. Screenshots of images, heavy crops, or images that were both re-saved many times will muddy the signal. A verdict is evidence, not proof — read the visualizations too. If the "bit-identical" panel shows a green silhouette of the subject, draw your own conclusions.