FLAVR VFI
Flow-free interpolation that needs four frames
- frames
- optional_interpolation_states
- IMAGE
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.pthis 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, thenpython install.py(Linux, in your ComfyUI venv) orinstall.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.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| ckpt_name | COMBO | 3 options: FLAVR_2x.pth, FLAVR_4x.pth, FLAVR_8x.pth | |
| frames | IMAGE | — | |
| clear_cache_after_n_frames | INT | 101–1000 | — |
| multiplier | INT | 22–2 | — |
| duplicate_first_last_frames | BOOLEAN | false | — |
| optional_interpolation_statesopt | INTERPOLATION_STATES | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |