Detect-Enhance-Blend Faces (dlib)
ComfyUI Node Guide
- dlib_model
- face_enhance_model
- image
- image
This is the shortcut node, and if you're new to this pack it's genuinely the one to start with. The face-repair half of the pipeline is normally three separate nodes - Detect Faces, then Enhance Faces, then Blend Faces - each passing face_count, cropped_faces, and face_landmarks down the chain by hand. This node does all three internally and just hands you back a finished photo, no intermediate wiring required.
Under the hood it's running the exact same operations as the manual chain: dlib finds and landmarks the faces, the face-enhancement GAN sharpens each crop, and the landmarks are used to warp and composite the enhanced faces back into the original image at the right position and angle. Nothing about the actual repair logic is different - you're just not exposed to the steps in between.
Required inputs: dlib_model (from Load Face Detector Model), face_enhance_model (from Load Face Enhancer Model), and image. Output: a single image. That's the entire interface - no face_size or model_face_size setting exposed here, so whatever resolution those two loader nodes are configured for is what you get, with no per-call override.
The trade-off is worth knowing before you commit to this node for a whole workflow: you lose the diagnostic face_count output that the manual chain gives you. With Detect Faces run separately, you can glance at face_count and immediately know whether anything was found before spending time wondering why a photo looks unchanged. With this all-in-one node, that visibility is gone - if the output looks the same as the input, you have to reason it out rather than check a number. For a first pass on a batch of photos, or once you trust the pipeline, that's a fine trade for the simplicity. If you're debugging why one specific photo isn't behaving, it's worth temporarily dropping down to the three-node manual version (Detect Faces → Enhance Faces or Enhance Faces Advanced → Blend Faces) just to see the intermediate values.
Install: this node needs everything both of its upstream loaders need, since it wires straight to both. That means dlib installed and working, plus shape_predictor_68_face_landmarks.dat in models/facedetection/, plus a face-enhancement checkpoint (Setting_9_epoch_100 or FaceSR_512) from face_checkpoints.zip in models/checkpoints/. Standard pack install applies first: ComfyUI Manager search "Bringing Old Photos Back to Life," or git clone into custom_nodes/ and restart, then pip install -r requirements.txt against ComfyUI's own Python, not your system one.
Getting dlib itself installed is the real obstacle here, and it's worth taking seriously before you spend time debugging this node specifically. I checked community reports, and it's a genuine, recurring pain point - people have reported losing well over a week to failed dlib installs on Windows before finding the fix. The usual culprit is a Python version mismatch: grab a prebuilt dlib wheel that matches your exact Python version (ComfyUI's portable build often bundles a different minor version than your system Python), or install CMake and let it build from source if nothing prebuilt fits.
If the output image looks unchanged, the README documents that the face-detection step this node wraps returns the original image untouched when no face is found - so before assuming something's broken, it's worth testing the same photo through the manual Detect Faces node just to confirm a face was actually found in the first place.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| dlib_model | DLIB_MODEL | — | |
| face_enhance_model | FACE_ENHANCE_MODEL | — | |
| image | IMAGE | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |