SEGS BBox Overlay
SEGS BBox Overlay
- image
- segs
- image
- segs
Every automatic detailing workflow starts with the same leap of faith: you trust that the detector found the right regions, then you burn render time re-rendering whatever it boxed. When the result comes back wrong, half the time it's because the detector boxed the wrong thing - a rock formation it decided was a face, a hand it missed entirely.
SEGS BBox Overlay is the debug view that removes the leap. Feed it an Impact Pack SEGS output plus the image the detector ran on, and it draws the detections the way a YOLO demo does: outlined bounding box, filled caption plate with the class name and confidence, optional semi-transparent mask tint. You see exactly what your Detailer is about to repaint, before you spend a single sample on it.
How it works
The node parses SEGS without importing Impact Pack - it just reads the fields (bbox, label, confidence, cropped mask) out of the payload duck-typed, which is a nice bit of design hygiene. Then it renders with OpenCV:
label_format-labelfor just the class name, orlabel+confidenceforface 91%(the default).draw_masks/mask_alpha- tint the segment masks at the given strength (default 0.45). Toggleboxes onlyto kill the tint.thickness/font_scale- box border width (0 = auto from image height) and caption size multiplier. Sensible defaults; you'll rarely touch them.color_mode-auto(default) gives each class a stable color from a built-in vivid palette, so the same class is always the same color regardless of detection order - genuinely useful for scanning a busy frame.singledraws everything in one RGB color you set viacolor_r/g/b.
The segs input passes through unchanged as the second output. That's the detail that makes the node worth placing inside a live pipeline rather than on a debug branch: drop it between SEGM Detector (SEGS) and your Detailer, and the preview shows you exactly what the Detailer will act on, with zero disruption to the data flow.
Two behaviors worth knowing: if the image resolution differs from the one recorded in the SEGS (detection ran on an upscaled copy, you're previewing the original), all coordinates and masks rescale proportionally - automatically. And SEGS describe a single image, so the same detections draw on every frame of a batch, which is what you want when previewing a video pass.
Inputs and outputs
image (the image to draw on - typically the one the detector ran on), segs (from an Impact Pack detector like SEGM Detector (SEGS)), then the styling widgets above. Outputs: the annotated image at the same resolution, and segs passed through unchanged.
Installation
Part of ComfyUI-LukutarNodes (MIT). ComfyUI Manager: Custom Nodes Manager → Install via git URL → https://github.com/Mistress-Lukutar/ComfyUI-LukutarNodes, or:
cd <ComfyUI>/custom_nodes
git clone https://github.com/Mistress-Lukutar/ComfyUI-LukutarNodes
Restart ComfyUI. Only extra runtime dependency is opencv-python (>= 4.8); Manager installs requirements.txt, manual installs may need pip install opencv-python. No models, no keys. You do need Impact Pack (or another SEGS producer) installed to have anything to draw - this pack doesn't ship detectors. Category Lukutar/Image.
Common issues
- Captions are ASCII-only. The rendering uses OpenCV's built-in Hershey font, so class names like
faceorhandare fine but anything non-ASCII in a label won't render as intended. - Empty SEGS just passes the image through - no crash, which is the right behavior, but it means an empty detection result silently gives you an un-annotated image. If you expect boxes and see none, check the detector first, not this node.
- Malformed SEGS payloads raise a clear error describing what it expected - the node validates the shape before drawing.
- The pack is young (v0.10.x, 2026) with minimal community footprint; the README and the unit-tested
core/code are the best docs you'll find on it.
Inputs (11)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | Image to draw on, e.g. the one the detector ran on | |
| segs | SEGS | Segments from an Impact Pack detector, e.g. SEGM Detector (SEGS) | |
| label_format | COMBO | label+confidence | label: class name only; label+confidence: append the score, e.g. 'face 91%' |
| draw_masks | BOOLEAN | true | Tint the segment masks |
| mask_alpha | FLOAT | 0.450–1 | Mask tint strength |
| thickness | INT | 00–32 | Box border width in pixels; 0 = auto from the image height |
| font_scale | FLOAT | 1.00.1–10 | Multiplier on the auto caption size |
| color_modeopt | COMBO | auto | auto: stable color per class from a built-in palette; single: one user color for all |
| color_ropt | INT | 00–255 | single color mode: red channel |
| color_gopt | INT | 2550–255 | single color mode: green channel |
| color_bopt | INT | 00–255 | single color mode: blue channel |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |
| segs | SEGS | — |