Nodes/ComfyUI-vlo/vlo Video Convert FPS
ComfyUI Node

vlo Video Convert FPS

Make a clip's frame rate match what the model expects

By PxTicks·Created 4 months ago·Updated 10 days ago· 0
vlo Video Convert FPS
  • video
  • VIDEO
fps25.00

Video models are picky about frame rate. Feed a 30 fps clip into a pipeline tuned for 24 fps and you get a subtle mismatch: timings drift, motion reads wrong, audio can fall out of step with the picture. vlo Video Convert FPS is the normalization step - it resamples a video to a target frame rate, keeping the audio and the overall clip duration, so whatever you feed it comes out at the rate your model (or your editor) actually wants.

It's a utility from vlo, the video editor this pack bridges to, and it slots in exactly where you'd expect: between a memory loader and a sampler, or before a websocket saver, to force a mixed-source timeline into one consistent rate. It's also handy standing alone - normalize a batch of clips to a common FPS before chaining them into anything temporal.

How it works

Nearest-neighbor resampling, honestly done. The node reads the source clip's real frame rate, works out how long the clip is, then computes the number of frames that duration covers at your target FPS (rounded up, the same way the frontend exporter does it). For each target timestamp it picks the nearest source frame and duplicates or drops to reach the count. Audio passes through untouched; the clip's duration is preserved rather than sped up or slowed down.

The deliberate choice here is no frame blending. It duplicates and drops frames - it doesn't interpolate. That keeps binary mask mattes crisp and avoids the soft ghosting that temporal blending introduces, which matters when the video is feeding a mask-driven pipeline. It also means the trade is real: motion will have a slightly stuttered cadence at large rate changes.

Inputs are video (VIDEO) and fps (float, default 25, range 0.01–1000). Output is the retimed VIDEO.

The honest take

FPS conversion changes the cadence of existing frames; it does not invent smooth new motion. If your 12 fps clip should look like 24 fps, this node isn't the tool - that's frame interpolation (GIMM-VFI and friends) or a video model's extension pass. Use this node when you need a clip to match a rate, not when you want it to move smoother. The other thing people trip on: it's nearest-frame, so halving or doubling the rate is where the stutter shows most - for small adjustments (24↔25↔30) you'll rarely notice.

Install

Part of ComfyUI-vlo:

cd ComfyUI/custom_nodes
git clone https://github.com/PxTicks/ComfyUI-vlo.git

Restart ComfyUI (or install via ComfyUI Manager as "ComfyUI-vlo"). No models to download, nothing extra to pip install on a current ComfyUI - it's frame indexing plus the video stack ComfyUI already ships.

Categoryimage/video

Inputs (2)

NameTypeDefaultDescription
videoVIDEOThe source video to retime.
fpsFLOAT25.000.01–1000Target frames per second. Duration is preserved approximately by duplicating or dropping frames rather than changing playback speed.

Outputs (1)

NameTypeDescription
VIDEOVIDEO