你跑出来的人像皮肤光滑到像塑料:没有毛孔、没有微弱泛红、没有汗毛、没有微阴影,看着不是 CG 就是被磨皮滤镜推到底。这是 AI 图最容易被一眼识破的特征之一,也是”AI 照片”始终给人不真实感的最大根源。
最快修法: 把 face-restore 的强度调低(在 Automatic1111 / Forge 里是 CodeFormer visibility 滑块,不是 weight),Prompt 里显式写 skin pores 和 natural skin texture,再加 film grain。如果你用 Flux,最大的杠杆是上一个写实/细节 LoRA 加上降低蒸馏引导值。如果你用 Midjourney,加 --style raw 和真实相机器材。
为什么会这样
三股力量叠加,而且每个工具都中招:
- 训练数据本身就修过。 大多数人像和图库照片进数据集前就被磨皮了,所以模型学到的”平均皮肤”本来就是光滑的。
- face-restore 和 detailer 步骤默认就磨皮。 CodeFormer 和 GFPGAN 的训练目标就是在那批修过的数据上最大化人脸相似度,所以默认往同一个外观推。
- 你的 Prompt 主动要了它。
beautiful、perfect skin、flawless这些词直接对应训练集里最光滑、修得最狠的样本。
你在用哪个工具?
修法因流程而异,先对号入座。
| 工具 | 塑料感主因 | 第一个该改的 |
|---|---|---|
| Automatic1111 / Forge(SD1.5、SDXL) | Restore faces / CodeFormer visibility 太高 | CodeFormer visibility 降到约 0.3;weight 调高到接近 1.0 |
| ComfyUI(SDXL、Pony) | FaceDetailer denoise 太高;没有皮肤 LoRA | FaceDetailer denoise 降到约 0.3;上一个皮肤/细节 LoRA |
| Flux(dev / Krea) | 蒸馏模型自带磨皮偏向 | 上写实/细节 LoRA;蒸馏引导值降到约 2.5 |
| Midjourney v7 | 默认风格化 | 加 --style raw --v 7 + 真实相机器材 |
| 所有 | Prompt 里有 “perfect/flawless/smooth skin”;没有颗粒线索 | 删掉这些词;加毛孔 + 颗粒 Prompt |
CodeFormer 的坑(先看这段)
这是最常见的误区。在 Automatic1111 和 Forge 里,face-restore 面板有两个滑块,作用恰好相反:
CodeFormer visibility(0 到 1):修复后的脸混合进来的强度。越高越磨皮。 这才是强度旋钮。CodeFormer weight(0 到 1):是保真度权重,而且是反的——weight = 0修复最激进(最磨皮),weight = 1最大限度保留原脸(最不磨皮)。
所以修塑料感的正确做法是降 visibility、把 weight 调高到接近 1.0——而不是”把 weight 调低”,那样只会更糟。截至 2026 年 6 月,这个反向关系还在坑人,因为网上流传的老建议都说”把 weight 调小”。
推荐的 face-restore 设置(A1111 / Forge):
CodeFormer visibility: 0.3 (或设 0 直接关掉)
CodeFormer weight: 0.9 (越接近 1 越不磨皮)
GFPGAN visibility: 0 (GFPGAN 没有保真度控制,磨得更狠)
如果你只是需要 face-restore 修眼睛,把 visibility 留在 0.3,让它只纠正明显的对称错误,不让它压平纹理。在当前的 A1111(1.6+)里,如果 txt2img 里看不到这些滑块,去 Settings > User interface > [info] Quicksettings list 里开出来,或者直接在 Extras 标签页跑修复——那里有 GFPGAN/CodeFormer 的 visibility 滑块。
分工具修法
Stable Diffusion(Automatic1111 / Forge / ComfyUI)
1. 降低 face-restore 强度,用上面的 CodeFormer 设置。在 ComfyUI 的 FaceDetailer 节点里,对应的杠杆是 denoise:
FaceDetailer denoise: 0.30 (原来约 0.45)
guide_size / max_size: 保持默认
2. Prompt 里显式要皮肤质感。 正向 Prompt 加:
(skin pores:1.1), (natural skin texture:1.2), (visible peach fuzz:1.0),
slight skin imperfections, fine wrinkles, subtle moles, natural micro-shadows,
(realistic skin detail:1.15), unretouched photograph, no filter
冒号-权重把这些词的存在感拉到能压过磨皮偏向。注意冒号权重((term:1.2))是 SD 系的语法,在 Midjourney 或 DALL-E 里完全无效。
3. 负向 Prompt 拦塑料感(仅 SD 系):
plastic skin, airbrushed, overly smooth, smooth skin, perfect skin,
flawless skin, beauty filter, retouched, doll-like skin, CGI skin,
3d render skin, wax figure, mannequin skin, no pores
权重 1.0 即可,已经够强。
4. 上写实/细节 LoRA。 很多热门写实向 LoRA(部分 RealVision、JuggernautXL、EpicRealism 版本)是在修过的图库上训的,反而加磨皮。同 Prompt 去掉这个 LoRA 测一下:质感回来了,就是它的锅。换成皮肤细节 LoRA(比如 “Detail Tweaker” / “add-detail” 类,强度 0.4 到 0.8)。
Flux(dev / Krea)
Flux 的塑料皮肤是蒸馏模型自带的特性,不是你设置的问题。截至 2026 年 6 月,可靠的修法是:
- 上写实 / 细节 LoRA。 Hugging Face 上的
Shakker-Labs/FLUX.1-dev-LoRA-add-details是最被推荐用来找回毛孔和细节的,强度跑 0.6 到 1.0。 - 把蒸馏引导值(CFG)降到约 2.5 到 3.0。 Flux 默认
guidance在 3.5 以上会把油光感烤进去;降下来有实打实但有限的改善。单降它不够,要配合 LoRA。 - 考虑 SRPO 调过的 Flux checkpoint。 腾讯的 SRPO 微调专门用来去掉油光/塑料皮肤,有常规版和蒸馏版可选。
- 用皮肤细节模型放大(比如
SkinDiffDetail类的 detailer 过一遍),别用通用放大器,后者往往又把皮肤磨平。
Midjourney(v7)
Midjourney 不认 SD 的冒号权重和负向 Prompt,你靠参数和镜头词汇来控:
<你的主体>, natural skin texture with visible pores and peach fuzz,
shot on Sony A7R V, 85mm f/1.4, soft window light --style raw --v 7 --ar 4:5
--style raw是关键开关:它去掉 Midjourney 默认那套把皮肤打蜡的”绘画感”风格化。截至 2026 年 6 月,这仍是修 Midjourney 人像最有效的单一手段。- 写出真实相机器材和微距/人像镜头(
100mm macro、f/2.8)——这会从训练集里的高分辨率摄影里拉数据,触发毛孔级细节。 - 汗毛用专业术语
vellus hair,比 “peach fuzz” 更管用,因为它出现在医学/人像图注里。
还是太光滑:后期补颗粒
差一点点就好的图不用整套重跑就能救回来。Kodak Portra 400、Fujifilm Pro 400H、Cinestill 800T、Ilford HP5 这些胶片名在 Prompt 阶段加进去会带颗粒关联,但后期更可控:
Photoshop:Filter > Noise > Add Noise,Gaussian,1.5%-2.5%,单色(Monochromatic)
Affinity:Filters > Noise > Add Noise,2% Gaussian
Lightroom:Detail > Grain,数量 25,大小 25,粗糙度 50
也有专门的皮肤修复工具(比如 Enhancor)能给 Midjourney/Flux/SD 的成品重新加回毛孔,量大时可以考虑。
如何确认修好了
- 放大到 100% 看脸颊、额头、鼻子。应该看到不规则的微观纹理和细微的色调变化,而不是一整片平滑渐变。
- 看发际线和耳朵边缘,应有细汗毛贴着皮肤。
- 看鼻头/颧骨的高光:塑料图给你一坨平滑的镜面高光;真脸的高光是碎的、带点噪点的。
- 如果皮肤对了但眼睛/牙齿发糊,那是 face-restore 的 visibility 调得太低了——稍微往上加一点,而不是把完整修复重新打开。
预防建议
- 全局默认把 CodeFormer visibility 设到 0.3(weight 设到约 0.9),只在个别图上手动调高。
- 存一个”皮肤质感”Prompt 块:
(skin pores:1.1), (natural skin texture:1.2), (film grain:0.6),每张 SD 人像默认追加;Midjourney 模板里固定带上--style raw。 - 人像 Prompt 里彻底避开
flawless、perfect、smooth、airbrushed。 - 按最终分辨率 1.5 倍渲染再缩放——降采样保住微观纹理,比放大去硬加要好。
- 给常用 checkpoint 做一份 CodeFormer visibility 0.2 / 0.4 / 0.6 / 0.8 / 1.0 的对比表,看清磨皮从哪个数值开始失控。
常见问题
CodeFormer weight 该调低还是调高? 往 1.0 调高。weight 滑块是保真度控制,而且是反的:越高越保留原脸(越不磨皮)。要降磨皮强度,去调低 visibility 滑块。
我 Flux 人像连 face-restore 都没开还是塑料,为什么?
Flux 的蒸馏模型在架构层面就把油光皮肤烤进去了,没东西可关。上一个细节/写实 LoRA(比如 FLUX.1-dev-LoRA-add-details)、把蒸馏引导值降到约 2.5-3.0,或者换 SRPO 调过的 checkpoint。
(skin pores:1.1) 这种权重在 Midjourney 或 DALL-E 里管用吗?
不管用。冒号权重语法和负向 Prompt 都是 Stable Diffusion 的功能。Midjourney 用 --style raw、真实相机器材和 vellus hair;DALL-E 用大白话描述质感。
为什么这里 GFPGAN 比 CodeFormer 更糟? GFPGAN 没有保真度权重,你无法控制它改写人脸的程度——它往往磨得更狠。对质感敏感的人像,优先用低 visibility 的 CodeFormer,或干脆关掉 face restoration。
全做完了还是有点太光滑,最快的救法? 在 Photoshop 里加 1.5%-2.5% 的单色 Gaussian 噪点(或 Lightroom grain 数量调 25)。后期补颗粒几秒钟就能救回差一点点的图,不用重渲。