Auto Denoise
Stop guessing the face-fix denoise
- image
- face_detector
- custom_denoise
You've got Ultimate Face Fix wired up, faces are getting repaired, and then comes the ritual: bump the denoise, run it, squint at the result, bump it again. Auto Denoise exists to kill that loop. It looks at how big the detected faces actually are in your image and hands you back a number you can feed straight into the fix node's custom_denoise input - with repair_mode set to custom.
The logic is face-size-aware, which is the whole trick. A tiny 40-pixel face in a corner is mangled by the latent and needs a strong pass, so the node recommends high denoise (up to ~0.40). A face that's already large in frame is close to salvageable, so it recommends low (down to ~0.18). It runs the same YOLO detection as the main node - confidence 0.25, minimum face size 24px, up to eight faces per image - computes each face's share of the image area, maps that through a clamped curve, and averages the per-face recommendations. The result is shown right inside the node ("Denoise: 0.286"), and if nothing reads as a face you get "No face is detected" and a 0.0 out instead of a nonsense number.
Inputs and outputs are the whole story, which is refreshing: image in, face_detector in (from the YOLO loader node), and one custom_denoise FLOAT out. No seed, no model, no prompt. It's a pure measurement node.
The honest caveat: it averages. A group shot with one big face and several tiny background faces produces a compromise number that's exactly right for neither. Treat it as a starting point, not a law - and remember it only does anything if the fix node is in Custom repair mode, so check that before you wonder why nothing changed. It also uses the pack's "maximum" detection quality internally, which means tiled detection - fine for a single image, slightly wasteful at batch scale, though it's the same detection the fix node would run anyway.
Install is the shared pack install (search Ultimate Face Fix in ComfyUI Manager, or the git clone + pip install -r requirements.txt + python scripts/prepare_models.py --comfy-root ../.. steps on the pack page), then restart. It needs no extra models beyond what the pack already fetched, because it reuses the same YOLO detector you're loading for the fix node.
Where this actually pays off: when you start from a downloaded example workflow or a new checkpoint and have zero intuition for the right denoise, or when you're processing a batch of images with wildly different face sizes. Wire the custom_denoise output into the fix node, switch to Custom mode, and let the image tell you what it needs.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| face_detector | FACE_FIX_DETECTOR | Connect Load Face Fix Detector (YOLO). |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| custom_denoise | FLOAT | Connect to custom_denoise while Ultimate Face Fix uses Custom repair mode. |