RemoveAILabel
Inspect · read-only

AI watermark detector

Three layers: a C2PA signature check, generator metadata fingerprints, and a pixel-level likelihood score we have deliberately not built. This page is honest about what each layer can and cannot read.
JPG · PNG · WebP/Single file/Processed locally/No upload
Drop a file here, or click to choose
JPG, PNG, WebP · one file at a time · fully local
Test the exact file you are going to upload, not a copy forwarded through a chat app or re-saved as a screenshot.

When this layer gets it wrong
  • A generator match only means the text is in the metadata. It does not mean Google verified SynthID, and it does not mean every pixel was synthesised.
  • Clean C2PA does not mean no invisible watermark, does not mean the platform classifier will pass it, and does not mean the caption does not say so.
  • Forwarding and screenshots change the answer: WeChat or WhatsApp forwarding, screenshots and re-compression can strip the metadata while leaving something else behind. Always test the exact bytes you are going to upload.

Why scan before uploading

When a platform shows an AI label you are actually facing three separate problems with three incompatible fixes: provenance data still in the file, an invisible watermark in the pixels, or the platform's own classifier deciding it looks synthetic. Investigating all three at once is how people end up cleaning the metadata three times and still seeing the label.

This page answers only the first question — the one a browser can answer reliably: does the file you are about to upload still carry C2PA or a generator string?

What the three layers are

LayerWhat it readsWhat it can concludeStatus
Layer 1The C2PA manifest inside the JUMBF structureManifest present / parseable / which actions are recordedLive
Layer 2Fingerprints of nine generator toolchains in text fieldsWhich toolchain names appear in the fileLive
Layer 3Pixel statisticsA probability that it “looks synthetic”Not built, and no guessing

We chose not to build layer 3 rather than ship a convincing-looking percentage. A pixel watermark can only be verified with the vendor's private key; any browser-side “detection” is a heuristic guess, and presenting it as a conclusion would mislead people.

The standard workflow

  1. 1
    Upload the file you are actually publishing
    Not a screenshot, not a copy forwarded through a chat app.
  2. 2
    Read layers 1 and 2
    A C2PA hit or a generator match means a file-level trigger exists.
  3. 3
    Clean a copy
    Run it through the cleaner, then scan the downloaded file again.
  4. 4
    Both layers clean but the platform still labels it
    The trigger is not metadata. Cleaning it a hundred more times will not help; you have to work on the pixels or on your disclosure strategy.

Common questions

Is this a watermark removal tool?
No. This page only detects readable C2PA and generator metadata. Removal needs the cleaner, and it only works on file-level data.
Can it detect SynthID?
No. SynthID is fused into the pixels and requires Google's private key to verify. Layer 2 only reads public metadata text, which has nothing to do with pixels.
What is the “pixel-level AI likelihood score” I saw in search results?
That is the planned layer 3, not shipped yet. Today you get C2PA verification and generator fingerprints, nothing more.
If the scan is clean, is the platform guaranteed not to label it?
No. It only rules out readable file markers in the bytes you tested. A platform may still use a classifier, retained history or an invisible watermark.
Do I need an account?
No. Everything runs in your browser and the file is never uploaded.

Related tools