Nodes/Deforum Nodes/(deforum) Simple Interpolation
ComfyUI Node

(deforum) Simple Interpolation

Smooth out your animation's jumps with optical flow

By XmYx·Created 3 years ago·Updated 3 months ago· 198
(deforum) Simple Interpolation
  • image
  • first_image
  • deforum_frame_data
  • IMAGES
  • LAST_IMAGE
method
inter_amount2
skip_firstfalse
skip_lastfalse

Animations are stuttery for a boring reason: you generate 12 frames and you wanted 24. Frame interpolation is the fix - synthesize the frames between your generated ones so motion looks continuous. This node does that with optical flow: it takes two consecutive frames, computes how pixels moved between them, and manufactures the in-between frames along that motion. No models to download for most methods, no latent math, just pixel-level motion estimation.

It's called "Simple" because it sits beside the pack's heavier FILM Interpolation node. Simple uses the classic flow-based methods; FILM brings a neural network. Simple is the one you reach for first.

Inputs

  • image - your batch of generated frames. The node interpolates between consecutive frames in this batch.
  • method - the flow estimator: DIS Medium, DIS Fast, DIS UltraFast (OpenCV's DIS dense inverse search, the defaults), Farneback Fine (classic CPU method), or Normal (no flow, plain blending). DIS UltraFast is the sweet spot for most people; Farneback Fine when you want cheap quality.
  • inter_amount - how many in-between frames to create (default 2). Each input frame becomes inter_amount extra frames between it and the next.
  • skip_first / skip_last - whether to drop the first/last interpolated frame. Useful when a neighboring node will generate its own boundary frames.
  • first_image (optional) - a reference frame to interpolate from, when your batch's first frame isn't the true start.
  • deforum_frame_data (optional) - so the node can reset its internal state between animation runs, matching the loop's reset signal.

Outputs

  • IMAGES - the batch of original + interpolated frames, ready for a video save node.
  • LAST_IMAGE - the final frame, handy for feeding the next segment of a long animation without duplication.

How it works

It keeps the previous frame in memory (that's the FILM_temp list in the source - the name is a leftover), and once it has two frames it runs the flow-based cadence interpolation from the pack's backend, producing inter_amount frames between them. IS_CHANGED forces re-evaluation, so it re-runs when you tweak settings. When deforum_frame_data carries a reset, it clears its memory so the next segment starts clean.

Installation

Part of Deforum Nodes:

cd ComfyUI/custom_nodes
git clone https://github.com/XmYx/deforum-comfy-nodes.git

Restart, or install "Deforum Nodes" by XmYx via ComfyUI Manager. The DIS/Farneback methods need the pack's opencv-contrib backend; the heavier neural option (FILM) is a separate node and pulls in its own model weights on first use.

Common issues

  • "It looks warped around edges" - flow interpolation drags pixels on fast motion. Lower inter_amount and pick DIS UltraFast over Farneback Fine for smoother results.
  • "It skipped the last pair" - the node needs two frames to interpolate; a batch of one does nothing. Feed it a real sequence, or check skip_first/skip_last.
  • Interpolation stalling the first call - if you've selected FILM by mistake (different node), the model download explains the pause. Simple Interpolation itself has nothing to download.

One honest word: interpolation makes motion smoother, it can't invent motion that was never there. It's the finishing move for Deforum's jumpy per-frame render - not a substitute for real temporal coherence, which the KB will remind you is what modern video models do.

Categorydeforum/interpolation

Inputs (7)

NameTypeDefaultDescription
imageIMAGE
methodCOMBO5 options: DIS Medium, DIS Fast, DIS UltraFast, Farneback Fine, Normal
inter_amountINT21–10000
skip_firstBOOLEANfalse
skip_lastBOOLEANfalse
first_imageoptIMAGE
deforum_frame_dataoptDEFORUM_FRAME_DATA

Outputs (2)

NameTypeDescription
IMAGESIMAGE
LAST_IMAGEIMAGE