SEGSLabelFilterDetailerHookProvider
Filter which detected labels a detailer actually touches
- segs
- DETAILER_HOOK
Impact Pack has a plain SEGS Filter (label) node that splits a SEGS into matched and unmatched buckets by label. SEGSLabelFilterDetailerHookProvider is the same label-matching logic packaged as a DETAILER_HOOK instead - per the README, it's one of the "wrapper node[s] that provides SEGSFilter nodes to be applied in FaceDetailer or Detector by creating DETAILER_HOOK." The point of the hook version is that it plugs directly into a detailer_hook (or a compatible detector) input, letting a single detailer node apply label-based filtering as part of its own processing, without you inserting a separate filter node and rewiring two branches around it.
The inputs
segs(SEGS, required) - a live SEGS input, wired alongside the filter settings. This is worth flagging explicitly: unlike some of the pack's pure-config hook providers, this one also takes a real SEGS connection rather than being built purely from parameters. Wire it from wherever your detections are already flowing - typically the same source feeding the detailer or detector this hook attaches to.preset- the same large label catalog (over a hundred entries) the plainSEGS Filter (label)node uses:all,hand,face,mouth,eyes,eyebrows,pupils, left/right splits of each, and more - built to cover the fine-grained per-landmark labels a tool like MediaPipe FaceMesh produces, not just coarse categories.labels(multiline STRING) - free-text entry for custom or multiple labels when the preset list doesn't cover what your detector actually assigns. Use this if you're working with a detector that emits its own custom class names.
Output is a single DETAILER_HOOK - wire it into the detailer_hook input of a FaceDetailer, a Detailer (SEGS), or a compatible detector node.
What it's for
The practical case: your detector finds several types of things in one pass (say, hands and faces together), but you only want the detailer's work applied to one label - faces, but not hands. Rather than manually splitting the SEGS with a filter node and running two separate detailer branches, this hook lets one detailer apply the filter internally as part of its own hook-driven processing.
How to install it
Via ComfyUI Manager: search ComfyUI Impact Pack, install, restart. 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. No models specific to this hook - you'll still need whatever detector produced the SEGS labels you're filtering on in the first place (a SEGM Detector, BBOX Detector, MediaPipe FaceMesh to SEGS, etc.), which lives elsewhere in your graph.
Common issues & troubleshooting
Filter doesn't seem to match anything. Same root cause as the plain filter node: the label you picked doesn't match what your detector actually assigned. A generic BBOX face detector often just labels everything face (or its class name), so filtering for something like eyes only works with a detector that emits per-landmark labels, such as MediaPipe FaceMesh. Check what your specific detector actually outputs before assuming the hook is broken.
Unsure whether to use this hook or the plain SEGS Filter (label) node. If you're building an explicit two-branch graph (matched detections go one way, unmatched go another, each with their own separate processing), the plain filter node with its filtered_SEGS/remained_SEGS outputs gives you both branches directly and is more transparent. Reach for the hook version specifically when you want one detailer to internally restrict which labels it acts on, without building that branching yourself.
Custom labels aren't matching. Confirm the exact string you typed into labels matches your detector's label output character-for-character - label matching is exact-text, not fuzzy, the same as it is on the non-hook filter node.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| segs | SEGS | — | |
| preset | COMBO | 106 options: all, hand, face, mouth, eyes, eyebrows, +100 | |
| labels | STRING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| DETAILER_HOOK | DETAILER_HOOK | — |