RIFE Interpolation State List
The two-dial node that tells RIFE what's worth interpolating
- INTERPOLATION_STATES
RIFE frame interpolation treats every adjacent pair of frames the same: frame 0 and frame 1 get a middle frame, frame 1 and frame 2 get one, and so on down the whole clip. But your footage isn't that uniform. Title cards, hard cuts, shots where nothing moves, or that one duplicated frame an export left behind - interpolating through those wastes GPU time and can smear a cut into a weird morph. This node is the two-dial fix: it builds the skip/keep list that tells the pack's Auto RIFE TensorRT node which frame pairs are actually worth the compute.
It's the least glamorous node in the pack, and that's fine. It doesn't build engines or move pixels - it just packages two values into an INTERPOLATION_STATES object that the RIFE node reads. It's a straight port of the same utility from Fannovel16's ComfyUI-Frame-Interpolation (the class docstring says so), so if you've used that pack's skip-list node, the semantics are identical.
The inputs that matter
There are exactly two, and the whole node is this:
- frame_indices - a comma-separated string, 0-based. Pair
iis formed by frameiand framei+1, so"0,1"means the pair made of frames 0–1 and the pair made of frames 1–2. Whitespace is stripped and ignored, so"0, 1, 2"works fine. - is_skip_list - the meaning switch, and the one that trips people up.
true(the default) means skip the listed pairs.falseflips it to keep-mode: interpolate only the listed pairs and leave everything else untouched.
One output, INTERPOLATION_STATES, which plugs into the optional interpolation_states input on the Auto RIFE TensorRT node in this same pack. That's the only place it goes.
When you'd actually reach for it
Skip-mode is the everyday use: run a long clip through RIFE and carve out the dead pairs so they pass through untouched. That saves real time - the whole point of this TensorRT pack is that it's the fastest VFI in the ecosystem, but even fast engines don't need to fabricate motion where there isn't any. Keep-mode is rarer, for when you want a handful of specific pairs doubled and everything else left at native framerate. Animation people use this kind of control to selectively double frames in a loop without touching the rest.
The trap
The defaults are a gotcha. frame_indices ships as "1,2,3" and is_skip_list defaults to true - so if you add the node and wire it up without changing anything, you've silently told RIFE to skip pairs 1, 2, and 3. Usually not what you meant. Second gotcha: 0-based indexing. Pair 0 is frames 0 and 1, which trips up everyone once. Third: an index past the last real pair just never matches and silently does nothing - there's no error, so double-check against your actual frame count before you blame the engine.
Install and troubleshooting
You install it the same way as the whole pack - ComfyUI Manager, search "ComfyUI-RIFE-TensorRT-Auto", or:
cd ComfyUI/custom_nodes
git clone https://github.com/huchukato/ComfyUI-RIFE-TensorRT-Auto
then restart ComfyUI. The heavy lifting happens elsewhere: the pack auto-detects your CUDA version (12 or 13), auto-installs the matching TensorRT wheels on first load, and auto-downloads the RIFE model from HuggingFace and builds the TensorRT engine on first use. The one genuinely manual step is that the NVIDIA CUDA Toolkit must already be installed - it's not pip-installable, and it's the friction people actually hit. The older TensorRT RIFE packs made you hand-edit export_trt.py paths to get them running; this one exists precisely to remove that. The community consensus on TensorRT RIFE is that it's the very fast VFI that's good enough most of the time - so pair this node's selectivity with that speed and you're done with frame interpolation for the day.
If this node misbehaves, it's almost always the indexing or the skip/keep toggle, not the engine. And if you get a type mismatch on the wire, you've connected the states output to a VFI node that isn't this pack's Auto RIFE TensorRT - INTERPOLATION_STATES only feeds that one input.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| frame_indices | STRING | 1,2,3 | Comma-separated list of frame-pair indices (0-based). Pair i is formed by frame i and frame i+1. |
| is_skip_list | BOOLEAN | true | True = skip interpolation for the listed pairs. False = interpolate ONLY the listed pairs. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| INTERPOLATION_STATES | INTERPOLATION_STATES | — |