π€ RH Multi-Input Image
Many images into ONE cloud run, each to its own slot
- config
- previous_params
- image_1
- image_2
- image_3
- image_4
- image_5
- image_6
- image_7
- image_8
- RH_PARAMS
RH Multi-Input Image is the flip side of RH Batch Upload Image, and it's easy to mix them up - so get this straight first. Batch Upload Image sends one image per task run (N images β N jobs). This node sends up to 8 images into a single task run, each image aimed at a different slot in the cloud workflow. Batch = "sweep." Multi-Input = "one job, many inputs."
You want Multi-Input when a single remote workflow takes multiple image inputs - an init image plus a reference image plus a mask, or a two-reference video workflow, or a character/identity setup with a few angle shots. One run consumes all of them.
Inputs
config- from RH Config. Required.previous_params- optional; if you already have a params chain, this node extends it instead of starting fresh.
Then the repeating triplet, image_N, node_id_N, field_name_N for N = 1 through 8:
image_N- the IMAGE tensor for slot N.node_id_N- which node inside the RunningHub workflow this image targets. This one is per-image, unlike Batch Upload's single sharednode_id.field_name_N- the field on that node:image,control_image, ormask, chosen per image.
That per-slot targeting is the whole feature. Image 1 β node 5.image, Image 2 β node 9.control_image, Image 3 β node 12.mask, all in one run.
How it works
For each connected image it uploads to /task/openapi/upload and appends a {nodeId, fieldName, fieldValue} entry to a single params list. If you connect an image but leave its node_id_N empty, the node warns and skips that image - no upload, no entry. The output is RH_PARAMS, the same list shape RH Param produces, so it feeds straight into RH Execute (or chains into other params). Because it's one list, one run.
Gotchas
The naming is the trap: image_3 goes with node_id_3 and field_name_3. It's easy to connect image 3 but edit node_id 2 and wonder where your image went - the skip-with-warning behavior means it silently doesn't happen. And remember you're still limited by RunningHub's upload/10MB-per-image realities; eight images means eight uploads before the task even starts. If you actually wanted a sweep across the same slot, that's Batch Upload Image, not this node.
Install: ComfyUI Manager (search ComfyUI_RH_API) or git clone https://github.com/xuchenxu168/ComfyUI_RH_API.git into custom_nodes + pip install -r requirements.txt, restart.
Inputs (26)
| Name | Type | Default | Description |
|---|---|---|---|
| config | RH_CONFIG | β | |
| previous_paramsopt | RH_PARAMS | β | |
| image_1opt | IMAGE | β | |
| node_id_1opt | STRING | β | |
| field_name_1opt | COMBO | 3 options: image, control_image, mask | |
| image_2opt | IMAGE | β | |
| node_id_2opt | STRING | β | |
| field_name_2opt | COMBO | 3 options: image, control_image, mask | |
| image_3opt | IMAGE | β | |
| node_id_3opt | STRING | β | |
| field_name_3opt | COMBO | 3 options: image, control_image, mask | |
| image_4opt | IMAGE | β | |
| node_id_4opt | STRING | β | |
| field_name_4opt | COMBO | 3 options: image, control_image, mask | |
| image_5opt | IMAGE | β | |
| node_id_5opt | STRING | β | |
| field_name_5opt | COMBO | 3 options: image, control_image, mask | |
| image_6opt | IMAGE | β | |
| node_id_6opt | STRING | β | |
| field_name_6opt | COMBO | 3 options: image, control_image, mask | |
| image_7opt | IMAGE | β | |
| node_id_7opt | STRING | β | |
| field_name_7opt | COMBO | 3 options: image, control_image, mask | |
| image_8opt | IMAGE | β | |
| node_id_8opt | STRING | β | |
| field_name_8opt | COMBO | 3 options: image, control_image, mask |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| RH_PARAMS | RH_PARAMS | β |