Rinse · Instagram AI labels

Instagram put an AI label on your real photo.

What it read, why your editor put it there, what you can and cannot do about a post that is already live, and how to check the next file before you upload it.

The short answer

Instagram read your file, not your photograph.

Meta generates AI labels from provenance metadata inside the uploaded file: C2PA Content Credentials, IPTC and XMP fields written by ordinary tools, including Adobe's.

That is the mechanism, and it is why a photograph you took yourself, of a real thing, with a real camera, can come back wearing an AI label. Nothing looked at your picture and decided it was synthetic. Something read a line of text your software left in the file.

This is a known failure mode with named victims, not a rumour. The most cited example is a basketball photograph by Pete Souza, the former White House photographer, and Meta's Oversight Board has issued a finding on the labelling approach.

Source: fstoppers.com, "Instagram's ham-fisted approach labeling photos AI" (2025).

So there are two jobs on this page, and they are not the same job. Job one is the post that is already up, and the honest answer there is short and slightly annoying. Job two is every file you upload from now on, and that one you can actually control, in about thirty seconds per file, for free.

If you want the general version of this, covering TikTok and YouTube as well as Instagram, and what the underlying C2PA standard is, read why your photo says "Made with AI". This page stays on Instagram and on what to actually do next.

Job one

The post that is already live.

Nothing you do to a file on your Mac reaches a copy that is already on Instagram's servers. They are two different files.

Cleaning your local image, re-exporting it, running exiftool over it, buying any tool at all, ours included: none of it touches the upload Instagram already has. There is no edit that reaches back. Anyone selling you a "remove the label from your post" button is selling you something they do not have.

What people actually do is delete the post and upload a clean file in its place. That costs you the likes, the comments and the timestamp, so decide whether the post is worth it before you do it, and expect nothing about the outcome to be guaranteed. See where this stops further down for why we will not promise you the label stays off.

If you think Instagram got it wrong, the route is Instagram's.

Meta's labelling has been contested, publicly, by working photographers, and the Oversight Board finding above exists because of that pressure. If you want to contest a label on your own post, that is a conversation with Instagram inside Instagram. We are not part of it and cannot influence it. We have no sourced, current description of how their appeal flow works today, so we are not going to invent one and send you round a loop. Check their own help pages for the current process.

The rest of this page is job two: making sure the next file you upload does not carry the thing that got read.

Why it happened

Lightroom and Photoshop write into the file. Quietly.

You did not add anything. Your tools did. Adobe applications write Content Credentials, and that is exactly the class of metadata Meta generates its labels from, alongside IPTC and XMP. The label is downstream of a normal edit.

Concretely, these are the fields that end up in an exported JPEG:

Your camera and your phone may be doing it too.

Content Credentials are going default-on in hardware. The Leica M11-P, the Nikon Z9 and Z8, newer Canon and Sony bodies, Samsung Galaxy S25 AI edits and Pixel 10 hardware-key signing all write provenance data, and OpenAI attaches C2PA to its generations. Every month, more perfectly innocent files arrive carrying credentials nobody chose to add.

Source: eyesift.com, C2PA adoption overview (2026).

Job two, step one

Check the file before you post it.

Thirty seconds, free, and it tells you whether you have a metadata problem at all. The tool is exiftool, by Phil Harvey: free, open source, and what a lot of metadata utilities run underneath, ExifCleaner and Rinse included.

# install it (Homebrew), or get the package from exiftool.org
brew install exiftool

Check the exact file you are about to upload.

exiftool -G1 -s -a -JUMBF:all -XMP:all -IPTC:all -EXIF:Software post.jpg

Check the export, not the master. This matters more on Instagram than anywhere else, because of how the file gets to the app. The image Instagram reads is the one that actually reaches your phone: the JPEG or HEIC you AirDropped, synced through Photos, or dropped into a shared album. Inspecting your Lightroom catalogue tells you nothing. Inspect the file at the end of your chain.

Three things are worth finding in that output:

If your file has none of those and it still got labelled, your problem is not metadata and nothing on the rest of this page will fix it. That is worth finding out in thirty seconds rather than after an afternoon.

Sweep a whole export folder before a shoot goes out.

exiftool -r -G1 -s -a -JUMBF:all -DigitalSourceType -Software -CreatorTool \
  -ext jpg -ext jpeg -ext heic ./export

Walks ./export and prints, per file, the four things worth knowing about. Files that come back with nothing under them are clean on this measure. -r descends into subfolders, so point it at the right one.

Job two, step two, the free way

Strip it yourself with exiftool.

One command removes every writable tag exiftool can name:

exiftool -all= post.jpg

That works. It also has sharp edges, and each of these has caught someone out.

It takes your credit line with it.

-all= means all: your copyright notice, your byline, and your EXIF orientation flag, and a stripped orientation flag can leave a phone photo displaying on its side. Name what should survive:

exiftool -all= -tagsfromfile @ -Orientation -IPTC:CopyrightNotice \
  -overwrite_original post.jpg

-tagsfromfile @ means "read those tags back from this same file", so they are restored after the wipe.

Keep the original.

By default exiftool writes in place and leaves the untouched original beside it as post.jpg_original. Add -overwrite_original, as above, and that safety net is gone. Copy your files somewhere else first, and never let a batch run be the only version you own.

Verify. Do not assume.

This is the step everyone skips. Run the inspection command again on the output and confirm the [JUMBF] group is actually gone. Metadata removal has quiet failure modes: a container the tool does not fully parse, or an encoder that writes a fresh tag straight back in. Reading the file afterwards is the only proof that counts.

Comfortable in a terminal? Stop here. exiftool is free and it is genuinely the right tool, and ExifCleaner is a free graphical option. The rest of this page is for people who do not want to do this by hand before every post.

Job two, step two, the $9 way

Or make it a folder you drag things into.

Rinse is a small Mac utility that runs the above on every image you drop into a folder. A Clean folder sits on your Desktop. Drag in the shot you are about to post, or the whole export. Cleaned copies appear in the Cleaned folder beside it, usually in about two seconds, and your untouched originals are kept in ~/Rinse/originals/ with a timestamp on each one.

It shows you what it found. Rinse counts the metadata fields in your original before it cleans, then tells you what it removed ("post.jpg • 7 tags removed"), records it in its log, and flags any privacy or AI field that survived the pass. That receipt is the point. You are not asked to take the removal on trust, and you can check it with the exiftool command above whenever you want to.

In practice, for Instagram, that makes it one step in the export chain: Lightroom exports to a folder, you drag the folder onto Clean, and what goes to your phone is what came out the other side.

Price
$9, one Mac, buy once. 7-day refund, no questions.
Formats
JPEG, PNG, TIFF, HEIC, AVIF, and static GIF. Animated GIFs come out as a single frame, so they are not supported. Images only, not video. RAW is not supported yet.
Removes
EXIF, XMP, IPTC, C2PA Content Credentials in JUMBF boxes, PNG text chunks (prompt and workflow blobs), JPEG APP markers, Photoshop IRB, embedded thumbnails, ICC profile.
Privacy
Everything happens on your Mac. No network access, no account, no telemetry. Rinse cannot see what you clean, which is the point.
Requires
macOS 13 Ventura or later, Apple silicon or Intel. Nothing to install separately, exiftool is bundled.
Get Rinse · $9

Or read the full product page first.

Two things we would rather you heard from us.

Rinse re-encodes the pixels into a fresh container as its first pass, at quality 0.92. In normal use the result is visually identical to the original, same dimensions, same colour, and your original is always kept. It is not a byte-for-byte copy of the pixels, and we do not claim it is. If bit-exact pixels matter to you, exiftool leaves them completely untouched, so use exiftool.

