跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书GitHub 精选镜像AI 生图工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
PythonAI算法

Stable Diffusion 基础:ControlNet 人体姿势控制详解

介绍如何使用 Stable Diffusion WebUI 结合 ControlNet 的 OpenPose 模块精确控制生成图像中的人物姿态。内容涵盖插件安装、姿势复制、骨架图生成与编辑工具(如 Avatar Pose Maker、OpenPose Editor)的使用,以及针对手部细节优化的技巧与参数设置建议。文章详细解析了 ControlNet 权重、控制步数等关键参数对出图的影响,并提供了常见问题的排查思路,旨在帮助用户更高效地利用 AI 工具进行可控创作。

暖阳发布于 2025/2/6更新于 2026/8/2255 浏览
Stable Diffusion 基础:ControlNet 人体姿势控制详解

Stable Diffusion 基础:ControlNet 人体姿势控制详解

在 AI 绘画中精确控制图片是一件比较困难的事情,不过随着 ControlNet 的诞生,这一问题得到了很大的缓解。

OpenPose 可以控制人体的姿态、面部的表情,有时候还能够解决坏手的问题(不要抱太大期望,下文会有介绍)。OpenPose 可以直接复制一张图片的人体姿势,也可以通过骨架图生成人体图片。下面我们就以'文生图'为例,来看下如何使用 OpenPose。

安装 ControlNet

一般的 Stable Diffusion WebUI 整合包或者镜像都已经安装了这个插件,如果你的还没有安装,需要先安装它。已经安装好的跳过这一小节即可。

方法是打开 Stable Diffusion WebUI 前端页面,进入'扩展插件'-'从网址安装',在'扩展插件的 git 仓库网址'中输入 https://github.com/Mikubill/sd-webui-controlnet,然后点击'安装',待安装完成后重启 SD WebUI。各种 ControlNet 模型和预处理器一般会在首次使用时自动下载安装。

如果访问 github 不畅,也可以通过别的方式下载插件包和对应的模型,然后自己部署到 stable-diffusion-webui 中。

具体部署路径如下:

  1. ControlNet 插件:/extensions
  2. ControlNet 模型:/extensions/sd-webui-controlnet/models
  3. ControlNet 预处理器:/extensions/sd-webui-controlnet/annotator/downloads

注意需替换为你自己的 SD WebUI 部署路径,如果你的 SD WebUI 启动命令中配置了模型的路径,或者做了文件夹的软链接,也需要根据实际情况进行调整。

安装成功后,在'文生图'、'图生图'界面的下方会出现 ControlNet 区域,点击右侧的展开按钮,下边有 4 个 ControlNet 单元,也就是我们可以同时使用 4 个 ControlNet 模型控制出图的效果,一般也就够了。

如果你的 ControlNet 只有 1 个单元,或者你想修改这个单元的数量,可以到'设置'中调整,找到'多重控制网:最大模型数量',更改之后别忘了重启。

复制图片姿势

进入'文生图'界面,只需要选择一个你喜欢的大模型,填写简单的提示词就可以了。

然后在页面下方的 ControlNet 中设置 OpenPose,按照下图所示的步骤操作:

  1. 这里只需要设置 1 个 ControlNet 单元,选择第一个就行了。
  2. 上传你要复制姿势的图片。
  3. 启用这个 ControlNet 单元,一般选择图片后会自动勾选。
  4. 选中'完美匹配像素',让 ControlNet 自动计算一个合理的内部图片处理空间,涉及底层技术细节,无脑勾选就行了。
  5. Control Type 选择 OpenPose。
  6. 预处理会自动带出,不用修改。它是用来从参考图片中提取骨架图的。
  7. 模型会自动带出,不用修改。它是在生成图片时根据骨架图控制人体姿势的。
  8. 这个按钮可以将参考图片的尺寸带到'文生图'参数中,如果参考图片的高宽没有超过 1024,建议使用,超过 1024 的出图会比较慢,可以按照图片比例手动设置'文生图'中的高宽参数。

最后点击'生成'就等着出图吧。这里会输出两张图片,一张是使用大模型加 OpenPose 生成的图片,另一张是根据参考图片生成的骨架图,我们可以把这个骨架图复制出来,以后继续使用或者分享给别人使用。

注意看这个骨架图中是有一点手的形状的,所以理论上,如果我们在骨架图中描绘了手的形状,生成图片中的手是会受到一定约束的。再来一张总统挥手的照片,这只手看着还不错,不过也是生成了很多张之后挑选出来的。

生图参数示例:

Prompt: a man in a suit waves from a plane window as he stands on the deck of a plane with his hand up, Beeple, sunglasses, a stock photo, american romanticism
Negative prompt: EasyNegative,bad hands,bad fingers
Steps: 20, Sampler: Euler a, CFG scale: 7, Seed: 289185078, Size: 656x432, Model hash: c0d1994c73, Model: realisticVisionV20_v20, Denoising strength: 0.7, Clip skip: 2, ControlNet 0: 'preprocessor: openpose_full, model: control_v11p_sd15_openpose_fp16 [73c2b67d], weight: 1.5, starting/ending: (0, 1), resize mode: Crop and Resize, pixel perfect: True, control mode: Balanced, preprocessor params: (512, -1, -1)', Hires upscale: 2, Hires upscaler: Latent, TI hashes: 'EasyNegative: c74b4e810b03', Version: v1.5.1

使用骨架图姿势

在上一小节我们使用 OpenPose 时,先提取了图片人物的骨架图,然后使用骨架图生成的图片,所以只要有骨架图就能生成图片了。这对于创造太方便了,毕竟没有那么多的图片可以参考。

这里为了演示方便,直接使用上一小节提取的骨架图。我们只需要更改 ControlNet 这里的设置:

  1. 上传照片使用骨架图。
  2. 预处理器设置为 None,因为我们不需要再从照片中提取人物的骨架图。

其他参数都不变,直接生成就好了。

创造骨架图

骨架图从哪里来?这里介绍一个网站、两个插件,都可以生成或者获取骨架图。

Avatar Pose Maker

这是一个制作骨架图的网站,可以调整人体的姿势、拍照的视角,也可以下载别人制作好的骨架图。

打开的页面如下图所示,我简单说下几个操作区域:

  1. 这里选择你要调整的身体部位。
  2. 这里设置具体身体部位的参数,可以调整姿势。
  3. 这里可以调整人物的视角,是正面、侧面,还是仰视、俯视等等。
  4. 这里下载你创造的骨架图照片。
  5. 这里可以随机生成很多人体姿势。
  6. 这里可以进入查看别人分享的姿势,有标签说明姿势是什么含义,选择下载就好了。

OpenPose Editor

这是 Stable Diffusion WebUI 的一个插件。

安装成功后,我们可以在一级页签中看到'OpenPose Editor',这个插件的使用比较简单,可以在绘图区域这里直接调整人物的姿势,然后下载图片备用,或者直接发送到文生图、图生图等使用。

这里贴出我这个骨架图的出图效果:

生图参数示例:

Prompt: eastern girl,18 years old, standing, waving left hand, balck hair, long straight hair, blue eyes, white shirt, blue jeans, trees, blue sky, cloud
Negative prompt: EasyNegative, bad hands, bad fingers, malformed
Steps: 30, Sampler: DPM++ 2M Karras, CFG scale: 7, Seed: 1995058330, Face restoration: CodeFormer, Size: 512x512, Model hash: 15012c538f, Model: realisticVisionV51_v51VAE, Denoising strength: 0.7, Clip skip: 2, ControlNet 0: 'preprocessor: none, model: control_v11p_sd15_openpose_fp16 [73c2b67d], weight: 1, starting/ending: (0, 1), resize mode: Crop and Resize, pixel perfect: False, control mode: Balanced, preprocessor params: (-1, -1, -1)', Hires upscale: 2, Hires upscaler: Latent, TI hashes: 'EasyNegative: c74b4e810b03', Version: v1.5.1

3D Openpose

这是又一个 Stable Diffusion WebUI 的插件。

安装成功后,我们可以在一级页签中看到'3D Openpose',这个插件功能比较强大,我们可以在一个 3D 的环境中调整人物的形态,但是操作上也会比较复杂,大家可以自己体会下。

  1. 双击骨架图中的关节部位可以调整这个关节的方向。
  2. 鼠标滑动可以调整人物的视角和大小。
  3. 特别支持了手脚的深度图、边缘检测图,用于优化手脚的生成,也可以单独只生成手。

调整好后,点击'生成'。

生成后的预览图如下,第一张是骨架图,后边几张是用来画手脚的辅助图。

可以直接发送到文生图和图生图,也可以下载后备用。直接发送感觉不太好用,建议先下载再上传。ControlNet 的设置方式和上文直接使用骨架图生成图片一样,注意不需要选择预处理器。

如果我们希望对手脚进行专门的修复,可以使用画手脚的辅助图。这里选择边缘检测这个 ControlNet,注意还是不要选择预处理器,启动控制步数和结束控制步数大家可以根据实际情况调整,文生图中不要从 0 到 1,会影响图片的结构,图生图中可以使用局部绘图修手修脚。

虽然我们专门对手脚进行了处理,但是出图的效果还是经常出现畸形的手脚,效果是有的,但和期望的差距还比较大。下边是两个例子:

  1. 文生图带修手。
  2. 先文生图,再图生图局部修手。

高级参数与优化技巧

在使用 ControlNet 进行姿势控制时,除了基本的设置外,参数的微调对最终效果影响巨大。以下是针对 OpenPose 的高级调优建议。

权重与控制强度

ControlNet 的 Weight(权重)决定了控制强度的强弱。默认值通常为 1.0。如果生成的图像过于僵硬,可以尝试降低权重至 0.8 或 0.9,让 AI 有一定的自由发挥空间。反之,如果姿势偏离严重,可适当提高权重,但不建议超过 1.5,否则可能导致画面噪点增加或色彩异常。

Starting/Ending Step(开始/结束步数)用于控制 ControlNet 介入生成的阶段。通常设置为 (0, 1) 即全程参与。如果你发现手部细节在生成后期崩坏,可以尝试将结束步数设为 0.8,让后期采样更多关注纹理而非结构。

手部修复策略

OpenPose 虽然能控制大体姿态,但对手指细节的控制依然较弱。以下是一套常用的手部修复工作流:

  1. Inpainting(重绘):利用 Inpaint 功能,涂抹手部区域,配合正向提示词如 perfect hands, detailed fingers,负向提示词包含 bad hands, extra fingers。
  2. ControlNet 辅助:在重绘时使用 Canny 或 Depth 预处理器,结合低权重的 OpenPose 作为背景引导,确保肢体位置不变的同时修正手指。
  3. 多轮生成:不要指望一次成功,保持种子固定,微调提示词和重绘幅度,直到获得满意结果。

常见故障排除

  • 问题:人物变形严重
    • 原因:参考图分辨率过低或比例失调。
    • 解决:确保参考图清晰,开启'Pixel Perfect'选项,并在文生图中使用相同分辨率。
  • 问题:颜色风格丢失
    • 原因:ControlNet 权重过高。
    • 解决:降低 Weight 值,或尝试使用不同的 Control Mode(如 Balanced 或 Prompt)。
  • 问题:生成速度慢
    • 原因:开启了高分辨率修复且使用了多个 ControlNet 单元。
    • 解决:关闭不必要的 ControlNet 单元,降低 Hires Upscale 倍数。

结语

ControlNet 的 OpenPose 模块极大地提升了 Stable Diffusion 在人物姿态控制上的可用性。通过掌握姿势复制、骨架图编辑以及高级参数调优,用户可以更精准地实现创意构想。虽然目前对于手指等细微结构的控制仍有局限,但随着算法迭代和工具完善,体验将持续优化。建议在实际操作中多尝试不同参数组合,积累属于自己的最佳实践方案。

目录

  1. Stable Diffusion 基础:ControlNet 人体姿势控制详解
  2. 安装 ControlNet
  3. 复制图片姿势
  4. 使用骨架图姿势
  5. 创造骨架图
  6. Avatar Pose Maker
  7. OpenPose Editor
  8. 3D Openpose
  9. 高级参数与优化技巧
  10. 权重与控制强度
  11. 手部修复策略
  12. 常见故障排除
  13. 结语
  • 免费图片AI生成工具免费生成了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 免费图片视频在线生成30秒,将你的创意变成现实开始设计
  • X/Twitter免费视频下载器免登陆无限额度免费视频解析下载了解详情
  • 100+免费在线小游戏爽一把
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • OpenClaw 自动化与定时任务实战指南
  • WorkBuddy 接入 QQ 机器人配置指南
  • 2026 年 1 月主流远程桌面工具横向评测与选型建议
  • C++ 红黑树封装 set 与 map 底层实现
  • 人脸识别安全审计:基于 RetinaFace 与 CurricularFace 构建测试环境
  • Midjourney 推出面向动漫领域的图像生成模型:Niji V7
  • SpringBoot+Vue 高校疫情防控管理系统设计与实现
  • 基于人工蜂群双向搜索机制的无人机二维三维路径规划与协同控制
  • C#多级缓存架构设计与实现
  • JavaScript Fetch API:如何正确克隆 Request 对象
  • Stable Diffusion 3.5-FP8 部署实战:显存优化与生成质量平衡
  • 多智能体架构选型:四种模式与决策指南
  • 快速幂算法详解:高效计算 x 的 n 次幂
  • RISC-V 处理器从 RTL 到 FPGA 验证实录
  • Google GenAI Toolbox:企业级 AI 数据库中间件与 LLM-SQL 安全互联实践
  • Pix4Dmapper 处理大疆无人机影像数据实战指南
  • LeetCode 原地复写零:双指针逆向填充 O(n) 时间 O(1) 空间解法
  • D-Link DCS-932L 固件栈溢出漏洞分析与复现
  • VS Code + GitHub Copilot 实战指南:从配置到高效协作
  • Windows 平台 JDK 版本管理工具 JVMS 使用指南

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online