ComfyUI Frame Interpolation: RIFE vs FILM, Models and FPS Math

Updated 2026-10-10

ComfyUI frame interpolation today: the built-in RIFE and FILM nodes, the Fannovel16 node pack, exact model files, the fps math for Wan, and the common errors.

Quick answer

ComfyUI frame interpolation no longer needs a custom node. Since release v0.20.1 (2026-04-27), ComfyUI ships two built-in nodes: Load Frame Interpolation Model and Run Frame Interpolation Model. They run RIFE or FILM models that you put in ComfyUI/models/frame_interpolation/, and Comfy-Org publishes the files in its Comfy-Org/frame_interpolation repository on Hugging Face. The bundled template is called "Frame Interpolation: FILM or RIFE".

The older route still works: the ComfyUI-Frame-Interpolation node pack by Fannovel16, with its RIFE VFI, FILM VFI and eleven more VFI nodes. It downloads its own model files on first use and keeps them inside its own folder, not in models/.

Whichever you use, the frame rate is the part people get wrong:

  • Interpolating a clip with a multiplier of 2 turns N frames into (N − 1) × 2 + 1, not 2N.
  • To keep the clip the same length, multiply the output frame rate by the same number. A Wan 2.2 14B clip is 81 frames at 16 fps; after ×2 it is 161 frames, and it belongs at 32 fps.
  • Leave the save node at 16 fps and the same 161 frames play for about 10 seconds instead of 5. That is slow motion, not smoother motion.

We read ComfyUI's source, the node pack's source and issue tracker, and the Hugging Face API on 2026-10-10. We have not timed or measured any interpolation run ourselves, so this page has no speed or VRAM figures of ours.

The built-in nodes

Added by kijai in ComfyUI pull request #13258, merged 2026-04-22. The pull request describes it as PyTorch-only support for RIFE (MIT) and FILM (Apache 2.0).

Node (display name)Node idInputs
Node (display name)Load Frame Interpolation ModelNode idFrameInterpolationModelLoaderInputsmodel_name: a file in models/frame_interpolation/
Node (display name)Run Frame Interpolation ModelNode idFrameInterpolateInputsinterp_model, images (at least 2 frames), multiplier: 2 to 16, default 2

There is nothing else to set. The loader detects from the file's contents whether it is FILM or RIFE, and runs it in fp16 when ComfyUI decides the GPU supports it, fp32 otherwise. If the GPU runs out of memory mid-clip, the node halves the number of in-between frames it computes at once and tries again, down to one.

The model files

From Comfy-Org/frame_interpolation, folder frame_interpolation/. Sizes are decimal megabytes from the Hugging Face API.

FileBytesSize
Filefilm_net_fp16.safetensorsBytes68,882,302Size68.9 MB
Filerife_v4.25.safetensorsBytes22,674,688Size22.7 MB
Filerife_v4.25_heavy.safetensorsBytes86,669,816Size86.7 MB
Filerife_v4.25_lite.safetensorsBytes22,506,384Size22.5 MB
Filerife_v4.26.safetensorsBytes22,674,688Size22.7 MB
Filerife_v4.26_heavy.safetensorsBytes22,908,216Size22.9 MB
ComfyUI/
└── models/
    └── frame_interpolation/
        ├── film_net_fp16.safetensors
        └── rife_v4.25.safetensors

The bundled template loads film_net_fp16.safetensors. If you want RIFE, pick a RIFE file in the loader; nothing else in the graph changes. RIFE's own Practical-RIFE README recommends 4.25 by default for most scenes.

The loader only accepts RIFE files with five flow blocks, the layout RIFE moved to with 4.25. Older RIFE checkpoints such as rife49.pth from the node pack below are rejected with Unrecognized frame interpolation model format.

What the template does with the frame rate

The template's subgraph has an integer Multiplier and a switch labelled Apply multiplier to FPS?, on by default. When it is on, a math node multiplies the source video's frame rate by the multiplier before the video is saved, so the clip keeps its length. Turn it off and you get slow motion instead.

The Fannovel16 node pack

