Serving Multi-Image Output
Send several images back, instead of one merged video
- serving_config
- images
- chained_execution
- SHOULD_EXECUTE
ServingMultiImageOutput exists to answer one question the original pack couldn't: "what if I want my batch of images back as images, not as one merged video?" The default behavior of the toolkit's ServingOutput is to collapse a multi-frame tensor into a single animated WebP. That's perfect when your batch is AnimateDiff frames you want to loop. It's annoying when your batch is four variations of a prompt and you want four separate files. This node gives you the second behavior - it sends every frame as its own image, no merging.
It arrived in the pack's mid-2024 update (the same release that added direct attachment handling), and the author's announcement specifically called it out as the quality-of-life win, with at least one long-time user saying it was the feature they'd been waiting for. If your output is genuinely "several distinct images" rather than "frames of one animation," reach for this instead of ServingOutput.
Inputs:
images- the IMAGE tensor. Each frame in the batch becomes its own returned image.serving_config- the config from your entry point node.chained_execution(optional) - aSHOULD_EXECUTEsignal for sequencing replies.
The delivery differs by platform, which is a nice touch. On Discord each frame is sent as a separate PNG file attached to the reply. On Telegram they go out as a media group - one message, multiple photos, which is exactly how that platform expects multi-image replies. On HTTP and WebSocket, you get back a base64_images array instead of the single base64_img field, so a consumer can iterate the list. Same node, idiomatic behavior per channel.
The return value is a SHOULD_EXECUTE signal, the toolkit's way of letting one output hand off to the next. It's also how you could, say, send the four variants as images and follow with a text note about which one you'd pick.
One thing to keep straight: if your "batch" is actually video frames and you wanted a smooth animation, this node is the wrong tool - you want ServingOutput and its frame_duration (set to 1000/FPS). This node is for when the batch has semantic meaning per image: grid variations, img2img rollouts, multiple seeds. Also note it ships a 60-second timeout on sending via the Discord client path, so a truly huge batch can trip the send; keep batches reasonable.
Install is the shared pack install - ComfyUI Manager, or git clone into custom_nodes plus pip install -r requirements.txt. No new dependencies here; the node reuses the toolkit's image encoding. And the standing rule applies: Auto Queue on, or the node runs once, serves nothing, and your requester waits forever.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| serving_config | SERVING_CONFIG | — | |
| images | IMAGE | — | |
| chained_executionopt | SHOULD_EXECUTE | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| SHOULD_EXECUTE | SHOULD_EXECUTE | — |