Nodes/Klinter_nodes/Speed Ramp - klinter
ComfyUI Node

Speed Ramp - klinter

Punch up a clip with a dynamic frame-speed curve

By klinter007·Created 3 years ago·Updated 9 months ago· 19
Speed Ramp - klinter
  • frames
  • IMAGE
use_presettrue
preset_curve
base_fps30
speed_values1.00

The classic "speed ramp" effect - footage that eases from slow into a fast burst and back - is a staple of action and short-form video. Speed Ramp - klinter applies that effect to a frame tensor, which is exactly what you want when you're doing video work in ComfyUI and don't want to leave the node graph to use a video editor.

Here's the mechanism, because it changes how you think about the outputs: the node takes your frames and a speed curve, then resamples the frame order along cumulative time. Frames in "slow" sections of the curve get repeated or tightly clustered; frames in "fast" sections get skipped. Crucially, the output has the same number of frames as the input - it doesn't add or remove frames. When played back at a constant rate, the reordered sequence reads as speeding up and slowing down. That's a clever and cheap way to do it, and it means the total length of the clip is preserved, which video-extension models downstream tend to appreciate.

Two ways to drive it. With use_preset on (default), you pick a preset_curve: double_peak (a smooth accelerate-to-2x-and-back profile) or quad_burst (a more aggressive 1x→4x spike). With presets off, you can feed your own speed_values for full control. The other inputs are frames (the IMAGE tensor) and base_fps (default 30, 1–120) - and this is where the source is honest with you: base_fps is declared in the schema but isn't used in the current execute path. It's vestigial. Set it to whatever matches your source for future-proofing, but don't expect it to change your output today.

One trap: because it works by reordering existing frames, heavy speed changes show as choppiness - there's no frame interpolation or motion-blur blending here. A 4x section will visibly stutter on slow-moving footage. That's the trade for keeping it light and dependency-free. And frame count stays constant, so a big speed-up in one section necessarily slows the rest of the clip to compensate; you can't get a longer clip out of it.

Install is the pack standard: search "Klinter_nodes" in ComfyUI Manager, or cd ComfyUI/custom_nodes && git clone https://github.com/klinter007/klinter_nodes then restart. Pure numpy/torch, no ffmpeg, no extra deps - it only touches the frames you give it.

If you need a quick tempo curve on a clip inside ComfyUI without installing anything heavy, this does the job. For buttery interpolation you'd want a frame-interpolation pass after it.

Categoryvideo

Inputs (5)

NameTypeDefaultDescription
framesIMAGE
use_presetBOOLEANtrue
preset_curveCOMBO2 options: double_peak, quad_burst
base_fpsINT301–120
speed_valuesFLOAT1.000.1–10

Outputs (1)

NameTypeDescription
IMAGEIMAGE