ComfyUI Node Runs on cloud

FLAVR VFI

Flow-free interpolation that needs four frames

By Fannovel16·Created 3 years ago·Updated 4 months ago· 1,058
FLAVR VFI
  • frames
  • optional_interpolation_states
  • IMAGE
ckpt_name
clear_cache_after_n_frames10
multiplier2
duplicate_first_last_framesfalse

FLAVR is the odd interpolator in the pack that doesn't estimate optical flow at all - and it has one hard requirement that trips people up: it needs at least four frames to work, not two. If your clip is long enough, it's a fast, clean option. If it isn't, you'll hit a wall, and there's a specific workaround for that below.

Frame interpolation, in one line: it fabricates new frames between your existing ones so a choppy low-fps clip plays smooth. You generate video cheaply at a low frame count with AnimateDiff or Wan, then interpolate to a watchable frame rate instead of paying to diffuse every real frame. FLAVR is one way to do that last step.

How it works

FLAVR stands for "Flow-Agnostic Video Representations." Where FILM, AMT, and RIFE all compute where pixels move and warp along that motion, FLAVR skips the flow estimate entirely. It uses 3D space-time convolutions over a window of frames to learn the in-between directly. That's why it needs four input frames: it reasons over a temporal window, not just a single pair. The upside is speed and no flow-estimation artifacts; the tradeoff is it wants that wider context to do its thing.

The catch: four frames, 2x only

Two constraints, both from the pack itself. First, FLAVR needs at least 4 frames of input. If you only have two or three, the README's recommended move is to interpolate up first with a different node - run FILM VFI with multiplier=4 - and then feed that result into FLAVR. Second, despite the checkpoint names, this node only does 2x interpolation in practice; the multiplier input is capped at 2.

The inputs that matter

  • frames (IMAGE) - your clip, at least 4 frames. This is the requirement to remember.
  • ckpt_name - three weights: FLAVR_2x.pth, FLAVR_4x.pth, FLAVR_8x.pth. They download automatically on first use. Since the node runs at 2x here, FLAVR_2x.pth is the natural pick.
  • multiplier (INT, default 2) - locked at 2 (min and max are both 2). It's there for interface consistency more than choice.
  • clear_cache_after_n_frames (INT, default 10) - the OOM valve; lower it on long clips if memory gets tight.
  • duplicate_first_last_frames (BOOLEAN, default false) - interpolation only fills the gaps between frames, so the very first and last frames don't get a partner. Turn this on to duplicate the endpoints and keep your output frame count lining up cleanly instead of coming up short at the ends.

There's an optional optional_interpolation_states input for a Make Interpolation State List, to skip specific pairs. Usually left unwired.

Output is a single IMAGE batch. Send it to a Video Combine node (VideoHelperSuite) to encode.

Installing it

Comes with the full ComfyUI Frame Interpolation pack:

  • ComfyUI Manager - search ComfyUI Frame Interpolation, install, restart.
  • Manual - cd ComfyUI/custom_nodes && git clone https://github.com/Fannovel16/ComfyUI-Frame-Interpolation, then python install.py (Linux, in your ComfyUI venv) or install.bat (Windows). Restart.

FLAVR's checkpoints download on first run.

Common issues

The number-one FLAVR problem is feeding it fewer than four frames and getting an error. If that's you, interpolate up with FILM (multiplier=4) first, then chain into FLAVR - that's the documented path.

Beyond that, the usual pack-wide stuff: the cupy dependency is the install pain point, so run install.bat on Windows rather than install.py. If the GPU sits idle and interpolation drags, the backend likely fell back to CPU - verify cupy matches your CUDA version. And on long or high-res clips, drop clear_cache_after_n_frames before you OOM.

CategoryComfyUI-Frame-Interpolation/VFI

Inputs (6)

NameTypeDefaultDescription
ckpt_nameCOMBO3 options: FLAVR_2x.pth, FLAVR_4x.pth, FLAVR_8x.pth
framesIMAGE
clear_cache_after_n_framesINT101–1000
multiplierINT22–2
duplicate_first_last_framesBOOLEANfalse
optional_interpolation_statesoptINTERPOLATION_STATES

Outputs (1)

NameTypeDescription
IMAGEIMAGE