ComfyUI Node

Image Transition

A crossfade between two images, as a frame batch

By zhangp365·Created 2 years ago·Updated 5 months ago· 134
Image Transition
  • first_image
  • last_image
  • IMAGE
frames24
transition_typeuniform
smooth_effect1.0

You've got two images and you want a video clip that dissolves smoothly from one into the other - no editing software, no ffmpeg, just ComfyUI. ImageTransition generates that in-between sequence directly as an image batch: the first image fades out while the second fades in, frame by frame, ready to hand to a video-combine node.

What it's for

This is the classic crossfade, the kind of thing you'd normally reach for a video editor to do. Inside ComfyUI it's genuinely useful glue: chain two generated images (say, the start and end of a scene, or two keyframes from a Wan or LTX-Video workflow) and get a short dissolve clip connecting them without leaving the graph. It pairs naturally with something like VHS's Video Combine node downstream, which turns your frame batch into an actual video file.

How it works

Feed it a start image and an end image, and it generates frames intermediate frames by blending between them - image A's opacity ramping down as image B's ramps up, classic alpha compositing. What you control is the shape of that ramp:

  • transition_type: uniform blends linearly - a straight, constant-rate crossfade from 0% to 100%.
  • transition_type: smooth eases the blend instead of doing it linearly, so the fade starts and ends gently and moves faster through the middle. smooth_effect controls how pronounced that easing curve is - higher values push the curve further from linear.

The inputs and outputs that matter

  • first_image / last_image (IMAGE) - the two endpoints of your fade. They need to be the same size.
  • frames (default 24, range 2–120) - how many frames the transition is made of. More frames means a longer, smoother clip; pick this based on your target duration and frame rate (24 frames at 24fps is a one-second fade).
  • transition_type (uniform or smooth, default uniform) - the blend curve, described above.
  • smooth_effect (default 1, range 0.1–10) - only matters when transition_type is smooth; controls how aggressive the easing is.

Output is a single IMAGE batch containing all the generated frames in sequence, ready for a video-combine node or a Save Image node set to save each frame.

How to install it

Via ComfyUI Manager: search "ComfyUI-utils-nodes," install, restart. Manually:

cd ComfyUI/custom_nodes
git clone https://github.com/zhangp365/ComfyUI-utils-nodes

Restart ComfyUI. No model downloads here - it's pure image blending, so this is one of the lighter nodes in the pack to get running.

Common issues & troubleshooting

The most common trip-up is size mismatch: first_image and last_image need matching dimensions, since the node is compositing them directly. If your two images came from different generation runs or different aspect-ratio presets, run them through a resize node first.

Watch your frames count against whatever comes next in your graph - 120 frames of a full-resolution image is a real chunk of memory if your images are large, since you're materializing every intermediate frame as a full-size tensor in the batch at once rather than streaming them. If you're chaining several of these transitions together (start→mid, mid→end) for a longer sequence, keep an eye on total VRAM before you stack too many at once.

One thing to set expectations on: this is a straight crossfade, not a motion-aware interpolation model like a video frame-interpolator would give you. There's no optical flow here - object edges will visibly double-expose mid-fade rather than smoothly morph. For a clean dissolve between two similar compositions that's usually fine; for two very different images it'll look exactly like what it is, a fade, not a warp.

Categoryutils/image

Inputs (5)

NameTypeDefaultDescription
first_imageIMAGE
last_imageIMAGE
framesINT242–120
transition_typeCOMBOuniform2 options: uniform, smooth
smooth_effectFLOAT1.00.1–10

Outputs (1)

NameTypeDescription
IMAGEIMAGE