ONNX Detector (SEGS/legacy) - use BBOXDetector
The legacy detector you're told to skip
- bbox_detector
- image
- detailer_hook
- SEGS
ONNX Detector (SEGS) is a detector node that runs an ONNX-format detection model and outputs SEGS for a detailer to refine. The one thing you should know before wiring it up is what its own display name tells you: "ONNX Detector (SEGS/legacy) - use BBOXDetector." The node itself is asking you to reach for the BBOX detector instead. This is a compatibility remnant, kept working for old workflows, not the path you'd choose today.
So this article is mostly a redirect. If you're building something new and want to detect faces, hands, or anything a detection model finds, use BBOX Detector (SEGS) with an Ultralytics YOLO detector from the Impact Subpack. That's where the pack's detection has consolidated, it's what the shared Bingsu/adetailer weights are trained for, and it's what the tutorials assume. The ONNX node exists so that a workflow built around an ONNX detector back when that was a supported route still loads and runs - it's a shim, and the maintainer flagged it as such right in the node's name.
How it works
The node consumes a BBOX_DETECTOR (an ONNX detection model, historically) and runs it across the image, wrapping each detection into SEGS - the same detect-and-package job every SEGS detector does. Its inputs mirror the BBOX detector exactly, which is the point: the interfaces are interchangeable, so migrating off ONNX to the standard BBOX path is a matter of swapping the node and pointing it at a YOLO detector, with the same downstream wiring.
The inputs and outputs that matter
Identical to the standard SEGS detector, because they share the shape:
bbox_detector(required) - the detection model. In new work this is where a YOLO detector from the Subpack goes.image(required) - the picture to scan.threshold(default 0.5) - confidence cutoff; lower catches more (and more false hits).crop_factor(default 3) - context captured around each detection for the detailer.dilation(default 10) - grows each mask outward; negatives erode.drop_size(default 10) - discards detections smaller than this.labels(defaultall) - keep everything, or filter to named classes.
Optional detailer_hook. Output: a single SEGS, feeding a detailer, a SEGS filter, or a paste node.
How to install it
Install the pack via ComfyUI Manager (search ComfyUI Impact Pack, install, restart), or manually:
cd ComfyUI/custom_nodes
git clone https://github.com/ltdrdata/ComfyUI-Impact-Pack comfyui-impact-pack
cd comfyui-impact-pack
python -m pip install -r requirements.txt # ComfyUI's python; python_embeded on portable
then restart. ONNX runtime support comes from the optional onnxruntime dependency listed in the pack's requirements. For the recommended path, install the Impact Subpack and use UltralyticsDetectorProvider with the standard BBOX detector instead. Linux: libgl1-mesa-glx and libglib2.0-0 for OpenCV.
Common issues & troubleshooting
Should I use this at all? Almost certainly not, for anything new. The node's own label says "use BBOXDetector," and that's the honest recommendation - build with BBOX Detector (SEGS) and a YOLO model. Keep this only if you're maintaining an old workflow that already depends on it.
Nothing connects to bbox_detector. Same as the modern detectors: the node is a consumer, not a detector. You need a provider node upstream. For the legacy ONNX route that's an ONNX provider; for the recommended route, install the Subpack and use UltralyticsDetectorProvider.
Empty or wrong detections. Legacy ONNX models can be finicky and are less well-supported than the current YOLO path. Rather than fight it, migrate: swap this node for BBOX Detector (SEGS), load a modern detector, and keep the rest of your graph as-is - the SEGS output is the same type, so nothing downstream needs to change.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| bbox_detector | BBOX_DETECTOR | — | |
| image | IMAGE | — | |
| threshold | FLOAT | 0.500–1 | — |
| dilation | INT | 10-512–512 | — |
| crop_factor | FLOAT | 3.01–100 | — |
| drop_size | INT | 101–16384 | — |
| labels | STRING | all | — |
| detailer_hookopt | DETAILER_HOOK | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| SEGS | SEGS | — |