Run Frame Interpolation Model
Use RIFE (or FILM) to smooth out that choppy AI video
- interp_model
- images
- IMAGE
FrameInterpolate (its official display name is "Run Frame Interpolation Model") takes an IMAGE batch and multiplies the frame count by 2 to 16×, generating the in-between frames with a real interpolation model. The use case is painfully familiar to anyone who's generated local video: your model spits out 8 or 16 fps, motion stutters, loops jump at the seam. Frame interpolation is what fixes that, and in 2026 the community standard is RIFE at 2× or 4× to bring a choppy Wan or AnimateDiff clip up to a smooth 30–60 fps. The KB's upscaling essay calls interpolation "a common companion rather than a substitute" to video upscaling - it's the smoothness layer you add after the model does its thing, not a way to fix a genuinely broken generation.
This node landed in ComfyUI core in April 2026, which is recent enough that the older tutorials you'll find point at community packs instead. You don't need them. This one ships with ComfyUI.
How it works
It runs a RIFE or a FILM model - you feed it an interp_model from the sibling Load Frame Interpolation Model loader. That loader is the part that matters. It auto-detects what you dropped in: if the checkpoint has FILM's extract_sublevels keys it builds a FILMNet, otherwise it assumes RIFE and remaps the module. and flownet. prefixes common in RIFE releases. It then runs the interpolation pass over each pair of adjacent frames, computing timesteps at fractions of multiplier, and caches features between pairs so it doesn't re-encode the shared frame twice. RIFE frames get padded up to a 64-pixel multiple internally, and if you OOM mid-run it just halves its batch size and keeps going.
The loader and this node live in different categories on purpose - loader under model/loaders, this one under video - so the standard graph is: Load Frame Interpolation Model → FrameInterpolate → SaveVideo.
The inputs that matter
interp_model- the loaded model. RIFE checkpoints (rife47.pth,rife49.pth) from the RIFE project, or Google's FILM (film_net_fp32.pt).images- your frame batch.multiplier- 2 to 16, default 2. 2× or 4× is the real world; above that you're mostly paying for artifacts.
Where the model files go
Drop them in ComfyUI/models/frame_interpolation/ and refresh. That's the whole install: rife47.pth or rife49.pth from the RIFE repo (hzc163/RIFE), or film_net_fp32.pt from Google Research's FILM release. The loader's tooltip is explicit: models must live in the frame_interpolation folder. RIFE is the community default for a reason - it's light, fast, and it's what every "I ran RIFE 4× to hit 32 fps" post is talking about.
Where people get burned
FILM is heavy. The activation memory for FILM runs roughly 5× RIFE's at the same resolution - it produces gorgeous results but it's the one that OOMs on mid-range cards. If you're on 8 GB and wondering why the FILM run dies, that's why. Second: interpolation invents motion, it doesn't recover it. On fast, complex motion you get warping and smearing - the frames are guesses between real ones, and the model will happily smear a hand across a face. Don't use a huge multiplier to "rescue" a clip that already strobes; generate at a higher base fps or fix the gen. Third: the output is still just frames. Hook it to SaveVideo or CreateVideo to actually get a file, and remember your new fps is the old one times the multiplier - a 12 fps clip at 4× is a 48 fps clip, which is a detail that trips people up when they're judging speed.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| interp_model | INTERP_MODEL | — | |
| images | IMAGE | — | |
| multiplier | INT | 22–16 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |