Chainable Upload Image
Upload several images separately and chain them into one batch
- image
- image_batch_in
- image_batch_out
The Chainable Upload Image node lets you upload an image with a normal upload widget, then chain it to more of the same node to build a batch - a row of upload buttons, one image each, all concatenated into a single IMAGE tensor on the last one's output. If you've ever needed to feed exactly three hand-picked reference images into a batch-consuming workflow, this is the node that saves you from loading a folder or editing an image-list node.
It's part of ComfyUI-HttpRequestNodes (the README calls it "Chain Image Node"; it's registered as Chainable Upload Image, and its UI display name is "Upload and Chain Image"). It's the pack's only node that isn't about HTTP at all - pure local batch plumbing, presumably dragged along because image upload was the original pack's home turf. The workflow chainable_upload_image_node.png ships with it to show the pattern.
How it works
Two inputs. image is the upload widget - declared with the special image_upload flag, so you get a click-to-upload button right on the node, and the uploaded tensor arrives already decoded. image_batch_in (optional) is where the chaining happens: wire the output of a previous Chainable Upload Image into it, and this node appends the new image to the incoming batch.
The source handles the one real wrinkle automatically: if the new image is a different size than the batch, it's bilinearly resized to match before concatenation, so a mixed-size set of uploads still produces a valid batch tensor. Wire nothing into image_batch_in and the node just passes your upload through as a single-image batch - so a lone instance is harmless.
One behavior worth knowing: the node uses IS_CHANGED returning the current time, which means it re-executes on every run rather than caching by file. That's deliberate - there's no filename to hash when the image arrives as a tensor - but it means the node always runs, so don't be surprised if it's part of the "always dirty" set in a big workflow.
Install
ComfyUI Manager → search ComfyUI-HttpRequestNodes → Install, restart. Or:
cd ComfyUI/custom_nodes
git clone https://github.com/ahkimkoo/ComfyUI-HttpRequestNodes
pip install soundfile imageio imageio-ffmpeg
Category: RequestNode/Utils. Torch and PIL only - no extra dependencies, no models, no keys. Nothing about this node touches the network.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| image_batch_inopt | IMAGE | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| image_batch_out | IMAGE | — |