Nodes/OmniNodes/Video Frame Interpolate πŸŽ₯
ComfyUI Node

Video Frame Interpolate πŸŽ₯

Smoothing out a choppy AI clip without an ML model

By TensorVizionΒ·Created 3 months agoΒ·Updated about 8 hours agoΒ· 0
Video Frame Interpolate πŸŽ₯
  • images
  • images
  • summary
β—„interp_frames1β–Ί

Generated video comes out choppy. Whether it's a latent-interpolated morph sequence or a model's low native frame rate, the motion between frames is often a jump instead of a glide. The Video Frame Interpolate node from TensorVizion/OmniNodes inserts new frames between each consecutive pair - and it does it with real motion compensation, not just fading one frame into the next.

The mechanism is a classic: for each frame pair it computes a dense optical flow field with OpenCV's Farneback method (calcOpticalFlowFarneback), then warps both frames toward each intermediate timestep and cross-fades the two warped results. That's the difference between "motion-compensated interpolation" and "crossfade soup": because each in-between frame follows the actual movement, moving subjects slide instead of ghosting. Set interp_frames to 1 and every 2-frame step becomes 3; at 8 you're inserting 8 between each pair.

The honest expectations

This is classic optical-flow interpolation, not an ML super-resolution of motion like RIFE-style models. It's fast and dependency-light, and it handles slow, smooth motion beautifully. Fast, complex motion - a hand waving, a quick pan with parallax - will show the classic artifacts: warping, smearing, or the odd piece of background moving when it shouldn't. For those cases a dedicated frame-interpolation model (the ecosystem's RIFE packs) is the right tool, at the cost of a big model download and much slower inference. Know which league you're in.

Also worth noting: OpenCV is optional. If it's not installed, the node automatically falls back to a plain linear cross-fade (no motion compensation) and reports which method it used in the summary - so you won't get a hard failure, just softer results.

Inputs and outputs

Inputs: images (the batch) and interp_frames (0–8, default 1; 0 passes through untouched). Outputs: images (the longer batch) and summary (including which interpolation method ran).

Install

Part of OmniNodes:

cd ComfyUI/custom_nodes
git clone https://github.com/TensorVizion/OmniNodes

For the full motion-compensated path you also need OpenCV:

pip install opencv-python

Install into the same Python environment ComfyUI runs in, then restart. The node lives under TensorVizion/Video.

Troubleshooting

  • Output is a fade, not motion-compensated - OpenCV isn't installed. The node silently downgraded; the summary tells you which method it used. Install opencv-python and it'll use Farneback.
  • Warping/ghosting on fast motion - that's the ceiling of classical optical flow. Drop interp_frames or use an ML interpolator for that clip.
  • Frame count doubles unexpectedly - interp_frames is per gap, so 1 doubles the length (every pair gains one frame). Set it to 0 for a passthrough.

Reach for it when a sequence needs to breathe. Paired with the pack's Latent Interpolate output and a Video Save, it's the difference between a morph show and something that reads as video.

CategoryTensorVizion/Video

Inputs (2)

NameTypeDefaultDescription
imagesIMAGEβ€”
interp_framesINT10–8β€”

Outputs (2)

NameTypeDescription
imagesIMAGEβ€”
summarySTRINGβ€”