Save Image With Prompt
PNGs that remember what you told the model
- images
Every ComfyUI user eventually hits the wall this node is built for: you run a batch of prompts, and two hours later you're staring at 300 nearly identical PNGs with no idea which prompt made which. ComfyUI does embed the full workflow JSON in every output, but digging through minified JSON in a text editor is miserable. Save Image With Prompt is a drop-in replacement for the stock Save Image node that writes your prompts out as separate, human-readable PNG metadata fields, right alongside the workflow JSON.
It's the cleanest way to keep a searchable prompt history, and it's the node from this pack a beginner will actually reach for. People who batch-iterate prompts in ComfyUI use exactly this trick - save the image with the prompt string wired in, so every output carries its own recipe (that's the standing advice whenever someone asks how to keep track of a big prompt run).
What it does
Same job as Save Image: takes your images, writes PNGs to ComfyUI/output, and reports them in the UI. The difference is the metadata. For every file it also embeds, as separate PNG text chunks:
positive_promptandadditional_prompt(two positive slots, in case you keep a base prompt and a per-image add-on separate)negative_promptcaptionseed
Each is JSON-encoded, so any metadata-savvy viewer shows them as clean fields. The author recommends XnView MP or digiKam - both surface PNG text chunks in a side panel, which turns your output folder into a searchable catalog of "what did I actually type here."
The inputs that matter
Most of them are plain strings you'd already have lying around in your workflow. Two things are worth knowing:
seedwants a string. ComfyUI seeds are integers, and the README's tip is right: run the seed through a "Preview as Text"-style node to convert it before wiring it in. Skip that and you'll get a type mismatch, not a silent fail.filename_prefixbehaves like the stock node - use a trailing/(e.g.portraits/model_a/) and the file lands in a subfolder. The pack's "Load Checkpoint (with Name Clean)" nodes feed a cleaned model name straight into this for per-model folders.numbers(default on) appends the_00001_-style counter to the filename. Turn it off for clean names if you're overwriting a fixed file.
It's an output node - no outputs, you wire images in and it's the end of the line.
Installing it
This pack is registered in the ComfyUI Registry, so the easy route is Manager → Nodes Manager → search Easygoing → install. Manual route:
cd ComfyUI/custom_nodes
git clone https://github.com/easygoing0114/ComfyUI-easygoing-nodes.git
Restart ComfyUI. There are no model downloads and no extra dependencies - the whole pack runs on ComfyUI's own bundled libraries (PIL, numpy, torch). One real requirement: these nodes are written against the newer V3 node API (comfy_api.latest), so you need a reasonably recent ComfyUI. On an old build they won't register at all, which the author says plainly in the README.
Common issues
The seed-as-string thing is the main footgun. After that: if you launch ComfyUI with metadata disabled, the prompts quietly don't get written - the node checks the same --disable-metadata flag ComfyUI's own save node does. And don't expect to read the fields in a plain file browser's hover tooltip; use a viewer that actually reads PNG text chunks. One thing to like: since it still writes the workflow JSON, dragging the PNG back onto the canvas reconstructs the whole graph like always - you lose nothing by switching.
If you've been keeping prompt spreadsheets, this is the upgrade. Free yourself.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| images | IMAGE | — | |
| filename_prefix | STRING | ComfyUI | — |
| positive_prompt | STRING | — | |
| additional_prompt | STRING | — | |
| negative_prompt | STRING | — | |
| caption | STRING | — | |
| seed | STRING | — | |
| numbers | BOOLEAN | true | — |
Outputs (0)
No outputs