Video Blink Transition
The blink — a soft eyelid close that's the classiest cut in this pack
- video1
- video2
- video
Every pack needs one transition that isn't trying to blow your head off. This is it. Video Blink Transition makes the frame appear to blink - dark eyelids sweep down from top and bottom, the frame blurs at the closed moment, and when the lids open you're in the next clip. It reads as organic, almost editorial, and it's the cheapest node in the pack to run: pure Python with NumPy masks and a Gaussian blur, no browser involved. If explosion and glitch nodes are the fireworks, this is the slow blink between scenes in a music video.
How it works
The source is refreshingly honest about the mechanism: it builds an upper and lower eyelid mask in NumPy, uses eyelid_curve to arc the lid edges (instead of drawing flat bars), feathers the edges with edge_feather, and applies cv2.GaussianBlur to the frames around the midpoint of the blink so the "closed eye" moment isn't a hard cut. The README claims ~50% faster and ~60% less memory than the browser-rendered nodes - that tracks, because it never renders a webpage; it just blends arrays in a tight loop.
Inputs and outputs that matter
video1,video2- the two clips. Frames are sampled by progress, so unequal lengths are fine.total_frames(4–300, default 60) andfps- duration of the blink and output rate.blink_speed(0.3–3) - how fast the eyelids close. Lower = more of a slow, deliberate blink.blur_intensity(0–2) - strength of the mid-blink blur. 0 gives a crisp blink, higher feels dreamy.eyelid_curve(0–1) - arcing of the lid edges; 0 is straight bars.edge_feather(0–1) - softness of the mask edges, which stops the lids looking pasted on.mask_color-black(the default and the natural choice),white, orgray. White eyelids look weird on bright footage; black is safe.
Output is a video IMAGE batch - wire it to VHS_VideoCombine (or ImageBatch) to export.
Installing it
From 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
You can skip playwright install chromium for this one - it never launches a browser.
Common issues
cv2ImportError - the recurring pack gotcha: opencv isn't in requirements.txt, it's the copy bundled with ComfyUI. Bare environments:pip install opencv-python.- Blink looks like two solid bars - raise
eyelid_curveandedge_feather; the defaults are subtle and at 0/0 you get harsh lines. - It doesn't look like it's using your inputs' resolution - correct: this node has no width/height dials, it inherits the input frame size. Resize upstream if you need different output.
- Blink feels too fast - bump
total_framesup or lowerblink_speed. At the default 60 frames / 30fps it's a fairly quick wink.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| video1 | IMAGE | — | |
| video2 | IMAGE | — | |
| total_frames | INT | 604–300 | — |
| fps | INT | 3015–60 | — |
| blink_speedopt | FLOAT | 1.00.3–3 | — |
| blur_intensityopt | FLOAT | 0.80–2 | — |
| eyelid_curveopt | FLOAT | 0.300–1 | — |
| edge_featheropt | FLOAT | 0.200–1 | — |
| mask_coloropt | COMBO | 3 options: black, white, gray |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| video | IMAGE | — |