Image Saver
Save Images With the Recipe Attached So Future You Can Reproduce Them
- image
- image_info
- image
- image_info
- file_path
- directory_path
Default Save Image writes the pixels and stops there. IPT-ImageSaver from the Info-Prompt-Toolkit pack writes the pixels and embeds the whole generation recipe as A1111-style infotext metadata - prompt, model, LoRA stack, sampler, scheduler, steps, CFG, seed, the works - so the file you save can be loaded back later by Image Reader and turned into a fresh generation. It's the "make my outputs reusable" node, and in this pack it's the anchor of the whole workflow philosophy.
This matters more than it sounds. The community's "workflow included" culture exists because a file that carries its own recipe is worth more than a bare PNG. Civitai's whole model-card system runs on this kind of metadata. If you iterate on prompts and lose track of which LoRA stack produced the good one, this node is the difference between "I wish I knew" and pulling the answer straight out of the file.
How it works
You hand it an image (or a batch), and optionally an image_info bundle. It saves the image as WebP (default), PNG, or JPEG and serializes the image_info into the file's metadata. The filename logic is where it gets opinionated: leave file_stem unconnected and it uses automatic serial naming with your filename_suffix; connect file_stem and it saves as <file_stem>.<format>, overwriting anything with that name. output_subdir organizes things by time - options are none, year, year_month, iso_week, year_month_day, and daily_run (which creates a YYYYMMDD-NNNN folder per execution). Turn on write_caption and a same-name .txt caption file lands next to each image, which is the standard pairing for training datasets.
Inputs that matter
image- the image or batch to save.image_info- the settings bundle. This is the whole point - no image_info, no metadata.file_stem/filename_suffix- your naming strategy. Serial by default, explicit stems when connected.output_formatandquality- webp/png/jpeg, with quality 0–100 (default 100). Lower the quality for smaller files.write_caption- write the.txtcompanion file.caption- the caption text to write.
Outputs are a pass-through image, the saved image_info (as a list), and file_path so a later step knows exactly where the file went.
Installing it
Standard for this pack:
cd ComfyUI/custom_nodes
git clone https://github.com/kinorax/comfyui-info-prompt-toolkit.git
cd comfyui-info-prompt-toolkit
pip install -r requirements.txt
Then restart, or grab "ComfyUI-Info-Prompt-Toolkit" via ComfyUI Manager. ComfyUI 0.17.0+ required. No extra model downloads - this node is pure Python-plus-Pillow.
Common issues
The obvious trap: if you don't connect image_info, you get a nicely organized image with no recipe in it, and you've quietly lost the whole benefit. Wire it. Second, the metadata you save is only as complete as the image_info you built - if your workflow never carried the model name or LoRA references into it, the saved file won't have them either. The pack has Remove Image Info Main Fields and Remove Image Info Extra Keys for when you deliberately want less in the metadata; use them consciously, not by accident. And WebP at quality 100 is genuinely lossless-ish in practice for these purposes, so don't feel pushed to PNG unless you want max portability.
If you save a file and later load it in the Image Reader and the model check comes back "Missing," that's not this node's fault - the metadata is honest about what it references; your local folders just don't have that file anymore. That's the metadata doing its job.
Inputs (10)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | Image or image batch to save | |
| filename_suffix | STRING | image | Suffix part of output filename |
| output_dir | STRING | Base output directory under ComfyUI output | |
| output_subdir | COMBO | none | Output subdirectory format; daily_run creates YYYYMMDD-NNNN per execution |
| quality | INT | 1000–100 | WebP/JPEG quality |
| write_caption | BOOLEAN | false | Write caption txt file |
| output_format | COMBO | webp | Output image file format |
| image_infoopt | IPT-IMAGEINFO | Image info or image-info list for each image | |
| file_stemopt | STRING | Optional output filename stem list; when connected, save as <file_stem>.<format> | |
| captionopt | STRING | Caption text or caption list for each image |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |
| image_info | IPT-IMAGEINFO | — |
| file_path | STRING | — |
| directory_path | * | — |