toobusy Background Remove
Rembg for ComfyUI, with the model choice laid bare
- image
- image
- mask
Background removal in 2026 is the most commoditized operation in the whole ecosystem, which means the interesting question isn't "does it exist" - it's "which model do you let touch your hair." toobusy Background Remove is a clean rembg wrapper that puts that choice right on the node instead of hiding it. It's part of the toobusy image-preprocessing set, sitting alongside the face-mask node and feeding the reference-board flow that this pack is built around.
How it works
It's rembg under the hood - the MIT-licensed segmentation library that's been the standard tool since 2020. You feed it an image, it runs the selected model through a fresh session, and it returns two things: the cutout composited onto your chosen background color, and the raw alpha mask on a separate socket so you can keep using the alpha for something else (inpainting, compositing, feeding a Reference Board card). Models download on first use to ~/.u2net, so the first run of a new model is slower than the rest.
The node's real value is that it exposes the model menu. u2net is the default and the safe choice - fast, tiny, runs on CPU. But it's also the one that costs you quality on fine edges; that's been true since 2020 and hasn't changed. If you're cutting out anything with hair, fur, or semi-transparency, switch the model dropdown: isnet-general-use or isnet-anime sharpen edges (anime for illustration), u2net_human_seg for people, and birefnet-general if you want the current quality champ - BiRefNet is what ComfyUI itself shipped into core, and it's the reason the old "rembg = u2net" assumption quietly stopped being true.
The inputs that matter
model- see above; this dropdown is the whole game.background- white/black/green/gray/magenta. Pick the color, not the transparency; the alpha is on the mask output.alpha_matting- off by default, and it's slower, but it's the hair/fur toggle. Turn it on when the mask is eating flyaway strands.post_process_mask- cleans the mask after segmentation. Cheap to try; keep it on if your cutout has specks.
Outputs and where they go
image- the cutout on your background color. Straight into a Reference Board, a composite, or straight to a Save Image.mask- the alpha as a MASK tensor, for anything that wants a mask rather than a premultiplied image.
Install and gotchas
This node has its own optional dependency file - install the pack, then:
python -m pip install -r custom_nodes/toobusy/requirements_rembg.txt
That pulls rembg and onnxruntime. On an NVIDIA card, swap onnxruntime for onnxruntime-gpu in that file before installing, or you'll be doing CPU inference without noticing. Restart ComfyUI after.
The honest troubleshooting note: if your subject is a person standing against a plain background, any model here nails it in under a second, and you won't notice the difference. The moment you feed it a veil, glass, or motion blur, no model in this list is perfect - the community's standing advice is to run your two hardest images through a couple of model choices before standardizing on one. The dropdown makes that a two-minute A/B instead of a research project.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| model | COMBO | u2net | 7 options: u2net, u2netp, u2net_human_seg, isnet-general-use, isnet-anime, silueta, +1 |
| background | COMBO | white | 5 options: white, black, green, gray, magenta |
| alpha_mattingopt | BOOLEAN | false | Refine edges (slower). Good for hair/fur. |
| post_process_maskopt | BOOLEAN | false | Clean up the mask after segmentation. |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |
| mask | MASK | — |