RenderZero Image Output
RenderZero Image Output — the last node, and where your result goes to be found
- images
Every workflow needs a final node, and in a RenderZero image workflow this is it. RenderZero Image Output is the sink: your rendered IMAGE tensor goes in, a PNG gets saved to ComfyUI's output directory, and the save is reported into ComfyUI history so the platform can fetch it and hand you a finished image. It's the handshake that closes the loop - without it, RenderZero has no idea where your result lives.
How it works
Under the hood it's a straightforward save node with a RenderZero-shaped signature. It takes your image tensor, asks folder_paths.get_save_image_path() for a safe output filename, and writes PNGs at compress_level 4. Each image in the batch gets its own file (RenderZero_00001_.png, _00002_, …), and the node returns a {"ui": {"images": [...]}} payload - exactly what ComfyUI's history API expects, which is how RenderZero finds and serves the result. Nothing exotic, and that's fine; you want the terminal node of a workflow to be boring.
The inputs that matter
There are only two:
images(IMAGE) - the final rendered tensor. Wire the output of your VAE-decode (or whatever sits at the end of the generation chain) straight in here.filename_prefix(STRING, default"RenderZero") - the prefix for saved files. You can change it, but there's rarely a reason to; the platform reads the history entry, not a hardcoded name.
The node has no outputs - it's an output node in the ComfyUI sense, meaning it only sinks data and reports to the UI/history. That's normal and expected; don't go hunting for a wire coming out of it.
Installing it
Same single-repo install as the whole pack. ComfyUI Manager, search "renderzero-comfyui-nodes," Install, restart. Manual, if you prefer:
cd ComfyUI/custom_nodes
git clone https://github.com/jamesstothard/renderzero-comfyui-nodes renderzero_bridge_nodes
Restart ComfyUI. No requirements.txt, no model downloads - the whole pack is plain Python on ComfyUI's own helpers.
Common issues
The main one is structural: RenderZero's image-workflow contract demands exactly one of these nodes. If you import a workflow that ends in a plain SaveImage instead, the platform can't match its result contract and won't know what to fetch. Swap the terminal node to this one and keep the filename prefix sane. Second, this is the image-side output - video workflows must use RenderZero Video Output instead, and the two families don't mix in one graph. And one mild surprise: like any save node, the file lands in output/, not in a RenderZero-specific folder, so if you're looking for your renders on disk, that's where they are - the node itself won't tell you.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| images | IMAGE | — | |
| filename_prefix | STRING | RenderZero | — |
Outputs (0)
No outputs