DWPreprocessor Provider (SEGS)
DWPose control for Impact Pack's per-region ControlNet
- SEGS_PREPROCESSOR
This one's easy to misread as a normal pose preprocessor. It isn't. It's an adapter that hands a DWPose preprocessor to the Impact Pack's ApplyControlNet (SEGS) node, so that when Impact detects and crops regions of your image, each cropped segment gets its own pose skeleton computed at the right resolution before ControlNet is applied to it. The output isn't an image - it's a SEGS_PREPROCESSOR that only makes sense inside Impact Pack's detect-crop-refine machinery.
DWPose itself is worth knowing: it's the improved OpenPose detector, better at hands than the original, giving you body, face, and hand keypoints. Using it inside the SEGS flow means you can, say, run a detailer pass over each person Impact found and steer each one's pose individually, rather than applying one global pose map to the whole frame. That's the payoff - per-region structural control, computed on the crop so a small figure gets a properly-resolved skeleton instead of a mangled one.
How it works
The Impact Pack's SEGS pipeline detects regions (via a detector), crops them, and can run ControlNet on each crop. A "preprocessor provider" is what tells that pipeline how to build the ControlNet hint for each crop. This node packages up the DWPose settings - which keypoint groups to detect, at what resolution, and which model files to use - and outputs them as a SEGS_PREPROCESSOR object. Impact then calls it per segment.
The inputs and outputs that matter
- detect_hand / detect_body / detect_face - which keypoint groups DWPose extracts. All on by default; drop face or hands if you only care about body pose.
- bbox_detector and pose_estimator - the model files (a YOLOX-family detector plus a DW pose model). Defaults are sensible; these are the weights DWPose runs.
- resolution_upscale_by - scales the detection resolution on the crop.
The single output is SEGS_PREPROCESSOR - it wires into ApplyControlNet (SEGS) in the Impact Pack, nowhere else.
Installing it
Grab the Inspire Pack through ComfyUI Manager (search "Inspire Pack", install, restart), or:
cd ComfyUI/custom_nodes
git clone https://github.com/ltdrdata/ComfyUI-Inspire-Pack
Then restart. Because it's a DWPose wrapper, the README is explicit that you also need Fannovel16's ComfyUI ControlNet Auxiliary Preprocessors installed - that's where the actual DWPose implementation lives.
Where people get tripped up
Two dependencies, and missing either one is the usual failure. This node is glue between two other packs: the Impact Pack (for the SEGS pipeline and the ApplyControlNet (SEGS) node it feeds) and comfyui_controlnet_aux (for DWPose itself). Install the Inspire Pack alone and the node will sit there with nothing to connect to. Beyond that, the model files (the YOLOX detector and DW pose weights) download on first use - if the dropdown is empty or a run fails reaching for them, let ComfyUI Manager fetch the ControlNet Aux models, or drop them in manually. Keep Inspire, Impact, and ControlNet Aux updated together; the Inspire README carries version-compatibility notes for exactly this trio.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| detect_hand | BOOLEAN | true | — |
| detect_body | BOOLEAN | true | — |
| detect_face | BOOLEAN | true | — |
| resolution_upscale_by | FLOAT | 1.00.5–100 | — |
| bbox_detector | COMBO | yolox_l.onnx | 5 options: yolox_l.torchscript.pt, yolox_l.onnx, yolo_nas_l_fp16.onnx, yolo_nas_m_fp16.onnx, yolo_nas_s_fp16.onnx |
| pose_estimator | COMBO | dw-ll_ucoco_384_bs5.torchscript.pt | 3 options: dw-ll_ucoco_384_bs5.torchscript.pt, dw-ll_ucoco_384.onnx, dw-ll_ucoco.onnx |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| SEGS_PREPROCESSOR | SEGS_PREPROCESSOR | — |