Nodes/ComfyUI-FrameUtilitys/Frame Extender Advanced 🎭
ComfyUI Node

Frame Extender Advanced 🎭

When a hard cut isn't good enough

By lum3onΒ·Created about a year agoΒ·Updated 2 months agoΒ· 16
Frame Extender Advanced 🎭
  • source_video
  • additional_frames
  • extended_video
β—„insert_position-1β–Ί
β—„width512β–Ί
β—„height512β–Ί
β—„interpolationbilinearβ–Ί
β—„methodkeep proportionβ–Ί
β—„conditionalwaysβ–Ί
β—„multiple_of0β–Ί
β—„blend_modenoneβ–Ί
β—„blend_frames0β–Ί
β—„blend_strength1.0β–Ί
β—„transition_curvesmoothβ–Ί
β—„loop_additionalfalseβ–Ί
β—„reverse_additionalfalseβ–Ί
β—„fade_edgesfalseβ–Ί
β—„memory_efficienttrueβ–Ί

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. none is a plain concatenation (basic Extender behavior). linear and the ease_* variants ramp between the two boundary frames; crossfade is a gamma-friendly blend; dissolve is a noisy pixel-by-pixel dissolve; overlay is a Photoshop-style composite.
  • transition_curve - the timing of the blend, applied on top of the mode. linear is constant-rate, smooth is a smoothstep ease-in/out, sharp accelerates hard, and bounce/elastic overshoot and oscillate at the tail end.
  • blend_strength - 0.0 to 2.0, how much of the effect actually applies. The blend_frames count (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_mode and blend_frames - the pair that defines the actual transition. crossfade with 8–15 frames is the tasteful default I'd actually reach for.
  • transition_curve - smooth is your friend. The bounce and elastic options 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_additional and fade_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/elastic look wrong on footage - expected; those curves overshoot by design. Switch to smooth or linear.
Categoryimage/video

Inputs (17)

NameTypeDefaultDescription
source_videoIMAGEBase video sequence to extend (IMAGE tensor format)
additional_framesIMAGEFrames to add to the source video
insert_positionINT-1-1–10000Position to insert frames (-1 = end, 0 = beginning)
widthINT51264–8192Target width for frame resizing
heightINT51264–8192Target height for frame resizing
interpolationCOMBObilinearInterpolation method for resizing
methodCOMBOkeep proportionResizing method
conditionCOMBOalwaysWhen to apply resizing
multiple_ofINT00–512Round dimensions to multiple of this value (0 = disabled)
blend_modeCOMBOnoneBlending mode for transitions
blend_framesINT00–100Number of transition frames for blending
blend_strengthFLOAT1.00–2Strength of blending effect
transition_curveCOMBOsmoothTransition curve for blending
loop_additionaloptBOOLEANfalseLoop additional frames if source is longer
reverse_additionaloptBOOLEANfalseReverse additional frames before adding
fade_edgesoptBOOLEANfalseApply fade effect at sequence edges
memory_efficientoptBOOLEANtrueProcess in chunks to save memory

Outputs (1)

NameTypeDescription
extended_videoIMAGEβ€”