Batch Image Save
Auto-numbered frame exports without the filename wrangling
- images
- folder_path
- file_names
The stock Save Image node is built around single generations with a shared prefix and an auto-incrementing counter - fine for txt2img, awkward the moment you're exporting a whole frame sequence and actually care about the folder structure and naming pattern. Batch Image Save is the version built for that: it saves a batch of images sequentially into a folder you name, with a filename pattern you control, and hands you back the folder path and filenames so the rest of your pipeline can find them.
How it works
You give it a batch, it walks through the images and writes each one out with an auto-incrementing number stitched onto your chosen prefix and delimiter, into the subfolder you specify. It's a save node, so it's a dead end for image data - but unlike most terminal save nodes, it does output something: the folder path and the filenames it wrote, which is genuinely useful if a downstream node (like a folder loader, or your own bookkeeping) needs to know exactly where things landed.
The inputs and outputs that matter
images(IMAGE, required) - the batch to save, one file per frame.path(STRING, default"batch") - the output subfolder.filename_prefix(STRING, default"frame") - the text before the number in each filename.delimiter(STRING, default"_") - what sits between the prefix and the number (so with defaults you getframe_0001,frame_0002, …).extension(enum:png,jpg,jpeg,webp) - output format. PNG for lossless,jpg/webpwhen file size matters more, e.g. exporting a long frame sequence.link_to_input(BOOLEAN, defaultfalse) - ties the saved output naming back to the input rather than relying purely on the auto-incrementing counter; leave it off unless you specifically need that.
Two outputs: folder_path (STRING) and file_names (STRING), so anything downstream can reference exactly what got written without you hardcoding a path.
How to install it
Via ComfyUI Manager, search "Link Comfy Nodes" and install. Manually:
cd ComfyUI/custom_nodes
git clone https://github.com/Mister-Link/link-comfy-nodes
pip install -r link-comfy-nodes/requirements.txt
Restart ComfyUI. No model downloads involved - it's pure I/O.
Common issues & troubleshooting
Files landing somewhere unexpected. The path field is a subfolder, not an absolute path - it saves relative to ComfyUI's output directory the same way every other save node does, it's just that this one lets you name the subfolder instead of dumping everything flat. If you're hunting for output and can't find it, check under ComfyUI/output/<your path> before assuming the save failed.
Choosing jpg/webp and then noticing quality loss on later processing. If you're saving a sequence that's going to get reloaded and processed further (say, back through Load Folder for a second pass), a lossy format compounds error each round trip. Stick with PNG for anything you'll reopen and re-edit; save lossy formats for the final export.
Overwrites on repeated runs. Since numbering restarts based on what's already in the folder, running the same graph twice into the same path/filename_prefix combination can behave differently than you expect depending on whether old files are still there. If you need a clean sequence every run, clear or change the target folder between runs rather than assuming it resets automatically.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| images | IMAGE | — | |
| path | STRING | batch | — |
| filename_prefix | STRING | frame | — |
| delimiter | STRING | _ | — |
| extension | COMBO | png | 4 options: png, jpg, jpeg, webp |
| link_to_input | BOOLEAN | false | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| folder_path | STRING | — |
| file_names | STRING | — |