GIMM-VFI Segment Interpolate
The GIMM-VFI segment node — single-pass speed, segment-sized memory
- images
- model
- settings
- images
- model
- elapsed_seconds
GIMM-VFI's claim to fame is generating every intermediate frame in one pass. GIMM-VFI Segment Interpolate is that same model, but scoped to one slice of the input at a time so you can interpolate footage that's too long to hold in RAM. It's the segment flavor of the pack's arbitrary-timestep node, and it inherits the best of both: single-pass 4x/8x speed and bounded memory.
Everything from the plain GIMM Interpolate carries over - single_pass (on by default, one forward pass per pair at any timestep), multiplier, batch_size (ignored in single-pass mode), chunk_size, keep_device, all_on_gpu, clear_cache_after_n_frames, source_fps/target_fps - plus the segment controls:
segment_index(0-based) - which slice to process.segment_size(default 500) - input frames per segment, one-frame overlap for seamless stitching.
The pattern. One node per segment, chained by feeding each node's model output into the next's model input. The pass-through forces sequential execution so segment 0's frames get saved to disk (Video Combine) and freed from RAM before segment 1 starts. Because GIMM generates multiple frames per pair, single-pass segments are fat - an 8x segment produces a lot of output frames - so the save-between-segments discipline matters even more here. Finish with Tween Concat Videos to rejoin the segment_*.mp4 files.
Install. Search "Tween" in ComfyUI Manager, or:
cd ComfyUI/custom_nodes
git clone https://github.com/Ethanfel/ComfyUI-Tween
pip install -r requirements.txt
Restart, and let Load GIMM-VFI Model fetch the checkpoint plus its flow estimator on first use.
Common issues. The parallel-wiring trap is the one that recurs across all segment nodes: two segments wired to the same source run at once and you're back to unbounded RAM - always chain the model output. Keep loader frame rate, source_fps/target_fps, and Video Combine frame_rate synchronized or you'll get a hitch at every stitch. And mind that in single-pass mode at 8x, each segment's output is substantially larger than its input, so pick segment_size with output size in mind, not input.
Inputs (14)
| Name | Type | Default | Description |
|---|---|---|---|
| images | IMAGE | Input image batch. Output frame count: 2x=(2N-1), 4x=(4N-3), 8x=(8N-7). | |
| model | GIMM_VFI_MODEL | GIMM-VFI model from the Load GIMM-VFI Model node. | |
| multiplier | COMBO | 2 | Frame rate multiplier. In single-pass mode, all intermediate frames are generated in one forward pass per pair. In recursive mode, uses 2x passes like other models. |
| single_pass | BOOLEAN | true | Use GIMM-VFI's single-pass arbitrary-timestep mode. Generates all intermediate frames per pair in one forward pass (no recursive 2x passes). Disable to use the standard recursive approach (same as BIM/EMA/SGM). |
| clear_cache_after_n_frames | INT | 101–100 | Clear CUDA cache every N frame pairs to prevent VRAM buildup. Lower = less VRAM but slower. |
| keep_device | BOOLEAN | true | Keep model on GPU between frame pairs. Faster but uses more VRAM constantly. Disable to free VRAM between pairs (slower due to CPU-GPU transfers). |
| all_on_gpu | BOOLEAN | false | Store all intermediate frames on GPU instead of CPU. Much faster (no transfers) but requires enough VRAM for all frames. Recommended for 48GB+ cards. |
| batch_size | INT | 11–64 | Number of frame pairs to process simultaneously in recursive mode. Ignored in single-pass mode (pairs are processed one at a time since each generates multiple frames). |
| chunk_size | INT | 00–10000 | Process input frames in chunks of this size (0=disabled). Bounds VRAM usage during processing but the full output is still assembled in RAM. To bound RAM, use the Segment Interpolate node instead. |
| source_fps | FLOAT | 0.000–1000 | Input frame rate. Required when target_fps > 0. |
| target_fps | FLOAT | 0.000–1000 | Target output FPS. When > 0, overrides multiplier and auto-computes a power-of-2 oversample up to 8x, then selects frames. 0 = use multiplier. |
| segment_index | INT | 00–10000 | Which segment to process (0-based). Bounds RAM by only producing this segment's output frames, unlike chunk_size which bounds VRAM but still assembles the full output in RAM. Chain the model output to the next Segment Interpolate to force sequential execution. |
| segment_size | INT | 5002–10000 | Number of input frames per segment. Adjacent segments overlap by 1 frame for seamless stitching. Smaller = less peak RAM per segment. Save each segment's output to disk before the next runs. |
| settingsopt | VFI_SETTINGS | Auto-tuned settings from VFI Optimizer. Overrides batch_size, chunk_size, keep_device, all_on_gpu, clear_cache_after_n_frames. |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| images | IMAGE | — |
| model | GIMM_VFI_MODEL | — |
| elapsed_seconds | FLOAT | — |