Nodes/H3 Relay/H3RelayInternalAcceptInterpolation
ComfyUI Node

H3RelayInternalAcceptInterpolation

The node that stamps a RIFE interpolation as accepted — and the math that keeps it exact

By akatz-ai·Created 28 days ago·Updated 8 days ago· 15
H3RelayInternalAcceptInterpolation
  • enhanced
  • images
  • enhanced
  • video
  • video_path
  • status
cache_key
model_cache_tag
multiplier2
output_crf18

Accept Interpolation is the node that closes out an interpolation stage: it takes the frame-interpolated images produced for one shot, along with the cache identity of the interpolation model, and records the result into the H3_RELAY_ENHANCED stream. It's an internal node - H3 Relay · Interpolate builds it when it expands - but it's the right one to understand if you want to know why H3 Relay's RIFE interpolation is both memory-light and mathematically exact.

The chunked-interpolation story

Long videos and RIFE don't naturally mix: interpolating an entire 15-second 1664x960 clip means holding a huge float-frame tensor in system RAM. H3 Relay sidesteps that by streaming the interpolation in overlapping source chunks - 48 frames by default - where each chunk shares one exact boundary frame with the next, invokes ComfyUI's native interpolation implementation, and gets encoded immediately.

The clever part is in the math: each chunk repeats its first source boundary frame, the duplicate output frame is discarded, and the remaining adjacent pairs are identical to a monolithic pass. So chunked interpolation preserves adjacent-pair RIFE math exactly while never retaining the whole clip in RAM. The chunk size is deliberately an execution-memory setting - it doesn't invalidate an otherwise identical cached interpolation result.

That's where Accept Interpolation comes in: the enhanced input carries the running finished stream, images are the interpolated frames for this shot, cache_key is the precomputed fingerprint of the job, and model_cache_tag is the cache identity of the interpolation bundle (from the interpolation loader or its internal bundle pack). Change the RIFE checkpoint and that tag changes, which invalidates interpolations derived from it - the mechanism that keeps a model swap from silently serving you stale frames.

The inputs that matter

  • multiplier (default 2, range 2–16) - the frame-rate multiplier for this interpolation pass. 2x is the standard "24 to 48 fps" move; the option goes up to 16 for people doing extreme slow-motion work.
  • output_crf (default 18) - the H.264 quality for the cached interpolated segment. Same rule as everywhere else in the pack: it controls the cached H.264, not the interpolation math, so changing it re-encodes a variant without repeating inference.

The cache_key input is worth a second thought when debugging: it's a fingerprint, not a free-form label, and it's computed by the calling node. Don't try to invent your own - a wrong key either misses the cache (wasted GPU) or, worse, collides and serves a stale result. Accept it from the graph.

Outputs are the standard enhanced, video, video_path, status. The enhanced output is what chains to the next interpolation or to Assemble - and remember from the pack docs that interpolation consumes and returns the same enhanced type, so bypassing all interpolation nodes assembles LTX video at 24 fps, while enabling them assembles the interpolated version.

You'll never place this node by hand; treat it as machinery. Install the pack via ComfyUI Manager (search H3 Relay) or git clone https://github.com/akatz-ai/h3-relay.git into custom_nodes. Needs ComfyUI 0.32.0+, FFmpeg, and the RIFE checkpoint (rife_v4.26_heavy.safetensors from Comfy-Org/frame_interpolation) in MODELS.md's layout.

CategoryH3 Relay/internal

Inputs (6)

NameTypeDefaultDescription
enhancedH3_RELAY_ENHANCED
imagesIMAGE
cache_keySTRING
model_cache_tagSTRING
multiplierINT22–16
output_crfINT180–51

Outputs (4)

NameTypeDescription
enhancedH3_RELAY_ENHANCED
videoVIDEO
video_pathSTRING
statusSTRING