Batch Images (DEPRECATED)
The two-image glue you'll stop using
- image1
- image2
- IMAGE
Every image in ComfyUI is secretly a 4D tensor shaped [batch, height, width, channels]. A "batch" is just however many images you've stacked on that first axis - one image is a batch of 1, ten images is a batch of 10. Almost every node that touches images can process a whole batch at once, which is the entire reason ComfyUI can blast through ten prompt variations in a single run instead of ten runs.
ImageBatch exists to build those batches. It takes exactly two images and stacks them. That's it. In fact, that's all it ever did, and it's been so thoroughly superseded that the name in your node menu actually reads "Batch Images (DEPRECATED)".
What it does, mechanically
The source is short enough to quote in your head. It takes image1 and image2, makes sure they're compatible, and concatenates them along the batch axis:
- If one has an alpha channel and the other doesn't, it pads the RGB one with a constant
1.0alpha channel so they match. - If the two images differ in width or height, it silently upscales
image2toimage1's size with bilinear sampling. - Then
torch.cat((image1, image2), dim=0)- oneIMAGEout, with the two images stacked.
That silent upscale is the thing that burns people. You wire in a 512×512 and a 768×768 and you get one image with both frames at 512 - the big one just got squashed without you asking. If you wanted that, fine. If you wanted them preserved at native size, this node is quietly destroying data.
The inputs that matter
There are two required inputs and no outputs worth arguing about:
- image1 (
IMAGE) - first image, becomes batch position 0 - image2 (
IMAGE) - second image, becomes batch position 1 - Output: a single IMAGE with batch size 2
Feed the output into a sampler, an upscaler, a VAE, anything that takes an IMAGE - it'll run both frames as one batch, which is usually faster than running them separately because the model gets reused across the batch.
Why it's deprecated, and what to use instead
The node is marked DEPRECATED = True in core, and the recommendation is the modern Batch Images node (BatchImagesNode) in the same category. That one takes any number of images - the input ports auto-grow as you plug more in, up to 50 - and stacks them all without the resizing magic. The only thing you lose is the auto-upscale behavior, and losing that is a feature: it refuses to work on mismatched sizes instead of silently mangling one image to fit the other.
Where ImageBatch genuinely still appears is in older shared workflows, which is why you should know what it does even if you never build a graph with it. If you load an old workflow and see a "Batch Images (DEPRECATED)" node, leave it alone - it still works fine - but swap it out for Batch Images the next time you're in there.
One gotcha if you stick with it: the search aliases are "combine images", "merge images" and "stack images", so it'll pop up when you search those phrases. And because it only takes two images, chaining several together to make a batch of 8 is exactly the pattern the autogrow node was invented to kill. Don't build that chain; just update.
Common issues
- Mismatched sizes quietly resampled. The node upscales
image2to matchimage1. If your output looks soft or stretched, that's why. - Alpha channels appearing from nowhere. One RGBA input plus one RGB input yields an RGBA batch. Harmless downstream, but it can surprise a node that assumed 3 channels.
- It only takes two. Trying to batch 3+ images means chaining nodes, and every link in that chain is a place for the resize behavior to bite. Use Batch Images instead.
It ships with ComfyUI core - nothing to install, no models to download. It's just a piece of the graph that's been around long enough to earn a retirement badge.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| image1 | IMAGE | — | |
| image2 | IMAGE | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |