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, 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, a small learned detector reads native-resolution tiles, so the mark still shows after a paste, a crop or a screenshot.

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; we trained a detector to read it on Gemini outputs and on the ways people actually upload them (paste, crop, screenshot, JPEG).

3. Search shifts and zooms

If an OpenAI image was padded, shifted, cropped or rescaled, an FFT-based search realigns it across translations, zooms and recovered source aspects. The Google detector reads several tiles at the image's own resolution, so it does not need that grid search.

4. Decide against a measured null

Each match is scored against images from other sources: camera photos, paintings and the outputs of other generators. The OpenAI decoder flagged none of more than 4,000 such images; the Google detector flagged none of more than 22,000 held-out clean test 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 now survives paste, crop and most screenshots. A heavy JPEG share of a screenshot is the weakest case. A negative on a heavily recompressed Gemini image still 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.