🐳人像美化
A free, model-free portrait retoucher
- image
- IMAGE
Skin Enhancement (🐳人像美化) is a one-node portrait retoucher: smooth the skin, whiten it, add warmth, kill blemishes, sharpen the eyes, brighten teeth - all of it deterministic and free. No model, no VRAM, no per-image seed lottery. That's the whole appeal, and it's worth being clear about what you're getting: this is a classic OpenCV beauty filter, the same genre as the "smooth skin" sliders in every phone camera app, not an AI detailer. If a face is fundamentally broken - melted features, wrong anatomy - this node can't fix that. That's an ADetailer re-render job. But for "good render, slightly plastic skin and dull eyes," this is the cheapest polish you'll get.
The pipeline reads like a photography retoucher's checklist, applied through a skin mask. First it detects skin using the classic YCrCb color range (a well-trodden approach that mostly works on human skin tones and mostly ignores background), then cleans the mask with morphology. On that mask it applies, in order: bilateral-filter smoothing (edge-preserving blur, so you don't lose facial contours - the exact tool the KB's post-processing doc says to use for skin instead of a plain Gaussian), a detail-preservation pass that re-adds a high-pass detail layer so the result isn't a wax sculpture, HSV-based whitening, a blush pass that adds warmth to the red channel, and median-blur blemish removal. Eyes and teeth get their own global passes: sharpening for eyes, and a near-white region boost for teeth.
The inputs map cleanly onto that list: 磨皮强度 (smoothing, 0-1, default 0.5), 美白程度 (whitening, 0-1), 红润度 (blush/warmth, 0-1), 细节保留 (detail preservation, 0-1, default 0.5 - the antidote to the "airbrushed plastic" look), 去瑕疵 (blemish removal, on by default), 眼睛增强 (eye sharpening, 0-1), and 牙齿美白 (teeth whitening, 0-1). Input is image, output is the enhanced IMAGE. Batch-safe - it loops every frame.
How to actually use it
Start with defaults and go gentle. The slider that separates "nice" from "doll" is 细节保留: keep it at 0.5 or above while smoothing is up, and resist the urge to crank 磨皮强度 past ~0.6 on a photo. 美白程度 and 红润度 default to 0 for a reason - a touch of both reads as a healthy retouch, a lot of both reads as a filter from 2012. For a before/after check, it's a small pack (this one has no image-comparison node - it's just a single image in, image out), so split the workflow and preview.
Where people get burned: the skin detection is a color-range heuristic, so anything that's skin-colored but isn't skin - a wooden floor, a red-brown background, an orange shirt - gets smoothed too. And because the eye/teeth passes are global rather than landmark-based (the code admits these are simplified), a frame with no visible face can still get contrast-sharpened in odd places. Feed it portraits, not landscapes.
Install
Part of Pond Nodes:
cd ComfyUI/custom_nodes
git clone https://github.com/Pondowner857/comfy_Pond_Nodes
cd comfy_Pond_Nodes
pip install -r requirements.txt
Restart after (or install via Manager under "comfy_Pond_Nodes"). This node needs opencv-python, which the pack's requirements pull in automatically. Usual pack caveat: if your console scrolls endlessly after install, check for a comfyui_HiDream-Sampler conflict - the README calls it out explicitly.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| 磨皮强度 | FLOAT | 0.500–1 | — |
| 美白程度 | FLOAT | 0.000–1 | — |
| 红润度 | FLOAT | 0.000–1 | — |
| 细节保留 | FLOAT | 0.500–1 | — |
| 去瑕疵 | BOOLEAN | true | — |
| 眼睛增强 | FLOAT | 0.000–1 | — |
| 牙齿美白 | FLOAT | 0.000–1 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |