MeshGraphormer Depth Map Preprocessor Provider (SEGS)
Hand-fixing depth, per detected region
- SEGS_PREPROCESSOR
If you're here, you probably have mangled hands and you've heard MeshGraphormer is the fix. This node is the piece that lets you run that fix per detected region inside an Impact Pack detailer, instead of over the whole image at once. It doesn't do anything by itself and it has no widgets to set - it's a provider. You wire its output into Impact Pack's ApplyControlNet (SEGS) node, and it hands that node the MeshGraphormer preprocessor to run on each segment it's detailing.
Quick context on why this exists. Impact Pack's whole trick is detect-crop-resample: find a region, crop it, run a fresh sampling pass at full resolution, paste it back. That's how faces stop coming out as smudges. Hands are the same problem but harder, because the model needs a structural hint to know what a correct hand looks like. MeshGraphormer produces exactly that hint - a depth map of a plausible hand mesh - which you then feed a depth ControlNet during the resample. So the chain is: detect the hand → this provider makes the hand-depth → depth ControlNet steers the redraw → clean fingers.
How it works
MeshGraphormer is a hand-reconstruction model (it's the one behind HandRefiner). Given a crop containing a hand, it fits a 3D hand mesh and renders that mesh as a depth map. Feed that depth to a ControlNet and the resample is constrained to a real hand shape rather than the six-fingered horror the base model produced.
The "Provider (SEGS)" part is the Inspire wrapper. SEGS is Impact Pack's data type for detected regions (bounding box + mask + crop, one per detection). A preprocessor provider is a small object that says "when you process each SEGS region, run this preprocessor on it." This node is the MeshGraphormer version of that. The actual MeshGraphormer implementation lives in Fannovel16's ControlNet Auxiliary Preprocessors - Inspire just makes it usable in the SEGS pipeline.
The inputs and outputs that matter
There are no inputs and no widgets - that's not a bug, it's the design. All the configuration happens on the ControlNet and detailer nodes downstream.
The single output is SEGS_PREPROCESSOR. It wires into the preprocessor slot of Impact Pack's ApplyControlNet (SEGS). That node also wants the SEGS themselves, a depth ControlNet model, and the image - this provider is just the "how to preprocess" half.
How to install it
ComfyUI Manager: search ComfyUI Inspire Pack, install, restart. Manual:
cd ComfyUI/custom_nodes
git clone https://github.com/ltdrdata/ComfyUI-Inspire-Pack
then restart. It's a Dr.Lt.Data pack - the same person behind ComfyUI-Manager and the Impact Pack this node is built to feed.
Two hard dependencies, both of which you need or the node is dead weight: the Impact Pack (for the SEGS pipeline and ApplyControlNet (SEGS)) and ControlNet Auxiliary Preprocessors (for the actual MeshGraphormer model). The README calls this out - the SEGS preprocessor wrappers depend on Fannovel16's aux nodes. You'll also want a hand depth ControlNet downloaded for whatever base model you're on.
Common issues & troubleshooting
It doesn't detect the hand at all. This is the big one, and it's not really your fault. MeshGraphormer was trained to reconstruct meshes from correctly shaped hands, so a badly melted AI hand - the exact thing you're trying to fix - often isn't detected as a hand in the first place. Community consensus is blunt about it: it works like magic when it fires, and it misses maybe half the time, worse with two hands where it'll grab one and ignore the other. Partly-wrong hands (wrong finger count, odd pose) get missed too, not just fully melted ones.
Workarounds people actually use. Do a first pass to get the hands roughly right (better base model, a hands LoRA, or just a good seed), then run MeshGraphormer to clean them up - it detects a nearly-right hand far more reliably than a disaster. Some people use a plain bbox/segmentation detector to find the hand and reserve MeshGraphormer for generating the depth on the crop, which sidesteps its weak detection.
No preprocessor options / import errors. That means ControlNet Auxiliary Preprocessors isn't installed or failed to load. Install it via Manager and restart; MeshGraphormer's weights download on first use, so give the first run time and watch the console.
Nothing changes after the pass. Check the downstream depth ControlNet is actually loaded and the strength isn't zero. This node only supplies the depth map; the ControlNet and detailer do the work.
Inputs (0)
No inputs
Outputs (1)
| Name | Type | Description |
|---|---|---|
| SEGS_PREPROCESSOR | SEGS_PREPROCESSOR | — |