C2PA Metadata Stripper — Remove Content Credentials from PNG and JPEG
Detect and remove C2PA Content Credentials from PNG and JPEG images. Targets OpenAI DALL-E, Adobe Firefly, Google Gemini, Microsoft Designer. Files stay on your device.
Drop a PNG or JPEG image
C2PA Content Credentials are detected and removed in your browser. Nothing is uploaded.
Intended use
- Intended for personal privacy protection: removing metadata and watermarks from files you own before sharing online. Not intended for: academic dishonesty, platform ToS circumvention, or misrepresenting content origin.
- Removing a C2PA manifest means the file no longer carries a cryptographic proof of its origin. Keep the original if provenance matters for your use case.
Every modern image generator — OpenAI’s DALL-E 3 and ChatGPT, Adobe’s Firefly and Photoshop, Google’s Gemini and Imagen, Microsoft’s Designer and Bing Image Creator — embeds a C2PA Content Credentials manifest into the PNG or JPEG it produces. The manifest is a cryptographically signed JSON payload that names the tool that generated the image, the user account that requested it, and the edit history the image has been through. It is not a watermark in the visible-pixel sense; it lives in a separate chunk of the file, invisible to the eye, but trivially readable by any tool that knows where to look.
That transparency has real value when provenance matters — newsrooms, stock photo agencies, court submissions, and content moderation pipelines use C2PA to tell synthetic from real at scale. But there are also legitimate situations where the manifest is unwanted. A screenshot of an AI-generated image shared in a chat is still flagged as synthetic by downstream tools. A composited image that mixes a C2PA-signed AI source with hand-drawn layers carries a misleading provenance claim about the whole work. A CMS that does not understand C2PA may choke on the chunk and refuse to ingest the file. And a draft for a personal blog post does not need an OpenAI account ID baked into every revision.
This tool detects the C2PA manifest in a PNG or JPEG, identifies the signing vendor when possible, and produces a clean copy with the manifest removed. For PNG, the stripper finds the iTXt or zTXt chunk whose keyword is c2pa and drops it. For JPEG, it locates the APP11 marker (0xEB) whose payload begins with the JUMBF magic and removes the entire segment. All other chunks and markers — pixel data, color profile, EXIF, XMP, IPTC — are preserved in their original order. The output is a near-bit-perfect copy of the input, missing only the manifest.
How to use
Drop a PNG or JPEG image
Drag any PNG or JPEG into the drop zone. The file is read in your browser and never leaves your device. The detector looks for the C2PA JUMBF payload, regardless of which vendor signed it.
Read the detection result
The tool reports whether a C2PA manifest was found, lists the byte-level evidence, and, when possible, identifies the signing vendor (OpenAI, Adobe, Google, Microsoft). If no manifest is present, the file is left untouched.
Download the cleaned image
The output is a byte-for-byte copy of the input with the C2PA chunk or APP11 marker removed. Pixels are never re-encoded, so quality is preserved. Filename gets a `-c2pa-clean` suffix.
Frequently asked
What is C2PA?
C2PA (Coalition for Content Provenance and Authenticity) is an open technical standard for cryptographically signing the origin and edit history of media files. A C2PA manifest is embedded in the image at generation time and can be read by any C2PA-aware tool. The signing party — OpenAI, Adobe, Google, Microsoft, and others — attests to how the image was produced.
Which vendors are detected?
The detector identifies manifest signers from the C2PA JUMBF payload and reports OpenAI (DALL-E, ChatGPT images), Adobe (Firefly, Photoshop generative fill), Google (Gemini, Imagen), and Microsoft (Designer, Bing Image Creator). Signers not in the list are still reported as 'C2PA manifest found' without a vendor label.
Does removing C2PA affect image quality?
No. The stripper removes only the manifest payload — the C2PA chunk in PNG and the APP11 JUMBF marker in JPEG. Pixel data, color profile, and the compressed image bitstream are preserved byte-for-byte. Quality, resolution, and file size of the visible content are unchanged.
Why would I want to remove C2PA?
C2PA is a transparency tool, not a privacy leak by itself, but there are legitimate reasons to strip it: cropping, screenshotting, or compositing an AI-generated source into a new work; preparing an image for a CMS that does not understand C2PA; cleaning up drafts before publishing. Stripping C2PA is also the right move when the metadata conflicts with a downstream workflow that does its own provenance tracking.
Is this different from stripping EXIF?
Yes. EXIF is a metadata format that lives in JPEG APP1 segments and stores camera info, GPS, and timestamps. C2PA is a separate, cryptographically-signed payload stored in a different JPEG marker (APP11) and a dedicated PNG chunk (`c2pa` keyword in iTXt). A general EXIF stripper will not touch C2PA. Use this tool for C2PA, and the Strip Image Metadata tool for EXIF.
Are my images uploaded?
No. Detection and stripping both run in your browser. The image bytes are read, parsed, and rewritten in JavaScript. No network call is made, no server sees the content, and nothing is stored between sessions.
Limitations
- PNG and JPEG onlyThe stripper handles PNG (iTXt/zTXt `c2pa` chunk) and JPEG (APP11 JUMBF marker). WebP, AVIF, HEIC, and TIFF use different containers and different C2PA embedding paths. A future version may add format-aware stripping for those formats — for now, convert to PNG or JPEG first if you need to clean them.
- Vendor attribution is heuristicThe vendor label is matched against the JUMBF payload's claim chain. Vendors not in the built-in list (OpenAI, Adobe, Google, Microsoft) are still detected as C2PA but reported without a vendor. A manifest that has been re-signed or repackaged by an intermediate tool may not identify the original signer.
- Pixel content is preserved but not re-encodedBecause the stripper operates on the byte stream, the output is a near-bit-perfect copy of the input. This means the file structure (PNG chunk order, JPEG segment order, ICC profile, color space metadata) is left exactly as the source provided it. If a downstream tool needs a re-encoded, normalized file, route the output through the matching format converter.
Platform notes
- macOS
- Preview.app and Quick Look do not display C2PA manifests — there is no built-in macOS viewer for Content Credentials. Use this tool to detect the manifest, or open the file in a hex editor to see the `c2pa` keyword inside the PNG iTXt chunk.
- Windows
- Windows Photos and File Explorer do not surface C2PA metadata. Right-click → Properties → Details shows EXIF but not C2PA. The C2PA Content Credentials site offers a viewer, but it uploads the file — this tool gives the same detection result entirely locally.
- Linux
- CLI alternative: `exiftool -api RequestAll=3 image.png` will show C2PA claim chains if libexiftool is built with C2PA support. For scripted removal, the underlying parser in this tool is exposed as a pure-function module — see `src/lib/ai-cleanup/c2pa.ts` in the open-source release.
- Web
- Runs entirely client-side. The file is read into a Uint8Array, the C2PA chunk or APP11 marker is identified and dropped, and a Blob URL is generated for the download. No upload, no server roundtrip, no telemetry.