Rinse is also not code-signed yet. Our Apple Developer enrolment was submitted in September 2026 and is being verified as of writing, so on macOS 15 Sequoia and later the first launch means dismissing a warning, then clicking "Open Anyway" in System Settings under Privacy & Security. Once, then never again. We would rather tell you now than at the moment you have just paid.

Where this stops

What cleaning a file does not guarantee.

Nobody can promise you a label will not appear. Anyone who does is promising something that is not theirs to give.

Classifiers judge the pixels.

Platforms increasingly pair metadata reading with their own classifier-based detection, TikTok and Pinterest among them. Removing metadata removes the metadata trigger. It does nothing about a model looking at your image and forming a view. Whatever a platform's classifier decides is beyond the reach of any metadata tool, Rinse included.

SynthID lives in the pixels.

Google's SynthID and similar pixel-domain watermarks are woven into the image itself, not into its metadata. Rinse does not remove SynthID and cannot. Neither can exiftool, or any other metadata tool. Only diffusion-based regeneration can weaken a watermark like that, and even then never with certainty. If a page tells you otherwise, you can check it in five minutes and find out it is false.

Platform behaviour moves.

Meta has iterated on this repeatedly. The sourced claims on this page are dated, and we would rather you checked them yourself than took them from us in six months when they may no longer hold. Anything we cannot source, we do not print.

This does not make an AI image undetectable.

It is not built for that and it does not achieve it. Rinse exists because photographers, agencies and studios keep getting real work flagged over fields that Adobe, a camera, or a retouching step wrote without asking. That is the problem it solves, and where it stops is written on the box.

Related questions

The ones people ask next.

How do I remove the "Made with AI" label from a photo I already posted?

You cannot do it from your Mac. Editing a local file has no effect on a copy already uploaded to Instagram; they are separate files and nothing you run locally reaches theirs. The practical route is to delete the post and upload a cleaned file instead, which costs you that post's engagement. Contesting the label itself is a matter for Instagram, through Instagram.

I never used AI. Why did Instagram label my photo?

Because Meta generates the label from C2PA, IPTC and XMP metadata written by ordinary tools, including Adobe's, and that metadata ends up in files that were never near a generator. It is a documented failure mode, not your imagination: a basketball photograph by Pete Souza, the former White House photographer, was labelled this way, and Meta's Oversight Board has issued a finding on the labelling approach.

Does editing in Lightroom or Photoshop cause this?

It can. Adobe applications write Content Credentials, and Content Credentials are part of what Meta labels from. Photoshop and Lightroom also record edit history in the XMP packet, and a generative fill on one corner leaves that history attached to the whole file. Run the inspection command on one of your own exports and you will see exactly what yours carries.

Will cleaning the metadata definitely stop the label?

It removes the metadata trigger, which is the documented mechanism. It cannot cover a platform's own pixel classifier, and platforms increasingly run both. We will not tell you it is guaranteed, because it is not ours to guarantee.

Is exiftool enough, or do I need to pay for something?

For most technical users, exiftool is enough. It is free, it is excellent, and the commands are on this page. ExifCleaner is a free graphical alternative. Rinse is $9 for a folder that cleans by itself, bundled binaries so there is nothing to install, C2PA handling, and a count of what it removed. If you already have exiftool aliased in your shell, you probably do not need Rinse, and we would rather say that than pretend otherwise.

What about Reels and video?

exiftool will read metadata out of an MP4 or MOV, so exiftool -a -G1 -s clip.mov shows you what is inside one. Rinse itself handles images only in the version you can buy today: JPEG, PNG, TIFF, HEIC, AVIF and static GIF.

Does this apply to other platforms too?

The same file-level mechanism turns up elsewhere. TikTok uses C2PA Content Credentials to detect and label synthetic media automatically, whether or not the creator declared anything, and YouTube applies labels to video it detects as AI-generated. The cross-platform version of this page is why your photo says "Made with AI".

Clean the file before it goes to your phone.

$9. One Mac. Local only. 7-day refund, no questions.
JPEG, PNG, TIFF, HEIC, AVIF and static GIF.

Get Rinse · $9