Nodes/Mickmumpitz-Nodes/Boundary Frame Splicer
ComfyUI Node

Boundary Frame Splicer

Sew the interpolated frames back into the clip

By mickmumpitz·Created 8 months ago·Updated 10 days ago· 47
Boundary Frame Splicer
  • images
  • interpolated_frames
  • images
enabledtrue
num_start_frames1
frame_offset1
num_replace1

The extractor found the hole and the interpolator made the filler. BoundaryFrameSplicer is the node that actually repairs the video - it takes the interpolated frames and writes them back into the original batch, replacing the broken region. Without it, "extract boundaries, interpolate, splice" is just three disconnected ideas.

It's the partner to BoundaryFrameExtractor, and it has one genuinely clever behavior baked in: interpolation nodes almost always include the boundary pair in their output (a frame-before at the front, a frame-after at the back). The splicer detects and strips those automatically, keeping only the interpolated middle frames - so you don't have to manually slice the interpolator's output.

How it works

Required inputs:

  • images - the original video batch with the broken region.
  • interpolated_frames - what came back from your interpolation node.

Optional, and they must match the connected extractor exactly:

  • enabled - on by default; when off, images pass through untouched.
  • num_start_frames, frame_offset, num_replace - the same window definition the extractor used. The tooltips hammer this home: "Must match BoundaryFrameExtractor." Get these wrong and you'll splice the fill into the wrong location.

The stripping logic is worth knowing because it's the part people don't expect. If the interpolator returned more than two frames, it takes everything between the first and last as the filler. If it returned exactly two frames - just the boundary pair, no real interpolation happened - it averages them into a single replacement frame, which is a reasonable fallback. A single returned frame is used directly.

Output: images, the repaired batch. On iteration 0, everything passes through unchanged - same convention as the extractor.

Where it fits

Directly after your interpolation node, receiving both the original images (same batch the extractor saw) and interpolated_frames. The source's example pipeline is BoundaryFrameExtractor → RIFE/FILM → BoundaryFrameSplicer, and the parameters are meant to flow through: the extractor even outputs the exact num_start_frames/frame_offset/num_replace it used, so you can wire those into the splicer rather than retyping them. That's the reliable way to keep the two halves in agreement.

Installing it

Part of Mickmumpitz-Nodes:

cd ComfyUI/custom_nodes
git clone https://github.com/mickmumpitz/ComfyUI-Mickmumpitz-Nodes.git

or ComfyUI Manager → search "Mickmumpitz" → install → restart. No downloads from this pack.

Troubleshooting

  • Filler in the wrong place - the parameters don't match the extractor. This is the #1 failure mode, and the fix is wiring the extractor's parameter outputs straight in instead of typing them.
  • Wrong number of filler frames - the splicer only replaces up to num_replace frames, taking the first ones from the interpolator's output. If your interpolator produced more middle frames than the hole had, extras are dropped.
  • Batch unchanged - check enabled and that this isn't iteration 0. On iteration 0 the splice is intentionally a no-op.
  • Interpolator's edge frames sneak in - if your interpolator didn't include the boundary pair, the auto-strip removes real filler. Feed it a clean pair (frame_before/frame_after) from the extractor so the node's assumption holds.
CategoryMickmumpitz/video/iteration

Inputs (6)

NameTypeDefaultDescription
imagesIMAGE
interpolated_framesIMAGE
enabledoptBOOLEANtrue
num_start_framesoptINT11–99Must match BoundaryFrameExtractor
frame_offsetoptINT10–99Must match BoundaryFrameExtractor
num_replaceoptINT11–99Must match BoundaryFrameExtractor

Outputs (1)

NameTypeDescription
imagesIMAGE