Nodes/Comfyroll Studio/πŸ› οΈ CR Debatch Frames
ComfyUI Node Runs on cloud

πŸ› οΈ CR Debatch Frames

Split an image batch into a list of frames

By Suzie1Β·Created 3 years agoΒ·Updated 2 years agoΒ· 1,296
πŸ› οΈ CR Debatch Frames
  • frames
  • debatched_frames

ComfyUI has two ways of moving multiple images around: as a batch (one tensor with N images stacked, processed together) and as a list (N separate items the graph iterates over one at a time). They behave differently, and plenty of nodes only accept one form. Debatch Frames converts the first into the second - take a batched IMAGE and get back a list of individual frames.

It's a small but genuinely useful utility from Comfyroll Studio (Suzie1 / RockOfFire), in the Animation β†’ Utils group. When you've got a batch and a downstream node that wants to work per-image, this is the adapter.

How it works

You feed the batched images into frames, and the node emits debatched_frames as an image list (the output is flagged as a list, not a single image). Downstream, ComfyUI will then run whatever's connected once per frame, iterating through them, instead of handling the whole stack in one shot.

The distinction matters because of how ComfyUI schedules work. A batch stays together through a node in a single execution; a list makes the graph loop, invoking the connected nodes N times. Some nodes - list builders, certain savers, per-item logic - expect the list form and choke on a batch, or silently only touch the first item. Debatch Frames is how you hand them what they want.

The inputs that matter

  • frames - the batched IMAGE to split apart. That's the only input.

Output is debatched_frames, an image list. Note there's no show_help output on this one - it's just the frames. Wire it into any node that operates per-image.

Where you'd actually reach for it

The classic case is animation and video work: a sampler or loader hands you a batch of frames, but the next node - a per-frame filter, a list-based saver, a cycle node - wants them one at a time. Debatch Frames bridges that. It's also the fix when a node "only processes the first image of my batch": convert to a list and it'll iterate through all of them.

It's a plumbing node, so it doesn't do anything visible on its own. Its value is entirely in making two otherwise-incompatible nodes talk. Once you understand ComfyUI's batch-vs-list split, you'll recognize immediately when you need it - and it's maddening to debug when you don't know the distinction exists.

How to install it

  • ComfyUI Manager: search Comfyroll Studio, install, restart.
  • Manual: cd ComfyUI/custom_nodes && git clone https://github.com/Suzie1/ComfyUI_Comfyroll_CustomNodes.git, then restart.

No downloads - it's a pure conversion node.

Common issues

If it's missing from the menu, suspect the whole pack, not the node. On newer ComfyUI builds Comfyroll can fail to import a submodule at startup, filling the console with NameError: name 'CR_...' is not defined and hiding every CR node. Read the first traceback (the real cause) and update via Manager.

The conceptual gotcha is the one to internalize: converting a batch to a list makes the graph iterate, which multiplies execution count and, for heavy downstream nodes, your render time - N frames means N runs. That's the correct behavior, not a slowdown bug, but it surprises people. Conversely, if you debatch and the downstream node re-batches or only reports one result, check that the node you fed actually respects list inputs; not every node does.

Category🧩 Comfyroll Studio/πŸŽ₯ Animation/πŸ› οΈ Utils

Inputs (1)

NameTypeDefaultDescription
framesIMAGEβ€”

Outputs (1)

NameTypeDescription
debatched_framesIMAGEβ€”