Stable Diffusion의 ControlNet은 AI 이미지 생성에 구조 정보를 추가로 제공해 포즈, 외곽선, 깊이감을 제어하는 확장 기능입니다. 그 중 OpenPose 모델은 인체의 관절 위치를 키포인트 스켈레톤으로 추출해 AI에게 포즈 정보를 전달합니다. 3D 포즈 메이커에서 캡처한 이미지를 ControlNet OpenPose와 연결하면, 텍스트 프롬프트만으로는 불가능했던 정확한 포즈 제어가 가능해집니다.

ControlNet OpenPose의 작동 원리

OpenPose는 입력 이미지에서 인체의 18~26개 관절 키포인트(어깨, 팔꿈치, 손목, 고관절, 무릎, 발목 등)를 감지하고, 이를 색상으로 구분된 스틱 피겨 형태의 스켈레톤으로 변환합니다. 이 스켈레톤 이미지가 Stable Diffusion의 조건 입력으로 전달되어, AI가 해당 포즈를 유지하면서 스타일과 외모를 자유롭게 생성할 수 있게 됩니다.

핵심은 입력 이미지에서 관절 키포인트가 정확히 감지되어야 한다는 것입니다. 실제 인물 사진이든, 3D 모델 캡처든, OpenPose 감지기가 인식할 수 있는 형태여야 합니다. 포즈포지의 3D 모델은 관절이 명확하게 시각화되어 있어 OpenPose 감지 정확도가 높습니다.

포즈포지 → ControlNet OpenPose 연결 워크플로우

  1. 포즈 설정: 원하는 신체 부위(전신/팔/다리 등)의 포즈 메이커에서 포즈를 만듭니다. 관절 각도와 뷰포트 회전을 그릴 시점에 정확히 맞추세요.
  2. 배경 제거 후 캡처: 배경 끄기 버튼으로 캔버스를 투명하게 만든 뒤 PNG로 캡처합니다. 투명 배경은 ControlNet이 인체와 배경을 혼동하지 않도록 해줍니다.
  3. ControlNet 탭에 이미지 입력: Stable Diffusion WebUI의 ControlNet 탭을 열고, 캡처한 이미지를 이미지 입력란에 드래그하거나 업로드합니다.
  4. OpenPose 프리프로세서 선택: Preprocessor를 openpose(또는 openpose_full, dw_openpose 등 버전에 따라)로 설정하고, Model을 control_openpose 모델로 선택합니다.
  5. Control Weight 조정: 기본값 1.0은 포즈를 강하게 고정합니다. 0.7~0.85 사이로 낮추면 포즈를 유지하면서도 AI가 자연스럽게 조정할 수 있는 여지가 생깁니다.
  6. 생성: 텍스트 프롬프트와 함께 생성하면 지정한 포즈를 유지하는 이미지가 만들어집니다.

💡 팁: 손과 발이 포함된 포즈에서는 openpose_full 또는 dw_openpose 프리프로세서를 사용하세요. 일반 openpose는 손가락·발가락 키포인트를 감지하지 못합니다. dw_openpose는 손 26개, 발 15개 키포인트를 추가로 감지해 손·발 표현 정확도가 크게 향상됩니다.

부위별 최적 ControlNet 모델 선택

OpenPose 외에도 상황에 따라 다른 ControlNet 모델이 더 효과적일 수 있습니다.

손·발 표현 오류 줄이기

AI 이미지 생성에서 손과 발은 여전히 오류가 잦은 부위입니다. 포즈포지의 손·발 전용 3D 메이커를 활용하면 이 문제를 크게 줄일 수 있습니다. 손 포즈 메이커에서 원하는 손 포즈를 만들고 캡처한 뒤, ControlNet의 dw_openpose 모델에 입력하면 손가락 키포인트가 정확하게 추출됩니다. 발도 동일한 방식으로 활용하세요. 특히 손가락이 겹치거나 발이 로우앵글로 보이는 구도에서 효과가 큽니다.

한 번의 생성으로 모든 것이 완벽해지기를 기대하기보다, 포즈 이미지 → 생성 → 부분 인페인팅의 워크플로우를 활용하세요. 전체 포즈를 ControlNet으로 잡고, 손이나 발처럼 세밀한 부위는 인페인팅(Inpainting)으로 따로 개선하는 것이 가장 효율적인 방법입니다.