Nodes/zhangp365/ComfyUI-utils-nodes/Image Transition Left to Right
ComfyUI Node

Image Transition Left to Right

A slide-wipe transition, not a crossfade

By zhangp365·Created 2 years ago·Updated 5 months ago· 135
Image Transition Left to Right
  • before_image
  • after_image
  • images
  • duration
  • fps
duration5.0
fps24
bounce_backfalse
start_end_pause_percent0.09
middle_pause_percent0.15
start_end_position_percent0.06
transition_line_width8

There's more than one way to cut between two images, and a plain crossfade isn't always the look you want. ImageTransitionLeftToRight does a directional slide instead: the first image slides off to the right while the second image slides in from the left to take its place - the same wipe you've seen in every slideshow app, generated as a ComfyUI frame batch.

What it's for

This is one of four directional siblings in the pack (left-to-right, right-to-left, top-to-bottom, bottom-to-top - this article covers left-to-right specifically). Where ImageTransition blends opacity, these slide the actual image content across the frame. Reach for this one when you want a scene change to read as physical motion rather than a dissolve - think slideshow-style presentation clips, before/after reveals, or a transition between two shots in a short video assembled in ComfyUI.

How it works

Each frame in the output batch is a composite: part of the outgoing image, part of the incoming one, split by a moving line that sweeps left to right across the canvas as the sequence progresses. It's not a fixed instant cut with a wipe line frozen in place - the line itself travels frame to frame, and the node gives you real control over the timing of that travel, not just its speed.

The inputs and outputs that matter

  • before_image / after_image (IMAGE) - the outgoing and incoming images, same dimensions.
  • duration (default 5, 0.1–60) and fps (default 24, 1–120) - together these set how many frames get generated and are also passed straight through as outputs, so you can wire them directly into a video-combine node's frame-rate input without re-typing the number.
  • bounce_back (default false) - when enabled, the transition plays forward then reverses back to the start instead of stopping once it completes, useful for a looping preview clip.
  • start_end_pause_percent (default 0.09) and middle_pause_percent (default 0.15) - hold time, as a fraction of total duration, spent sitting still at the start/end and at the fully-transitioned midpoint before continuing (relevant mainly with bounce_back on, so the swap doesn't feel instantaneous before it reverses).
  • start_end_position_percent (default 0.06) - how far the slide's start and end points sit inset from the frame edges, rather than starting exactly at the boundary.
  • transition_line_width (default 8) - the pixel width of the visible seam drawn at the wipe boundary as it sweeps across.

Outputs: images (the frame batch), plus duration and fps passed through for convenience downstream.

How to install it

Via ComfyUI Manager, search "ComfyUI-utils-nodes." Or by hand:

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

Restart ComfyUI. No models to download - this is geometry and compositing, so it's a quick install with no extra dependencies to worry about.

Common issues & troubleshooting

Same size requirement as the rest of the image-blending nodes in this pack: before_image and after_image need matching dimensions, since the node is compositing them into shared frames.

The parameter that trips people up most is duration/fps versus frame count - this node doesn't take a frames input directly like ImageTransition does; it derives frame count from duration × fps internally. If your output feels too short or too choppy, that's the pair to adjust rather than hunting for a frame-count field that isn't there. And if you only want a clean instant wipe with no held pauses, set start_end_pause_percent and middle_pause_percent down toward zero - the defaults bake in a little breathing room at both ends, which is nice for a looping bounce but can feel like dead air in a straight one-shot transition.

Categoryutils

Inputs (9)

NameTypeDefaultDescription
before_imageIMAGE
after_imageIMAGE
durationFLOAT5.00.1–60
fpsFLOAT241–120
bounce_backoptBOOLEANfalse
start_end_pause_percentoptFLOAT0.090–0.5
middle_pause_percentoptFLOAT0.150–0.5
start_end_position_percentoptFLOAT0.060–0.5
transition_line_widthoptINT81–20

Outputs (3)

NameTypeDescription
imagesIMAGE
durationFLOAT
fpsFLOAT