sd-webui-openpose-editor 是一个专门为 Stable Diffusion WebUI 中的 ControlNet 扩展设计的插件。它的核心功能是提供一个可视化的、交互式的编辑器,用于修改和创建 Openpose 骨架图。Openpose 是一种用于检测人体姿态(身体、手部、面部关键点)的技术,在 ControlNet 中常用于精确控制生成图像中人物的姿势。
这个编辑器解决了原生 ControlNet 预处理器只能生成固定姿势、无法手动调整的痛点,让用户可以像在绘图软件中一样,自由地拖动关键点、添加或移除肢体,从而创造出任意想要的姿势。
项目地址:https://github.com/huchenlei/sd-webui-openpose-editor
它不是独立运行的,而是作为 ControlNet 扩展的一部分被调用。
工作流程是:在 ControlNet 单元中运行一个 Openpose 预处理器(如 openpose 或 openpose_hand)后,点击生成的预览图上的 Edit 按钮,即可在弹窗中打开此编辑器进行修改。
1、能够识别并编辑 ControlNet 预处理结果中包含的身体、手部和面部关键点。
2、如果预处理结果中遗漏了手部或面部,用户可以手动添加:
添加默认手部:可以方便地添加一个默认手势。
通过 JSON 添加:通过上传一个包含姿势数据的 JSON 文件来添加手部或面部(会使用 JSON 中第一个人的对应部位)。
关键点可以设置为“可见”或“不可见”。
如果一个关键点被 ControlNet 预处理器忽略,其坐标会是 (-1, -1),在编辑器中将自动被视为不可见。
重要用途:将某个关键点设置为不可见并发送回 ControlNet 后,与之相连的肢体(如手臂、腿)将不会被渲染。这实际上是 移除不需要的肢体 的方法。
为了防止意外移动单个关键点(尤其是在编辑复杂的手部时),用户可以将一组关键点(如整只手或整个面部)结成一组。
分组后,整个组可以作为一个单一对象进行 移动、缩放、旋转 等操作,大大提高了编辑效率和精确度。
从 ControlNet 扩展 v1.1.411 版本开始,大多数用户无需手动安装此编辑器。因为 ControlNet 扩展会默认使用一个在线的编辑器端点。
仅在以下情况下建议进行本地安装:
网络连接状况不佳。
无法正常访问 github.io 域名(例如中国大陆的部分用户)。
本地安装方法:
1、在 WebUI 的 "Extensions" 标签页中,选择 "Install from URL"。
2、输入该项目的 Git 地址,点击 "Install"。
3、安装完成后,完全重启 WebUI。
4、重启后,扩展会自动尝试从 GitHub 下载编译好的前端文件(Vue应用)。请检查 stable-diffusion-webui\extensions\sd-webui-openpose-editor\dist 目录是否存在且不为空。
如果自动下载失败(常见于网络问题),有两种手动解决方案:
需要 Node.js 环境。进入扩展目录,运行 npm install 安装依赖,然后运行 npm run build 进行构建。
从项目的 Releases 页面 下载 dist.zip 文件,解压到扩展的根目录,确保文件夹名称为 dist。
1、在 Stable Diffusion WebUI 中进入 "txt2img" 或 "img2img" 标签页。
2、展开 ControlNet 单元,上传一张参考图(可选)。
3、在 "Preprocessor" 下拉菜单中选择任一种 Openpose 预处理器(例如 openpose)。
4、点击 "Run Preprocessor" 按钮。预处理器会生成一张带有人体骨架的预览图。
5、在该预览图的右下角,点击 "Edit" 按钮。
6、此时会弹出一个模态窗口,里面就是 Openpose Editor。
7、在编辑器中进行任意修改:
拖动身体关键点。
添加/编辑手部和面部。
使用分组功能进行整体变换。
使用可见性控制来隐藏/显示肢体。
8、编辑完成后,点击编辑器中的 "Send pose to ControlNet" 按钮。
9、编辑后的骨架图会被发送回 ControlNet 单元,替换原来的预处理器结果。
10、现在,你可以像平常一样进行文生图或图生图,生成的人物将会采用你编辑好的姿势。
核心应用:使用 Vue 3 框架构建,提供了流畅的交互体验。
构建工具:使用 Vite。
类型检查:使用 TypeScript 和 vue-tsc。
测试:使用 Vitest 进行单元测试。
代码规范:使用 ESLint。
对于开发者,项目提供了标准的现代前端开发环境。在配置好 Node.js 环境后,可以通过 npm run dev 启动带热重载的开发服务器,或通过 npm run build 编译生产版本。
sd-webui-openpose-editor 是一个强大且实用的工具,它极大地增强了对 AI 绘图人物姿态的控制能力。通过将原本“黑盒”的 Openpose 预处理过程变得可交互、可编辑,它让艺术家和创作者能够更精准地实现自己的构图想法,是使用 Stable Diffusion 和 ControlNet 进行角色创作时的必备插件之一。