Every major AI image generator now embeds a Content Credentials (C2PA) manifest, an XMP block, or a JUMBF box that announces the image was AI-generated and identifies the model. GhostMeta strips all of that in your browser — the file never leaves your device. Drop a JPEG or PNG, see exactly which AI fingerprint was found, then download a clean copy. Where the fingerprint actually lives depends on the format: in a JPEG it rides inside an APP11 marker segment, while in a PNG the same C2PA manifest is wrapped in a caBX chunk, and any prompt or model string sits in separate tEXt or iTXt chunks. GhostMeta reads every container in one pass, so a mixed batch of JPEGs and PNGs from different tools all come out neutral without you having to know which generator made which file. The practical payoff is concrete: marketplaces and stock platforms that auto-scan for a C2PA claim_generator can demote or reject an AI-flagged listing, and clearing that single metadata layer removes the signal those scanners key on.
Sora, ChatGPT (GPT-4o image), DALL-E 3, Midjourney v5/v6, Adobe Firefly, Stable Diffusion, Flux, Leonardo.AI, Runway and Google Imagen are recognised. Any image carrying a C2PA/JUMBF manifest is flagged even if the generator string is unknown.
GhostMeta removes the technical metadata (C2PA Content Credentials, EXIF, XMP, JUMBF). It does not erase visible burn-in watermarks pixel-for-pixel. For visible watermarks an image editor is needed.
No. The image is decoded to canvas and re-encoded locally via the Canvas API. No upload, no telemetry, no log.
Yes. GhostMeta does not rely on you naming the generator. It inspects the actual byte structure — the JPEG APP11 segment, the PNG caBX chunk, the JUMBF box nesting, and any tEXt/iTXt or XMP block — and strips whatever provenance it finds. An unrecognised generator string still gets removed as long as the manifest sits in one of these standard containers.
Effectively none of the original provenance. Because the image is decoded to a canvas and re-encoded from raw pixels, the output is a fresh file built only from the visible image data — no C2PA manifest, no EXIF, no XMP, no PNG text chunks carry over. The only fields present are the minimal ones the browser's encoder writes for a valid JPEG or PNG.
Yes, up to a 4096px cap on the longest side, which prevents memory crashes on mobile. Below that limit the pixel dimensions and aspect ratio are preserved exactly; only the metadata layers are dropped. Note that re-encoding a JPEG applies one more lossy compression pass, so for archival-grade work start from a PNG.