Save IMG Prompt
Save IMG Prompt
- images
If you've ever opened an old output image two weeks later with absolutely no memory of what prompt, seed, or checkpoint made it - this node exists purely to stop that from happening again. It's a one-node pack, no siblings, built by a solo dev (mpiquero7164) who, by their own account in the ComfyUI subreddit, made it because they were tired of firing up ComfyUI just to check what prompt produced a given image. That's the whole pitch: it's the core Save Image node with a memory.
Functionally it's an output node that writes your image to disk like normal, but alongside it drops a separate text or JSON file holding the prompt/workflow that made it, and can also stamp the workflow straight into the PNG's own metadata - the same trick vanilla ComfyUI already uses to let you drag any of its output images back onto the canvas and have the whole graph rebuild itself. That PNG-metadata-as-portable-workflow thing is core to how ComfyUI users share work at all; this node just gives you a second, human-readable copy of the same information sitting right next to the image as a file you can grep or open in a text editor without touching ComfyUI. Worth knowing going in: the sidecar dump isn't curated. The author's own description of it is that it's a "dirty save" - it just yanks whatever's in the prompt portion of your workflow JSON. On a simple linear graph that reads fine. On a sprawling eleven-prompt monster it's going to be a wall of JSON, not a tidy paragraph.
What you'll actually touch: images is the required input - plug in whatever's coming out of your VAE Decode. output_path controls the save folder and defaults to [time(%Y-%m-%d)] - note the bracket syntax, not the %date:...% style some other save nodes use; the pack supports [time], [time(format)], [hostname], and [user] as tokens, all documented in the README. filename_prefix (default ComfyUI) and img_extension (png or jpeg) are the other two most people set immediately. Whether you get a sidecar file at all is gated by save_prompt, with prompt_extension choosing txt or json for it, and embed_workflow separately controlling whether the workflow also gets baked into the image's own metadata. The rest is filename bookkeeping you'll rarely touch - filename_delimiter, filename_number_padding (how many digits the auto-incrementing counter gets), filename_number_start, quality for jpeg compression, and overwrite_mode (leave numbering alone, or prefix_as_filename to just reuse the prefix as the literal name and overwrite each run). show_history and show_history_by_prefix toggle a little on-node thumbnail history so you can eyeball recent saves without leaving the graph, and show_previews controls whether the node shows a preview at all. There's no output socket - this is a terminal node (is_output_node: true), so nothing downstream depends on it; it just deposits files and the graph ends there.
Installing it is as basic as it gets: search "ComfyUI-SaveImgPrompt" in ComfyUI Manager, or do it by hand with cd ComfyUI/custom_nodes && git clone https://github.com/mpiquero7164/ComfyUI-SaveImgPrompt.git and restart ComfyUI. No models to download, no heavyweight Python dependencies riding along - it's a lean, single-purpose pack.
On troubleshooting: the README's own "Known issues" section says, verbatim, "I dont know of any yet," which tells you what you're dealing with - a small, single-maintainer pack without a busy Discord behind it, so a GitHub issue is genuinely the right first move if something misbehaves. The most common way people trip themselves up is assuming the token syntax matches some other save node's format string - it doesn't, it's this pack's own [bracket] tokens, so a %date:yyyyMMdd% string copied from elsewhere will just print literally instead of substituting. And if you're relying on the classic drag-the-image-back-into-ComfyUI trick to reload a workflow, keep embed_workflow on and stay on PNG - that metadata trick is a PNG convention in ComfyUI, and switching img_extension to jpeg means you shouldn't count on the same reload behavior.
Inputs (15)
| Name | Type | Default | Description |
|---|---|---|---|
| images | IMAGE | — | |
| output_path | STRING | [time(%Y-%m-%d)] | — |
| filename_prefix | STRING | ComfyUI | — |
| filename_delimiter | STRING | _ | — |
| filename_number_padding | INT | 41–9 | — |
| filename_number_start | COMBO | 2 options: false, true | |
| img_extension | COMBO | 2 options: png, jpeg | |
| prompt_extension | COMBO | 2 options: txt, json | |
| quality | INT | 1001–100 | — |
| overwrite_mode | COMBO | 2 options: false, prefix_as_filename | |
| show_history | COMBO | 2 options: false, true | |
| show_history_by_prefix | COMBO | 2 options: true, false | |
| embed_workflow | COMBO | 2 options: true, false | |
| show_previews | COMBO | 2 options: true, false | |
| save_prompt | COMBO | 2 options: true, false |
Outputs (0)
No outputs