Didactic / Initiatives

Guide · TagWipe

Removing AI Metadata from Midjourney, DALL·E & Stable Diffusion Images: Reddit's Prompt-Leak Problem

r/StableDiffusion figured this out early and the hard way. Someone posts a striking generation, someone else drops the PNG into a metadata viewer, and there it is: the full positive prompt, the negative prompt, the seed, the sampler, the CFG scale, the checkpoint hash. Sometimes the entire ComfyUI workflow as JSON.

For a lot of people that's a feature — it's how the community shares technique, and it's why "prompt?" gets answered by "it's in the PNG." For anyone selling work, competing, or just not wanting their process public, it's an unintentional disclosure that travels with every file they send.

What's actually in the file

Local Stable Diffusion — the most revealing by far

Automatic1111, ComfyUI, Forge and most other front-ends write generation parameters into the PNG's text chunks by default. PNG has a spec-blessed place for arbitrary key/value text, and the tooling uses it enthusiastically. A typical file carries:

This isn't hidden or obfuscated. It's plain text, and any viewer will show it.

Midjourney, DALL·E and hosted tools

Less verbose, still identifying. Expect generator identification in EXIF or XMP fields, and for tools inside the C2PA ecosystem a signed Content Credentials manifest plus an IPTC DigitalSourceType of trainedAlgorithmicMedia. That last field is small and consequential: it's what makes platforms label the image automatically on upload.

Anything you touched in Photoshop afterwards

Upscaled, retouched or composited in an Adobe app? You may now have a C2PA manifest describing that too — sometimes naming you or your organisation, if credentials were configured with an identity.

Fact-checking the Reddit fixes

⚠️ "Just convert it to JPG"

The most-repeated answer, and it's genuinely unreliable rather than simply wrong. PNG text chunks can't survive as text chunks in a JPEG, so a naive conversion usually drops them — which is why so many people report it working. But plenty of conversion tools deliberately migrate metadata into EXIF or XMP on the way out, and your prompt reappears in a different field. You also recompress the image.

The failure mode is the problem. It fails silently — you believe the file is clean, and it isn't. If you use conversion as your method, verify the output every time, which is more work than cleaning properly.

✅ "Turn off metadata saving in your front-end"

The best answer in these threads, and it's upstream of everything else. Automatic1111 has a setting to stop writing generation parameters into saved images; ComfyUI can be configured to disable metadata embedding. Set it once and future generations are clean at source.

It does nothing for the images already in your output folder — which for most people is thousands of files, all of them carrying prompts.

✅ "exiftool -all="

Correct and thorough on a computer, which is where most generation happens anyway. exiftool -all= image.png clears the chunks. If you're batch-processing an output directory, this is the right tool.

❌ "Screenshot it"

Works, and for a generated image it's a worse trade than usual: you're throwing away the resolution you spent GPU time producing. Cropping and re-saving in a basic editor has the same problem, plus it doesn't reliably drop chunks anyway.

❌ "Reddit strips it on upload, so it doesn't matter"

Reddit's image pipeline does re-encode and drop most metadata, which is why not every posted PNG leaks its prompt. But this only covers images posted to Reddit's own hosting. Send the file over Discord, hand it to a client, upload it to a marketplace or attach it to an email and it goes intact. And if you're posting the original link, or the platform preserves the file, the prompt goes with it.

Cleaning what you've already made

If the generated images are on your phone — saved from Midjourney's Discord, downloaded from a web UI, or synced from a desktop output folder — TagWipe handles them locally:

  1. Open TagWipe and select the images, or the whole album.
  2. Read the scan. Generation parameters, C2PA manifests, DigitalSourceType and generator XMP tags are named individually, so you can see what each file is carrying.
  3. Clean, choosing save a copy or replace the original.

One thing worth deciding before you start: your prompt is often the thing you most want to keep. Seeds and parameters are how you reproduce or iterate on a result. If you clean with "replace original," that record is gone permanently — TagWipe can't recover it and neither can anything else. Either export your parameters somewhere first, or use save-a-copy and share only the copy.

For desktop workflows, the better shape is: turn off metadata embedding for anything you intend to publish, keep a parameters log separately, and clean on the way out rather than at rest.

The honest limit

Stripping metadata removes what identifies the image as generated in machine-readable form. That stops automatic platform labeling and stops your prompt leaking. It does not do two things:

So: metadata cleaning is file hygiene and prompt privacy. It isn't a way to pass generated work off as photography, and where disclosure is expected — contests, stock libraries, editorial, client work — it's worth disclosing regardless of what's in the file.

Frequently asked questions

Does a Stable Diffusion PNG contain my prompt?

Usually yes. Automatic1111, ComfyUI and most front-ends write parameters into PNG text chunks by default — prompts, seed, sampler, CFG, model and checkpoint hash, and often ComfyUI's entire node workflow as JSON.

Does converting to JPG remove it?

Often, not reliably. PNG chunks don't carry into JPEG as chunks, but many converters migrate metadata into EXIF or XMP instead — and you recompress the image. It fails silently, which is the real danger.

Do Midjourney and DALL·E images carry metadata?

Yes, though usually less. Expect generator identification in EXIF/XMP and, for C2PA participants, a signed manifest plus an IPTC trainedAlgorithmicMedia value.

Can I turn off metadata saving in Automatic1111 or ComfyUI?

Yes, and it's the best fix — both can be configured not to embed generation parameters. It won't help with images you've already saved.

Does Reddit strip it when I post?

Reddit's pipeline re-encodes and drops most metadata, but that only covers images on Reddit's own hosting. Discord, email, marketplaces and direct file handoffs send the file intact.

Will stripping metadata make an AI image undetectable?

No. It stops automatic metadata-based labeling and prompt leakage. Invisible watermarks like SynthID live in the pixels and survive, and classifiers can still analyse the image.