Fannovel16/ComfyUI-Frame-Interpolation, version 1.0.11 in its pyproject.toml, MIT licence. Its nodes sit in the category ComfyUI-Frame-Interpolation/VFI:

NodeModel files it offersNeeds CuPy
NodeRIFE VFIModel files it offersrife47.pth, rife49.pth (default), rife417.pth, rife426.pth, sudo_rife4_269.662_testV1_scale1.pthNeeds CuPyNo
NodeFILM VFIModel files it offersfilm_net_fp32.ptNeeds CuPyNo
NodeGMFSS Fortuna VFIModel files it offersGMFSS Fortuna files, plus rife46.pthNeeds CuPyYes
NodeAMT VFIModel files it offersamt-s.pth, amt-l.pth, amt-g.pth, gopro_amt-s.pthNeeds CuPyNo
NodeIFRNet VFIModel files it offersFour IFRNet_* filesNeeds CuPyNo
NodeIFUnet VFIModel files it offersIFUNet.pthNeeds CuPyNo
NodeM2M VFIModel files it offersM2M.pthNeeds CuPyYes
NodeSepconv VFIModel files it offerssepconv.pthNeeds CuPyYes
NodeSTMFNet VFIModel files it offersstmfnet.pth; at least 4 frames, 2× onlyNeeds CuPyYes
NodeFLAVR VFIModel files it offersFLAVR_2x.pth, FLAVR_4x.pth, FLAVR_8x.pth; at least 4 framesNeeds CuPyNo
NodeCAIN VFIModel files it offerspretrained_cain.pthNeeds CuPyNo
NodeATM VFIModel files it offersThree atm-vfi-*.pt files; 2× onlyNeeds CuPyNo
NodeMOMO VFIModel files it offersmomo-base.pth, momo-lite.pth; 2× onlyNeeds CuPyYes

The "Needs CuPy" column comes from the code: only the GMFSS Fortuna, M2M, MoMo, Sepconv and STMFNet model code imports the CuPy kernels. RIFE VFI and FILM VFI run without it. The pack also ships a few helper nodes, such as Make Interpolation State List, which marks frames to skip.

The RIFE VFI node is displayed as "RIFE VFI (recommend rife4.25+)", but no 4.25 file is in its list. The nearest is rife426.pth.

Install

Install it through ComfyUI Manager, or clone it into custom_nodes/ and run its installer from the Python that runs ComfyUI:

cd ComfyUI/custom_nodes/ComfyUI-Frame-Interpolation
python install.py

On the Windows portable build, the README says to run install.bat, which calls install.py with the portable python_embeded interpreter. install.py installs the plain requirements, then tries to install CuPy matched to the CUDA version it finds in your PyTorch install.

Where its models come from and where they go

The pack downloads each file the first time a node uses it, into its own folder: ckpts/<model>/ inside the node pack, for example ckpts/rife/rife49.pth. ComfyUI/models/ is not used; an open issue asks for that.

It tries these sources in order, from vfi_utils.py:

  1. styler00dollar/VSGAN-tensorrt-docker releases, tag models
  2. Fannovel16/ComfyUI-Frame-Interpolation releases, tag models
  3. dajes/frame-interpolation-pytorch releases, tag v1.0.0
  4. For rife47.pth, rife49.pth and the sudo_rife4 file only: a list of third-party Hugging Face mirrors

The first source no longer carries any RIFE file, so a first run prints Failed! Trying another endpoint. before it succeeds. That line is normal. The sizes on the sources that do have them:

FileSourceBytesSize
Filerife47.pthSourceFannovel16 releasesBytes21,344,827Size21.3 MB
Filerife49.pthSourceFannovel16 releasesBytes21,345,274Size21.3 MB
Filerife417.pthSourceFannovel16 releasesBytes21,497,983Size21.5 MB
Filerife426.pthSourceFannovel16 releasesBytes24,620,531Size24.6 MB
Filefilm_net_fp32.ptSourcedajes/frame-interpolation-pytorchBytes137,905,674Size137.9 MB

The RIFE VFI settings

From the node's code, with its defaults:

