Every AI image generator has different metadata habits.
Midjourney writes your full prompt into the EXIF block. DALL-E ships a C2PA content credential signed by OpenAI. Stable Diffusion buries the model checkpoint name in a PNG text chunk that most metadata viewers don't even surface. Adobe Photoshop's Generative Fill tags the affected pixel regions inside an XMP edit history. None of these tools warn you.
If you're publishing AI images — to social, to a stock photo site, to a portfolio, to a client — what your file says about itself depends entirely on which tool you used to generate it. This is the field-by-field breakdown.
Every AI Image Generator Has Different Metadata Habits
The shared fact: every AI image generator writes some kind of identifying metadata. The variable: which fields, which format, which encoding.
There are three places metadata can live in an image file:
- EXIF: dense, key-value, standardized — the field set most metadata viewers display by default
- XMP: extensible XML, often used for richer attribution and edit history
- C2PA / JUMBF: cryptographically signed manifest, increasingly the AI-disclosure mechanism of choice
Some tools use all three. Some use one. Some use the obscure-by-design fourth option (PNG text chunks). What follows is what each major tool actually writes, as of mid-2026.

What Midjourney Puts in the File
Midjourney v6.1 PNG exports contain:
- EXIF
Software:Midjourney v6.1 - EXIF
ImageDescription: the full prompt, often including parameters (--ar 16:9 --style raw --v 6.1) - EXIF
ArtistorXMP-dc:creator: in some exports, the Discord handle of the requester - C2PA assertion: signed manifest declaring AI generation, model version, timestamp
- PNG
tEXt/iTXtchunks: Midjourney sometimes writes a JSON blob of the generation parameters into a custom PNG text chunk
The prompt-in-EXIF behavior is the part that surprises most users. If you publish a Midjourney render directly to a portfolio or a stock site, the literal text of your prompt is readable by anyone with a metadata viewer. That's not a privacy issue in the GDPR sense, but it's a competitive concern if your prompt is the result of expensive iteration, and it's an attribution oddity if the prompt contains brand names, copyrighted character names, or anything you'd rather not have publicly tied to your account.

What DALL-E / ChatGPT Image Puts in the File
DALL-E 3 and the integrated ChatGPT Image generator output PNG or WebP files containing:
- C2PA assertion: the primary signal — signed by OpenAI's certificate, declaring AI generation, model name, timestamp
- EXIF
Software:OpenAI DALL-E 3orChatGPT Image - PNG
tEXtchunks: occasionally a parameter blob; less consistent than Midjourney - No prompt in EXIF by default (unlike Midjourney) — but the C2PA manifest can carry the prompt if you used the API rather than the consumer chat UI
OpenAI was an early C2PA adopter. The signed manifest is the core signal — it's what platforms read first, what Getty and Shutterstock check for, what the EU AI Act compliance frameworks point at. Stripping the EXIF without stripping the C2PA leaves the high-confidence signal intact. Strip both, in one pass.
What Stable Diffusion and Others Embed
Stable Diffusion is the outlier — its identifying metadata mostly lives in a PNG text chunk, not in EXIF or C2PA.
A typical Stable Diffusion PNG export contains:
- PNG
tEXtchunk keyedparameters: a multi-line block listing the prompt, negative prompt, sampler, steps, CFG scale, seed, model checkpoint, and any LoRAs used - PNG
tEXtchunk keyedSoftware: the UI used (Automatic1111, ComfyUI, Forge, Fooocus) - No standardized C2PA in the open-source distributions (some forks add it; the upstream codebase doesn't)
- EXIF: usually empty or minimal
The Stable Diffusion parameters chunk is verbose. Anyone with a basic PNG metadata reader can recover your full generation recipe — prompt, model, seed, the works. Fine for sharing on Civitai or a workflow showcase. Less fine for delivering to a client or publishing as original work.
Other tools and their habits, briefly:
- Adobe Firefly: C2PA-signed by Adobe, prompt and model name in XMP, edit history if subsequent edits applied
- Leonardo.Ai: C2PA in newer versions, prompt and model in EXIF, custom tags in XMP
- Ideogram: C2PA, model and prompt in EXIF
- Recraft: C2PA, prompt and style in PNG text chunks
- Photoshop Generative Fill: writes XMP
xmpMM:Historyentries naming the AI feature, plus a C2PA manifest if Content Credentials is enabled (often default-on)
The pattern: commercial tools converge on C2PA. Open-source tools rely on PNG text chunks. Stripping needs to handle both.

C2PA: The Tag That Supersedes EXIF
EXIF has been around for 30 years. Every metadata tool reads it. Stripping EXIF is well-understood and most "metadata remover" tools handle it competently.
C2PA is newer, more tamper-resistant, and harder to strip cleanly. The manifest is cryptographically signed; selectively editing it invalidates the signature, which is a stronger negative signal to platforms than just having an unedited assertion. Removing C2PA cleanly means removing the entire JUMBF box from the file's metadata structure — not editing it, not modifying its fields, but excising it as a unit.
Most online "EXIF remover" tools that predate C2PA don't touch the JUMBF box. They strip the EXIF block, leave the C2PA manifest in place, and hand you back a file you think is clean. It isn't. The platforms still see the signed assertion. The label still gets applied.
Verifying: drop your supposedly cleaned file into metadata2go.com and look specifically for the C2PA section. Most cleaned files from competing tools still have it. (The C2PA explainer covers why.)
How to Strip All of It in One Pass
The right strip handles EXIF, XMP, C2PA, PNG text chunks, ICC profiles, and any other embedded data — in one operation. No partial cleans, no "EXIF only" half-fixes, no "C2PA only" tools that miss the prompt in the PNG text chunk.
- Open metadatacleaner.app in your browser.
- Drag your image (PNG, JPEG, WebP) into the drop zone.
- Click Clean. The image is re-encoded through the canvas API on your device — which produces a fresh file with zero embedded metadata of any kind. EXIF, XMP, C2PA, PNG chunks, color profiles, all of it. Gone.
- Click Download. The cleaned image is visually identical (the canvas re-encode preserves pixel data; subtle compression differences exist but are invisible to the eye).
The canvas-re-encode approach is the only way to be sure you've removed everything including formats you didn't know were there. Surgical strip-this-field-but-not-that approaches always miss something. A re-encode produces a fresh file that contains only what you put back in.
For batch processing — a series of images for a client delivery, a portfolio refresh, an album cover and its variants — Pro is $4.99 a month for unlimited batch and ZIP downloads.
FAQ
Will the cleaned image look different from the original?
No. The pixel data is preserved. The canvas re-encode is a lossless visual operation — color values are unchanged, dimensions are unchanged. There may be tiny differences in compression artifacts at extreme zoom, but at any normal viewing distance the images are indistinguishable.
Does this work for HEIC files from iPhones?
The web app supports JPEG, PNG, and WebP for images. HEIC isn't currently in scope. Most workflows convert HEIC to JPEG before publishing anyway. If HEIC support matters for your use case, email and it'll get prioritized.
What if I want to keep the prompt for my own records but strip it before publishing?
Save the original somewhere private, then strip a copy for publication. The original retains your generation recipe; the cleaned version is what you publish. Don't try to strip and then "undo" — there's no way to recover the metadata once it's gone.
Does this break the image's color profile?
The clean produces an image with the default sRGB color profile. If you had a custom embedded color profile (some print workflows do), that gets stripped too. For most digital publishing this is fine; for print delivery you may want to re-apply your color profile after cleaning.
Can I strip just the prompt from a Midjourney file without removing the C2PA?
Possibly with hand-editing, but it's a bad idea. Most platforms are starting to read multiple signals; closing one and leaving another open is worst-of-both-worlds. Strip everything in one pass.
What about the file's "Created" and "Modified" dates that show in Finder?
Those are filesystem-level timestamps set by your operating system, not metadata embedded in the file. Stripping the file's internal metadata doesn't change them. If the timestamps matter for some reason, change them at the OS level (touch -t on macOS/Linux, file properties dialog on Windows).
The prompt is yours. The model is yours. What your file announces about both is your call to make. Strip in your browser at metadatacleaner.app.