Nodes/ComfyUI/Save Image (Advanced)
ComfyUI Node Runs on cloud

Save Image (Advanced)

The format control the plain node never had

By Comfy-Org·Created 4 years ago·Updated 16 minutes ago· 129,946
Save Image (Advanced)
  • images
  • images
filename_prefixComfyUI
format

Save Image is the workhorse, but it's a one-format workhorse: PNG, always PNG, with no say in the matter. Save Image (Advanced) is the version that lets you pick the format - and the choices it offers tell you exactly who it's for: PNG with 8- or 16-bit depth, or 32-bit float EXR with a colorspace setting. That last one is the entire reason this node exists.

What it is

Three inputs: images (the tensor to save), filename_prefix (default ComfyUI), and format - a dropdown that isn't a simple dropdown. Pick png and a bit_depth option appears (8-bit or 16-bit). Pick exr and you get bit_depth (fixed at 32-bit float) plus input_color_space, a choice of sRGB, HDR, or linear. The output is images, passed through untouched, so you can save in a fancy format and keep feeding the same branch. It's an output node, and like every save node it writes to your output directory with the auto-incrementing _00001_ counter and the %date:yyyy-MM-dd% / %node.widget% prefix tokens.

The prefix-token feature deserves a shout: filename_prefix accepts formatting like %Empty Latent Image.width% so you can bake generation parameters into filenames. That's shared with the plain Save Image, but it's the kind of thing people discover late and use forever after.

The EXR mode is the real story

The input_color_space tooltip is the author's own description, and it's worth quoting the shape of it: the EXR is always written scene-linear in the matching gamut, and the three options describe what your input tensor already is. sRGB means the input is sRGB-encoded Rec.709 and gets the inverse sRGB EOTF applied. HDR means it's HLG-encoded Rec.2020 (BT.2100), inverse HLG applied. linear means your input is already scene-linear Rec.709 and passes through unchanged - "use this for renderer/compositor output."

Plainly: this is the node you use when the destination is a compositor, VFX pipeline, or HDR workflow, not a Discord post. 32-bit float EXRs hold full dynamic range and linear light values that survive grading - if you're doing anything where a later stage needs to adjust exposure or composite without banding, the 8-bit PNG that Save Image produces will fight you, and the EXR won't. The linear option is the giveaway that this node was written for people handing images to external tools: it expects the sort of scene-linear output you'd get from a renderer.

Who actually needs it

Most people don't, and that's fine - the plain Save Image covers 95% of use. Reach for Advanced when:

  • You need 16-bit PNG for an editing pipeline that cares about depth.
  • You're producing EXR for compositing/HDR work and need the colorspace to survive the trip.
  • You want the same prefix-token formatting but in a format other than 8-bit PNG.

Everyone else: Save Image is lighter, and its PNG embeds the workflow JSON for sharing, which the EXR path doesn't give you in the same way. You're trading shareability for dynamic range, and for most people that trade isn't worth it.

Getting it and the gotchas

Ships with ComfyUI core, part of the newer node system in comfy_extras/nodes_images.py - no install. The gotchas: picking exr with a regular sRGB pipeline but telling it linear will wash out your image (the colorspace is a claim about your input, not a filter); and remember the workflow-embedding behavior differs - a PNG you save with the advanced node may not carry the full reconstructable graph the way the classic Save Image does, so don't ship EXRs to people expecting the drag-it-back-in trick.

Categoryimage

Inputs (3)

NameTypeDefaultDescription
imagesIMAGEThe images to save.
filename_prefixSTRINGComfyUIThe prefix for the file to save. May include formatting tokens such as %date:yyyy-MM-dd% or %Empty Latent Image.width%.
formatCOMBOThe file format in which to save the image.

Outputs (1)

NameTypeDescription
imagesIMAGE