ControlNetApply (SEGS)
Steer the detail pass on each detected region
- segs
- control_net
- segs_preprocessor
- control_image
- vae
- SEGS
When you refine a detected region - a face, a hand, a tile - the detailer regenerates it, and regeneration can wander. A hand comes back with the wrong number of fingers; an upscale tile drifts from the source. ControlNetApply (SEGS) is how you keep the detail pass on a leash: it attaches a ControlNet to your SEGS so that when each region gets resampled, a control signal (depth, a tile condition, openpose, whatever) constrains what comes out. It's the SEGS-scoped version of the ControlNet you already know.
This is the node that makes tiled upscaling with Impact Pack actually reliable, and it's the standard fix for hands and pose staying put through a detail pass.
How it works
Instead of applying a ControlNet to the whole image, it stores the ControlNet against each SEG so the detailer applies it per region during refinement. You get two ways to supply the control image, and the README is specific about how they differ: a control_image "will be cropped and used as input," so each region's control is a matching crop of one full-frame image; a segs_preprocessor "operates by applying preprocessing on-the-fly based on the cropped image during the detailing process." And the precedence is fixed - "if a control_image is given, segs_preprocessor will be ignored." Pick one lane.
The other thing to know: to use a segs_preprocessor, you pull the preprocessor from the Inspire Pack (ltdrdata's companion pack), because Impact Pack doesn't ship the SEGS preprocessor providers itself.
The inputs that matter
segsandcontrol_net- the detections to steer and the ControlNet model. Both required.strength(default 1) - how hard the ControlNet pulls. This is your main dial; for upscales and subtle guidance you'll often drop it under 0.6 so it constrains without flattening detail.start_percent/end_percent(default 0 and 1) - when in the sampling schedule the ControlNet is active. Handy for the classic "guide early, let go late" trick: a depth control at start 0, end ~0.5 shapes structure then steps aside so texture can develop.
Optional: segs_preprocessor (from Inspire Pack), control_image (the crop-and-apply route), and vae. Output is a SEGS carrying the attached ControlNet, which you then hand to your detailer. Want to sanity-check the crops it built? That's what SEGSPreview (CNET Image) is for.
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 on Windows portable), restart. No auto-install since v7.6. A small SAM model downloads to ComfyUI/models/sams on first load. For the segs_preprocessor path you'll also want the Inspire Pack installed.
Common issues
The ControlNet seems to do nothing. Check you actually fed it a control_image or a segs_preprocessor - with neither, there's no control signal. And remember the precedence: supply both and the preprocessor is silently ignored in favor of the image.
Tiles or hands still drift. For a tiled upscale, the right control is a ControlNet Tile model feeding the source as the per-region condition - that's what stops tiles from diverging into patchwork. Missing tile control is the classic cause. Also confirm strength isn't near zero.
You can't find a SEGS preprocessor node. It's not in Impact Pack. The README points you to the Inspire Pack's Preprocessor Provider for the segs_preprocessor input. Install Inspire and it appears.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| segs | SEGS | — | |
| control_net | CONTROL_NET | — | |
| strength | FLOAT | 1.000–10 | — |
| start_percent | FLOAT | 0.0000–1 | — |
| end_percent | FLOAT | 1.0000–1 | — |
| segs_preprocessoropt | SEGS_PREPROCESSOR | — | |
| control_imageopt | IMAGE | — | |
| vaeopt | VAE | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| SEGS | SEGS | — |