Make Interpolation State List
Tell VFI which frames to skip
- INTERPOLATION_STATES
This is the little helper node that lets you tell an interpolator, "don't tween these frames." It doesn't interpolate anything itself. It builds a control object that you plug into the optional_interpolation_states input on any VFI node in the pack - FILM, RIFE, GMFSS, AMT, whichever - so you can carve out frame pairs you want left alone.
Why would you want that? Interpolation invents a smooth in-between for every gap in your clip. That's exactly wrong at a hard cut. If your sequence splices two shots together, you do not want a ghostly blended frame morphing from the last frame of shot A into the first frame of shot B - you want a clean cut. This node is how you protect those boundaries.
How it works
The node takes a list of frame indices and a mode flag, and outputs an INTERPOLATION_STATES object that encodes which gaps the downstream VFI node should process and which it should leave as a straight cut. The VFI node reads that object and skips interpolation at the marked positions, copying frames through instead of synthesizing tweens.
The inputs that matter
- frame_indices (STRING, default
"1,2,3", multiline) - the comma-separated list of frame indices you're calling out. Type the frame numbers where your cuts or protected boundaries are. - is_skip_list (BOOLEAN, default true) - the mode switch, and the part to get right. When it's true, the indices you listed are the ones skipped (not interpolated) - a blocklist. When it's false, it flips to an allowlist: only the listed indices get interpolated and everything else is passed through. Most people leave it as a skip list and name their cut points.
The single output is INTERPOLATION_STATES. Wire it into the optional_interpolation_states slot on the VFI node doing the actual interpolation.
How you actually wire it
Make Interpolation State List → the VFI node's optional_interpolation_states input. That's it. The frames still flow through the VFI node's normal frames input as usual; this side channel just modifies which gaps get tweened. If you never wire it, every VFI node interpolates everything, which is the default and fine for a single continuous shot.
Installing it
It's part of the ComfyUI Frame Interpolation pack - you get it automatically when you install the pack for the actual interpolators.
- 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.
This node loads no model of its own - it's pure bookkeeping, so there's nothing to download for it specifically.
Common issues
The classic mistake is getting the is_skip_list logic backwards and either interpolating your cuts anyway (list was empty or in the wrong mode) or accidentally skipping the whole clip (allowlist mode with too few indices). Remember: default true means "these are the frames to leave alone."
The other gotcha is index counting - figure out whether your indices are lining up with the frame you think they are by testing on a short clip first, since an off-by-one here means you protect the wrong boundary. And because this node just hands off a control object, it can't cause interpolation errors on its own; if the run fails, the problem is in the VFI node it's feeding, not here.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| frame_indices | STRING | 1,2,3 | — |
| is_skip_list | BOOLEAN | true | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| INTERPOLATION_STATES | INTERPOLATION_STATES | — |