Nodes/ComfyUI-VideoTransition/Video Checkerboard Transition
ComfyUI Node

Video Checkerboard Transition

Checkerboard transitions that flip, slide, or wave each square — CSS grid at work

By yichengup·Created 11 months ago·Updated 11 months ago· 25
Video Checkerboard Transition
  • video1
  • video2
  • video
transition_style
total_frames24
fps24
grid_size8
animation_duration0.80
stagger_delay0.02
use_gpufalse
batch_size5
background_color#000000
width640
height640
quality90

The classic checkerboard wipe, but with personality. Instead of one flat grid sliding over, this node turns your frame into a grid of squares that each flip, scale, rotate, slide, or wave their way from video1 to video2. It's a showy transition, so use it when the cut is supposed to draw attention - an energetic sequence break, a montage beat. For everything else, the pack's plain crossfade exists.

How it works

This is a Chromium branch node: video1 and video2 frames go in as base64, the node builds an HTML page that lays the frames out on a CSS grid, and a headless Chromium (via Playwright) animates the squares through CSS transitions, screenshotting each frame back into an IMAGE tensor. The transition_style enum picks the per-square animation: flip_squares (the default, each tile flips over), scale_squares, rotate_squares, slide_squares, and wave_squares (staggered, wave-like motion). Because it's real CSS animation, the easing and stagger come free - no per-frame math in Python.

Inputs and outputs that matter

  • video1, video2 - the two clips, sampled by progress.
  • transition_style - the enum above. This is the first dial you turn.
  • total_frames (4–300, default 24) and fps - transition length and output rate. 24 frames at 24fps is a one-second wipe.
  • grid_size (4–20, default 8) - squares per side. 8 = 64 squares, 20 = 400, which gets slow. Start at 8.
  • animation_duration (0.3–1.5) and stagger_delay (0–0.1) - how long each tile takes and how much delay between tiles. More stagger = more of a wave across the frame.
  • use_gpu (default off) - toggles hardware acceleration in the browser vs. software rendering (Swiftshader). If you're on a weak/headless GPU, leaving it off is often more stable.
  • background_color, width/height (up to 3840), quality (60–100).

Output is video - an IMAGE batch; feed it to VHS_VideoCombine or ImageBatch to export.

Installing it

Part of yichengup/ComfyUI-VideoTransition. ComfyUI Manager → "VideoTransition", or:

cd ComfyUI/custom_nodes
git clone https://github.com/yichengup/ComfyUI-VideoTransition
cd ComfyUI-VideoTransition
pip install -r requirements.txt
playwright install chromium

The playwright install chromium step is required for this node - it can't render without a browser binary.

Common issues

  • Crash at runtime: browser missing - the chromium install is non-negotiable here. In China use playwright install chromium --mirror=https://registry.npmmirror.com.
  • Sluggish with big grids - 400 animated CSS squares screenshot N times is heavy. Lower grid_size, fps, or duration (the README's own advice).
  • Tiles glitch or flash black - check background_color and try use_gpu toggled the other way; software rendering (Swiftshader) is the fallback path and is slower but more consistent across machines.
  • Looks like a plain grid, not a wipe - the tile animation only reads if animation_duration is a reasonable fraction of the whole transition; very short total_frames makes the stagger vanish.
CategoryVideoTransition

Inputs (14)

NameTypeDefaultDescription
video1IMAGE
video2IMAGE
transition_styleCOMBO5 options: flip_squares, scale_squares, rotate_squares, slide_squares, wave_squares
total_framesINT244–300
fpsINT2415–60
grid_sizeoptINT84–20
animation_durationoptFLOAT0.800.3–1.5
stagger_delayoptFLOAT0.020–0.1
use_gpuoptBOOLEANfalse
batch_sizeoptINT51–20
background_coloroptSTRING#000000
widthoptINT640640–3840
heightoptINT640360–2160
qualityoptINT9060–100

Outputs (1)

NameTypeDescription
videoIMAGE