InputDefaultWhat it does
Inputckpt_nameDefaultrife49.pthWhat it doesWhich RIFE file
InputmultiplierDefault2What it doesIn-between frames per gap, plus one. 2 adds one frame per gap
Inputclear_cache_after_n_framesDefault10What it doesEmpties the GPU cache every so many frames. Lower is less likely to run out of memory and slower, per the README
Inputfast_modeDefaultonWhat it doesThe README says it does nothing from RIFE 4.5 on
InputensembleDefaultonWhat it doesSwitched off by the code for rife426.pth
Inputscale_factorDefault1.0What it does0.25, 0.5, 1.0, 2.0 or 4.0. RIFE's own README suggests 0.5 for 4K input, and 2.0 if the output shows a disordered pattern
InputdtypeDefaultfloat32What it doesfloat16 or bfloat16 to save memory. The code comments claim about half the VRAM and twice the speed for fp16; nobody has published a measurement
Inputtorch_compileDefaultoffWhat it doesCompiles the model; the first run is slower
Inputbatch_sizeDefault1What it doesIn-between frames computed per GPU call; higher uses more VRAM

FILM VFI has only ckpt_name, clear_cache_after_n_frames and multiplier.

The frame rate math

Interpolation adds frames between each pair of frames you already have. With N input frames there are N − 1 gaps, and a multiplier of m puts m − 1 new frames in each gap. Both the built-in node and the node pack's RIFE and FILM nodes return:

output frames = (N − 1) × m + 1

The clip only keeps its length if the frame rate goes up by the same m. Using the defaults of ComfyUI's own templates:

Source clip (template default)Frames × fpsMultiplierOutput framesSave atLength
Source clip (template default)Wan 2.2 14B T2V or I2VFrames × fps81 at 16 fpsMultiplier2Output frames161Save at32 fpsLength5.03 s
Source clip (template default)Wan 2.2 14B T2V or I2VFrames × fps81 at 16 fpsMultiplier3Output frames241Save at48 fpsLength5.02 s
Source clip (template default)Wan 2.2 5B TI2VFrames × fps121 at 24 fpsMultiplier2Output frames241Save at48 fpsLength5.02 s
Source clip (template default)Wan 2.2 14B, saved at 16 fpsFrames × fps81 at 16 fpsMultiplier2Output frames161Save at16 fpsLength10.06 s, slow motion

The built-in template does this multiplication for you. With the node pack and VideoHelperSuite's Video Combine, you set frame_rate yourself: source fps times the multiplier. The node pack takes whole-number multipliers only, so 16 fps becomes 32 or 48, never exactly 24 or 30.

Interpolation does not fix the lightx2v slow-motion problem. That one is about how far things move in the frames the model generated, and doubling the frames keeps that motion; it only makes it smoother. Our Wan 2.2 lightx2v LoRA page covers what lightx2v has said about it.

GIMM-VFI, the third option

Kijai's ComfyUI-GIMM-VFI wraps GIMM-VFI, a different interpolation model, and ComfyUI's template list has a "Frame Interpolation: GIMM-VFI" workflow that uses it with VideoHelperSuite. Before you choose it, two things from its repository:

  • It needs CuPy. Its requirements list cupy-cuda12x>=13.3.0.
  • Its licence is non-commercial. The repository and the model files carry the S-Lab License 1.0, which permits redistribution and use for non-commercial purposes only.

Its node downloads the weights from Kijai/GIMM-VFI_safetensors into ComfyUI/models/interpolation/gimm-vfi/. The two GIMM files are 79,204,556 bytes (gimmvfi_r_arb_lpips_fp32.safetensors, 79.2 MB) and 122,632,368 bytes (gimmvfi_f_arb_lpips_fp32.safetensors, 122.6 MB), plus a flow model for each.

Common errors

