AI 图片人物脸崩怎么办:镜头距离 / 分辨率 / 面部修复三步法

AI 生成的人脸经常脸崩、眼斜、鼻歪?多半不是 Prompt 问题。这篇按概率给出 3 步修复法:调镜头距离、加分辨率、走面部修复 pass。

你出了一张人物图,构图对、衣服对,但脸糊成一团——眼斜、牙齿粘成一片、鼻子长偏。大多数人第一反应是改 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 张都通过上面的检查项。

如果还是没修好

  1. 分辨率再拉一档(1024x1536 或 1536x1024),再跑一次面部修复。
  2. 用脸部专门的 LoRA 或 embedding(Civitai 上 SDXL 人像有几十个)。
  3. 用更紧的构图出图,再到 Photoshop 里把脸合成到更广的场景。
  4. 换底模(Flux Pro 和 Imagen 3 当前在脸上最强)。
  5. 上 r/StableDiffusion 或 Discord 求助前,打包好 prompt、模型、seed 和崩脸的裁图。

预防建议

  • 任何脸要看清的镜头,构图阶段就让脸至少占图像短边的 25-30%。
  • 准备一段脸部专用的负面 prompt(deformed face, asymmetric eyes, melted features, malformed mouth),写实人像每次都粘。
  • 人像默认用竖比例(2:3 或 4:5),不要用方图。
  • 任何人像都跑一遍脸部 inpaint,把它当工作流,而不是修复手段。
  • 维护一个自己模型经常踩雷的风格修饰黑名单。

相关阅读

标签: #图像生成 #Prompt #人像 #排查