你肯定遇过这种情况:图已经生成得很有氛围感,肤色也对,构图也稳,但只要把脸放大到局部,皮肤就跟打了一层蜡一样光滑,眼睛里头没有高光细节,手指头不是多了就是少了。这种“一眼 AI”的穿帮感,其实不是某个模型不行,而是整套生成流程里少了几个关键环节。
我拿 SD(Stable Diffusion 这一类本地扩散模型)做超写实图片也折腾了大半年,从最开始“十张里碰运气出一张能看的”,到最近稳定在“六成以上出图可直接进后期”,核心变化不是换了个更贵的显卡,也不是找了某个“神级大模型”,而是把出图思路从“写一句 prompt 压抽卡”改成了“用流程去约束每一次生成”。这篇就按我的实操顺序,把步骤、参数、模型选择逻辑、踩坑点一起说清楚。
1. “一眼AI”到底差在哪:这问题比 Prompt 本身更值得琢磨
很多人拿到 SD 的第一反应是拼命学提示词,觉得只要把形容词堆到位,图自然就高级了。实际上,一张图“假不假”,根本原因通常不在 prompt,而在生成过程里两个非常具体的问题:一是中频细节丢失,二是物理规律不成立。
1.1 皮肤没有“呼吸感”是头号穿帮点
AI 生成的图片在预览小图时往往很唬人,因为缩略图把细节模糊掉了。一旦放大,皮肤区域的过渡特别“干净”,毛孔、汗毛、皮肤纹理全都不见,剩下一个磨皮过度的表面。
我的理解是,扩散模型在去噪时更偏好“容易学”的低频结构,所以它会不自觉地让光线平滑地铺满高光区,同时把高频率的皮肤细节当作噪声区别开。你看到的结果是:脸部轮廓清楚,但质感像是被统一抹过一遍。这里有几个经验性的解决办法:
- 出图阶段就控制采样器,不要上来就用“锐化感”很强的预设。写实方向我常用 DPM++ 2M Karras,不用刻意追求“极致细节”的采样器,细节可以留给后期修复。
- CFG 别给太高。CFG 太高会让每一点结构都往“概念原型”上靠,结果就是“你以为的写实”变成了“模型记忆里的写实平均值”,恰好就是最没有个体纹理的那种脸。
- 用细节类 LoRA 增加皮肤质感,避免在后期用“锐化滤镜”硬拉边缘。锐化只会增加轮廓硬度,对毛孔这种级别的高频纹理是没有帮助的。
1.2 结构错乱和光线失真,是第二次穿帮
第二个典型穿帮是结构崩坏和光影不统一。尤其是手部,因为手在模型训练数据里的形态变化太大,手指角度、遮挡关系、关节比例复杂,SD 很容易在采样时给出手指粘连或多节。
更隐蔽的是光线。模型其实不清楚“物理上某束光会从哪里打过来、往哪里反射”,它只是按统计概率合成一种大致合理的照明。所以很多超写实图单看细节都像照片,但放在一起就觉得“有点怪”。比如人物脸上的高光来自左上方,而身后景物的影子却朝左,这种违和感不需要专业摄影知识也能感觉到。
既然是统计概率的结果,你就不能指望“再抽一张”能自动修正结构问题。正确做法是引入控制条件,让人物姿态和场景深度先被固定下来,再去生成皮肤和颜色。这也是后面为什么必然要上 ControlNet 的原因。
2. 先把底子打好:提示词和基础参数的正确姿势
超写实不等于在 prompt 里反复写“超写实”“8K”“细节丰富”。真正有用的提示词结构,应该在最开始就模拟“某台相机在现场拍摄”的描述方式。
2.1 正向提示词的结构:主体、动作、光线、镜头语言
我习惯按这个顺序去写正向提示词,顺序本身也影响出图质量:
- 主体描述:人物性别、年龄段、发型、服装、整体气质。这里写具体的,不写抽象的。
- 动作和角度:表情、肢体姿势、视线方向、拍摄角度。让画面有“抓拍感”,避免摆拍感。
- 光线条件:natural window light、soft rim light、overcast sky 都可以。光线提示词比单纯写“高质量”有用得多,因为它直接改变体积感和光影过渡。
- 镜头与构图参数:35mm、f/1.8、85mm、cinematic 这类词会在不同程度上影响景深和透视感。超写实方向我一般倾向用 85mm 配合 f/2.0,或者 35mm 拍环境人像。
举个例子,一个比较有效的正向提示词大概是这样:
a portrait of a woman in her late twenties, short wavy hair, denim jacket, looking over her shoulder, subtle smile, golden hour, soft window light, 85mm, f/1.8, shallow depth of field, photo taken on film medium format注意:不要把所有“画质形容词”都放前面,模型对 prompt 的注意力是按位置衰减的,主体、光线、镜头语言这种和物理成像强相关的词,尽量靠前。
2.2 负向提示词不是随便堆词,关键在“语义排除”
负向提示词的逻辑不是“告诉模型不要画丑东西”,而是用一个具体的、模型能理解的概念去排除同类特征。比如你写“bad anatomy, extra fingers, deformed hand”,模型确实会在采样过程中降低这些语义出现的概率。但你写“low quality, jpeg artifacts”这类词,它只会把整张图往“过度平滑”上拉,反而让皮肤细节丢失。
我自己的负向提示词相对比较紧凑:
bad anatomy, bad hands, extra fingers, missing fingers, deformed fingers, poorly drawn face, mutation, blurred, oversmoothed, flat lighting, oversaturated, no film grain, watermark, text后面几个“oversmoothed”“flat lighting”是我的重点,因为它们直接对应超写实最常见的光滑塑料感问题。“no film grain”是我个人偏好,因为我喜欢真实胶片质感的层次,而不是干净平滑的数码感。
2.3 采样、步数、CFG、尺寸怎么搭配
到现在还有人在用默认的参数组合,实际那是为“通用出图”设计的,对超写实并不友好。我试过相对稳定的写实参数组合是这样的:
| 参数 | 推荐值 | 说明 |
|---|---|---|
| 采样器 | DPM++ 2M Karras | 细节和速度均衡,写实向优先 |
| 步数 | 28~35 | 太少结构不稳,太多不会继续变好 |
| CFG | 3.5~5 | 写实取 4,风格化取 6~7 |
| 尺寸 | 768x1024 或 728x960 | 接近 3:4 竖构图,人脸比例更自然 |
| VAE | 与模型匹配即可 | 不匹配会让颜色偏灰偏脏 |
CFG 这一点多说几句。很多人觉得 CFG 越高越“听提示词”,但在写实方向,CFG 高于 6 以后,画面会出现一种很明显的“过度刻板”感,脸的颜色会向模型记忆的“标准肤色”偏移,同时皮肤开始变塑料。我自己出写实人像几乎固定在 4 左右,特殊构图才会上到 5.5。
尺寸方面,如果直出 512x512 再拉大,后遗症会特别多。写实人像我至少 768 宽,否则后期放大时脸部和发丝的纹理结构很难救回来。
3. 模型选择:超写实的核心变量其实在这
基础模型决定了整张图的“审美底子”。很多教程喜欢让你下载十几个模型反复抽卡,我的经验刚好相反:固定一个你熟悉的写实向底模,把精力花在理解它的脾气上,比不断换大模型更有效率。
3.1 底模和微调模型的定位差异
SD 的生成本质上是“模型 + 附加 LoRA + ControlNet + 采样参数”的组合。所谓底模,决定了模型原本理解的“世界是什么样的”:同样是写一张街头人物照片,有的底模偏纪实感,有的偏商业人像修图感,出来的肤色、光影风格差异很大。
超写实方向我个人更推荐“纪实摄影向”的底模,而不是“韩系精修人像向”的底模。前者保留了更多的自然质感,后者虽然第一眼很惊艳,但放大后很容易暴露光滑皮肤和低细节问题。
另外一个常见误区是,一些人下载“全能模型”,想同时在真实感、光影、风格化上都要。最后出来的图,往往哪个维度都差一口气。我自己的处理方式是:
- 选一个熟悉的写实向底模作为“地基”,长期使用;
- 有针对性的 LoRA 去弥补它的短板,比如皮肤纹理、镜头感、服装材质;
- 不去频繁换大模型,因为换一次模型,等于把之前积累的提示词经验和参数习惯全部推倒重来。
3.2 LoRA 的正确打开方式:少而精,目的明确
LoRA 是超写实里最能改变出图质量的变量,但也是最容易用错的一环。许多人一次性挂三个 LoRA,每个权重都开到 1.0,结果特征互相打架,脸部结构反而变得很奇怪。
我用 LoRA 的核心原则是“一个目的,一个 LoRA”。如果你觉得画面缺乏皮肤纹理,就挂一个写实皮肤细节 LoRA;如果觉得发丝不够细腻,就挂一个发丝材质 LoRA。尽量不要同时挂两个以上影响脸部特征或材质的 LoRA。权重默认我很少开满,0.8 左右效果最好,特殊情况才会调到 0.9。
挂 LoRA 时还要注意它的“影响范围”。有些 LoRA 是场景向的,有些是人物脸部特征向的。如果你想保持人物的可辨识度,那人物特征 LoRA 一定不要和全局风格 LoRA 叠加过猛,否则画出来的人会变成“某个通用模板脸”。
安全提示在这里也要说一次:模型和 LoRA 尽量从官方仓库或可验证来源的社区下载,不要碰那些来路不明、刻意修饰过的“一键大模型包”。你不知道它内部整合了哪些权重,很可能埋了色彩偏移或者不稳定的兼容问题,到时候你排查半天错误,浪费的都是自己做图的时间。
4. 控制画面结构:ControlNet 与局部修复,解决“崩”字难题
“超写实”有三个字,重点不只在“写实”,还在“超”和“像”。想让人一眼看不出 AI,结构就不能乱。ControlNet 在这里的作用不是让你“偷懒”,而是让你把画面的骨架先画好,再由模型去填充材质和光影。
4.1 用 ControlNet 约束姿态、深度和边缘
ControlNet 是一个开源的控制方案,它允许你把一张参考图片的姿态或者深度图喂给 SD,让生成结果在结构上遵循参考图。对于超写实人像,最常用的是姿态控制(骨架)和深度控制(空间关系)。
姿态控制适合解决“动作不自然”和“手部位置跑偏”的问题。给 ControlNet 喂一张姿态骨架图,模型在采样时就不会自由发挥肢体角度,手的位置也更容易保持在合理范围。深度控制则适合复杂场景,比如人物站在街角、有前后遮挡关系的时候,深度图可以约束远近层次。
但 ControlNet 并非“开得越重越好”。控制强度过高,画面会失去生成模型带来的真实纹理,甚至出现轮廓僵硬的感觉。我一般把 ControlNet 的强度设置在 0.5~0.7,让它“框住结构”但不过分限制材质细节。还有一个容易忽略的点:使用高分辨率修复时,ControlNet 不要重复施加,或者至少要降低强度,否则两轮处理会让结构叠加出重影。
4.2 面部修复和手部重绘:剪裁、重绘、再融合
即使前面都做对了,一次生成里还是有概率出现五官崩坏。我的流程里一定会加一步“局部修复”。现在比较成熟的做法是先用扩展程序先识别脸部位置,再对脸部区域做一次针对性重绘。这样做的原理是:局部修复只改变被遮挡区域的像素,不会影响整张图的光影和构图,第二次采样时模型可以专注于五官和细节。
- 对脸部进行修复时,重绘幅度控制在 0.2~0.3,太低没效果,太高会把脸型改变,产生“换了一个人”的问题。
- 手部如果出现问题,我会直接用手部遮挡区域做局部重绘,而不整体重新生成。手部结构复杂,靠“再抽一次”的成功率不高,重绘时配合姿态控制会更容易出结构正确的手。
- 修复之后,如果需要进一步放大,再用放大模型对整张图做一次超分,这样修复痕迹会被重新采样覆盖掉。
这一套流程组合下来,我在出图时基本不用再纠结“这张脸崩了要不要重新抽卡”,因为大多数结构问题都能在修复阶段解决,而修复阶段改的只是局部结构,画面整体氛围仍然保持稳定。
5. 一次完整的实操演示:从出图到大图的完整流程
前面讲的都是理论和参数,这里放一套我实际出图会用到的完整流程。你不需要完全照抄,但可以照着这个思路去检查你自己步骤里缺了什么。
5.1 一套我自己常用的出图流水线
第一步:固定随机种子,先用基础参数出草图,同时不添加 ControlNet。这轮的目的是确定构图、光线和整体氛围,不追求一次到位。参数大致如下:
positive prompt: 写实人像词 + 自然光 + 85mm negative prompt: bad anatomy, bad hands, oversmoothed... sampler: DPM++ 2M Karras steps: 30 cfg scale: 4.0 size: 768x1024 seed: 固定为一个值,比如 20241016第二步:草图觉得构图可以了,再引入 ControlNet,用一张姿势参考图约束人物姿态。如果画面里只有半身人像,这一步也可以跳过,但一旦涉及全身或复杂动作,ControlNet 会在很大程度上避免肢体错乱。
第三步:在修复工具里对脸部做一次局部修复,重绘幅度设在 0.25。同时如果你有比较偏好的脸部五官 LoRA,可以在这里挂上,注意 LoRA 权重不要超过 0.8。
第四步:放大图片。这一步我建议用“两次放大”的思路。第一遍先做小比例提高分辨率并保留足够的细节,第二遍再做一次轻微的超分辨放大。不要一上来就拉好几倍,很容易让皮肤变成橡胶质感,修复阶段的毛孔细节也会被进一步抹平。
5.2 放大策略和画质收尾
放大这块值得单独讲一下。很多人喜欢直接开超高倍数放大,觉得大图就是“清晰”。但超写实的高清不是“锐利”,而是“有细节层次”。过度的放大锐化会把皮肤变成磨砂玻璃,把发丝变成一圈圈白边,反而更假。
我的习惯是:
- 先放大到目标尺寸的 90% 左右,观察细节是否自然;
- 如果细节偏软,用轻微锐化提升边缘,而不是再用放大模型重采样一遍;
- 最后检查皮肤和背景交界处有没有“光晕”,如果有,就在局部做一下模糊过渡。
这个阶段的另一个tips:当你觉得一张图“颜色很稳但太干净”,可以再加一层非常轻的胶片颗粒,或者用调色工具把高光阴影拉出一点差异。颗粒不是用来掩盖问题,而是让数字生成的画面更接近真实感光元件的质感。
6. 常见问题排查速查表:踩坑记录
做超写实图片,最烦人的不是“不会写提示词”,而是“同样的问题反复出现却找不到原因”。这里我把踩过的坑按现象整理成一张速查表,排查时可以对号入座。
6.1 字迹、手指、眼睛等个别部位崩坏
| 现象 | 可能原因 | 处理方式 |
|---|---|---|
| 手指多或少、粘连 | 模型对复杂手部结构理解有限 | 局部修复手部 + 姿态控制约束 |
| 眼睛无神、高光丢失 | 脸部修复幅度过大或底模细节不足 | 降低重绘幅度,单独补眼睛区域 |
| 皮肤像塑料 | CFG 过高,或 VAE 不匹配 | CFG 降到 4~5,检查 VAE 是否正常 |
| 脸型不稳定 | LoRA 权重过高或叠加冲突 | 调整 LoRA 权重,减少叠加数量 |
| 画面偏灰、色彩断层 | 采样器和 CFG 组合不当 | 换 DPM++ 2M Karras,CFG 保持在 4~6 |
6.2 显存、速度与重复性问题的解决
上面表格里是比较内容层面的问题,下面这两个更偏运行环境,但也很常见。
显存不够的时候,很多人会直接降低分辨率,但这样会牺牲构图的稳定度。我的办法是分块处理:先生成低分辨率整体图,再用局部修复分别处理脸部、手部、背景,最后合成。这样既避免显存爆掉,又保留了足够多的细节空间。
重复性问题也是很多人卡住的点。明明提示词和参数都没变,但每次结果都不同,这是随机种子的影响。如果你需要反复迭代一张图,第一件事就是固定 seed,然后再逐步微调提示词或参数。否则你根本不知道某次出图变好是“参数对了”还是“运气好”。
我想特别强调的一个经验是:不要在一个问题上死磕。如果你连续三次用同一套流程出图都崩在同一处,那大概率不是运气问题,而是某个前置条件不对。这时候要做的不是继续调 prompt,而是回头检查底模和 ControlNet 的匹配程度,或者换一个思考角度重写提示词。
这套流程看着步骤多,实际上跑顺之后非常机械:草图、骨架、局部修复、放大,每一轮只做一件事,每件事都有明确目的。我的体会是,超写实图片真正难的不是“技术门槛”,而是每一步都愿意慢下来做判断。有时候一张图我宁愿把重绘幅度降到 0.2 慢慢试,也不愿意一键放大十次赌概率。
如果你刚开始做,建议先照着这篇的参数组合跑一轮,不要急着堆叠各种增强功能。先让画面“像照片”,再考虑“更有摄影感”。等你对底模的脾气熟悉了,再去调整光线提示词和 LoRA 权重,那时候你会发现自己不需要靠运气也能稳定出图。