你出了一张人物图,构图对、衣服对,但脸糊成一团——眼斜、牙齿粘成一片、鼻子长偏。大多数人第一反应是改 prompt,但这往往是错的方向。70% 的脸崩反馈里 prompt 本身没问题,只是脸占的像素不够,模型画不出来。
常见原因
按”实际根因”的命中率排序。
1. 脸占的像素太少(70% 的根因)
SDXL、Flux、Midjourney v7、Imagen 3 这一档模型,脸区域至少要 256x256 像素左右才能画清楚。1024x1024 的全身照里,头一般只有 80-120 像素高。模型根本塞不下两只眼睛、一个鼻子和一张嘴。
如何判断:以 100% 看输出,量一下脸的包围盒。占图像短边不到 25%,就是脸太小,根因就在这里。
2. 中远景多人场景
画面里 2-3 个人,每张脸只占 5-8%。模型把本来就有限的脸预算平摊给所有人,结果谁的脸都画不好。任何当前模型,群像都是最难的场景。
3. 极端角度(俯视、仰视、纯侧脸)
训练数据里正脸和四分之三脸的量级远超过纯侧脸、俯视脸、仰视脸。极端角度把模型推到数据少的区间,它只能靠”平均”凑,平均出来就是”糊掉”的脸。
如何判断:脸大致是 0-30 度偏离正脸吗?是就不是角度问题。从下面看下巴、从上面看头顶,那角度就是问题。
4. 风格之间互相打架
“photorealistic portrait, painted in the style of Van Gogh, with watercolor texture”——三种风格同时打架。模型取平均,平均的代价通常先体现在脸上。
如何判断:数 prompt 里独立的风格修饰词。超过两个就处在打架区间。
5. 用了便宜 / 快速档
Midjourney 的 --draft、Flux Schnell、SDXL 步数 < 20、Imagen “fast” 档——它们都跳过了原本能精修脸部的迭代。
6. 宽高比浪费了渲染预算
全身像用 1024x1024 出,横向像素被背景吃掉。换成 1024x1536(竖)能给脸多 50% 的纵向像素。
动手前先确认
- 把出问题那张图的 seed、完整 prompt、模型、档位都存下来。
- 想清楚到底需不需要这张脸——产品图、环境图里有时直接把头裁掉就解决了。
- 看其他部位(手、脚)是不是也崩;都崩,根因是整体像素不足,不是脸特有的问题。
- 确认能复现:同 prompt 不同 seed 出 3-4 张。4 张崩 1 张是噪声,4 张全崩才是 prompt 结构问题。
- 改 prompt 模板前,先备份当前版本。
需要收集的信息
- 完整 prompt、负面 prompt、模型名、seed、sampler、步数、宽高比。
- 把崩掉的脸裁到 ~512x512,并测量脸的像素面积。
- 最近几张其他图是不是同样崩脸(说明是模型层面的问题)还是只这一张(prompt 特定问题)。
- 用途场景(缩略图 / hero / 印刷)——决定修到什么程度才够用。
最短修复路径
按 ROI 排序。Step 1 一个动作就能解决 70% 的脸崩。
Step 1:拉近构图
在 prompt 里加显式构图词,把镜头推向脸:
medium close-up portrait, head and shoulders in frame, face centered
或者更紧:
tight close-up portrait, face fills frame, sharp focus on eyes
全身照不能重新构图时,改成竖图比例:
- Midjourney:
--ar 2:3或--ar 4:5 - SDXL:1024x1536 代替 1024x1024
- Flux:832x1216 代替 1024x1024
纵向像素多了,头部和脸的细节就上来了。
Step 2:提分辨率 + 走高清修复
- Midjourney:先基础分辨率出图,再 Upscale(Subtle)。v7 套餐允许的话上
--quality 2。 - SDXL(A1111):开
Hires fix,denoising 0.4-0.5,1.5x 上采。 - SDXL(ComfyUI):两段式——先基础出图、再用 Ultimate SD Upscale 或 Latent Upscaler 放大。
- Flux:1024x1280 出图,再走 Flux Refine pass。
- Imagen 3:选 “high quality” 档,不是 “fast”。
Step 3:跑面部专用修复 pass
走完 Step 1-2 还是不对的脸,这一步收益最高。
- SDXL / A1111:开 ADetailer,模型选
face_yolov8n.pt。默认参数能自动修好 80% 的情况。denoise 0.4 保留身份、0.6 大改五官。 - ComfyUI:用
Face Detailer节点,或者串MediaPipe Face Mesh+Inpaint显式生成 mask。 - Midjourney:点 Vary (Region),把脸涂出来,prompt 写
well-defined face, sharp eyes, natural skin texture。 - Flux:在 ComfyUI 里用 Flux Fill + 手动脸部 mask。Flux 原生 inpaint 有限,ComfyUI 自定义节点是能跑的路线。
- Photoshop / Affinity:用 Generative Fill 对脸区域重画。
GFPGAN 和 CodeFormer 老一点但纯写实脸还是有效;它们会把皮肤磨太光,用 50-70% 强度。
Step 4:减少 prompt 里的风格打架
prompt 里超过两个风格修饰,就砍到 1-2 个。顺序也重要,先放摄影描述,风格放后面:
photorealistic portrait, soft window light, slight Van Gogh painterly background
远比这样安全:
Van Gogh style photorealistic watercolor portrait
Step 5:升档 + 换模型
按以上步骤跑完,便宜 / 快速档还是崩脸,定稿那次升到 premium。模型本身就弱(确实有些模型对脸不行),就换:
- 写实人像:Flux Pro 和 Imagen 3 当前出脸最干净。
- 风格化人像:Midjourney v7 + Vary (Region) 最稳。
- 动漫 / 插画:Niji v7 或 Pony Diffusion 比 SDXL 原版强。
怎么确认已经修好
- 100% 缩放看,两眼水平、大小一致、方向一致。
- 鼻子在两眼中线上。
- 牙齿(如露出)不会粘成一片。
- 找第二双眼睛看;自己对自己模型的失败是盲的。
- 同样 prompt 出 4 张候选,4 张都通过上面的检查项。
如果还是没修好
- 分辨率再拉一档(1024x1536 或 1536x1024),再跑一次面部修复。
- 用脸部专门的 LoRA 或 embedding(Civitai 上 SDXL 人像有几十个)。
- 用更紧的构图出图,再到 Photoshop 里把脸合成到更广的场景。
- 换底模(Flux Pro 和 Imagen 3 当前在脸上最强)。
- 上 r/StableDiffusion 或 Discord 求助前,打包好 prompt、模型、seed 和崩脸的裁图。
预防建议
- 任何脸要看清的镜头,构图阶段就让脸至少占图像短边的 25-30%。
- 准备一段脸部专用的负面 prompt(
deformed face, asymmetric eyes, melted features, malformed mouth),写实人像每次都粘。 - 人像默认用竖比例(2:3 或 4:5),不要用方图。
- 任何人像都跑一遍脸部 inpaint,把它当工作流,而不是修复手段。
- 维护一个自己模型经常踩雷的风格修饰黑名单。