Nodes/TrentNodes/Frame Ramp Boogie
ComfyUI Node

Frame Ramp Boogie

Slow Motion That Blends Frames Instead of Repeating Them

By TrentHunter82·Created 9 months ago·Updated 4 days ago· 36
Frame Ramp Boogie
  • images
  • images
  • original_count
  • new_count
  • info
frames_to_insert1
easinglinear
target_regionfull_batch
region_size0.33
bezier_presetease
p1_x0.25
p1_y0.10
p2_x0.25
p2_y1.00

There are two ways to slow down a clip, and they look nothing alike. The cheap way duplicates frames - the video gets longer, but motion stutters because nothing new is actually drawn. The good way interpolates: for every pair of frames you insert a new one that's a blend of both, so the action glides. Frame Ramp Boogie is the blending kind, GPU-accelerated and with real control over how the blend happens.

Fair warning about expectations: this is not optical-flow interpolation. There's no motion estimation, no RIFE-class warping here. It blends adjacent frames - the classic cross-fade-between-frames trick. That's perfect for smoothing, subtle slow-motion, and stylized ramps, and it will never hallucinate the kind of true synthesized motion a flow-based interpolator does. Knowing that up front saves you the disappointment.

How it works

Give it an image batch with at least two frames. For every consecutive pair, it inserts frames_to_insert blended intermediates:

  • frames_to_insert = 1 → one new frame per pair, so 2x the output
  • 2 → 3x output, 3 → 4x, and so on up to 32 per pair

The blend weight between frame A and frame B follows the easing curve, which is where the "ramp" in the name lives:

  • linear - constant-speed blend, the plain crossfade
  • ease_in / ease_out - accelerating or decelerating blends
  • ease_in_out - the smooth S-curve, natural for most motion
  • smooth - Hermite smoothstep
  • cubic_bezier - full manual curve: pick a preset (ease, ease_in, ease_out, ease_in_out, sharp, gentle) or go custom and drag the p1_x/p1_y/p2_x/p2_y control handles

The second control is target_region: interpolate the whole batch, or just the start, middle, or end with region_size (fraction of the batch, default 0.33). That's the feature that makes this more than a dumb slow-mo - you can slow just the end of a shot for a ramp-to-freeze, or ease into a loop.

Outputs: images (the interpolated batch), original_count and new_count (frame counts, for sanity checks and downstream math), and info (a description of what ran). Keep the count outputs handy - anything downstream that assumed the original frame count will be off, and these are how you recompute.

Install

Search "Trent Nodes" in ComfyUI Manager, or:

cd ComfyUI/custom_nodes
git clone https://github.com/TrentHunter82/TrentNodes.git
cd TrentNodes
pip install -r requirements.txt

No model downloads - it's pure tensor blending on the GPU. Restart ComfyUI after installing. (Manager can be flaky on this pack per the author's early-rename note; manual clone if so.)

Common issues

  • "It looks like a double exposure." On fast motion, blending adjacent frames ghosts the movement - that's inherent to blend interpolation. Slow the source motion or keep frames_to_insert low. For true motion synthesis you need a flow-based tool.
  • Unexpected output length. new_count is roughly original_count × (frames_to_insert + 1) minus the tail pair's slack - always read it from the output rather than predicting.
  • Region does nothing. If target_region is start/middle/end, remember region_size decides how much of the batch is affected. Tiny region_size = tiny effect.

For a quick 2x smooth-out, a stylized easing ramp, or adding a slow settle to the end of a shot, this is the node. Just don't ask it for RIFE-grade motion synthesis - it's a blend, done beautifully, not a magic motion generator.

CategoryTrent/Video

Inputs (10)

NameTypeDefaultDescription
imagesIMAGEImage batch to interpolate (needs 2+ frames)
frames_to_insertINT11–32Frames to blend per pair (1 = 2x output, 2 = 3x, 3 = 4x)
easingCOMBOlinearBlend curve shape (see preview below)
target_regionCOMBOfull_batchWhere to interpolate: full_batch (all), or just start/middle/end
region_sizeoptFLOAT0.330.1–1How much of the batch to affect (0.33 = one-third, 0.5 = half)
bezier_presetoptCOMBOeaseCurve shape preset (choose custom for manual control - see preview)
p1_xoptFLOAT0.250–1First control handle X (see curve preview)
p1_yoptFLOAT0.100–1First control handle Y (see curve preview)
p2_xoptFLOAT0.250–1Second control handle X (see curve preview)
p2_yoptFLOAT1.000–1Second control handle Y (see curve preview)

Outputs (4)

NameTypeDescription
imagesIMAGE
original_countINT
new_countINT
infoSTRING