Nodes/ComfyUI_SwiftCut/Image Overlay Blend
ComfyUI Node

Image Overlay Blend

The Fade-to-Color Node That Ships With One Honest Quirk

By yichengup·Created about a year ago·Updated 8 months ago· 10
Image Overlay Blend
  • frames
  • blended_frames
  • alpha_masks
background_color#000000
start_alpha_ratio0.30
middle_alpha_ratio0.50
end_alpha_ratio0.80
middle_frame15
blend_modenormal

If you've ever rendered a video clip in ComfyUI and thought "I just want the end to dissolve to black," this is the node for that - and the whole point of Image Overlay Blend is being better than that. It takes a batch of frames and fades each one toward a background color over time, with a three-stage transparency ramp so you can script when the fade happens. It's the second half of the "push-pull lens, then fade to color" shot that the pack's own example workflow (Video fast change.json) chains together.

The name is a small lie, same as the rest of this pack: there's no neural anything here. It's per-pixel math over tensors, the kind of thing CapCut does in a panel. What you're buying is that it happens inside your node graph, on a frame batch, with the timing keyframed as three numbers instead of a timeline.

How it works

Feed it an IMAGE batch (frames) and it computes an alpha value for every frame: from start_alpha_ratio at frame 0 up to middle_alpha_ratio at middle_frame, then on to end_alpha_ratio at the last frame. Each frame is blended against a solid background_color (a hex string like #000000) at that frame's alpha, and it hands back two outputs:

  • blended_frames - the composited sequence, ready to go to a video encoder.
  • alpha_masks - a flat mask per frame holding that frame's alpha. Wire it into anything that wants a transition mask.

The three values are straight linear ramps, no easing. If you want an ease, you'll have to fake it by tweaking the midpoints.

The inputs that actually matter

  • start_alpha_ratio, middle_alpha_ratio, end_alpha_ratio - the three transparency stops. Here's the counterintuitive bit: alpha 1.0 means fully foreground (opaque), 0.0 means fully background. Defaults 0.3 → 0.5 → 0.8 give a gentle push toward the frame at the end.
  • middle_frame - which frame the ramp pivots on.
  • blend_mode - normal, multiply, screen, overlay, soft_light.

One quirk worth knowing before it bites you: blend_mode only actually does anything in normal. Looking at the source, when you pick multiply/screen/overlay/soft_light the node throws away the alpha ramp entirely and applies the full-strength blend math - your fade timing just stops happening. So the alpha controls are a normal-mode feature. If you're using a blend mode, the alpha_ratio inputs are decorative.

Installing it

Via ComfyUI Manager, search "ComfyUI_SwiftCut" and hit install, or clone it by hand:

cd ComfyUI/custom_nodes
git clone https://github.com/yichengup/ComfyUI_SwiftCut

Then restart ComfyUI. The pack's requirements.txt is just torch, Pillow, numpy - nothing heavy, no models to download. It's one of the rare ComfyUI packs you can install without hunting down a checkpoint.

Where people get burned

The background_color is a hex string, and the shipped version has a genuine bug: the background fill assumes a channel-first tensor layout, but ComfyUI hands out [B,H,W,C]. I tested it - a colored background like #FF0000 renders as horizontal stripes, not a solid fill. The default #000000 is invisible because black-on-black, which is probably why nobody's filed a loud bug about it. Practical advice: treat this node as "fade to black (or very near black)" and it'll never surprise you. If you genuinely need to fade to a specific color, it's a couple lines of numpy in an expression node instead.

Also remember the example workflow: this node eats whatever the lens node spit out and hands the result to ImageBatchBlend / VHS_VideoCombine. It's one stage in a chain, not a whole edit - keep your expectations set to "transition tool."

CategoryYC_VideoCutHelper/Image

Inputs (7)

NameTypeDefaultDescription
framesIMAGE
background_colorSTRING#000000
start_alpha_ratioFLOAT0.300–1
middle_alpha_ratioFLOAT0.500–1
end_alpha_ratioFLOAT0.800–1
middle_frameINT151–120
blend_modeCOMBOnormal5 options: normal, multiply, screen, overlay, soft_light

Outputs (2)

NameTypeDescription
blended_framesIMAGE
alpha_masksMASK