From SEG_ELT
Crack open a single detection and read its parts
- seg_elt
- seg_elt
- cropped_image
- cropped_mask
- crop_region
- bbox
- control_net_wrapper
- confidence
- label
This is a power-user node, and the README files it under "experimental" for a reason - but if you're doing anything custom with detections, it's how you get your hands on the raw pieces. A SEGS is a collection; a SEG_ELT is one element of it - a single detected thing. From SEG_ELT decomposes that one element into all its component parts so you can inspect them, route them, or feed them into logic that a normal SEGS chain never exposes.
You reach for it after DecomposeSEGS (which splits a SEGS into individual SEG_ELTs) when you want to do something per-detection that the packaged detailer nodes don't offer: pull the cropped image out, read the confidence score to make a decision, grab the exact bounding box coordinates.
How it works
The pack's SEG_ELT nodes are its escape hatch into the internals of a detection. Where the detailer nodes treat a detection as an opaque blob to refine and paste, this node unpacks it. The README lists the SEG_ELT family under "SEGS_ELT Manipulation" as experimental tooling for "detailed manipulation," and From SEG_ELT is the read side - it extracts, it doesn't modify (that's Edit SEG_ELT's job).
The inputs and outputs
One input: seg_elt - a single decomposed detection. The value is in the outputs, and there are a lot of them:
seg_elt- the element passed straight through, so you can chain it onward.cropped_imageandcropped_mask- the actual pixels and mask for this one detection.crop_regionandbbox- the geometry: where the crop sits and where the detection box is.control_net_wrapper- any ControlNet attached to this detection.confidence- the detector's score for this hit, as a FLOAT. This is the useful one for logic: branch on it to drop low-confidence detections.label- the detection's label, as a STRING.
That confidence-and-label pair is why the node exists for most people: it lets you build conditional workflows that treat a shaky 0.4 detection differently from a solid 0.9 one, using Impact Pack's logic nodes.
How to install it
ComfyUI Manager: search ComfyUI Impact Pack, install, restart. Manual: cd ComfyUI/custom_nodes && git clone https://github.com/ltdrdata/ComfyUI-Impact-Pack, install requirements into ComfyUI's Python (pip install -r requirements.txt, or ..\..\..\python_embeded\python.exe -m pip install -r requirements.txt for Windows portable), restart. No auto-install since v7.6. A small SAM model downloads to ComfyUI/models/sams on first load.
Common issues
cropped_image is empty. A SEG_ELT only carries an image if the SEGS it came from had one - fresh detector output is mask-and-geometry only, no pixels. Run it through SEGSDetailer first, or set an image with Set Default Image for SEGS before decomposing, if you need the crop.
You fed it a whole SEGS. This node wants a single SEG_ELT, not the collection. Put a DecomposeSEGS in front to split the SEGS into individual elements first; feeding the collection directly won't connect.
It feels fiddly because it is. The README flags the entire SEG_ELT family as experimental. If you just want to refine faces, you never need this - the standard detect / detail / paste nodes handle it. Reach for From SEG_ELT only when you're building per-detection logic that the packaged nodes can't express.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| seg_elt | SEG_ELT | — |
Outputs (8)
| Name | Type | Description |
|---|---|---|
| seg_elt | SEG_ELT | — |
| cropped_image | IMAGE | — |
| cropped_mask | MASK | — |
| crop_region | SEG_ELT_crop_region | — |
| bbox | SEG_ELT_bbox | — |
| control_net_wrapper | SEG_ELT_control_net_wrapper | — |
| confidence | FLOAT | — |
| label | STRING | — |