EmAySee BBox to Segs
You know the box, skip the detector — hand-drawn bounding boxes into SEGS
- image
- bbox_1
- bbox_2
- bbox_3
- bbox_4
- bbox_5
- bbox_6
- bbox_7
- bbox_8
- bbox_9
- bbox_10
- segs
Most of the time you let a detector find the face. Sometimes you know where the face is - you can see it, you can measure it - and running a YOLO over the whole image is wasted effort. EmAySee BBox to Segs lets you type the region yourself: up to ten x1, y1, x2, y2 bounding boxes, plus the source image, and out comes a proper Impact Pack SEGS stream.
That's the whole value proposition, and it's a real one. The detailer ecosystem (FaceDetailer, Detailer for Each, everything downstream of a SEGS) only speaks SEGS. If you want to detail a specific region without a detector deciding where that region is - because the box is fixed, or the detection model keeps missing it - you need a way to hand-feed the box. This node converts your coordinates into the exact SEG item shape the detailers expect, so it drops into an existing FaceDetailer pipeline as a drop-in replacement for the detector output.
How it works
For each of the bbox_1 through bbox_10 inputs, it takes the [x1, y1, x2, y2] coordinates, clamps them to the image bounds so a slightly-out-of-frame box can't crash anything, crops the image to that region, and builds a minimal SEG item with a full-white mask covering the whole crop. Each item gets a label (box_1, box_2, …) and a confidence of 1.0. The collected items come out as a (shape, items) SEGS tuple. The source (py/EmAySee_SegsUnion.py) even defines its own minimal SEG class rather than depending on Impact Pack's - the author clearly hit the classic "SEGS item is missing post_crop_region" error and worked around it.
The inputs that matter
- image - the frame your boxes refer to. Coordinates are in this image's pixel space.
- bbox_1 through bbox_10 - optional BBOX inputs in
[x1, y1, x2, y2]order (the same convention Impact Pack's BBOX type uses). Fill only as many as you need; empty slots are skipped.
Output is a single segs, ready for Detailer (SEGS) or any SEGS consumer.
Install
Ships in the EmAySee pack, installable once for everything:
cd ComfyUI/custom_nodes
git clone https://github.com/EmAySee/ComfyUI_EmAySee_CustomNodes
Restart ComfyUI (or Manager → "ComfyUI_EmAySee_CustomNodes"). Category: EmAySee/Segs. No requirements.txt - but note the BBOX input type and the SEGS output type come from Impact Pack, so install that too or the node won't even render its sockets.
Gotchas
The main gotcha is the coordinate convention: it's [x1, y1, x2, y2] (top-left, bottom-right), not [x, y, width, height], and the author's code is strict about clamping. Get the order wrong and your "detail the face" box details the floor. Also worth knowing: the white mask is the entire crop, so there's no mask refinement here - whatever you box is what gets detailed, for better or worse. And as always with this pack: hobbyware, no support, no guarantees - but the conversion logic is short and readable if you ever need to debug a bad box.
Inputs (11)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| bbox_1opt | BBOX | — | |
| bbox_2opt | BBOX | — | |
| bbox_3opt | BBOX | — | |
| bbox_4opt | BBOX | — | |
| bbox_5opt | BBOX | — | |
| bbox_6opt | BBOX | — | |
| bbox_7opt | BBOX | — | |
| bbox_8opt | BBOX | — | |
| bbox_9opt | BBOX | — | |
| bbox_10opt | BBOX | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| segs | SEGS | — |