cd /news/structured-data/why-instagram-labels-your-real-photo… · home › topics › structured-data › article
[ARTICLE · art-140253] src=dev.to ↗ pub= topic=structured-data verified=true sentiment=· neutral

Why Instagram labels your real photo "AI info" (and how to see the metadata behind it)

A developer documented how Instagram's "AI info" label is triggered by metadata rather than pixel content, specifically the C2PA Content Credentials manifest and the IPTC `Iptc4xmpExt:DigitalSourceType` field set to `trainedAlgorithmicMedia` or `compositeWithTrainedAlgorithmicMedia`. The writeup shows how to inspect these tags with ExifTool and c2patool, and warns that the common `exiftool -all=` strip also deletes the ICC colour profile and orientation flag, recommending `-tagsfromfile @ -icc_profile -orientation` to preserve them. The developer also released MetaClean, an offline Mac and Windows app bundling pinned ExifTool, c2patool and FFmpeg that strips metadata from photos and videos without re-encoding.

by read3 min views1 publishedSep 26, 2026

You take a real photo, remove a stray object with a generative fill tool, post it, and Instagram adds "AI info" under your name. The picture is 99% camera, but the label says otherwise.

The label usually isn't about the pixels. It's about metadata the editing tool wrote into the file. Once you know where it lives, you can see it in seconds, and remove it without touching the image.

Meta has said it labels images using industry-standard signals in the file. Two of them do most of the work:

1. C2PA Content Credentials. A signed manifest embedded in the file (in a JPEG it sits in APP11 segments as JUMBF boxes). It records which app made or edited the image and what it did: c2pa.opened, c2pa.edited, and, for AI tools, a digitalSourceType saying generative AI was involved. Photoshop, Firefly, ChatGPT's image generation and a growing list of phones and cameras write it.

2. The IPTC digital source type. A single XMP field, Iptc4xmpExt:DigitalSourceType, whose value is a URL from the IPTC vocabulary. The two that matter:

trainedAlgorithmicMedia: made with generative AI compositeWithTrainedAlgorithmicMedia: edited with generative AI (your generative-fill case) Either one is enough to earn the label.

With ExifTool installed:

exiftool -XMP-iptcExt:DigitalSourceType photo.jpg

exiftool -a -JUMDLabel photo.jpg

For the full, human-readable manifest (signer, actions, validation state), use the official c2patool:

c2patool photo.jpg

While you're in there, check what else the file carries. Most phones add GPS once the camera has location access:

exiftool -GPSPosition -Model -SerialNumber photo.jpg

No command line handy? I built a free in-browser EXIF and C2PA viewer that reads all of this, including the prompts Stable Diffusion and ComfyUI hide in PNGs. The file is read locally and never uploaded; switch off your Wi-Fi after the page loads and it still works.

The classic one-liner does remove the C2PA manifest, the IPTC tag and your GPS:

exiftool -all= photo.jpg

But run it on a photo from a phone and look closely:

Warning: ICC_Profile deleted. Image colors may be affected - photo.jpg

-all= also deletes the colour profile and the orientation flag. iPhone photos are usually Display P3, so they come out duller, and portrait shots can come out sideways. The fix is to copy those two back from the original in the same command:

exiftool -all= -tagsfromfile @ -icc_profile -orientation photo.jpg

I tested both on a C2PA-signed, Display P3, rotated JPEG: the second command removed the manifest (c2patool reports No claim found), the IPTC tag and the GPS, kept the profile and rotation, and left the decoded pixels identical.

Then check your result, because a clean-looking command isn't proof:

exiftool -a -JUMDLabel -XMP-iptcExt:DigitalSourceType -GPSPosition photo.jpg   # should print nothing
c2patool photo.jpg                                                             # should say No claim found

For one JPEG, the ExifTool commands above are all you need. For folders full of photos and videos (where metadata lives in QuickTime atoms and its own C2PA box), I made MetaClean, a Mac and Windows app that does the whole thing offline. It bundles pinned versions of ExifTool, c2patool and FFmpeg, never re-encodes (video is remuxed with stream copy), keeps colour profiles and orientation, and re-inspects every output before saving it as clean_<name>, leaving the original untouched. There's a 3-day free trial, then it's $5 once.

Disclosure: I'm the developer of MetaClean and the viewer linked above.

exiftool -XMP-iptcExt:DigitalSourceType -a -JUMDLabel photo.jpg, or c2patool photo.jpg. exiftool -all= -tagsfromfile @ -icc_profile -orientation photo.jpg, then verify.

── more in #structured-data 4 stories · sorted by recency
proofmode.org · · #structured-data
Proofmode
── more on @instagram 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/why-instagram-labels…] indexed:0 read:3min 2026-09-26 · —