Nodes/ComfyUI-LukutarNodes/SEGS BBox Overlay
ComfyUI Node

SEGS BBox Overlay

SEGS BBox Overlay

By Mistress-Lukutar·Created 7 days ago·Updated 2 days ago· 1
SEGS BBox Overlay
  • image
  • segs
  • image
  • segs
label_formatlabel+confidence
draw_maskstrue
mask_alpha0.45
thickness0
font_scale1.0
color_modeauto
color_r0
color_g255
color_b0

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 - label for just the class name, or label+confidence for face 91% (the default).
  • draw_masks / mask_alpha - tint the segment masks at the given strength (default 0.45). Toggle boxes only to 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. single draws everything in one RGB color you set via color_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 URLhttps://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 face or hand are 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.
CategoryLukutar/Image

Inputs (11)

NameTypeDefaultDescription
imageIMAGEImage to draw on, e.g. the one the detector ran on
segsSEGSSegments from an Impact Pack detector, e.g. SEGM Detector (SEGS)
label_formatCOMBOlabel+confidencelabel: class name only; label+confidence: append the score, e.g. 'face 91%'
draw_masksBOOLEANtrueTint the segment masks
mask_alphaFLOAT0.450–1Mask tint strength
thicknessINT00–32Box border width in pixels; 0 = auto from the image height
font_scaleFLOAT1.00.1–10Multiplier on the auto caption size
color_modeoptCOMBOautoauto: stable color per class from a built-in palette; single: one user color for all
color_roptINT00–255single color mode: red channel
color_goptINT2550–255single color mode: green channel
color_boptINT00–255single color mode: blue channel

Outputs (2)

NameTypeDescription
imageIMAGE
segsSEGS