Detect and strip invisible C2PA Content Credentials from ChatGPT / GPT-Image-2 / DALL·E 3 / Sora images. Runs entirely in your browser — no upload, no signup, no server.
Drop one or many images. We scan for C2PA metadata, then strip it using Canvas re-encoding. No server upload — everything stays local.
Drop images here, or click to upload
Up to 50MB per file · select multiple — Browse
JPEG · PNG · WebP
Every image generated by ChatGPT, GPT-Image-2, DALL·E 3, or Sora is stamped with an invisible C2PA (Content Credentials) manifest — a cryptographically-signed metadata block embedded inside the file. You can't see it with your eyes, but platforms like X, Meta, LinkedIn, and TikTok read it on upload and auto-tag the post as 'Made with AI'. C2PA is a Coalition for Content Provenance and Authenticity standard jointly developed by Adobe, Microsoft, Intel, and OpenAI. It's stored as an APP11/JUMBF segment in JPEG, a caBX chunk in PNG, or a C2PA RIFF chunk in WebP.
X, Meta, and LinkedIn now inspect uploaded images for C2PA manifests and auto-label the post. If you've paid for GPT-Image-2 output for client work, you may not want the platform advertising it.
C2PA manifests record the exact model, generation time, and organization ID. For freelance / agency deliverables that's usually more disclosure than the client needs to see.
Some CMSes and optimizers handle large JUMBF payloads poorly — stripping them can shave 20–100 KB off each image and avoid weird rendering edge cases.
If you combine AI output with your own retouching / compositing, the original manifest is stale anyway — better to republish with a clean file than to ship a signature that no longer matches the pixels.
If you want to verify cleaning yourself or audit a competing tool, here's the exact byte-level layout. All three image formats use a different container, which is why generic 'remove metadata' utilities sometimes miss one or two of them.
C2PA data is wrapped in a JUMBF (JPEG Universal Metadata Box Format, ISO/IEC 19566-5) container, then placed inside a JPEG APP11 marker segment (0xFFEB). Because each marker payload is capped at ~64 KB, a single C2PA manifest is usually split across multiple APP11 segments. Look for the bytes 'JP' followed by 'jumb' near the start of the file.
PNG stores C2PA in a custom ancillary chunk named caBX (lowercase c=ancillary, lowercase a=private, uppercase B=reserved, lowercase X=safe-to-copy). PNG strippers that only target tEXt / iTXt / zTXt — which most do — will silently leave caBX behind.
WebP is a RIFF container, and C2PA gets its own four-character chunk type 'C2PA'. RIFF readers that only know about VP8 / VP8L / VP8X / EXIF / ICCP chunks will treat it as 'unknown' and copy it through verbatim — meaning a naive transcode can preserve the watermark unless the encoder explicitly drops unknown chunks.
After cleaning, run any of the following locally to confirm the manifest is gone:
exiftool -a -G1 cleaned.jpg | grep -i -E 'jumbf|c2pa'xxd cleaned.png | grep -i -E 'cabx|jumb|c2pa'Upload to contentcredentials.org/verify — should report 'No Content Credentials found'.
Important
This tool is provided for educational and legitimate workflow purposes. Do not use it to impersonate human creators, commit fraud, or circumvent disclosure requirements imposed by the platforms you publish on or by law in your jurisdiction. All trademarks — ChatGPT, DALL·E, GPT-Image-2, Sora — are property of OpenAI; we are not affiliated with or endorsed by OpenAI. C2PA is a trademark of the Coalition for Content Provenance and Authenticity.