π Blended Transition
Dissolve two clips into each other without a hard cut
- frames_first
- frames_after
- frames
Blended Transition [DVB] is the node that makes two clips feel like one take. You give it a frames_first, a frames_after, and a fade length, and it crossfades the tail of the first set into the head of the second - a proper dissolve instead of a cut. It's the piece that turns a pile of separately-generated segments into something that reads as a continuous scene, which is the whole game in AnimateDiff-era and batch video work.
How the blend works
The mechanism is a straightforward overlap crossfade, and it's worth understanding because it explains the node's rules. It takes the last fade_length frames of the first set and the first fade_length frames of the second, blends them pair-by-pair (weighted so the transition is smooth), and keeps everything else untouched. The blended frames carry the first set's indices, and the remainder of the second set is reindexed to follow. fade_seconds is converted to a frame count using the sets' framerate - 1 second at 24 fps means 24 frames of overlap. The node also caps the fade at the smaller of the two sets, so you can't ask it to dissolve more frames than exist.
That's why it's strict about its inputs: no index gaps in either set (a hole means there's no clean neighbor to blend against), both sets must share a framerate, and both must be the same pixel dimensions. Violate any of those and you get a node error with the reason spelled out - the errors are the helpful kind, so read them before debugging downstream.
When you'd use it
The classic recipe is ping-pong or multi-segment looping: generate three or four short clips of the same scene, append them, and put a Blended Transition at each seam so the loop never visibly jumps. It's also the natural follow-on to the fades in this pack - Fade From Black and Fade To Black handle the ends, this handles the middle joins. If you've built a long animation from a repeated short loop with Frame Set Repeat, a blend at the wrap point hides the seam much better than a hard cut.
The inputs are exactly three: frames_first, frames_after, and fade_seconds (default 1.0, min 0.1, adjustable in 0.1 steps). One frames output comes back out. Nothing else to tune.
The catch you'll hit
Like every node in this pack, the output is a FRAME_SET - a custom type standard ComfyUI nodes can't consume. Before you feed a blended transition to Save Video or a VAE-encode-and-save chain, run it through Unwrap Frame Set [DVB] to get the plain IMAGE batch and framerate. This is the single most common gotcha with the whole pack, and it's not a bug - it's just the pack's internal currency.
One honest caveat: a dissolve is a crossfade, not motion-aware morphing. If the two clips have very different subject positions, the middle of the blend will look like a double exposure for a frame or two. For a true morph you'd want the interpolation tooling in ComfyUI Frame Interpolation (a pack the README explicitly recommends alongside this one). For almost everything else - scene joins, loop wrapping, mood transitions - a crossfade is exactly right, and it's cheaper than anything that actually tracks motion.
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, and you're set. No models to download - this is pure image blending.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| frames_first | FRAME_SET | β | |
| frames_after | FRAME_SET | β | |
| fade_seconds | FLOAT | 1.0 | β |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| frames | FRAME_SET | β |