FastImageListToImageBatch
The glue node that turns a pile of images into one video-friendly batch
- images
- IMAGE
The name is doing real work: this node takes a list of images and smushes them into a single batch tensor. That distinction sounds pedantic until you're staring at a video workflow that keeps erroring, or silently dropping frames, because one upstream node handed you five separate (1, H, W, C) tensors when the video model wanted one (5, H, W, C) tensor.
Video models in ComfyUI are picky about the batch dimension - it's literally "how many frames is this tensor." ComfyUI has turned "chaining models, preprocessing frames, and managing temporal conditioning" into an art form precisely because that dimension is the whole game. When your workflow loads a set of start/end frames or keyframes as individual images, some loader hands you a Python list instead of a joined batch, and everything downstream quietly assumes it's getting one tensor. This node is the adapter.
It ships inside jax-explorer/fast_video_comfyui, a tiny one-node pack from the same author as the well-received ComfyUI-DreamO reference pack. The "FastVideo" in the name points at the low-step FastVideo / Hunyuan FastVideo workflows, but the node itself is model-agnostic - it works for anything that wants a batch of images.
How it works
The source is four lines of PyTorch, so there's nothing mysterious here:
combined_image = torch.stack(images, dim=0) # new leading dim: (N, B, H, W, C)
combined_image = combined_image.view(-1, *images[0].shape[1:]) # flatten to (N*B, H, W, C)
The class sets INPUT_IS_LIST = True, so ComfyUI hands it the raw Python list. It stacks the tensors on a fresh dimension zero, then view flattens the first two dimensions back into one batch. Give it three single images and you get a batched tensor of three frames. Give it a single image and it short-circuits and passes it through untouched - a nice touch that means you can wire it in before you've actually got multiple frames without the graph exploding.
That same stack-and-flatten trick is what ComfyUI's own Image List to Image Batch node does, so no, this isn't breaking new ground - it's the version that rides along with this pack and speaks its "FastVideo" category. Fine. You install it for the convenience of having it in the pack, not for a novel algorithm.
The inputs and outputs
Everything here is one in, one out:
images(IMAGE) - a list of image tensors. If you feed it a single regular image, thelen <= 1branch returns it unchanged.- Output
IMAGE- one batched tensor you wire into whatever expects frames: a video sampler's first/last-frame conditioning, a batch img2img pass, an upscaler that processes the whole clip at once.
There are no knobs. No resolution override, no fps, no modes. It is aggressively boring, which is the compliment it deserves.
Installing it
There's no requirements.txt in the pack and it doesn't download any models - it only needs torch, which ComfyUI already has. Two ways in:
- ComfyUI Manager: search for "fast_video_comfyui" and hit install, then restart.
- Manual:
cd ComfyUI/custom_nodes
git clone https://github.com/jax-explorer/fast_video_comfyui
Then restart ComfyUI. That's genuinely the whole install - no weights to chase, no venv to babysit.
Where people get burned
- Mixed sizes crash it.
torch.stackrequires every tensor to be the same shape, so a 512×512 frame stacked with a 768×768 frame raises a "stack expects each tensor to be equal size" error. Resize everything to the same dimensions before this node - this is the #1 way this thing breaks. - Watch what your loader actually outputs. Some "load image" nodes hand you a batch, not a list, and with
INPUT_IS_LIST = TrueComfyUI wraps that single batched tensor into a one-element list - which hits the passthrough and you're back where you started. If the node seems to do nothing, check upstream: you probably didn't need it in the first place, and the real fix is wiring the batch directly. - It doesn't fix the timeline. It joins frames; it doesn't reorder, dedupe, or pick frames for you. Do that before you get here.
If you're moving frames around a FastVideo workflow and the batch dimension keeps biting you, this is the boring little node that makes the graph line up.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| images | IMAGE | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |