ComfyUI Node

SaveImages

Save from IMAGE or LATENT, three filename modes

By chibiace·Created 3 years ago·Updated 9 months ago· 92
SaveImages
  • images
  • latents
  • vae
  • images
  • filename_list
filename_type
fixed_filenameoutput
fixed_filename_override

SaveImages does one extra thing ComfyUI's built-in SaveImage doesn't: it accepts either a finished IMAGE or a raw LATENT plus a VAE, decoding internally before writing to disk if you feed it the latent path. That means if all you want at the end of your graph is a saved file, you can skip a separate VAEDecode node and just hand this one the latent straight off your sampler.

It also gives you real control over how files get named, which the stock save node mostly doesn't - three distinct filename behaviors instead of one fixed counter scheme.

How it works

Feed it images directly, or feed it latents plus a vae and it decodes them for you first. Either way, how the resulting files get named on disk is controlled by filename_type:

  • Timestamp - names each file by date/time, so nothing ever collides and every run is uniquely traceable, at the cost of filenames that don't tell you much at a glance.
  • Fixed - a base name (fixed_filename) plus an incrementing counter, the same pattern ComfyUI's stock save node uses by default.
  • Fixed Single - always the exact same filename, meaning every new save overwrites the last one. This is a real, deliberate footgun to know about going in: it's genuinely useful for a "live preview" setup - a file path you're watching in an external viewer or feeding to a streaming overlay - but if you expect every generated image kept and pick this mode by accident, you'll lose everything but your most recent run.

The inputs and outputs that matter

  • filename_type - Timestamp / Fixed / Fixed Single, as above.
  • fixed_filename - the base name used by Fixed and Fixed Single modes, default "output".
  • images (optional) - feed pre-decoded IMAGE tensors here.
  • latents (optional) - feed raw LATENT here instead, paired with...
  • vae (optional) - ...required alongside latents for the node to decode before saving. Without it, a latent-only input won't produce anything meaningful.
  • fixed_filename_override (optional) - a STRING input that overrides the fixed_filename widget at runtime. Wire in Chibi's own Int2String off a seed value, for instance, to name each file after the seed that produced it instead of typing a static name.

Two outputs: images, a passthrough so you can keep chaining the same pictures onward (a second save at different settings, an ImageAddText caption pass, a preview node), and filename_list, a STRING telling you exactly what got written - useful for logging or for confirming your naming scheme did what you expected.

How to install it

  • ComfyUI Manager: search "ComfyUI-Chibi-Nodes", install, restart.
  • Manual: cd ComfyUI/custom_nodes && git clone https://github.com/chibiace/ComfyUI-Chibi-Nodes/, restart.

No models, no extra dependencies. It lands under Chibi-Nodes in the menu. The pack's own README calls these "experimental nodes" and admits version 2 shipped "with more bugs" - worth bearing in mind generally, though a save node is exactly the kind of thing worth testing once on a throwaway image before trusting it with a real batch, regardless of which pack it's from.

Common issues

Fixed Single silently overwriting your work is the one to genuinely watch for - it's not a bug, it's the mode doing exactly what it says, but it's an easy default to leave selected after testing something else and then lose a batch of results to. If you're not deliberately doing a live-preview setup, use Timestamp or Fixed instead.

The other trap is the latent path: if you connect latents but not vae, or vice versa, the node has nothing to decode with and won't produce a usable image. Both need to be present together, or skip that path entirely and feed images instead.

CategoryChibi-Nodes

Inputs (6)

NameTypeDefaultDescription
filename_typeCOMBO3 options: Timestamp, Fixed, Fixed Single
fixed_filenameSTRINGoutput
imagesoptIMAGE
latentsoptLATENT
vaeoptVAE
fixed_filename_overrideoptSTRING

Outputs (2)

NameTypeDescription
imagesIMAGE
filename_listSTRING