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:

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:

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.

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:

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: