SEGS Passer
The Routing Node for the Detailer Pipeline
- segs
- segs
What it is
SEGS Passer takes a SEGS object in one side and hands you the same SEGS object out the other. No processing, no filtering, no conversion - just a typed pass-through, exactly like its Pipe Passer sibling but for the data type that the Impact Pack's automatic-detailing pipeline runs on.
If you've never heard of SEGS, that's fine - it's plumbing, not a topic. SEGS is the Impact Pack's container for "a set of detected segments": the bounding boxes and masks that a detector node emits and that a detailer iterates over. It's the noun everything after the detector is passing around in a FaceDetailer-style workflow. This node is for those moments when that passing needs a little help.
How it works
The implementation is one line: receive segs, return segs. It's a typed router (from the pack's Router/Typed category), meaning the type checker knows it's SEGS before the graph runs - no wildcard any-type looseness. It costs you nothing at runtime; ComfyUI's cache means a pass-through node is essentially free.
So why does it exist? The same three reasons any passer does. Graph legibility: a SEGS wire that has to thread across a busy workflow can be broken into two short wires with a passer at the corner. Splitting: if two detailers or two filters both need the same SEGS, a passer gives you a clean branch point. And organization: passers are how you segment a long pipeline into readable chunks without changing the data. None of it touches the segments; all of it makes the graph easier to live in.
The one input and one output
- segs in β segs out. Same object, unchanged.
That's the whole surface. If you catch yourself wanting a SEGS node with options, you're not looking for a passer - you want a SEGS filter (keep only the largest faces, drop low-confidence regions) or a SEGS reorder, which live in the Impact Pack, not here.
When you'd use it
In any automatic-detailing workflow where the SEGS line needs to bend around the graph, branch to two consumers, or just have a named checkpoint for debugging. The full pattern - detect β filter β detailer β paste - is the core of ComfyUI's detail-loop, and a SEGS passer is the small courtesy node that keeps that loop tidy as it grows.
Installing it
It ships with ComfyUI_Eclipse:
cd ComfyUI/custom_nodes
git clone https://github.com/r-vage/ComfyUI_Eclipse
pip install -r ComfyUI_Eclipse/requirements.txt
then restart, or use Manager and search "Eclipse". Note that SEGS itself is an Impact Pack concept, so the node only shows up in a graph that already has Impact Pack installed - Eclipse handles the passing, Impact provides the type. And the usual lineage warning: the pack was formerly RvTools_v2, legacy nodes were removed in v4.0.0, and the bundled migration tool upgrades old workflows.
Common issues
Almost nothing goes wrong with a pure pass-through, but there's one trap worth naming: because this node is typed to SEGS, it won't accept a raw bbox list or a mask batch - those aren't SEGS, and a typed node will refuse them before the graph runs. If a wire won't connect, the thing you're passing isn't actually SEGS yet; run it through a detector (or the pack's Mask to SEGS node) first.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| segs | COMFY_MATCHTYPE_V3 | SEGS input to be passed through. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| segs | COMFY_MATCHTYPE_V3 | β |