ComfyUI에서 OpenPose ControlNet SD1.5 모델 사용하기
SD1.5 OpenPose ControlNet 소개
OpenPose ControlNet은 이미지에서 인물의 포즈를 제어하기 위해 특별히 설계된 ControlNet 모델입니다. 입력 이미지에서 인물의 포즈를 분석하여 AI가 새로운 이미지를 생성할 때 올바른 포즈를 유지하도록 돕습니다. 이 모델은 인물 이미지 생성, 애니메이션 생성, 게임 캐릭터 생성 등에서 매우 효과적입니다. 인물의 포즈를 정확하게 이해하고 유지할 수 있기 때문입니다.
이 튜토리얼은 SD1.5 모델의 OpenPose ControlNet 모델 사용 방법과 팁에 중점을 둡니다. 다른 버전과 유형의 ControlNet 모델에 대한 튜토리얼은 추후에 추가될 예정입니다.
OpenPose ControlNet 사용하기
OpenPose ControlNet을 사용하려면 OpenPose 이미지를 사용하여 인물의 포즈를 제어하고, OpenPose ControlNet 모델을 사용하여 생성된 이미지에서 인물의 포즈를 제어해야 합니다. OpenPose 이미지의 예시는 다음과 같습니다:
Depth 이미지와 마찬가지로, ComfyUI ControlNet Auxiliary Preprocessors 플러그인을 사용하여 OpenPose 이미지를 생성할 수 있습니다. 이 플러그인을 설치하지 않으려면 open-pose-editor와 같은 온라인 도구를 사용하여 포즈 제어를 위한 OpenPose 이미지를 생성할 수도 있습니다. 하지만 ComfyUI ControlNet Auxiliary Preprocessors 플러그인을 설치하는 것을 강력히 권장합니다. 일상적인 사용에서 이 플러그인이 자주 사용될 것이기 때문입니다.
OpenPose ControlNet 단계별 사용 튜토리얼
1. ComfyUI 업그레이드
이 문서에서 사용되는 새로운 Apply ControlNet 노드는 이전 노드와 다르므로, ComfyUI의 최신 버전으로 업그레이드하거나 설치하는 것이 좋습니다 다음 튜토리얼을 참조하세요:
2. 필수 플러그인 설치
ComfyUI Core에는 OpenPose 이미지 전처리기가 포함되어 있지 않으므로, 전처리기 플러그인을 먼저 다운로드해야 합니다 이 튜토리얼에서는 OpenPose 이미지를 생성하기 위해 ComfyUI ControlNet Auxiliary Preprocessors 플러그인이 필요합니다.
ComfyUI Manager를 사용하여 설치하는 것을 권장합니다 플러그인 설치 방법은 ComfyUI 플러그인 설치 가이드를 참조하세요
최신 버전의 ComfyUI Desktop에는 ComfyUI Manager 플러그인이 이미 설치되어 있습니다
3. 필요한 모델 다운로드
먼저 다음 모델을 설치해야 합니다:
모델 유형 | 모델 파일 | 다운로드 링크 |
---|---|---|
SD1.5 기본 모델 | dreamshaper_8.safetensors | Civitai |
OpenPose ControlNet 모델 | control_v11f1p_sd15_openpose.pth(필수) | Hugging Face |
4. 모델 저장 위치
다음 구조에 따라 모델 파일을 배치하세요:
📁ComfyUI
├── 📁models
│ ├── 📁checkpoints
│ │ └── 📁SD1.5
│ │ └── dreamshaper_8.safetensors
│ ├── 📁controlnet
│ │ └── 📁SD1.5
│ │ └── control_v11f1p_sd15_openpose.pth
SD 버전과 controlnet은 버전 종속성이 있으므로, 향후 모델 관리를 쉽게 하기 위해 여기에 SD1.5
폴더 계층을 추가했습니다
설치 후 ComfyUI를 새로 고치거나 다시 시작하여 프로그램이 모델 파일을 읽도록 하세요
5. 워크플로우 파일
여기에 두 가지 워크플로우 파일이 제공됩니다
OpenPose 이미지와 ControlNet 모델을 사용한 이미지 생성
위의 워크플로우를 다운로드하고, ComfyUI로 드래그하거나 단축키 Ctrl+O
를 사용하여 이 워크플로우 파일을 엽니다
아래 이미지를 다운로드하고 Load Image 노드에 로드하세요
1
Load Image 노드에 참조 이미지를 로드합니다2
Load Checkpoint 노드에서 설치한 모델을 선택합니다3
Apply ControlNet 노드에서control_v11f1p_sd15_openpose.pth
모델을 선택합니다- Queue를 사용하거나 단축키
Ctrl+Enter
를 사용하여 워크플로우를 실행하고 이미지를 생성합니다
ComfyUI ControlNet Auxiliary Preprocessors를 사용한 참조 이미지 전처리
위의 워크플로우와 달리, 때로는 준비된 OpenPose 이미지가 없을 수 있습니다. 이런 경우 ComfyUI ControlNet Auxiliary Preprocessors 플러그인을 사용하여 참조 이미지를 전처리한 다음, 처리된 이미지를 ControlNet 모델과 함께 입력으로 사용해야 합니다
위의 워크플로우를 다운로드하고, ComfyUI로 드래그하거나 단축키 Ctrl+O
를 사용하여 이 워크플로우 파일을 엽니다
아래 이미지를 다운로드하고 Load Image 노드에 로드하세요
1
Load Image 노드에 입력 이미지를 로드합니다2
Load Checkpoint 노드에서 설치한 모델을 선택합니다3
Apply ControlNet 노드에서control_v11f1p_sd15_openpose.pth
모델을 선택합니다- Queue를 사용하거나 단축키
Ctrl+Enter
를 사용하여 워크플로우를 실행하고 이미지를 생성합니다
5.1 주요 노드 설명
ComfyUI Core 노드, 핵심 노드 문서는 현재 웹사이트 문서에서 확인할 수 있습니다
- Apply ControlNet 노드: Apply ControlNet
- ControlNet 모델 로드: ControlNet Loader
5.2 ComfyUI ControlNet Auxiliary Preprocessors 노드
포즈 감지 노드에 대해, 두 가지 다른 노드가 제공됩니다: 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 | 다양한 포즈 감지 방법 | - |
출력 매개변수 | 설명 | 매개변수 옵션 |
---|---|---|
image | 처리된 출력 이미지 | - |
POSE_KEYPOINT | 골격 포인트 | - |