cd /news/ai-safety/synthid-remove-vs-metadata-what-s-ac… · home › topics › ai-safety › article
[ARTICLE · art-163542] src=dev.to ↗ pub= topic=ai-safety verified=true sentiment=· neutral

SynthID remove vs. metadata: what's actually inside an AI image file (EXIF, XMP, C2PA)

A developer published a practical guide distinguishing embedded image metadata — EXIF, XMP, IPTC and signed C2PA manifests — from pixel-level watermarks like Google's SynthID, noting that stripping metadata leaves SynthID untouched. The guide shows how to inspect files with exiftool and c2patool and how to produce a metadata-free copy locally via the Canvas API, while cautioning that re-encoding is lossy and that removing provenance data is not a way around AI disclosure rules.

by read3 min views2 publishedNov 4, 2026

If you've ever downloaded an image from an AI generator and opened it in exiftool, you've probably noticed the file carries a lot more than pixels. Generators, editors and even some phones now write provenance data into the file: software names, prompts, creation tools and, increasingly, signed C2PA manifests. A lot of the "synthid remove" searches I see from photographers and indie devs are really about this layer, so it's worth separating the two things clearly.

Embedded metadata lives in containers alongside the image data:

CreatorTool or IPTC's DigitalSourceType (e.g. trainedAlgorithmicMedia) here. tEXt, iTXt): some local Stable Diffusion UIs store the full prompt and settings here. Pixel-level watermarks such as Google's SynthID are different: they're woven into the image content itself, so stripping metadata does nothing to them. Keep that distinction in mind when someone promises a one-click fix for both.

There are plenty of honest reasons to strip metadata from images you own or are authorized to edit:

What it is not for: passing off generated images as camera photos where a platform, client or publication requires disclosure. If the rules say "label AI images", label them, in the caption or alt text, regardless of what's in the file.

Before removing anything, look at what's there:

exiftool -a -G1 image.png        # every tag, grouped by container
exiftool -XMP:all image.jpg      # just the XMP packet
c2patool image.jpg               # C2PA manifest, if any

For a PNG from a local SD install you'll often see a parameters text chunk containing the whole prompt.

You can do the cleanup locally with the Canvas API: draw the decoded image to a canvas and export a fresh blob. The re-encoded file contains pixels only, none of the original EXIF/XMP/IPTC/C2PA/text chunks.

async function cleanCopy(file, type = file.type) {
  const bitmap = await createImageBitmap(file);
  const canvas = new OffscreenCanvas(bitmap.width, bitmap.height);
  canvas.getContext('2d').drawImage(bitmap, 0, 0);
  return canvas.convertToBlob({ type, quality: 0.95 });
}

Caveats: JPEG re-encoding is lossy, color profiles may change, and orientation metadata is applied before drawing in modern browsers, so check the result.

If you don't want to wire that up yourself, the free Remove AI Label tool on SynthClear does exactly this kind of local cleanup: you drop in JPG, PNG or WEBP files and it creates fresh copies without the original EXIF, XMP, C2PA and other embedded metadata, processed in your browser rather than uploaded.

The free Remove AI Label page on SynthClear (screenshot).

Since SynthID isn't metadata, the browser trick above won't touch it. SynthClear also has a separate, paid tool on its homepage that attempts to remove supported SynthID watermarks from images you own or are authorized to edit; the site itself says results vary by image and aren't guaranteed. I'd treat that as a niche tool for your own assets, not a way around disclosure rules.

SynthClear's homepage, where the separate SynthID tool lives (screenshot).

exiftool -a -G1 so you know what you're removing. For more background, see this guide on SynthID remove vs. metadata and disclosure for photographers and this short publishing checklist for AI images.

Metadata is useful, and sometimes it says more than you meant to share. Knowing which layer you're dealing with is most of the battle.

── more in #ai-safety 4 stories · sorted by recency
── more on @google 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
→ Live at https://your-agent.zahid.host ✓
Get free account → Pricing
from €0/mo · no card required
LIVE [news/synthid-remove-vs-me…] indexed:0 read:3min 2026-11-04 · —