Nodes/ComfyUI-Inference-Core-Nodes/[Inference.Core] Semantic Segmentor (legacy, alias for UniFormer)
ComfyUI Node

[Inference.Core] Semantic Segmentor (legacy, alias for UniFormer)

The legacy name for UniFormer segmentation

By LykosAI·Created 2 years ago·Updated about a year ago· 33
[Inference.Core] Semantic Segmentor (legacy, alias for UniFormer)
  • image
  • IMAGE
resolution512

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.

CategoryControlNet Preprocessors/Semantic Segmentation

Inputs (2)

NameTypeDefaultDescription
imageIMAGE
resolutionoptINT51264–2048

Outputs (1)

NameTypeDescription
IMAGEIMAGE