Remove Stable Diffusion metadata from your images
AUTOMATIC1111, Forge, Fooocus and InvokeAI can write your prompt, negative prompt, seed, sampler, model and LoRA names into the images they save. Drop a PNG, JPEG or WebP below: PromptWipe shows that text, then removes it without re-encoding the picture. Nothing is uploaded, and invisible watermarks in the pixels stay.
Clean an image
You can also paste an image (Ctrl+V or ⌘V).
Does Stable Diffusion save the prompt in the image?
Yes, by default. AUTOMATIC1111 (A1111) writes a block of text, which it calls the infotext, into every image it saves: the prompt, the negative prompt and every setting needed to make the same picture again. Forge, which is built on the A1111 code, uses the same format.
Where the text goes depends on the file format:
- PNG, the default: a text chunk named
parameters. Text that extensions attach to the image is saved alongside it, under its own key. - JPEG and WebP: the EXIF
UserCommenttag, stored as UTF-16 text (the “unicode” encoding of the piexif library). - AVIF gets the same EXIF tag and GIF a GIF comment. PromptWipe does not open AVIF or GIF files yet: it says so and gives you a link to request the format.
Anyone who gets the file can read this text. A1111’s own PNG Info tab shows it and can send the settings back to txt2img, and the PromptWipe viewer shows it in your browser.
What does the parameters text contain?
Three parts: the prompt, a line that starts with “Negative prompt:”, and one long line of settings. Here is an invented example in the A1111 format:
a lighthouse on a cliff at dusk, oil painting, <lora:my-style-v2:0.8>
Negative prompt: blurry, low quality, watermark
Steps: 30, Sampler: DPM++ 2M, Schedule type: Karras, CFG scale: 6.5, Seed: 1234567890, Size: 832x1216, Model hash: 0a1b2c3d4e, Model: myPrivateMix_v3, Lora hashes: "my-style-v2: 5f6e7d8c9b0a", Version: v1.10.1 - The prompt, including any
<lora:…>tags you typed. - The negative prompt.
- The steps, sampler, CFG scale, seed and size: enough to make the same image again with the same model.
- The hash and file name of the checkpoint, and a hash for each LoRA or embedding used.
- The web UI version, and the values of extensions, which can add their own entries to this line.
Why remove it before sharing?
Because the file says more than the picture. A prompt can be hours of trial and error that you would rather keep for yourself. The seed and settings let anyone copy your image exactly. Model and LoRA names, with their hashes, can point to a private or unreleased model, or to a style you trained for a client.
The file name can give things away as well. With A1111’s default settings, an image is saved as a number followed
by its seed, such as 00012-1234567890.png, and with some settings the start of the prompt is added.
PromptWipe keeps your file name and adds -clean, so rename the copy if the name says too much.
What do Fooocus and InvokeAI write?
Fooocus
Fooocus writes metadata only when “Save Metadata to Images” is ticked (Advanced › Developer Debug Mode › Debug
Tools; off by default). A PNG then gets two text chunks, parameters and fooocus_scheme.
A JPEG or WebP gets three EXIF tags: UserComment with the parameters, Software with
“Fooocus v” and the version, and MakerNote with the scheme. With the “a1111” scheme the text uses
the A1111 format above; with the “fooocus” scheme it is JSON.
Whatever that option says, Fooocus also keeps a log.html page in its outputs folder that lists each
image with its prompt and settings. It stays on your computer, but do not share that folder as it is.
InvokeAI
InvokeAI saves PNG files with up to three text chunks: invokeai_metadata, the generation record
(prompts, model, seed and settings); invokeai_graph, the graph that ran; and
invokeai_workflow, when you used a workflow. Older versions used other keys, such as
sd-metadata. PromptWipe names all of them in its report.
How does PromptWipe remove it?
It rebuilds the file from its own blocks and leaves the metadata blocks out. The image data is copied byte for byte: nothing is re-encoded, so the quality does not change.
- PNG: every text chunk goes, whatever its type: plain
tEXt, compressedzTXtor internationaliTXt. Some tools that re-save an image store the same parameters in one of the last two, which is why all three are removed.eXIf,tIMEand Content Credentials (caBX) go too. - JPEG and WebP: the whole EXIF block goes, with XMP and Content Credentials. If the image had a rotation, only that rotation is written back.
- Kept: the colour profile, so colours do not shift, and transparency or animation.
Before offering the download, PromptWipe reads the new file again to check that no metadata is left, then decodes it in your browser and checks that its dimensions match the original’s. The report lists what was found, what was removed and what was kept. How it works gives the details.
Can I stop the metadata from being written in the first place?
Yes, but you then lose that record for yourself. In A1111, open Settings, section Infotext, and untick “Write
infotext to metadata of the generated image”. Leave “Create a text file with infotext next to every generated
image” unticked too, or the same text lands in a .txt file next to each image. In Forge, look for the
same options; in Fooocus, leave “Save Metadata to Images” off.
A simpler habit: keep your originals with their metadata, so you can reuse a seed later, and share only cleaned copies. For ComfyUI files, see how to remove the ComfyUI workflow. The guide to AI image metadata compares what each tool writes.
Does this hide that the image was made with AI?
No. It removes the text about how you made the image, not what the image is. Some Stable Diffusion code adds an invisible watermark to the pixels: Stability AI’s SDXL reference scripts do, and so does the diffusers SDXL pipeline when the invisible-watermark package is installed. PromptWipe never changes pixels, so such a watermark stays. If a platform or the law asks you to label AI images, label them.
Sources (read in the code, November 2026): AUTOMATIC1111 modules/images.py (saving and file names), modules/shared_options.py (settings), modules/infotext_utils.py (format); Fooocus modules/private_logger.py and modules/meta_parser.py; InvokeAI media metadata; Stability AI streamlit_helpers.py; diffusers SDXL pipeline; W3C PNG specification (text chunks).
Last updated: