[Inference.Core] Semantic Segmentor (legacy, alias for UniFormer)
The legacy name for UniFormer segmentation
- image
- IMAGE
The pack is honest about this one right in its display name: "[Inference.Core] Semantic Segmentor (legacy, alias for UniFormer)." That's not marketing copy, that's the author telling you exactly what you're looking at - an old node name kept alive so workflows built before the pack settled on "UniFormer" as the official name don't break. Under the hood it does precisely what Inference_Core_UniFormer-SemSegPreprocessor does. If you're starting a workflow from scratch, use that one instead - this article is really here for the person who opened someone else's workflow, hit a "missing node: SemSegPreprocessor" error, and is wondering what on earth it does.
What it does
It turns a photo into a semantic segmentation map: every pixel gets flat-colored by category - sky, building, person, road, grass, water - rather than by edge or depth. Feed that into a Segmentation ControlNet and the model gets handed a floor plan of what goes where, without being told what any of it should look like. That's a genuinely different kind of control than Canny or a depth map gives you: those constrain shape and structure, this constrains layout and category, which is useful when you want to keep "there's a person here, sky there, building over there" fixed while completely reimagining the style, lighting, and detail.
Inputs and outputs
Just two knobs:
image(required) - the photo you're segmenting.resolution(optional, default 512, range 64–2048) - the working resolution for the segmentation pass. Match it roughly to your generation size for a cleaner-aligned map.
The single output is an IMAGE - the color-coded segmentation map - which wires straight into a ControlNet Apply node alongside a segmentation-type ControlNet model. As with every preprocessor in this family, the node only makes the hint image; you still need the actual ControlNet checkpoint loaded separately.
Worth knowing before you rely on it
Segmentation ControlNets didn't really survive the move off SDXL. The newer union ControlNets - Flux, Qwen-Image, the 2026-era bases - all dropped segmentation as a condition; SDXL's union (xinsir's) is basically the last mainstream place a segment mode still ships. So this preprocessor's natural home is still an SD 1.5 or SDXL pipeline. If you're on a modern base looking for something to feed this map into, you likely won't find a matching ControlNet checkpoint.
Installing it
ComfyUI Manager: search ComfyUI-Inference-Core-Nodes, install, restart - or, if you run ComfyUI through Stability Matrix (same people, LykosAI), it's in that app's own Extensions Manager too. Doing it by hand:
cd ComfyUI/custom_nodes
git clone https://github.com/LykosAI/ComfyUI-Inference-Core-Nodes
Then either run install.py with ComfyUI's own Python, or pick the pip extra matching your hardware - pip install -e .[cuda], .[cuda12], .[rocm], .[directml], or .[cpu] - which installs the dependencies plus a compiled onnxruntime wheel for the parts of this pack that use it. A plain pip install -e . skips the accelerated wheel if you don't need it. Restart ComfyUI. The segmentation weights themselves aren't bundled - the first time you actually run this node it pulls them down, so expect a pause and make sure you've got network access.
Where people get burned
The recorded failure mode for this pack, and it shows up more than once in the wild, is a straight ModuleNotFoundError: No module named 'inference_core_nodes' right after cloning - almost always because the install step ran against a different Python than the one ComfyUI actually launches with. If you're on a portable/embedded ComfyUI build, run the install explicitly with its bundled python.exe -m pip, not whatever pip happens to be on your system PATH. There are also scattered reports of the whole pack failing to import on Mac, dependency conflicts included - if that's you, pip install -e .[cpu] is the right extra (there's no CUDA/ROCm/DirectML on Apple silicon), and if it still won't load, check the ComfyUI startup log for the actual import traceback rather than guessing. Last thing: because this is a legacy alias, if you've also got the original comfyui_controlnet_aux pack installed, you may see two visually identical "SemSeg"/"UniFormer" entries in the node search - hover the node to check which pack it actually resolved to before assuming which one you're running.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| resolutionopt | INT | 51264–2048 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |