{{ liveStatus }}

AI Watermark Detector

Inspect a JPEG, PNG, or WebP for C2PA Content Credentials, declared AI metadata, and statistical pixel anomalies. The tests run locally and report incomplete coverage instead of guessing. Re-encoding can remove container metadata, but it cannot prove or guarantee removal of a pixel watermark.

JPEG · PNG · WebP · analysed in this tab
Choose an image or drop it here

JPEG and WebP are the most common formats for AI-generated images. PNG is supported too, up to 32 MiB. Pasting with ⌘V / Ctrl+V works, but a copied image usually arrives without its metadata — the file itself is what carries the C2PA and EXIF evidence.

Your browser requests the file straight from that site, so the image never passes through this server — but that site does see your IP address. If the host refuses cross-origin reads, you can choose to let this site's server fetch it instead. Paste the address of the image itself, not of the page showing it.

That host does not let browsers read its files from other sites. This site's server can download it for you: the link is sent to alexrel.com, the server fetches the image and returns the bytes unchanged, and nothing is stored or logged. The host then sees the server's address instead of yours. Images that sites re-compress on upload usually lost their C2PA and EXIF there already — fetching them another way cannot bring that back.

Compare images Research

Compare an original with an edited copy at the same resolution, up to 1024 × 1024. Use opaque PNG, JPEG or WebP without rotation. An image without a colour profile is read as sRGB; an embedded sRGB, Adobe RGB or Display P3 profile is applied by the browser and both images are compared in sRGB. Files stay in this browser.

Differences include edits, compression and decoder effects. This comparison says nothing about SynthID.

{{ slot }}

{{ research.files[index] ? research.files[index].name : 'Choose an image or drop it here' }}

{{ research.files[index] ? formatFileSize(research.files[index].size) + ' · click or drop to replace' : 'PNG, JPEG or WebP · up to 1024 × 1024' }}

Region and spectrum settings

Choose the excluded edit region and fixed tiles before inspecting differences. Coordinates refer to the original pixels; no alignment or resizing is applied.

Import manually recorded Google verification
JSONL or JSON array, up to 10 MiB · {{ research.manifestCount }} unique file records

Observations are matched by SHA-256. This page does not contact Google or authenticate the imported answers.

{{ research.busy ? 'Comparing images locally…' : research.message }}

Pair results
Compared region
{{ research.result.stats.count.toLocaleString() }} pixels
Mean absolute difference
{{ research.result.stats.mae.toFixed(4) }} / 255
Root mean square difference
{{ research.result.stats.rmse.toFixed(4) }} / 255
Changed pixels
{{ (research.result.stats.changedFraction * 100).toFixed(2) }}%
Mean RGB shift
{{ research.result.stats.meanShift.map(n => n.toFixed(4)).join(', ') }}
{{ index ? 'Candidate' : 'Reference' }} colour
{{ research.colorPolicyLabel(input.colorPolicy) }}
Profile match / SynthID
Not evaluated
{{ index ? 'Candidate' : 'Reference' }} · Google verification
{{ observation.status }}Manually recorded, not authenticated here · {{ observation.surface }}

Absolute RGB difference ×{{ research.result.options.previewGain }}

Log power, scaled separately for this tile. Brightness is not a watermark score. Skipped tiles are blank; complex phase data is available in the export.

The report records file hashes, decoder, settings and binary layouts. JPEG/WebP decoded in another program may differ slightly. Browser comparison results remain separate from the image inspection verdict.

About the AI Watermark Detector

Images can carry provenance evidence in separate layers. EXIF, XMP, and IPTC metadata may name software or declare a standard digital source type. C2PA / Content Credentials stores a structured provenance manifest in the file container. Some systems also use proprietary pixel-domain watermarks, but this page has no vendor detector for those systems.

The metadata scanner reads XMP properties, EXIF fields, and supported text chunks, then classifies known generator names and IPTC DigitalSourceType values. The C2PA parser validates the expected JUMBF structure in JPEG APP11, PNG caBX, and WebP C2PA containers and decodes bounded claim fields. It does not verify the signature, asset hash, remote manifest, or trust chain.

The primary pixel test is RS steganalysis, including per-block RS estimates for a heatmap, accompanied by 2D FFT frequency spectrum analysis for radial decay and deconvolution grid peaks (with JPEG 8×8 harmonic separation), 8×8 block DCT Generalized Benford's Law testing, and residual noise homogeneity profiling. Pairs-of-values chi-square is used only as corroboration, while correlation and low-bit periodicity add context. These generic statistics can react to recompression, editing, ordinary steganography, or image content. They do not identify SynthID or any other named watermark.

Editing & tampering forensics is a separate question. Error Level Analysis (JPEG sources only) answers "was this photo locally edited or spliced", not "is this AI-generated" — a fully AI-generated image is one connected render with no seam to find, so this section is not part of the AI-provenance layers above and never affects the verdict or a "clean" result. It is shown as a map to read, deliberately without a score or an "anomaly detected" flag: recompression error is inherently content-dependent, so an uneven pattern is exactly what an untouched photo produces too.

What re-encoding does. A new JPEG, PNG, or WebP is created from decoded pixels and its container is scanned again before download. This is intended to remove header-resident EXIF, XMP, IPTC, and C2PA data. The optional perturbation changes some low bits experimentally; it does not come with a pixel-watermark removal guarantee.

Limitations. A clean verdict means the supported container scans completed and these statistical tests found no anomaly. It does not prove that a human made the image. When a layer cannot run — for example because of browser capabilities, size limits, malformed data, or a timeout — the verdict is explicitly inconclusive.

Related tools: the EXIF Inspector reads every metadata field in detail and removes them one block at a time — or writes your own, the LSB Steganography tool demonstrates the same kind of pixel-level hiding that watermarks use, and the Image Optimizer strips metadata as a side effect of compression.

Privacy: the image is processed in this tab and is not uploaded to this site or stored. A link is fetched by your own browser directly from the host you name, with no cookies and no referrer — the host sees your IP address. Only if that host refuses cross-origin reads and you then choose the server fetch does the link go to this site's server, which downloads the image, returns it unchanged and keeps neither the link nor the file; that step uses Cloudflare Turnstile, loaded only at that moment. With ?debug=1, sanitized lifecycle and parser diagnostics may appear in the browser console; file names, metadata values, image bytes, and pixel buffers are not logged.