Atlas Semantic Mask π§©
Atlas Semantic Mask π§© β a deterministic mask that can't miss the way free text can
- image
- mask
- report
AtlasSemanticMask labels your image with a fixed vocabulary - ADE20K's classes (sky, floor, building, tree, person, road, water, mountain, ceiling, wall, and a couple hundred more) - using a SegFormer model straight from Hugging Face, and returns the union of whatever classes you ask for. It's the workhorse mask node of the Atlas stack, and its superpower is boring determinism: unlike a free-text prompt, a fixed-vocabulary segmenter cannot miss. Ask for "building" and you get every pixel the model classified as building, full stop.
That determinism is exactly why it's the fallback tier in the pack's masking cascade. AtlasInput prefers AtlasSAM3Mask (open-vocabulary SAM3) when it's installed, and falls back to this node when it isn't. And inside AtlasScopeMask, this is the geometry-prior fallback that gets tried before giving up on a no-match prompt - because a fixed vocabulary is the one mask source you can trust to answer.
What you set
- image - the plate.
- classes - comma-separated ADE20K class names, unioned. "sky" is the obvious first ask for a matte painting; add "building, road" for a full street layer.
- model - three SegFormer sizes:
b0(fastest/smallest),b2,b4(most accurate). All are-finetuned-ade-512-512, so input is standardized to 512px internally. Start with b0 for iteration; swap to b4 when the mask quality is the bottleneck. - device - auto, cuda, mps, or cpu.
Outputs are the mask (MASK) and a report.
The honest trade-off
The fixed vocabulary is both the strength and the limit. ADE20K won't hallucinate a sky where there is none, but it also won't know "parkour" or "neon signage" - if your concept isn't in the 150-class vocabulary, this node will never find it, and that's exactly the case where SAM3's open vocabulary wins. Use this when you want a mask you can trust and re-run; use SAM3 when you need words it doesn't know. The pack wires them as complementary tiers for precisely this reason, not as rivals.
Install
The node needs transformers plus the model weights, which download from Hugging Face on first run. ComfyUI almost always ships transformers already, so this is usually a core install with a network wait:
cd <ComfyUI>/custom_nodes
git clone https://github.com/mikejamesvfx/atlas-camera.git
Restart, or use ComfyUI Manager ("atlas-camera"). It sits in Atlas/04 Β· Masks. First run will pull the SegFormer weights - give it a minute. If the model enum only shows b0, or the node errors with a download/import problem, check that transformers is present in ComfyUI's Python; that's the one thing this node actually depends on.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | β | |
| classes | STRING | sky | Comma-separated ADE20K class names (sky, floor, building, tree, person, road, water, mountain, ceiling, wall, ...). The mask is the UNION of all matched classes. |
| modelopt | COMBO | nvidia/segformer-b0-finetuned-ade-512-512 | b0 = fastest/smallest, b4 = most accurate. |
| deviceopt | COMBO | auto | 4 options: auto, cuda, mps, cpu |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| mask | MASK | β |
| report | STRING | β |