FL Video Crossfade
FL_VideoCrossfade — dissolve one clip into another over a set number of frames
- images_a
- images_b
- IMAGE
Two video clips, and you want the first to melt smoothly into the second instead of hard-cutting. That's what FL_VideoCrossfade does: it blends the tail of clip A into the head of clip B over a number of frames you choose, giving you a clean dissolve transition. Simple, and exactly the kind of thing you reach for constantly when you're assembling generated clips into something watchable.
It's worth putting this in context. The single biggest headache in local video generation is that models produce short clips - five seconds, give or take - so any real piece is a bunch of clips edited together. Half of that editing is transitions. FL_VideoCrossfade is the no-frills transition tool: not a fancy AI-generated morph between shots, just an honest cross-dissolve, which is often precisely what a music video or montage needs.
How it works
Both inputs are image batches - frame sequences. The node resizes both to your target dimensions, then, over the crossfade region, mixes each pair of frames according to the blend_mode. In normal mode that's a straight opacity dissolve: A fades out as B fades in. The other blend modes change the math of the mix for stylized transitions.
The inputs and outputs
images_a/images_b- the two clips (as frame batches). A goes first, B comes in.crossfade_frames(1–1000, default 10) - how many frames the dissolve lasts. Longer = slower, dreamier; shorter = snappier.blend_mode-normal(standard dissolve), plusmultiply,screen,overlay,soft_light,add, andsubtract.normalis what you want 90% of the time; the others give you additive glows, darkening blends, and other stylized handoffs.target_width/target_height- the output size both clips are resized to.
Output is a single IMAGE batch - the combined sequence, ready for your video-combine/save node.
How to install it
Part of filliptm's Fill-Nodes pack. ComfyUI Manager → search ComfyUI_Fill-Nodes → Install → restart, or:
cd ComfyUI/custom_nodes
git clone https://github.com/filliptm/ComfyUI_Fill-Nodes
pip install -r ComfyUI_Fill-Nodes/requirements.txt
No model, no exotic dependencies for this one - it's tensor math and resizing.
Common issues & troubleshooting
Set the target size to match your pipeline. Both clips get resized to target_width × target_height (defaults are a modest 512×512). If your clips are 1280×720, bump these up or you'll downscale everything to a square. Mismatched with the rest of your workflow is the most common "why does my video look wrong" here.
The blend looks muddy or weird. That's usually a blend mode thing. screen and add brighten where the two clips overlap; multiply darkens. On a crossfade you almost always want normal - the fancy modes are for deliberate stylistic effect, not general transitions. If you didn't mean to be stylish, switch back to normal.
crossfade_frames longer than a clip. If you ask for a 60-frame dissolve but a clip is only 40 frames long, there aren't enough frames to fade across - keep the crossfade length comfortably shorter than both clips.
It's a dumb dissolve, not a morph. This blends pixels; it doesn't understand the content of either shot. For a smart transition that generates plausible in-between motion (a shot of A physically becoming B), you want a dedicated transition model. For a clean, cheap dissolve between two clips, this is the right, boring tool.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| images_a | IMAGE | — | |
| images_b | IMAGE | — | |
| crossfade_frames | INT | 101–1000 | — |
| blend_mode | COMBO | normal | 7 options: normal, multiply, screen, overlay, soft_light, add, +1 |
| target_width | INT | 51264–4096 | — |
| target_height | INT | 51264–4096 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |