Nodes/ComfyUI-PolyhedronLoRAStack/⬡ Polyhedron Interpolate
ComfyUI Node

⬡ Polyhedron Interpolate

Interpolates new frames between the ones you have. Leaves the canvas alone: the network pads to its own modulus with the black ring it was trained on, and a ring of ours on top measured worse -- so the node warns about an unaligned canvas instead of quietly 'fixing' it. Skips pairs that are already identical and holds pairs that are a scene cut, without ever changing how many frames come out. Names its target by frame rate rather than by multiplier. Measures what one pair of frames really costs on your card before it commits to a batch size, watches the clock for driver paging the allocator cannot see, and reports every knob the chosen model ignores. Takes a frame batch OR a video: a wired video brings its own frame rate, so no fps wire is needed anywhere.

By PolyhedronAI·Created 3 months ago·Updated 17 days ago· 2
⬡ Polyhedron Interpolate
  • frames
  • video
  • frames
  • frame_count
  • fps
  • interp_info
ckpt_name◈ rife426.pth · 23 MB
rate_modemultiplier
multiplier2
source_fps16.0
target_fps32.0
precisionfloat32
ensembletrue
fast_modetrue
scale_factor1
static_skip0.000
cut_guard0.000
CategoryPolyhedron/Video

Inputs (13)

NameTypeDefaultDescription
ckpt_nameCOMBO◈ rife426.pth · 23 MBWhich RIFE checkpoint to run. Prefer the newest for footage that came out of a diffusion model; after a run, interp_info names the loaded arch and any knob it ignored.
rate_modeCOMBOmultiplierA multiplier changes the frame count and leaves the frame rate to whatever the encoder assumes. Name the rate you want instead and the node reports the rate you will actually get.
multiplierINT21–16
source_fpsFLOAT16.00.1–240
target_fpsFLOAT32.00.1–480
precisionCOMBOfloat32float32 is the default on purpose: this network's coarse-to-fine flow is sensitive to half precision, and the weights are 23 MB - there is no memory to save. Treat the faster modes as a measurement, not a setting.
ensembleBOOLEANtrue
fast_modeBOOLEANtrue
scale_factorCOMBO15 options: 0.25, 0.5, 1, 2, 4
static_skipFLOAT0.0000–0.2Pairs whose two frames differ by less than this (mean absolute error, 0-1) are duplicated instead of interpolated. Identical pixels cannot produce motion, only noise. 0 disables.
cut_guardFLOAT0.0000–1Pairs that differ by MORE than this are held, not blended. Interpolating across a scene cut yields a dissolve; at the seam of a joined sequence that is a certainty, not a risk. 0 disables.
framesoptIMAGEFrame batch to interpolate. Wire EITHER this OR video, not both.
videooptVIDEOA video to interpolate. Its own frame rate is used as source_fps (the widget is ignored and interp_info says so); if the video names no rate, the widget steps back in. No fps wire needed -- and none should be used: an fps wire from a Save behind a de-selected switch carries an ExecutionBlocker that silently disables this whole node.

Outputs (4)

NameTypeDescription
framesIMAGE
frame_countINT
fpsFLOAT
interp_infoSTRING