forensics.media Subscribe

Diffusion detector · image

Was this image made by a diffusion model?

Diffusion generators (Midjourney, Stable Diffusion, DALL-E) build an image by denoising, and their decoder leaves a faint fingerprint in the frequency spectrum: the high frequencies do not fade the way a real photo's do. This reads that spectrum and its radial profile. Read it as a lead, not proof.

Runs entirely in your browser. Your image is never uploaded or stored.

This teaches one basic forensic signal, read in isolation. It is a lead, not a verdict, and can be fooled on its own — real confidence comes from combining several independent signals and understanding the relationship between them.

What the radial spectrum shows

Average the frequency spectrum around the centre and you get a curve: how much energy the image carries at each frequency, from low on the left to high on the right. A real photograph falls away steeply, because lenses and sensors put most energy in the low and mid frequencies and very little at the top. Corvi and colleagues (2023) showed that images from diffusion models do not fall away the same way: their decoder injects extra high-frequency content, so the tail of the curve sits higher and flatter, sometimes with faint periodic bumps. The tool plots that curve and measures how heavy the high-frequency tail is relative to the middle.

How to read the result

A curve that drops steeply and keeps dropping is what a camera photo looks like. A tail that stays high, flattens out, or rises again toward the right edge is the diffusion tell worth chasing. This is a subtler and less reliable signal than the hard grid a GAN leaves, so the number is a nudge, not a verdict, and the shape of the curve is often more telling than any single threshold. Sharp textures, noise and film grain in a real photo can also lift the tail, which is exactly why this is a lead to corroborate.

Where it fails

The fingerprint is delicate. JPEG re-compression throws away high frequencies and flattens the very tail this depends on, so a shared or re-saved image often reads as clean whether or not it was generated. The signal also shifts between model versions and is absent from images the method was never characterised against. It targets diffusion decoders specifically; for the periodic grid that older GANs leave, use the GAN image detector. A positive is a reason to escalate to a purpose-built detector; a negative rules out very little.

Sources

  • Corvi, Cozzolino, Zingarini, Poggi, Nagano, Verdoliva (2023). On the Detection of Synthetic Images Generated by Diffusion Models. IEEE ICASSP 2023. arXiv:2211.00680.