Nodes/ComfyUI-HttpRequestNodes/Chainable Upload Image
ComfyUI Node

Chainable Upload Image

Upload several images separately and chain them into one batch

By ahkimkoo·Created 3 months ago·Updated 3 months ago· 1
Chainable Upload Image
  • 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.

CategoryRequestNode/Utils

Inputs (2)

NameTypeDefaultDescription
imageIMAGE
image_batch_inoptIMAGE

Outputs (1)

NameTypeDescription
image_batch_outIMAGE