☁️BizyAir SAM Segmentor
Segment Anything repurposed as a ControlNet input
- image
- IMAGE
Meta's Segment Anything Model is usually the tool people reach for when they want to click a point or draw a box and get a precise mask back for one specific object - the interactive, targeted-selection use case. This node uses it differently: it runs SAM over the whole image and hands back a segmentation map, the same general shape of output as the OneFormer node elsewhere in this pack, just produced by a different network. No clicking, no bounding box - you feed it an image, it feeds back a map of distinct regions.
What it's actually useful for
Segmentation-as-composition is a real and growing workflow, and it's worth knowing why: a segmentation map doesn't encode what something looks like, only where the boundaries are, which means you (or a ControlNet trained on this condition type) can effectively block out a scene using flat colored shapes in any paint program and let the generation model fill in the rendering. That's a genuinely different creative tool than sketching edges or posing a skeleton - it's composition by region rather than by outline.
The catch, same as with the OneFormer preprocessor in this pack: segmentation conditioning has patchier support on newer base models than it did on SDXL. Before building a pipeline around this node's output, confirm the ControlNet model you're pairing it with actually accepts a segmentation condition - not every current-generation union ControlNet kept that mode.
One more thing worth knowing: the info this node exposes doesn't specify which SAM generation it's running (the original SAM, SAM2, or SAM3 - all different networks with real quality and speed differences). Don't assume it's the newest one; if segmentation quality matters more than convenience for your project, that's worth checking against BizyAir's own documentation rather than guessing from the node name.
The inputs and outputs that matter
image- required, the source photo or render to segment.resolution(optional, default 512, range 64–1024, step 64) - working resolution for the segmentation pass. Push it higher for scenes with lots of small distinct objects where boundary precision matters more.
Output: a single IMAGE, the segmentation map, wired into a ControlNet Apply node alongside a segmentation-capable ControlNet model.
Installing it
ComfyUI Manager: search BizyAir, install, restart - or manually:
cd ComfyUI/custom_nodes
git clone https://github.com/siliconflow/BizyAir.git
Restart and set your BizyAir API key on first use - like every node in this pack, it runs on SiliconFlow's cloud and fails quietly at execution time without a key.
Where people get burned
The recurring mistake is conflating this with background removal - a segmentation map that colors a person one solid color and the background another looks like a rough cutout, but it's not producing an alpha channel or a clean matte, and it's not tuned for the hard cases (hair, fur, semi-transparency) that dedicated background-removal models are built around. If you actually want a cutout, use BizyAir's background-removal node instead; use this one when you want a categorical layout map for ControlNet conditioning.
The other trap is the same as with any segmentation preprocessor in this pack: pairing the output with a ControlNet model that doesn't support segment conditioning gives you a result that looks like the map was ignored. Check what your ControlNet actually accepts before troubleshooting anything further upstream.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| resolutionopt | INT | 51264–1024 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |