Image Alpha Composite
Layer one image over another using its alpha
- image_1
- image_2
- IMAGE
You cut a subject out with a background remover, it came out as an RGBA image with real transparency, and now you want to drop it onto a new background - without threading a separate mask node through the graph. That's this node: it layers image_2 over image_1 using image_2's own alpha channel as the blend weight. Where image_2 is opaque, it fully replaces image_1. Where it's transparent, image_1 shows through. Where it's partially transparent - soft edges, hair, glass - you get a proper blend instead of a hard cutout line.
How it works
Standard alpha-over compositing: for every pixel, the output is a weighted mix of image_2 and image_1, weighted by image_2's alpha at that pixel. Fully opaque alpha (1.0) means you see only image_2; fully transparent (0.0) means you see only image_1; anything in between blends proportionally. This is the same math behind "paste a PNG with transparency onto a background" in any image editor - just as a graph node instead of a manual layer stack.
The inputs and outputs that matter
Two required inputs, both IMAGE:
image_1- the base, or background.image_2- the layer going on top. Its alpha channel is what drives the composite, so it needs real transparency data to do anything useful here.
One output: IMAGE, the composited result.
How to install it
Part of the Art Venture pack. ComfyUI Manager: search comfyui-art-venture, install, restart. Manually:
cd ComfyUI/custom_nodes
git clone https://github.com/sipherxyz/comfyui-art-venture
Restart ComfyUI. No model downloads - it's pixel math.
Common issues & troubleshooting
image_2 just fully overwrites image_1, no blending at all. image_2 doesn't actually have an alpha channel - it's opaque everywhere, so full-opacity compositing is exactly correct, even if it's not what you wanted. Some loaders and nodes flatten or drop alpha along the way; confirm whatever produced image_2 (a background-removal node, a URL loader) is actually preserving transparency rather than silently discarding it.
Cutout edges look hard and jagged instead of blending. That means image_2's alpha is binary (fully on/off) rather than graduated. A segmentation model with a hard threshold produces exactly that; a matting-capable model or a blurred mask edge produces softer alpha and a cleaner composite here.
Mismatched resolutions. Both images should match in size before compositing - resize one to the other first if they came from different generation or loading steps.
Wanted a Photoshop-style blend mode instead (multiply, color, etc.), not a straight overlay. This node does one thing: alpha-over compositing. For the "recombine luminance from one image with color from another" trick, that's ColorBlend, a different operation entirely.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| image_1 | IMAGE | — | |
| image_2 | IMAGE | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |