FaceShaper Showlandmarks
See what FaceShaper actually detected, before you trust the output
- crop_info
- croppedImg
- sourceImg
- landmark on source
- landmark on cropped
- keyPoints on cropped
If a FaceShaper result looks wrong - a warp that's stretched in a weird direction, a shape match that doesn't seem to be matching anything - this is the node to reach for before you start second-guessing your AlignType setting. It doesn't process anything; it just draws the landmarks FaceShaper actually detected onto your images, so you can see exactly what the pipeline thinks it found. Half the time a bad result traces back to bad detection, and this is the only node in the pack built to show you that directly.
What it does
You feed it a crop_info (from FaceShaperCropper) plus, optionally, the source and/or cropped images, and it renders the detected facial landmarks on top of them as visual output - three different views of the same detection, so you can inspect it from whichever angle is most useful for debugging.
The inputs that matter
crop_info(CROPINFO, required) - the crop and landmark data to visualize, fromFaceShaperCropper.croppedImg/sourceImg(IMAGE, both optional) - provide either or both depending on which view you want landmarks drawn onto. If you skip one, you just won't get its corresponding output image.landmark_lines(defaultfalse) - when on, draws connecting lines between landmark points (an outline) instead of just dots. Turn this on if you want to see the face's contour shape at a glance rather than individual points.writeIndexOnKeyPoints(defaultfalse) - labels each landmark with its point index. Useful if you need to identify a specific landmark - for instance, figuring out exactly which points driveAlignType: JawLineinFaceShaperMatchV2.fontSize(default0.25, range 0.1–5) - size of that index text, if enabled.rescaleCroppedImg(default512, range 128–2048, step 64) - resizes the cropped-image-based outputs to this size for a consistent, readable view regardless of the crop's actualdsize.
Outputs, all IMAGE: landmark on source (the full original photo with landmarks overlaid), landmark on cropped (the cropped face with landmarks and, if enabled, connecting lines), and keyPoints on cropped (just the points on the cropped face, no lines). Route whichever of these you need to a Preview Image node - this is a diagnostic tool, not something that normally feeds back into the rest of the pipeline.
Installing it
Through ComfyUI Manager, search "ComfyUI_FaceShaper," or manually:
cd ComfyUI/custom_nodes
git clone https://github.com/fssorc/ComfyUI_FaceShaper
then restart. No extra dependencies of its own - this node just draws on top of data other nodes already produced, so once the rest of the pipeline (a cropper loader plus FaceShaperCropper) is working, this one works too.
Common issues & troubleshooting
Both output images are blank or missing. You need to actually supply croppedImg and/or sourceImg - they're optional inputs, and if you leave both empty there's nothing for this node to draw onto.
Landmarks look reasonable but the final FaceShaperMatchV2 output is still wrong. That tells you the problem isn't detection - it's downstream, in your AlignType / landmarkType choice or in how the crops were paired. This node is most useful for ruling detection in or out as the cause before you go tuning other settings.
Landmarks are clearly in the wrong place, or missing entirely on a valid face. That's a real detection failure, and the fix is upstream - try a different cropper loader (InsightFace generally handles harder angles better than MediaPipe), or adjust detection_threshold if you're using the InsightFace loader.
Text labels from writeIndexOnKeyPoints are unreadable, too small or overlapping. Bump fontSize up, or bump rescaleCroppedImg up so the underlying image has more room for the labels to spread out.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| crop_info | CROPINFO | — | |
| landmark_lines | BOOLEAN | false | — |
| writeIndexOnKeyPoints | BOOLEAN | false | — |
| fontSize | FLOAT | 0.250.1–5 | — |
| rescaleCroppedImg | INT | 512128–2048 | — |
| croppedImgopt | IMAGE | — | |
| sourceImgopt | IMAGE | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| landmark on source | IMAGE | — |
| landmark on cropped | IMAGE | — |
| keyPoints on cropped | IMAGE | — |