乐于分享
好东西不私藏

手把手教你搭一套 AI 写真工作流,8 个节点就行

手把手教你搭一套 AI 写真工作流,8 个节点就行

手把手教你搭一套 AI 写真工作流,8 个节点就行

说实话,第一次打开 ComfyUI 的时候我盯着那块空白画布发了五分钟呆。

左边节点栏里几百个节点密密麻麻。我当时想的是:就为了生成一张图,我得学多少个节点?

后来真正跑通第一条管线之后回头看才发现——一个能用的写真工作流,核心节点只有 8 个。其他都是锦上添花,没有它们能出图,有了它们出图更好看。

今天这篇把这 8 个节点从零连起来。你跟着做,20 分钟搭好,直接出图。


先看懂数据流,再动手连

ComfyUI 的核心逻辑比它看起来简单得多。数据从左边流到右边,每个节点做一件事:

加载模型 → 输提示词 → 控制人脸 → 控制姿态 → 采样出图 → 解码显示

数据流向是单向的,不会绕圈。记住这个顺序,连节点的时候就不会乱。


8 个节点,逐个连

节点 1:Load Checkpoint(加载底模)

这是管线的起点。双击画布搜索 Load Checkpoint,点一下就创建了。

右边有两个输出口:

  • MODEL:主模型,连后面所有生成相关的节点
  • VAE:解码器,最后连到 VAE Decode

我选的是 DreamShaper XL_Turbo。为什么不用别的?这个模型对提示词的理解比较准,写实人像不容易有「塑料感」。

操作:点 ckpt_name 下拉框 → 选 DreamShaperXL_Turbo.safetensors

节点 2 & 3:CLIP Text Encode(提示词输入)

你需要两个这个节点,一个写正面提示词,一个写负面的。

正面提示词节点(双击搜 CLIP Text Encode,创建后左边连 Load CheckpointCLIP 输出)

我的正面提示词模板(直接复制用):

a photorealistic portrait of a woman, natural skin texture, 
soft studio lighting, 85mm lens, f/1.8, shot on DSLR, 
detailed eyes, sharp focus, cinematic color grading, 
warm tone, high resolution, 8k

负面提示词节点(同样搜 CLIP Text Encode,但这次不连 CLIP,而是等后面连到 KSamplernegative 输入)

负面提示词模板:

cartoon, 3d render, bad anatomy, bad hands, extra fingers, 
blurry, noisy, watermark, text, logo, low quality, 
plastic skin, oversaturated

提示:负面提示词的意思是「不要出现这些东西」。手、文字、塑料感皮肤,全靠这行负面对抗。


这是整个写真工作流里最关键的一个节点。没有它,每张图的脸都不一样。

先装插件:ComfyUI_IPAdapter_plus(在 ComfyUI 的 Manager 里搜,一键安装)。

