RM Make Image Batch
Shove any number of images into one batch for batch sampling
- image_1
- IMAGE
ComfyUI treats a stack of images as one IMAGE tensor with a batch dimension, and a lot of nodes only work their magic when you hand them a whole batch at once - batch VAE decode, batch sampling, video combine, tiled pipelines. The problem is gluing "a bunch of separate images that arrived from different places" into "one tensor" is more than a concat: tensors from different sources have different shapes, and a naive cat blows up. RMMakeImageBatch is the glue. You add as many image inputs as you need, and it hands you a single batched tensor.
How it works
The node accepts a dynamic set of image_N inputs (added via an Add Image button, same pattern as the pack's LoRA loader). It takes the first connected image as the reference and rescales every later image with bilinear interpolation to match its height and width, then concatenates them along the batch axis. That resize-into-a-reference behavior is the whole reason this node exists and also its sharpest edge: mismatched resolutions don't error, they silently get stretched. Two 1024×1024 images and one 512×512? The small one becomes 1024×1024.
If you only connect one image, it passes through untouched. If you connect nothing, you get None out - which is how you know a branch upstream failed before you feed garbage into a sampler.
Inputs and outputs that matter
- image_1 through image_N (IMAGE, optional, dynamic) - any number of image inputs.
- IMAGE (output) - a single batched tensor, ready for a KSampler, a Video Combine, or batch encode.
How to install it
Ships in the RMAutomation pack:
cd ComfyUI/custom_nodes
git clone https://github.com/Moser9815/ComfyUI-RMAutomation
Restart ComfyUI; it lives under RMAutomation/Image. Pure PyTorch, no extra dependencies.
Common issues
The silent-resize behavior is the one to watch. Batch sampling usually wants uniform dimensions, so mismatched inputs producing a squeezed frame isn't always obvious until you see the result. Match resolutions upstream (an Image Resize node) if you care about aspect ratio. Also note the output is a batch, not a list - downstream nodes see one tensor with N items, so anything that expected individual images one at a time (like the pack's face nodes, which use list semantics) won't behave the same here. If you get None out and a branch you expected to have data, trace that branch - the node is just telling the truth.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| image_1opt | IMAGE | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |