๐ Frame Set Repeat
Turn a two-second loop into a full-length animation, fast
- frames
- frames
Frame Set Repeat [DVB] takes a frame set and plays it again. And again. repetitions (default 2, min 1) controls how many times, and each copy is placed on the timeline right after the last - so two copies of a 24-frame set produce 48 frames. The README frames it perfectly: it's for "quickly creating a longer animation from a loop or single image." In a world where generating long, coherent video is still the hard problem, this is the honest cheat code - generate a short loop that does work, then stretch it with copies instead of gambling on a long generation.
How it stacks
Internally the node takes the original set's indexed frames and lays down repetitions copies, each starting one step past the previous copy's last index. Defaults give you a contiguous 0..N run. The step input (default 1) lets you leave a gap between copies - useful if you're building a timeline where each iteration should start at a specific interval rather than back-to-back.
A few details worth knowing. It preserves the original's internal indexing on every copy, so if your source set has gaps, the copies have gaps in the same places. And because the result is still just a frame set, the copies are identical frames - there's no animation between them, which is the point when you're holding a loop. If you want the repetition to seem continuous rather than obviously looped, pair it with Blended Transition at the seam, or alternate a reversed copy for a ping-pong effect (Frame Set Reverse + Append is the classic combo, and Repeat is the same idea with fewer wires).
When it's genuinely the right tool
Three cases. A short loop of motion - a walk cycle, a wave, a rotating object - that you need to run for 20 seconds: generate once, repeat five times. A single still image you want to hold on screen for a while: repeat it and it becomes a frozen clip with a real frame count, ready for fades and transitions. And as a test harness: repeat a 12-frame test clip to preview what a longer run of the same content would feel like before you commit GPU time to the real generation. For all three, this is the cheapest possible way to get more timeline.
The honest limits
Repeated frames are repeated frames - there's no motion smoothing between copies, so if the source ends and starts with different content, the seam reads as a jump. That's why the pro move is a reverse-and-append or a blend at the wrap. Also remember the pack-wide rule: the output is a FRAME_SET, which standard ComfyUI nodes can't consume. Before encoding or saving, run it through Unwrap Frame Set [DVB] - that's the one beginner gotcha that bites every node in this pack, and Repeat is where people usually first hit it while staring at a long clip they can't get out of the graph.
Install
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, or search "Dream Video Batches" in ComfyUI Manager. No model downloads - repeating frames is pure bookkeeping.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| frames | FRAME_SET | โ | |
| repetitions | INT | 2 | โ |
| step | INT | 1 | โ |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| frames | FRAME_SET | โ |