装完之后,双击画布搜 IPAdapter Apply,会出现一个节点,它有这些输入口:

  • model:连 Load CheckpointMODEL
  • ipadapter:连 Load IPAdapter Model 节点(单独创建,搜 Load IPAdapter Model,选 ip-adapter-faceid_sdxl_vit-h.safetensors
  • image:连 Load Image 节点(你上传参考人脸的地方)
  • weight:重点参数,我一般用 0.75。太低脸不像,太高背景失控

weight 调参经验:

  • 0.6 以下:脸开始不像你
  • 0.7-0.8:平衡点,脸像,背景也正常
  • 0.9 以上:背景被人脸特征「污染」,整张图都像你的脸了

如果你想控制人物的姿势(比如坐着、侧脸、手托下巴),需要加 ControlNet。

最常用的两个 ControlNet 模型:

  • controlnet-canny-sdxl:控制轮廓边缘,适合保持服装形状
  • controlnet-openpose-sdxl:控制人体骨骼姿态,适合固定姿势

接法:创建 Apply ControlNet 节点 → model 连 IP-Adapter 的输出 → image 连你上传的姿势参考图 → control_netLoad ControlNet Model 节点

strength 参数设 0.8,太低控制不住,太高画面失真。


这是最重要的节点,所有生成参数都在这里设。

连接方式:

  • model:连 ControlNet 的输出(如果没用 ControlNet,就连 IP-Adapter 的输出)
  • positive:连正面提示词节点的输出
  • negative:连负面提示词节点的输出
  • latent_image:连 Empty Latent Image 节点(设置出图尺寸)

参数详解(这是核心干货):

| 参数 | 我的取值 | 为什么 |

|---|---|---|

| sampler | dpmpp_2m | 收敛快,12步就出质量不错的图,比 Euler 快一倍 |

| scheduler | karras | 配合 dpmpp_2m,细节更丰富 |

| steps | 25 | 20步以下细节不够,30步以上边际收益很低 |

| cfg | 7.0 | 低于 5 提示词失效,高于 9 画面过饱和 |

| seed | -1 | 随机;固定 seed 可以复现同一张图 |

| denoise | 1.0 | 图生图才调低(0.5-0.7),文生图保持 1.0 |

为什么用 dpmpp_2m 而不是 Euler?Euler 是 SD 1.5 时代的默认选择,SDXL 上 dpmpp_2m 的采样效率明显高一大截。我实测同样 25 步,皮肤细节比 Euler 好不少。

节点 7:VAE Decode(把潜空间解码成图片)

KSampler 出来的是「潜空间图像」——人眼看不懂,得用 VAE 解码。

创建 VAE Decode 节点:

  • samples:连 KSampler 的 LATENT 输出
  • vae:连 Load CheckpointVAE 输出(还记得节点 1 有两个输出口吗)
  • IMAGE 输出口:连最后一个节点

节点 8:Save Image(保存结果)

最后一步,创建 Save Image 节点,imagesVAE DecodeIMAGE 输出。

到此,8 个节点全部连完。点 Queue Prompt,等 30 秒左右,你的第一张 AI 写真就出来了。


一条完整管线的节点连接顺序

我把连接关系用文字再写一遍,方便你对照:

Load Checkpoint
  ├── CLIP → CLIP Text Encode (正面提示词)
  ├── CLIP → CLIP Text Encode (负面提示词)
  ├── MODEL → IP-Adapter Apply
  │         └── IP-Adapter → ControlNet Apply
  │                          └── KSampler
  │                               ├── positive → 正面提示词
  │                               ├── negative → 负面提示词
  │                               └── latent_image → Empty Latent Image
  └── VAE → VAE Decode ← KSampler(LATENT)
                    └── Save Image

如果你连完之后点 Queue Prompt 报错,90% 是某个连线接错了(比如把 VAE 连到了 MODEL 口)。删掉那条线重连就好。


翻车急救手册

我搭这套管线的时候翻过三次大的车,每次都花了半天排查。把修复方法写出来,你碰到了直接参考,不用绕路。

翻车 1:脸不像本人

如果你的 AI 写真出来像另一个人——先别急着调参数。检查三件事:

  1. IP-Adapter 的 weight 是不是低于 0.7?调到 0.85 试试
  2. 参考图质量行不行?换一张正脸、光线均匀、没遮挡的照片
  3. IP-Adapter 模型选对没有?faceid 版本才保人脸,别选成 plus

这三项检查完,90% 的「不像」问题都能解决。


翻车 2:手指多一根、少一根,或者整只手畸形

这是 AI 绘画最经典的翻车现场,目前没有 100% 的解决方案。但有几个办法能明显改善:

  1. 负面提示词加满:bad hands, extra fingers, missing fingers, deformed hands
  2. 把 CFG 从 8 降到 6.5——CFG 太高会逼着 AI「硬画」,手容易变形
  3. 如果还是不行,剩下的办法是用 inpaint 在手上区域局部重绘。这个操作下期会详细讲

翻车 3:整张图「塑料感」重,像 AI 滤镜

如果你觉得出图质量不像照片、像游戏渲染——通常不是模型的问题,是提示词和参数。

  1. 正面提示词里加上 photorealistic, natural skin texture, DSLR, 8k——这几个词是「去塑料感」的关键
  2. 确认底模是 DreamShaper XLRealVisXL,别用动漫风底模
  3. steps 降到 20——有时候 steps 太高反而会让画面「过度加工」,皮肤纹理被磨平了

这套管线能做什么,以及暂时做不好的

搭好之后,你已经可以:

  • 换提示词生成不同风格的写真——日系、胶片、影楼、街头,改两行字就行
  • 换参考图改变人物姿态,但脸始终是你自己
  • 调整 CFG 和 steps 找到你最喜欢的出图风格

目前还没法完美解决的:

  • 精确控制手指位置(整个 AI 摄影领域的公开难题)
  • 大角度侧脸的一致性(IP-Adapter FaceID 对正脸效果最好,侧脸会打折扣)
  • 复杂多人物场景(一张图里多张人脸,IP-Adapter 会混乱)

这些限制在接下来的几期里,我会逐个讲解决方案。


下期预告

这套管线跑通之后,你已经有了一张「能看」的 AI 写真。但如果你想让这张脸在任何场景、任何服装下都稳定输出——你需要训练自己的人脸 LoRA。

下期讲这件事。训练参数怎么设、用什么工具、怎么判断练好了没有,全拆开说。

如果你按这篇连完了管线,出图遇到奇怪的问题,截个图发我,我帮你看。


这是「AI 摄影实操系列」第 3 期。第 1 期讲认知模型,第 2 期讲工具选型,这期讲工作流搭建。后面还有 LoRA 训练、AI 修图、成本算账,持续更。