⛧Save Image Batch (For Loops)
No metadata, no output-node baggage, no bloat
- images
- filename_prefix
The name does the marketing for you: this is a batch image saver built to sit inside loops, and it deliberately leaves the workflow out of your PNGs. Both halves of that are choices, and both are the point.
ComfyUI's stock SaveImage is an output node - which in engine terms means it always runs, and the graph's execution is anchored on it. That's normally fine. But drop an output node in the middle of a loop-style workflow and it starts forcing re-execution and generally behaving like a terminus where you wanted a pass-through. This node sets OUTPUT_NODE = False on purpose, so it runs when its inputs change and otherwise stays out of the way. The tradeoff, spelled out in the source: it "may require the assist of another output node" - you still need a real output node somewhere in the graph (a preview, a final saver) or ComfyUI has nothing to anchor the run on.
Inputs that matter
- images - an
IMAGEbatch. Every frame in the batch becomes its own PNG, numberedprefix_00001_.png,prefix_00002_.png, and so on. - filename_prefix - the usual template string; slashes create subfolders, exactly like the built-in saver.
- include_workflow - default
false. On, it embeds the workflow/prompt PNG metadata; off, files are bare pixels. - enabled - default
true. Set it off and the node returns without touching disk, which is how you mute a save branch without deleting it.
The output is the filename_prefix string itself, returned so you can chain - a neat trick that keeps the save node in the data flow instead of ending it.
Why no metadata is the right default here
Embedding the workflow is how ComfyUI makes every PNG a rebuildable project file - drag it back in and the whole graph reconstructs. That's genuinely useful for final output, which is why the default saver does it. But inside a loop you may be writing hundreds of intermediate frames, and those text chunks are pure overhead: bigger files, slower writes, and completely useless metadata on what are effectively cache frames. Leave include_workflow off for intermediates and it costs you nothing. Just remember the flip side - a frame saved without metadata will not reconstruct a workflow if you drag it back in, so don't use this node for your deliverables if you want the shareable-file behavior.
Install
It's part of ComfyUI-HeresyNodes, heresyCoder's small personal pack for Wan video loop workflows:
cd ComfyUI/custom_nodes
git clone https://github.com/heresyCoder/ComfyUI-HeresyNodes
Restart ComfyUI, or use Manager and search "ComfyUI-HeresyNodes". No model downloads, no extra dependencies.
The honest take
This node exists because stock ComfyUI isn't great at "save in the middle of a loop." The no-metadata default keeps intermediate frames light, and the non-output-node design keeps the loop semantics sane. If you're only ever saving final images, you don't need it. If you're saving per-section frames from a chunked Wan render - which is exactly what the rest of this pack's save flow does - this is the one that doesn't fight you. One caveat to carry: because it's not an output node, verify you have an actual output node elsewhere in the graph, or your "it did nothing" moment will be the workflow finishing with no files at all.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| images | IMAGE | — | |
| filename_prefix | STRING | ComfyUI | — |
| include_workflow | BOOLEAN | false | — |
| enabled | BOOLEAN | true | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| filename_prefix | STRING | — |