Nodes/IG Interpolation Nodes/πŸ§‘πŸ»β€πŸ§‘πŸΏβ€πŸ§’πŸ½ IG Cross Fade Images
ComfyUI Node

πŸ§‘πŸ»β€πŸ§‘πŸΏβ€πŸ§’πŸ½ IG Cross Fade Images

The pixel-space cousin of IG Interpolate β€” turn keyframes into a slideshow with easing

By IDGallagherΒ·Created 3 years agoΒ·Updated about a year agoΒ· 3
πŸ§‘πŸ»β€πŸ§‘πŸΏβ€πŸ§’πŸ½ IG Cross Fade Images
  • input_images
  • IMAGE
β—„interpolationβ–Ύβ–Ί
β—„transitioning_frames1β–Ί
β—„repeat_count1β–Ί

If IG Interpolate is the pack's fancy trick - morphing embeddings so the model walks between keyframes - IG Cross Fade Images is the plain one: it blends pixels. Feed it a batch of images and it produces a longer sequence where each image fades into the next, with your choice of easing curve and per-frame repeats. Quick, deterministic, no models involved. It's the node you reach for when you just want a smooth animated transition between frames you already generated, not a full conditioning pipeline.

The math is trivial in the best way. For each consecutive pair it builds transitioning_frames + 1 alpha steps running from just above 0 to just below 1, applies the easing function to each alpha, and computes (1 - eased_alpha) * image1 + eased_alpha * image2. Every intermediate frame is then duplicated repeat_count times, and the final image gets repeated repeat_count times at the tail. All of it is tensor arithmetic - instant on any machine, CPU included.

The four inputs are all you need to think about:

  • input_images - an IMAGE batch, at least two frames.
  • interpolation - one of linear, ease_in, ease_out, ease_in_out, bounce, elastic, glitchy, exponential_ease_out. Same easing menu as the rest of the pack.
  • transitioning_frames - how many blend steps happen between each pair. Zero is allowed, which just gives you hold-frames.
  • repeat_count - how many times each frame repeats. Bump it to stretch the clip's duration.

The single IMAGE output is the full sequence, ready to feed into a video encoder, a GIF saver, or whatever consumes frame batches. One quirk worth knowing: the code holds each current image for repeat_count - transitioning_frames iterations before fading - so if your repeat_count is smaller than transitioning_frames, that hold simply doesn't happen and the fade starts immediately. Set them in the right order and the timing behaves.

It slots naturally next to the pack's bigger ideas: generate your keyframes, use IG Cross Fade to build a preview animatic, and reach for IG Interpolate only when you want the model itself to redraw the in-between states. Nothing here touches disk or network - no models to download, no API.

Install is the shared pack routine:

cd ComfyUI/custom_nodes
git clone https://github.com/IDGallagher/ComfyUI-IG-Nodes
cd ComfyUI-IG-Nodes && pip install -r requirements.txt

Or ComfyUI Manager β†’ search "IG Interpolation Nodes" β†’ Install, then restart ComfyUI. The pack pulls in opencv-contrib-python, matplotlib, scikit-image, and diffusers, though this particular node only really needs torch. The README is an empty smiley, so if anything surprises you, the source in nodes/interpolate.py is the actual documentation.

CategoryπŸ“ IG Nodes/Interpolation

Inputs (4)

NameTypeDefaultDescription
input_imagesIMAGEβ€”
interpolationCOMBO8 options: linear, ease_in, ease_out, ease_in_out, bounce, elastic, +2
transitioning_framesINT10–4096β€”
repeat_countINT10–4096β€”

Outputs (1)

NameTypeDescription
IMAGEIMAGEβ€”