Image Combiner (RMBG) 🖼️
Paste a cutout onto a background, with blend modes
- foreground
- background
- foreground_mask
- IMAGE
- WIDTH
- HEIGHT
This is the "now stick the two together" node. You've cut a subject out with a background remover, you've got a new backdrop, and you need to drop the first onto the second at the right size and place. Image Combiner does exactly that, and nothing more - it's the compositing step at the end of a product-photo or character workflow, not a magic tool.
If you've ever done the cut-out-then-composite dance, you already know the shape of it: BiRefNet or rembg extracts the subject with a clean alpha, then you place it into a generated scene. Image Combiner is the placement half. It's deliberately dumb and fast, which is the right call - the hard part (the mask) happened upstream.
What it does
You feed it a foreground image and a background image. It scales the foreground, positions it, blends it, and hands you back one flattened image plus the final width and height. That's the whole node. The one thing that makes it more than a paste is the optional foreground_mask input: connect the MASK from your background remover and only the masked region composites, so the background shows through everywhere else. Without a mask it treats the whole foreground as opaque (respecting its alpha if it has one).
The inputs that actually matter
foreground_mask(optional MASK) - the important one. This is where the alpha from your RMBG node goes. Skip it and you're pasting a full rectangle; connect it and you get a real cutout composite.foreground_scale(0.1–5.0) andposition_x/position_y(0–100) - size and place. Position is a percentage, so 50/50 is dead center, 0/0 is top-left. Intuitive once you stop thinking in pixels.mode- the blend mode:normal,multiply,screen,overlay,add,subtract. For a straight composite, leave it onnormal. The others are for effects -multiplyfor shadows,screenfor glows, that kind of thing. Most of the time you wantnormal.foreground_opacity(0–1) - fade the foreground. Handy for watermarks or ghosted overlays, otherwise leave it at 1.
Outputs are IMAGE, WIDTH, and HEIGHT. The width/height ints are convenient to wire into a downstream resize or save node so everything stays in sync.
How to install it
It ships in the ComfyUI-RMBG pack, so you get it alongside the background removers and mask tools.
- ComfyUI Manager: search
Comfyui-RMBG, install, restart. - Manual:
cd ComfyUI/custom_nodes && git clone https://github.com/1038lab/ComfyUI-RMBG, then install the requirements (./ComfyUI/python_embeded/python -m pip install -r requirements.txt) and restart.
This particular node is a pure tensor operation - no model download, no heavy weights. It's ready the moment the pack loads. One thing worth knowing about the pack as a whole: it's GPL-3.0, which matters only if you're distributing a commercial product built around it. For personal and workflow use, ignore it.
Where people get tripped up
The number-one mistake is forgetting the mask. If your composite looks like a hard rectangle glued onto the scene, you didn't connect foreground_mask - Image Combiner has no idea which pixels are "subject" unless the mask or a real alpha channel tells it.
The second is expecting it to relight. It won't. A cutout dropped onto a new background looks pasted-on until the lighting matches, and Image Combiner does zero lighting work - that's what IC-Light is for, one step later in the pipeline. Combine here, relight after, and the seam disappears. Combine and stop, and you've got the classic "sticker on a photo" look that no blend mode fixes.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| foreground | IMAGE | — | |
| background | IMAGE | — | |
| mode | COMBO | normal | 6 options: normal, multiply, screen, overlay, add, subtract |
| foreground_opacity | FLOAT | 1.000–1 | — |
| foreground_scale | FLOAT | 1.000.1–5 | — |
| position_x | INT | 500–100 | — |
| position_y | INT | 500–100 | — |
| foreground_maskopt | MASK | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |
| WIDTH | INT | — |
| HEIGHT | INT | — |