Nodes/ComfyTV/Video Speed
ComfyUI Node

Video Speed

Slow it down without the chipmunk soundtrack

By jtydhr88·Created 3 months ago·Updated about 16 hours ago· 725
Video Speed
  • video
  • video
force_run_token0
project_id
parent_output_id0
speed1.00
reversefalse
pitch_compensatetrue

Retiming is one of those edits you do constantly and rarely think about - a slow-motion beat, a fast-forward montage, a clip played backwards. Video Speed is ComfyTV's version, and the good news is it actually keeps your audio in tune by default, which is more than you can say for a lot of editors.

What it does

It retimes a COMFYTV_VIDEO by a multiplier, optionally reversed, re-encodes on ▶ Run, and saves the result as a snapshot. The controls:

  • speed - playback multiplier, 0.1–10.0. Above 1 is faster (shorter clip); below 1 is slower. 2.0 = double speed, 0.5 = half.
  • reverse - play the clip backwards. Combines with a speed change.
  • pitch_compensate - on by default. When on, the audio is time-stretched so voices and music keep their pitch instead of going chipmunk-fast or sluggish-slow. Turn it off if you want the classic tape-style pitch shift.

The one grounded trap: speed = 1x with reverse off is nothing to do, and the run errors out. The node refuses to run a no-op. Set a real speed or flip reverse on - that's the failure mode beginners hit first.

What it does and doesn't do

Worth being honest about: extreme slow-motion here stretches existing frames; it does not synthesize new in-between frames. If you want a buttery 0.25× slow-mo, put a Frame Interpolate (minterpolate) step in front of this and let it generate the motion - then speed changes stay smooth instead of turning into a slideshow.

Compositionally it pairs with Video Clip (trim before or after retiming) and Video Volume (fine-tune audio after a speed change), and it's a frequent precursor to transition work - one common move is slowing the tail of a clip so a fade lands on a dramatic frame.

Install and quirks

Pack-standard: git clone https://github.com/jtydhr88/ComfyTV into ComfyUI/custom_nodes, restart, under ComfyTV → Video. No models - PyAV on disk, no GPU. The only environmental dependency is PyAV being present (pip install av into your venv if it's missing).

Output is a COMFYTV_VIDEO snapshot, so native-ComfyUI consumers need a ← ComfyTV Video Bridge. Two quick troubleshooting notes:

  • Run errors "nothing to do" - you left speed at 1 and reverse off. Change one.
  • Audio sounds stretched at extreme speeds - that's the pitch-compensating time-stretch doing its job; at 0.1× it can get warbly on music. Use a smaller slow factor, or pair with interpolation first.

Small node, one slider, and the pitch handling is the reason you'd pick it over DIY ffmpeg.

CategoryComfyTV/Video

Inputs (7)

NameTypeDefaultDescription
force_run_tokenINT00–2147483647Internal — bumped on Run to invalidate ComfyUI's input cache.
project_idSTRINGInternal — populated by the projectStore on the frontend.
parent_output_idINT00–2147483647Internal — lineage parent set by spawn handlers on the frontend.
speedFLOAT1.000.1–10
reverseBOOLEANfalse
pitch_compensateBOOLEANtrue
videooptCOMFYTV_VIDEO

Outputs (1)

NameTypeDescription
videoCOMFYTV_VIDEO