Ino Image List To Batch
Turn a stack of images into one tensor ComfyUI can feed forward
- images
- images
- number of images
ComfyUI's image tensors are batches, and lots of nodes want one: an img2img pass across a whole folder, a batch upscale, a video-style frame chain. But loaders and other tools hand you images one at a time, and stock ComfyUI has no clean "merge these into a batch" step for arbitrary lists. Ino Image List To Batch is the Ino Nodes pack's answer: it takes a list of images, makes them compatible, and stacks them into a single batched tensor your pipeline can process as one unit.
It comes from nobandegani's Ino Nodes pack, built on ComfyUI's newer V3 schema, and it handles one of those "obvious but surprisingly fiddly" problems: you can't just stack tensors of different sizes.
What it does
One real input, images - and it's a list input, meaning it accepts multiple incoming IMAGE connections (the node is declared as a list-typed input). Feed it however many images you have. The second input, padding, is a toggle that decides how the node handles mismatched sizes:
- Resize (padding off, the default) - images are resized to match, then stacked.
- Pad (padding on) - images are padded to the largest dimensions instead, preserving each image's original pixels.
The two outputs are images (the batched tensor) and number of images (the count as an INT), which is handy for loops and sanity checks. The empty-list case is handled too - you get an empty tensor and a count of zero instead of a crash.
Why the toggle matters
This is the part worth understanding before you wire it up. A batch tensor requires every image to share the same height, width, and channels. If your images come from different sources with different sizes, the naive stack fails. Resize solves it by normalizing everything (fast, but it distorts non-uniform images). Pad solves it by letterboxing to the biggest frame (no distortion, but you get padding bars in the corners). For most img2img work on similarly-sized images, either works; the choice only becomes visible when sizes really differ.
Where it fits
The classic pattern: a "load images from folder"-style node gives you images, and the batch-capable node you want to feed (a batch sampler, an upscaler, a compare node) wants a tensor. This node is the bridge. The number of images output is genuinely useful for "am I processing everything I expected" checks before the expensive step runs.
The honest caveat: batching a huge stack means the downstream node processes them all at once, which has VRAM implications - a 50-image batch can blow past what the sampler expects. It's a plumbing node, not a magic one.
Installing it
It ships with the whole Ino Nodes pack. ComfyUI Manager: search "ComfyUI Ino Nodes", install, restart. Or manually:
cd ComfyUI/custom_nodes
git clone https://github.com/nobandegani/ComfyUI-InoNodes.git
cd comfyui_ino_nodes
pip install -r requirements.txt
Restart after. Pack-wide caveats apply: it's built on ComfyUI's V3 schema (README wants v0.18.1+), and requirements.txt installs inopyutils, the helper library every node imports.
Common issues
If you get a shape mismatch, check your padding toggle - mismatched sizes are exactly what it exists to reconcile. And if the output tensor looks "wrong" (bars, stretching), it's not a bug, it's the pad-vs-resize tradeoff doing its job. Search "Ino Image List To Batch" in the node menu (grouped under InoImageHelper).
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| images | IMAGE | — | |
| padding | BOOLEAN | false | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| images | IMAGE | — |
| number of images | INT | — |