SynthID Decoder

OpenAI's GPT-Image and ChatGPT, and Google's Gemini (Nano Banana), hide an invisible SynthID watermark in every picture they make. Upload an image and we decode whether it is there, in seconds, with no account and no API key.

Upload an image to decode its SynthID

Free, no account needed

Paste or drag and drop it here, or upload a file

PNG works best • JPG, WebP • up to 50MB

Ctrl+Vto paste a copied image

Images are processed in memory and deleted immediately after decoding. Nothing is stored.

What is SynthID?

SynthID is Google DeepMind's invisible watermarking technology. Instead of a visible logo or a metadata tag that is lost on the first screenshot, it modulates the pixels themselves with a pseudo-random pattern far below the level a human can see. In 2026 OpenAI adopted it for image generation: every output of GPT-Image, whether it comes from the API or from ChatGPT, carries the pattern.

Each vendor uses its own secret key, so the OpenAI pattern is different from the one Google embeds in Gemini output. This decoder recovers both without the keys, purely from signal processing on thousands of generated images, and matches them against the image you upload. It needs no OpenAI or Google API call and no network access.

How the decoder works

1. Extract the signal

For OpenAI, a wavelet denoiser separates the picture content from the faint high-frequency residual the watermark lives in. For Google, we read the image's frequency spectrum, where the watermark sits as a set of faint carriers.

2. Match each vendor's key

OpenAI's SynthID is a fixed spread-spectrum pattern, recovered by averaging flat-colour generations. Google's is a learned, content-adaptive mark whose carriers keep a fixed phase; we mapped them from more than 9,000 Gemini images. Both are locked to the 1024 × 1024 generation grid.

3. Search shifts and zooms

If the image was padded, shifted, cropped or rescaled, an FFT-based search realigns it across all translations (and, for OpenAI, 61 zoom levels from 0.85–1.15×) before deciding.

4. Decide against a measured null

Each match is a z-score against the distribution measured on thousands of images from other sources: camera photos, paintings and the outputs of other generators. Neither decoder flagged a single one of more than 4,000 (OpenAI) and 7,000 (Google) such images.

What a negative result means, and what it does not

A detection is strong evidence the image was produced by an OpenAI or Google model. A non-detection is not proof that it is real: it only says neither pattern is present. Images from Midjourney, Flux, Stable Diffusion, Qwen and every other generator return negative here by design. For those, use the full Sightova AI image detector, which does not rely on a watermark.

The OpenAI pattern survives JPEG compression, downscaling, screenshots, padding and moderate crops. It is lost under zooms outside 0.85–1.15×, non-uniform stretching, or when the image is too smooth to carry any measurable noise.

Google's mark is fainter. We find it in roughly 85–90 % of original Nano Banana and Nano Banana Pro images and about half of Nano Banana 2 images; JPEG recompression, WebP and crops that were enlarged again lower that further. So a negative on a suspected Gemini image means little: check it with the full detector.

Need this in your own pipeline?

Watermarks only catch the vendors that embed them. Sightova's AI-image, deepfake and document-tampering detectors catch the rest, through the dashboard or the REST API.