OpenPose ControlNet,是一個專門用於控製圖像中人物姿態的ControlNet 模型。它通過分析輸入圖像中的人物姿態,幫助AI 在生成新圖像時保持正確的人物姿態。這個模型在人物圖像生成、動漫生成、遊戲角色生成等情況下都有比較好的效果,因為它能夠準確理解和保持人物的姿態。
OpenPose ControlNet 的使用需要使用OpenPose 圖來來控制人物姿態的控制,然後使用OpenPose ControlNet 模型來控制生成圖像中的人物姿態,對應OpenPose 圖效果如下:
和Depth 圖一樣,你可以使用ComfyUI ControlNet Auxiliary Preprocessors插件來生成OpenPose 圖,如果你不想安裝這個插件,也可以使用類似open-pose-editor這樣的在線工具來生成OpenPose 圖用於姿態控制。 這裡還是建議非常推薦安裝ComfyUI ControlNet Auxiliary Preprocessors 插件的,因為在後續日常的使用中,這個插件功能會被頻繁使用。
由於本文使用的相關節點是新的Apply ControlNet 與老的節點有所不同,所以建議你先升級或安裝最新版本的ComfyUI 相關教程你可以參考:
由於ComfyUI Core 並不帶有對應的OpenPose 圖像預處理器,所以需要預先下載對應的預處理器插件本教程需要使用ComfyUI ControlNet Auxiliary Preprocessors 插件來生成OpenPose 圖。
這裡比較推薦使用ComfyUI Manager 來進行安裝插件安裝的教程可以參考ComfyUI 插件安裝教程這個部分說得比較詳細了
最新版本ComfyUI Desktop已經預裝ComfyUI Manager 插件了
首先需要安裝以下模型:
模型類型 | 模型文件 | 下載地址 |
---|---|---|
SD1.5 基礎模型 | dreamshaper_8.safetensors | Civitai |
OpenPose ControlNet 模型 | control_v11f1p_sd15_openpose.pth(必須) | Hugging Face |
請按照以下結構放置模型文件:
由於SD 版本和controlnet 是有版本對應關係的,所以我在這裡命名增加了一層SD1.5 文件夾方便後續的模型管理
安裝完成後刷新或者重啟ComfyUI 讓程序讀取對應的模型文件
這裡提供了兩個工作流文件
SD1.5 OpenPose ControlNet Img Workflow
下載上面的工作流,在運行ComfyUI 後將工作流拖入或者使用ComfyUI 的快捷鍵Ctrl+O 打開這個工作流文件
請下載下面的圖片,並在Load Image 節點中載入使用OpenPose ControlNet Img
1.在1 Load Image 節點中載入參考圖片
2.在2 Load Checkpoint 節點中選擇你安裝的模型
3.在3 Apply ControlNet 節點中選擇control_v11f1p_sd15_openpose.pth 模型。
4.使用Queue 或者快捷鍵Ctrl+Enter 運行工作流進行圖片生成
和上面一個工作流有所差異,在有些情況下我們並不一定有現成的OpenPose 圖,那麼就需要使用ComfyUI ControlNet Auxiliary Preprocessors插件來對參考圖片進行預處理,然後使用處理後的圖片作為輸入圖片與ControlNet 模型一起使用
SD1.5 OpenPose ControlNet Preprocessor Workflow
下載上面的工作流,在運行ComfyUI 後將工作流拖入或者使用ComfyUI 的快捷鍵Ctrl+O 打開這個工作流文件
請下載下面的圖片,並在Load Image 節點中載入使用OpenPose ControlNet input
1.在1 Load Image 節點中載入輸入圖片
2.在2 Load Checkpoint 節點中選擇你安裝的模型
3.在3 Apply ControlNet 節點中選擇control_v11f1p_sd15_openpose.pth 模型。
4.使用Queue 或者快捷鍵Ctrl+Enter 運行工作流進行圖片生成
ComfyUI Core 節點,核心節點文檔在當前網站文檔已有對應說明
1.應用ControlNet節點: Apply ControlNet
2.加載ControlNet 模型: ControlNet Loader
關於Pose 檢測的節點,這裡提供了兩種不同的節點,分別是OpenPose Pose 節點和DWPose Estimator 節點他們的作用都是從圖像中提取手部、身體、面部姿態信息並生成骨架圖
DWPose Estimator 節點是基於DWPose 的姿態檢測算法,OpenPose Pose 節點是基於OpenPose 的姿態檢測算法,在我提供的工作流中我是用的是OpenPose Pose 節點,你可以在運行成功後試試DWPose Estimator 節點,看看差異
OpenPose Pose 節點
輸入參數 | 描述 | 參數選項 |
---|---|---|
images | 輸入圖像 | - |
detect_hand | 是否檢測手部 | enable / disable |
detect_face | 是否檢測面部 | enable / disable |
detect_body | 是否檢測身體 | enable / disable |
resolution | 輸出圖像的分辨率 | - |
輸出參數 | 描述 | 參數選項 |
---|---|---|
image | 從圖像處理後輸出的圖像 | - |
POSE_KEYPOINT | 骨架點 | - |
DWPose Estimator 節點
輸入參數 | 描述 | 參數選項 |
---|---|---|
images | 輸入圖像 | - |
detect_hand | 是否檢測手部 | enable / disable |
detect_face | 是否檢測面部 | enable / disable |
detect_body | 是否檢測身體 | enable / disable |
resolution | 輸出圖像的分辨率 | - |
bbox-detector | 是否檢測人體框在圖像中的文職 | enable / disable |
pose_estimator | pose 檢測的不同方法 | - |
輸出參數 | 描述 | 參數選項 |
---|---|---|
image | 從圖像處理後輸出的圖像 | - |
POSE_KEYPOINT | 骨架點 | - |