Image Output
SaveImage that the pack will actually serve
- images
Image Output is Comfy-Pack's version of the official SaveImage node, and in a normal workflow that's exactly what it behaves like: it takes an IMAGE tensor, writes PNGs to your ComfyUI output folder, and embeds the workflow's prompt and metadata into the files. The difference is the tag. It's a ComfyPack/output node, which is what tells the pack "this image is an output of the served API" - so when you deploy the workflow, this is what comes back from POST /generate.
That deployment angle is the whole reason the pack exists. Comfy-Pack, from BentoML, is a toolkit for making ComfyUI workflows shareable: you annotate a graph with CPack input and output nodes, then either package the entire environment (Python package versions, ComfyUI and custom-node revisions, model hashes) into a .cpack.zip, or serve the workflow as a REST API at http://127.0.0.1:3000/generate. Image Output is the canonical final node for image workflows, the same way SaveImage is the canonical final node for a plain local graph.
How it works
It saves each image in the batch as a separate PNG in your output directory, auto-numbering files so you never overwrite (that's the _NNNNN_ counter you'll see in the filenames). It writes the full workflow prompt plus any extra PNG info into each file's metadata - the same mechanism that lets you drag a ComfyUI output image back into the canvas and get the whole graph back, which the ecosystem treats as a sharing norm. You can even set the compression level, though the default is sensible.
The inputs that matter
- images - the IMAGE tensor to save. The tooltip from the pack's own source is just "The images to save." Wire this from your VAE decode (or however you got pixels).
- filename_prefix - default
cpack_output_. Give it a real name and your outputs become readable:cpack_output_00001_.pngbecomesportraits_00001_.png.
No outputs - it's a terminal node.
Install
Standard pack install:
- ComfyUI Manager: search
comfy-pack, Install, restart, refresh. - Manual:
cd ComfyUI/custom_nodes && git clone https://github.com/bentoml/comfy-pack, restart.
Heavier than the average node - BentoML and comfy-cli come along - but it's the price of a workflow-deployment toolkit.
Where people trip up
The most common mistake is expecting it to do something LoadImage's cousin doesn't. Locally it is SaveImage with a different label; the serving magic only appears once you hit the /generate endpoint. The other gotcha: Comfy-Pack refuses to serve a workflow without at least one CPack input and one CPack output node. An image-in, image-out workflow is the textbook setup - CPackInputImage at the front, this node at the back - and once you've got that, a single curl sends a prompt and gets back a PNG. That's a surprisingly satisfying moment.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| images | IMAGE | The images to save. | |
| filename_prefix | STRING | cpack_output_ | — |
Outputs (0)
No outputs