Frame Extender Advanced π
When a hard cut isn't good enough
- source_video
- additional_frames
- extended_video
FrameExtenderAdvanced is the same splice-and-blend job as its sibling FrameExtender, but with a full palette of transition effects bolted on. FrameExtender gives you one flavor of crossfade; this one gives you eight blend modes, five timing curves, adjustable strength, fades, and the ability to reverse the added clip. If you're stitching clips together and the plain cut - or even the basic crossfade - isn't landing, this is where you go.
How it works
Everything from FrameExtender is here: source_video + additional_frames, insert_position (-1 = end, 0 = beginning, or any frame index), looping, the shared advanced-resize system, and memory-efficient chunk processing. On top of that it adds a transition engine with three knobs working together:
blend_mode- how each transition frame is composited.noneis a plain concatenation (basic Extender behavior).linearand theease_*variants ramp between the two boundary frames;crossfadeis a gamma-friendly blend;dissolveis a noisy pixel-by-pixel dissolve;overlayis a Photoshop-style composite.transition_curve- the timing of the blend, applied on top of the mode.linearis constant-rate,smoothis a smoothstep ease-in/out,sharpaccelerates hard, andbounce/elasticovershoot and oscillate at the tail end.blend_strength- 0.0 to 2.0, how much of the effect actually applies. Theblend_framescount (0β100) sets how many frames the transition spans.
Mechanically, each transition frame is an alpha blend between the last frame of one clip and the first of the next, with that alpha driven by the curve you picked. reverse_additional flips the added clip before splicing, which makes a natural ping-pong when you extend a section; fade_edges fades the whole result in and out - think fade-from-black opening, fade-to-black ending.
The inputs that matter
blend_modeandblend_frames- the pair that defines the actual transition.crossfadewith 8β15 frames is the tasteful default I'd actually reach for.transition_curve-smoothis your friend. Thebounceandelasticoptions are fun for motion-graphics intros, but they're gimmicks for any kind of realistic footage - they visibly overshoot, which reads as "I made this in an editor," rarely as "professional."blend_strength- crank this below 1.0 for a subtler transition; above 1.0 for a more aggressive one.reverse_additionalandfade_edges- the two creativity switches worth flipping when you want a mirrored loop or a cinematic fade.
Output is extended_video, the stitched IMAGE tensor, ready for SaveImage/VideoCombine.
The same trap as the basic node
The resize defaults carry over: width/height default to 512 with condition: always, so unless you set them to your real resolution (and ideally switch condition to if different), your source gets downscaled to fit 512Γ512. Same advice as the base node, same reason - this whole pack shares one resizing system.
Installing
Manager: search "ComfyUI-FrameUtilitys". Or:
cd ComfyUI/custom_nodes
git clone https://github.com/lum3on/ComfyUI-FrameUtilitys
Restart. No models to download, no extra dependencies - just the torch/numpy/Pillow ComfyUI already ships.
Troubleshooting
- Transition too fast/slow - tune
blend_frames, not the mode. A 3-frame blend is nearly a cut; 15+ reads as a real dissolve. - Output downscaled - the 512 default again. Set real dimensions and
condition: if different. bounce/elasticlook wrong on footage - expected; those curves overshoot by design. Switch tosmoothorlinear.
Inputs (17)
| Name | Type | Default | Description |
|---|---|---|---|
| source_video | IMAGE | Base video sequence to extend (IMAGE tensor format) | |
| additional_frames | IMAGE | Frames to add to the source video | |
| insert_position | INT | -1-1β10000 | Position to insert frames (-1 = end, 0 = beginning) |
| width | INT | 51264β8192 | Target width for frame resizing |
| height | INT | 51264β8192 | Target height for frame resizing |
| interpolation | COMBO | bilinear | Interpolation method for resizing |
| method | COMBO | keep proportion | Resizing method |
| condition | COMBO | always | When to apply resizing |
| multiple_of | INT | 00β512 | Round dimensions to multiple of this value (0 = disabled) |
| blend_mode | COMBO | none | Blending mode for transitions |
| blend_frames | INT | 00β100 | Number of transition frames for blending |
| blend_strength | FLOAT | 1.00β2 | Strength of blending effect |
| transition_curve | COMBO | smooth | Transition curve for blending |
| loop_additionalopt | BOOLEAN | false | Loop additional frames if source is longer |
| reverse_additionalopt | BOOLEAN | false | Reverse additional frames before adding |
| fade_edgesopt | BOOLEAN | false | Apply fade effect at sequence edges |
| memory_efficientopt | BOOLEAN | true | Process in chunks to save memory |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| extended_video | IMAGE | β |