Error or symptomNodeCause and fix
Error or symptomNo module named 'cupy', or CuPy failing to build during installNodeNode pack, GMFSS and othersCause and fixCuPy did not install. RIFE VFI and FILM VFI do not need it. install.py has no CUDA 13 branch, so on a CUDA 13 PyTorch it falls back to the cupy-wheel package, which users report fails to build. A pull request adding cupy-cuda13x is open, not merged
Error or symptomFailed to auto-detect CUDA root directory. Please specify CUDA_PATH…NodeNode pack, CuPy nodesCause and fixRaised by CuPy. In the open issue, a user suggests checking that the CUDA_PATH environment variable points at an installed CUDA toolkit. No maintainer reply
Error or symptomTried all urls to download rife46.pth but no successNodeGMFSS Fortuna VFICause and fixNone of the sources the node tries still has the file. Three issues about it are open and no fix has been merged. Use RIFE VFI or the built-in nodes instead
Error or symptomError(s) in loading state_dict for IFNet, mentioning teacher. keysNodeRIFE VFI with rife426.pthCause and fixOpen since 2026-03-31 and still reported on 2026-10-08. The maintainer reuploaded the 4.17 and 4.26 files once in March and said to delete the ckpts/rife folder so they download again. If that fails, use rife417.pth, or Comfy-Org's rife_v4.26.safetensors with the built-in nodes, whose loader discards the teacher. keys
Error or symptomValue not in list: scale_factor: '1' not in [0.25, 0.5, 1.0, 2.0, 4.0]NodeRIFE VFICause and fixAppeared for one user after a ComfyUI update. The issue is open. One user got past it by editing the node's source; that is not a maintainer fix
Error or symptomOut of memory partway through a clipNodeNode packCause and fixLower clear_cache_after_n_frames, keep batch_size at 1, try float16. The built-in node retries with smaller batches by itself
Error or symptomSystem RAM fills and the GPU sits idleNodeRIFE VFICause and fixAn open issue from 2025 has many "same here" replies and no maintainer answer; a pull request titled as a fix for RIFE VFI running on the CPU is open, not merged. Every frame is also held in system RAM as a 32-bit image, so long, high-resolution clips need a lot of it

If the run stops with an out-of-memory error before interpolation even starts, the problem is the video model, not the interpolator. Our ComfyUI out-of-memory page and troubleshooting page cover that.

Where the advice online disagrees

  • "You need the Fannovel16 pack." True until April 2026. Many tutorials predate the built-in nodes.
  • ComfyUI's tutorial page says the workflow contains custom nodes. The built-in template, utility_video_frame_interpolation.json, uses only core nodes. The older "Frame Interpolation: FILM" template does need the Fannovel16 pack and VideoHelperSuite, and both templates link to the same tutorial page.
  • The template's note lists film_net_fp16.safetensors at 65.7 MB. Hugging Face shows 68.9 MB. Both are right: the note counts in binary megabytes (MiB).
  • "Use RIFE 4.9." It is still the node pack's default. RIFE's own README recommends 4.25, which only the built-in route offers as a ready file.

What nobody has published

  • A speed or VRAM comparison between RIFE and FILM inside ComfyUI, on a named consumer GPU, with versions stated. RIFE's ECCV README claims more than 30 fps for 2× 720p on a 2080 Ti, with its own script, not ComfyUI.
  • A side-by-side quality test of RIFE 4.25, 4.26 and FILM on Wan or LTX output.

Interpolation is not part of the system requirements checker, whose only preset is MiniMax H3. The MiniMax H3 templates on our workflows page already save at 24 fps.

Licence and downloads

  • The Fannovel16 node pack is MIT. Its model files come from the sources listed above, each under its own project's terms.
  • RIFE: Practical-RIFE is MIT, and its README says the model links are under the same licence. FILM: Google Research's frame-interpolation repository and the dajes PyTorch port are both Apache 2.0.
  • Comfy-Org/frame_interpolation is tagged "mit-and-apache-2.0".
  • GIMM-VFI: S-Lab License 1.0, non-commercial use only.

We do not host any of these files. Download them from the repositories named below.

GenVidKit is an independent guide. It is not affiliated with Comfy Org, Fannovel16, the RIFE authors, Google, Kijai, the GIMM-VFI authors or Hugging Face.

Sources

All read on 2026-10-10.