Nodes/ComfyUI_FaceShaper/FaceShaper Load FaceAlignment
ComfyUI Node

FaceShaper Load FaceAlignment

FaceShaper's third detector option, zero manual downloads

By fssorc·Created 2 years ago·Updated 2 years ago· 188
FaceShaper Load FaceAlignment
    • cropper
    face_detectorblazeface_back_camera
    landmarkrunner_devicetorch_gpu
    face_detector_devicecuda
    face_detector_dtypefp16
    keep_model_loadedtrue

    The display name - "FaceShaper Load FaceAlignment" - puts it in the same family as the other two loaders (FaceShaperLoadInsightFaceCropper, FaceShaperLoadMediaPipeCropper), but it's built on a different library entirely: 1adrianb/face-alignment, a BlazeFace-based face detector and landmark model with a free, unrestricted license. If InsightFace's non-commercial weight license rules it out and MediaPipe's weaker extreme-angle detection worries you, this is the third door.

    Where it fits

    All three loader nodes produce the same thing - a cropper handle that plugs into FaceShaperCropper - and are interchangeable for that purpose. This one's specific selling point, per the pack's own README, is that it's free to use with no licensing caveat attached (unlike InsightFace), and unlike the other two, its model weights don't need to be fetched by hand at all - they download themselves automatically the first time the node runs.

    The inputs that matter

    This loader has more knobs than the other two, because it's stitching together two separate sub-components - a face detector and a landmark runner - each with its own device setting:

    • face_detector (blazeface / blazeface_back_camera / sfd, default blazeface_back_camera) - which underlying detector model to use. blazeface_back_camera is tuned for the kind of framing a rear phone camera produces; blazeface is the plain front-camera-style variant; sfd (S3FD) is a heavier, generally more accurate detector if you'd rather trade speed for accuracy.
    • landmarkrunner_device (default torch_gpu) and face_detector_device (default cuda) - separate device controls for the landmark model and the face detector respectively. They're independent settings because the two pieces come from different underlying libraries; if you're troubleshooting a slow or failing run, check both, not just one.
    • face_detector_dtype (fp16 / bf16 / fp32, default fp16) - precision for the detector. fp16 is the default and fine for most GPUs; drop to fp32 if you're getting numerically odd detections on older hardware that doesn't handle fp16 well.
    • keep_model_loaded (default true) - keeps both sub-models resident between runs.

    The single output, same as the other loaders, is cropper (FSMCROPPER), wired into FaceShaperCropper's cropper input.

    Installing it

    Through ComfyUI Manager, search "ComfyUI_FaceShaper," or manually:

    cd ComfyUI/custom_nodes
    git clone https://github.com/fssorc/ComfyUI_FaceShaper
    

    then restart. Unlike the InsightFace and MediaPipe loaders, this one has no separate pip install or manual model-download step called out in the README beyond the pack's own requirements - the three model files it needs (anchors.npy, blazeface.pth, blazefaceback.pth) download automatically the first time you run this node, landing in your system's torch hub cache (~/.cache/torch/hub/checkpoints/ on Linux, C:\Users\[UserName]\.cache\torch\hub\checkpoints\ on Windows). You still need the shared landmark.onnx / landmark_model.pth files from Kijai/LivePortrait_safetensors under models/liveportrait, same as the other two loaders - that part isn't optional regardless of which detector backend you choose.

    Common issues & troubleshooting

    First run fails or hangs with no obvious model-loading error. Since the BlazeFace weights auto-download on first use rather than being bundled or pre-fetched, this node needs working internet access the first time it runs. If you're on an isolated or firewalled machine, download anchors.npy, blazeface.pth, and blazefaceback.pth manually from the BlazeFace-PyTorch repo and place them in the torch hub cache path yourself.

    Confusing device settings, or a run that's slower than expected. Because landmarkrunner_device and face_detector_device are separate controls, it's easy to set one to a GPU device and leave the other on CPU by accident. Check both if performance seems off - this is the most beginner-unfriendly part of an otherwise straightforward loader.

    Detections look off on unusual framing. Try swapping face_detector between blazeface, blazeface_back_camera, and sfd - they're tuned differently, and a mismatch between the detector variant and your actual photo framing is a plausible, cheap thing to try before assuming something's broken.

    CategoryFaceShaper

    Inputs (5)

    NameTypeDefaultDescription
    face_detectorCOMBOblazeface_back_camera3 options: blazeface, blazeface_back_camera, sfd
    landmarkrunner_deviceCOMBOtorch_gpu5 options: CPU, CUDA, ROCM, CoreML, torch_gpu
    face_detector_deviceCOMBOcuda3 options: cuda, cpu, mps
    face_detector_dtypeCOMBOfp163 options: fp16, bf16, fp32
    keep_model_loadedBOOLEANtrue

    Outputs (1)

    NameTypeDescription
    cropperFSMCROPPER