首页 教程 ComfyUI保姆级零基础教程 换姿势不换脸(image_kps)
Tutorial Lesson

换姿势不换脸(image_kps)

ComfyUI保姆级零基础教程 56 浏览 2026-07-08 更新 免费阅读

一、问题从哪来?

7-3 / 7-4 默认:同一张图 既做人脸 embedding,又做 关键点(kps)

结果:生成人物 脸像参考头/身体角度也倾向参考图

需求:脸 = 图 A,姿势 = 图 B(如 OpenPose 提取的他人站姿)。


二、image 与 image_kps

输入

提供什么

典型来源

image

人脸身份(InstantID / InsightFace)

清晰 正脸照 A

image_kps

面部/身体 关键点结构

姿势参考 B(可全身)

ApplyInstantID 节点image_kps可选;留空则用 image 的 kps。

脸来自 A,姿势来自 B  →  image=A, image_kps=B

三、原理简述

InstantID ControlNet 根据 kps 图 控制生成时的 头部朝向、五官相对位置
IP-Adapter 分支根据 image 控制 身份特征

二者解耦 → 换姿势不换脸 的核心。


四、参考图选择

图 A(身份)

  • 正脸或微侧,光照清晰;

  • 可与姿势无关(甚至证件照)。

图 B(姿势)

  • 全身或半身,目标姿势明确;

  • 脸是谁无所谓(会被 A 的脸替换);

  • 可从 OpenPose 骨架图他人照片 提取 kps(工作流内自动从 B 算 kps)。

注意:B 的 极端透视 可能导致脸融合 artifact,需试 seed / weight。


五、搭建步骤

5.1 基于 7-3 文生图

  1. 复制 InstantID txt2id 工作流;

  2. 添加 第二个 Load Image(姿势图 B);

  3. ApplyInstantID

    • image ← Load Image A

    • image_kps ← Load Image B

  4. 仍用 Empty Latent,denoise 1.0

  5. Prompt 描述 服装、场景(不必描述 B 的脸)。

5.2 基于 cubiq InstantID_posed.json

官方示例路径:

ComfyUI_InstantID/examples/InstantID_posed.json

导入后对照 双 Load Imageimage_kps 连线,改 Prompt 与参考图。

5.3 与 OpenPose 组合(进阶)

若 B 图 kps 提取差:

  • B → OpenPose 预处理 → 骨架可视化再作 kps 输入(视节点是否支持);

  • 或直接用 他人 OpenPose 骨架图 作 B。


六、参数建议

参数

建议

weight

0.82–0.88(姿势难时略高保脸)

cfg

4–5

Prompt

写 B 的姿势文字辅助:standing, arms crossed

负向

wrong face, different person

Advanced 节点

  • 脸「烧」→ 降 ip_weight 或加 noise

  • 姿势不像 B → 略升 cn_strength 或换更清晰 B。


七、文生图 vs 图生图 + kps

模式

latent

kps

适用

txt2id + kps

Empty

A+B 分离

全新背景 + 指定姿势

img2id + kps

Encode(某底图)

A+B

在底图构图上改脸/姿势

7-4 图生图 + image_kps=B脸来自 A、姿势来自 B、构图来自底图,较复杂,建议分步掌握。


八、故障排查

现象

处理

姿势仍像 A

image_kps 未接或接错

脸不像 A

image 是否误接 B;weight↑

脸与身体接缝怪

换 B 角度;降 cn_strength

B 无人脸导致 kps 差

用含头+肩的 B;或 OpenPose 图


九、应用场景

  • 虚拟偶像 同一脸 + 舞蹈/站姿库;

  • 写真 模特脸 + 动作参考

  • 分镜:固定主角脸,每格不同动作。

推荐教程

继续学习相关章节