π½ Create Frame Set
The front door to the whole pack β turn an image batch into frames
- images
- frames
Create Frame Set [DVB] is where almost every Dream Video Batches workflow starts. The pack's central idea is the frame set: a bundle of images together with their frame indices and a framerate. Nearly every other node in the pack - the fades, the transitions, the splits and merges, the reverses and repeats - operates on frame sets. And this is the node that makes one out of a plain IMAGE batch. No frame set, no pack; it's that central.
The inputs that define your timeline
Five inputs, and the first is your images:
- images - a standard IMAGE batch. Feed it frames from a Video Helper Suite load, the output of an AnimateDiff decode, or any batch of tensors you already have.
- first_frame_index (default 0) - the index you want the first image to wear.
- step (default 1) - spacing between indices. Step 1 gives you contiguous 0,1,2,3; step 2 gives you 0,2,4 with holes the Generate Inbetween Frames node can later fill.
- framerate_base (default 24) and framerate_divisor (default 1) - together they define the frame rate as base/divisor, so 24/1 is 24 fps and 48/1 would be 48 fps. The divisor is what you reach for when your content is, say, 30 fps delivered as 60 base - you can keep the base constant and adjust playback with a divisor.
That's the entire mechanism: it stamps indices onto your batch and remembers the framerate. Nothing gets resampled, resized, or re-rendered.
Why it's worth caring about indices at all
This is the part newcomers find weird, and it's the part that makes the pack powerful. The indices aren't decoration - they're how the pack's nodes decide what's a "gap", how transitions know where to overlap, and how append and merge know where frames go. Create a set with step 2 and Generate Inbetween Frames will happily fill the holes. Offset the indices and a Blended Transition lines up differently. Get comfortable with first_frame_index and step and you can build workflows that compose clips by index arithmetic instead of by brute-force frame juggling.
The gotcha you will hit
When this node spits out a frame set, that FRAME_SET is the pack's own type - standard ComfyUI nodes can't consume it. The beginner wall with this pack (it's a real, documented complaint in the community) is trying to connect the frames output straight into Save Video and getting nothing. You must route the set through Unwrap Frame Set [DVB] at the end to get a plain IMAGE batch plus the framerate as numbers, and then those feed your encoder and save nodes. Unwrap is the pack's exit door, and it's also where you decide what to do with gaps (blend them, error, or reindex). Build that in from day one and you'll skip the most common frustration with the whole pack.
Install
Search "Dream Video Batches" in ComfyUI Manager, or:
cd ComfyUI/custom_nodes
git clone https://github.com/alt-key-project/comfyui-dream-video-batches.git
cd comfyui-dream-video-batches
pip install -r requirements.txt
Restart ComfyUI after. No models to download - this node is a wrapper, not a generator. The pack does need its dependencies (imageio, pilgram, scipy, numpy, torchvision, evalidate), so if you cloned manually, don't skip the pip step.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| images | IMAGE | β | |
| first_frame_index | INT | 0 | β |
| step | INT | 11β256 | β |
| framerate_base | INT | 24 | β |
| framerate_divisor | INT | 1 | β |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| frames | FRAME_SET | β |