Remove the ComfyUI workflow from an image
By default, every image ComfyUI saves holds the full workflow that made it: nodes, prompts, seeds, model and LoRA names. PromptWipe shows that data, then gives you a copy without it, pixels unchanged. Everything runs in your browser. It does not remove invisible watermarks written into the pixels.
Clean an image
You can also paste an image (Ctrl+V or ⌘V).
Does a ComfyUI image contain the workflow?
Yes, unless metadata saving was turned off. The built-in Save Image node writes two text entries into the PNG:
prompt, the graph as ComfyUI runs it, and workflow, the graph as you see it on the
canvas, layout included. Both are plain JSON.
In the source code, the node adds prompt as a PNG text chunk, then one chunk for each key it
receives in extra_pnginfo: that is where workflow comes from, and where custom nodes can
add their own fields. ComfyUI’s documentation calls this saving “a generated image together with its recipe”. The
file looks the same; the recipe is simply stored next to the pixels.
What can someone learn from a ComfyUI image?
Everything needed to rebuild your setup. Drag the PNG onto a ComfyUI canvas, or open it with File › Open, and
ComfyUI rebuilds the workflow from the embedded workflow field. Anyone you send the file to can do
the same.
That includes:
- the positive and negative prompts, word for word;
- the seed, sampler, scheduler, steps, CFG and image size, enough to reproduce the image;
- the file names of your checkpoints, LoRAs, upscalers and input images, which can include folder names (a client or project name, for example);
- the custom node packages you use and their settings;
- your node layout: groups, notes and titles you wrote on the canvas.
Here is a shortened, made-up example of what a prompt entry looks like:
{
"3": {
"class_type": "KSampler",
"inputs": { "seed": 812345678901234, "steps": 30, "cfg": 6.5, "sampler_name": "dpmpp_2m" }
},
"4": {
"class_type": "CheckpointLoaderSimple",
"inputs": { "ckpt_name": "clients/acme/brand-style-v3.safetensors" }
},
"6": {
"class_type": "CLIPTextEncode",
"inputs": { "text": "portrait of a woman in a red coat, rainy street, 35mm" }
}
}
A real one is usually much longer, and the workflow entry, which also stores the layout, longer
still. If you share workflows on purpose, that is a feature. If you only meant to share a picture, it is a leak.
What does PromptWipe show and remove?
PromptWipe lists every text entry it finds with its key name. A ComfyUI workflow is labelled with its number of nodes. Long JSON values start folded, with a Copy button, so you can check what you are about to share before removing it.
When you clean the file, PromptWipe:
-
removes every PNG text chunk (
prompt,workflowand any key added by custom nodes), plus EXIF, XMP, C2PA Content Credentials and timestamps if present; - copies the image data byte for byte: no re-encoding, so the picture is identical, and the colour profile is kept;
- decodes the result and checks it has the same dimensions as the original before offering the download.
The download is named after the original with -clean added. Save Image names files
ComfyUI_00042_.png by default, and that name alone says which tool made the image: rename the file if
that matters to you.
What about animated WebP, animated PNG and AVIF?
ComfyUI’s other save nodes store the same data elsewhere. PromptWipe cleans animated PNG and animated WebP files; AVIF is not supported yet.
- Animated PNG: the workflow sits in PNG text chunks, as in a still PNG. PromptWipe removes them and keeps every frame.
- Animated WebP: ComfyUI writes the data into EXIF tags, with
prompt:followed by the JSON in the tag normally used for the camera model, and the other keys in the tags just before it, starting with the camera maker. That is why PromptWipe’s report may show your workflow under “Camera model (Model)”. The whole EXIF block is removed; the animation is kept. - AVIF: ComfyUI also writes the workflow into AVIF files, as EXIF. PromptWipe refuses AVIF for now and shows a “Request this format” link: tell us if you need it.
Videos (MP4, WebM) carry the workflow in their container tags; PromptWipe handles still and animated images only.
How do I stop ComfyUI from saving the workflow?
ComfyUI has a server option for this. In ComfyUI Desktop, it is in Settings › Server-Config: “Disable saving prompt metadata in files.” With it on, the built-in save nodes write no prompt and no workflow.
Two things to know before you turn it on:
- It applies to every file you save from then on, so you can no longer reload your own workflows by dragging your images back in. Many people prefer to keep metadata on, keep the originals private and share cleaned copies.
- Custom save nodes may follow their own rules and can write extra metadata of their own. Check a file from each save node you use: drop it on this page and see what comes back.
PromptWipe never changes your original file: it gives you a new, cleaned copy and leaves the original where it was, workflow included.
Is my image uploaded?
No. The file is read and cleaned by code running in this page, on your device. There is no server that receives images, and the page keeps working with the network turned off once it has loaded. How it works explains how to check this yourself.
Related pages: view the prompt of an AI image, Stable Diffusion metadata (AUTOMATIC1111, Forge, Fooocus, InvokeAI) and what metadata AI images contain.
Sources: ComfyUI documentation, Workflow metadata in output files; ComfyUI source code: nodes.py (Save Image), _ui.py (animated PNG and WebP), comfy_extras/nodes_images.py (AVIF), cli_args.py (server option).
Last updated: