Cross Fade Images Multi
Turn a stack of images into a transitions video
- image_1
- image_2
- IMAGE
Cross Fade Images Multi takes any number of images and builds a video-ready frame sequence that cross-fades from one into the next, with your choice of easing curve controlling how each transition feels. Think of it as a slideshow builder that actually understands motion, not just a hard cut between stills.
Why this is more than a novelty
Cross-fading a set of stills is a real technique, not just a transition effect for its own sake - it's how you turn a batch of generated images (different seeds, a morph sequence, a set of style variations) into something that plays like a single continuous clip instead of a jarring slideshow. Feed it four seed variations and it becomes a smooth "watch the image evolve" clip; feed it a sequence you generated as narrative beats and it becomes a rough animatic.
How it works
Like the pack's other "Multi" nodes, this one uses a dynamic-input pattern: set inputcount to however many images you're feeding it (starting at 2, up to 1000) and the node exposes that many numbered image slots - image_1, image_2, and so on. Between each consecutive pair, it generates transitioning_frames worth of cross-fade, blended according to the interpolation curve you pick.
The curve choices go well past a plain linear fade: linear, ease_in, ease_out, ease_in_out, bounce, elastic, glitchy, and exponential_ease_out. Most of those are standard animation easing curves, borrowed from the same vocabulary you'd find in any motion-design tool - ease_in_out for a smooth, natural-feeling transition being the safe default. bounce and elastic are the fun ones, adding a springy overshoot to the fade rather than a clean settle. glitchy stands out as the odd one in the list - worth trying deliberately if you want a transition that reads as intentionally broken or digital rather than smooth, instead of treating it as an accident.
The inputs and outputs that matter
inputcount(default 2, 2–1000) - how many images you're feeding in; set this first, since it determines how many numbered image inputs the node shows.image_1(required) plusimage_2and onward (optional, appearing as you raiseinputcount) - your source stills, in the order you want them to appear.interpolation- the easing curve for every transition in the sequence (one setting applies across the whole chain, not per-pair).transitioning_frames(default 1, up to 4096) - how many frames each cross-fade takes. Higher means a slower, more gradual transition; low values (including the default of 1) are closer to a hard cut.IMAGEout - the full frame sequence, ready to feed into a video-combine/export node.
Installing it
Ships with the pack:
- ComfyUI Manager - search KJNodes for ComfyUI, install, restart.
- Manual -
cd ComfyUI/custom_nodes && git clone https://github.com/kijai/ComfyUI-KJNodes, thenpip install -r ComfyUI-KJNodes/requirements.txt, restart.
No models or heavy dependencies - it's frame interpolation math, not a learned model.
Common issues & troubleshooting
Output is one long batch and I expected separate clips. That's expected - this node produces one continuous frame sequence spanning all your transitions, meant to be fed straight into a video export node. If you actually want separate clips per transition, you'll need to split the output afterward rather than looking for a per-pair option on this node.
Barely looks like a fade at all. Check transitioning_frames - the default is 1, which is essentially a hard cut with no visible cross-fade. Raise it meaningfully (tens of frames, depending on your target framerate) to get a fade you can actually see.
Result looks jittery or oddly abrupt with bounce/elastic/glitchy. That's the curve doing what it's designed to do - those three deliberately overshoot or disrupt the transition rather than settling smoothly. If that's not the effect you wanted, switch to ease_in_out or plain linear for a conventional fade.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| inputcount | INT | 22–1000 | — |
| image_1 | IMAGE | — | |
| interpolation | COMBO | 8 options: linear, ease_in, ease_out, ease_in_out, bounce, elastic, +2 | |
| transitioning_frames | INT | 10–4096 | — |
| image_2opt | IMAGE | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |