π§π»βπ§πΏβπ§π½ IG Cross Fade Images
The pixel-space cousin of IG Interpolate β turn keyframes into a slideshow with easing
- input_images
- IMAGE
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
IMAGEbatch, 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.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| input_images | IMAGE | β | |
| interpolation | COMBO | 8 options: linear, ease_in, ease_out, ease_in_out, bounce, elastic, +2 | |
| transitioning_frames | INT | 10β4096 | β |
| repeat_count | INT | 10β4096 | β |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | β |