Nodes/ComfyUI-Simple-VFI/Simple Frame Interpolation (VFI)
ComfyUI Node

Simple Frame Interpolation (VFI)

Frame interpolation with zero AI — no models, no downloads, just math

By ComplexRobot·Created about a year ago·Updated about a year ago· 0
Simple Frame Interpolation (VFI)
  • images
  • images
scale_methodnearest-exact
multiplier0.50
gaussian_blurtrue
blur_radius2
blur_sigma0.3
sharpen_alpha0.10

Every video workflow eventually needs frames you don't have. You generated 30fps and want 60. You want a slow-mo stretch. You made 24 frames and the timeline wants more. The default answer is RIFE - an AI model that does genuinely clever motion interpolation, but needs a model download, eats VRAM, and slows your queue down.

Simple Frame Interpolation (VFI) is the opposite of that. It's the node from the tiny ComfyUI-Simple-VFI pack that resamples a frame sequence using plain, boring, classic image-resize math. No model, no download, no weights. It finishes in a couple of seconds, doesn't care about your GPU's reputation, and gives you a "good enough" result when you just want more frames and don't need RIFE's quality.

How it works - resizing time like it's an image

The trick is clever and a little weird. Instead of estimating motion, the node treats your frame count as just another dimension of a picture. It reshapes the batch so that "which frame" becomes the height axis of a tall image, then hands that to ComfyUI's own built-in ImageScale node with whatever kernel you pick. The kernel resizes that axis from B frames to round(B × multiplier), and the result gets reshaped back into a normal batch. That's the whole mechanism: bilinear, bicubic or lanczos resampling pointed sideways at the time axis.

Because it's plain resampling, the quality ceiling is honest. It blends frames; it doesn't understand motion. Fast pans and things crossing the frame will ghost and smear in a way RIFE wouldn't. It's a temporal cheap trick, not a motion estimator - use it where the goal is "smooth enough," not "accurate."

The inputs that matter

  • images - your batch of frames (IMAGE). Everything else is a knob.
  • multiplier - the big one, and the most common gotcha. It multiplies the frame count, not "how many frames to add," and the default is 0.5 - which halves your frames. Set it to 2 for doubling, 3–4 for slow-mo. Yes, that means the default setting makes your video shorter, not longer.
  • scale_method - which kernel. nearest-exact (default) is fast and blocky; bicubic is the smooth sweet spot; lanczos and bislerp are sharpest but the README warns they're noticeably slower. Don't reach for them unless you really care about the extra edge.
  • gaussian_blur (on by default), blur_radius, blur_sigma, sharpen_alpha - a small motion-blur or sharpen pass applied across frames to hide blending seams. Positive blur_sigma blurs (a motion-blur look), negative sharpens, and sharpen_alpha cranks the sharpen when sigma is negative. Bigger blur_radius costs more VRAM; flip gaussian_blur off if you want none of this.

The README also documents batch_size (default 15), your speed/memory trade-off - smaller uses less memory and more passes. Most people never touch it.

The output is a single images (IMAGE) tensor: your resampled sequence, same H×W, different frame count. Wire it into whatever turns frames into video - VHS Video Combine, a save-node, or an AnimateDiff-style pipeline that needs a specific number of frames. Its natural home is the "post-process my generated clip" slot.

Install

Install via ComfyUI Manager (search "ComfyUI-Simple-VFI"), or:

cd ComfyUI/custom_nodes
git clone https://github.com/ComplexRobot/ComfyUI-Simple-VFI

Restart ComfyUI. No model files to hunt down - which is the entire point of the pack. One heads-up: the pack's pyproject.toml lists open-clip-torch as a dependency, but the code never imports it; it's a leftover. Manager may still try to install it. Let it, or ignore it - the node runs fine without.

When it's the right tool (and when it isn't)

Reach for this when you want fast, free, zero-download frame resampling: previewing a clip at 2×, stretching short generations, or decimating frames to speed up a heavier pipeline. Skip it when the video actually matters. For real motion-compensated interpolation you want RIFE (ComfyUI-Frame-Interpolation and friends), and the quality gap is obvious on anything with movement. This is the hammer for a quick temporal edit - not the tool for fine cabinet work.

CategorySimple-VFI

Inputs (7)

NameTypeDefaultDescription
imagesIMAGE
scale_methodCOMBOnearest-exact7 options: nearest, nearest-exact, bilinear, area, bicubic, lanczos, +1
multiplierFLOAT0.50
gaussian_blurBOOLEANtrue
blur_radiusINT2
blur_sigmaFLOAT0.3-10–10
sharpen_alphaFLOAT0.100–5

Outputs (1)

NameTypeDescription
imagesIMAGE