스테이블 디퓨전, 컨트롤넷 Openpose 사용법 (Dw_openpose_full, openpose_full 등 4개 프리프로세서 사용법 포함)

이번 내용은 컨트롤넷의 Openpose에 대해 알아보겠습니다.
오픈포즈는 스테이블 디퓨전에서 정말 많이 사용하는 기능 중 하나이며,
인물의 동작을 고정할 때 이만한 툴이 없을 정도로 매우 강력한 확장 기능입니다.

게다가 갈수록 업데이트가 잘되어가면서 이미지의 동작을 잘 추출해내어
복잡한 동작도 한 번에 잡아내어 이미지를 생성해 낼 수 있는 수준까지 올라왔습니다.

아래에서 사용법과 각 preprocessor의 차이점들에 대해 자세히 설명해보겠습니다.

OpenPose 사용법 설명

1. 컨트롤넷 확장 기능과 모델이 다운 받아져 있는지 확인합니다.

오픈포즈를 사용하기 위해선 먼저 컨트롤넷 확장 기능이 설치되어 있어야 합니다.
또한, 허깅페이스에서 올바른 모델도 다운 받아 폴더에 넣어져 있어야
정상적으로 사용할 수 있으니 반드시 확인하시기 바랍니다.

만약, 설치가 아직 안되었거나 모델 다운 받는 곳이 어디 있는지 모르겠다면
아래 링크(버튼을 참고해주세요)

2. 자세를 추출할 이미지 업로드 -> Allow preview 클릭하기

openpose

오픈포즈로 자세를 추출할 이미지를 업로드합니다.

오픈포즈를 사용하려면 원본 이미지가
사람의 형상을 하고 있어야 합니다.

즉, 특정 인물의 얼굴 표정부터 자세의 뼈대를 추출하는 기능이므로
만약, 인물과 관련된 사진이 아니라 사물이거나 동물일 경우
뼈대가 추출되지 않고 검정색 화면으로만 뜰 수 있습니다.

최근엔 동물의 뼈대도 추출할 수 있는 기능이 업데이트 되었지만
animal_openpose_preprocessor를 제외하고
사람의 기준에 맞춰져 있기 때문에 사람 이미지를 사용하셔야 합니다.

또, 동작이 잘 잡히는지 미리 확인하기 위해 Allow Preview에
체크박스 표시를 해줍니다.

3. Control Type을 Openpose로 설정합니다.

openpose

Control Type을 오픈포즈로 클릭합니다.
그 다음, Model이 openpose 단어가 들어간 모델로 세팅이 되었는지
확인해줍니다.

만약, 모델이 뜨지 않는다면 오픈포즈 모델이 다운 받아진 것이 아니니
모델을 올바르게 다운 받았는지 확인해보시기 바랍니다.

4. 원하는 Preprocessor를 선택해줍니다.

openpose2

오픈포즈는 다른 기능과는 다르게 Preprocessor의 역할이
생각보다 큽니다.

우리가 오픈포즈를 감지하는 수치를 조절할 수 있는 것은 아니지만
Preprocessor의 종류에 따라 인물 이미지에서 추출되는
동작의 이미지가 상당히 달라집니다.

Preprocessor의 종류를 이미지와 함께 설명 드리면
아래와 같습니다.

4-1. preprocessor별 차이점

openpose
원본이미지

DW_openpose_full

Openpose

Openpose_face

Openpose_faceonly

Openpose_full

Openpose_hand

위 이미지를 살펴보면 preprocessor별로 사람의 동작을
어떻게 추출하는지 확인하실 수 있습니다.

가장 정확도가 뛰어난 것은 현재까진
DW_openpose_full로 보입니다.

하지만 상황에 따라 원하는 이미지 또는 틀이 다를 수 있으니
위 이미지를 참고해서 어떤 식으로 이미지를 생성할지 결정하고
Preprocessor를 선택하시면 됩니다.

5. 미리보기 버튼을 눌러서 뼈대가 잘 추출되는지 확인합니다.

openpose

4번에서 preprocessor를 선택한 다음 폭탄 버튼처럼 생긴
미리보기 버튼을 눌러, openpose의 뼈대가 잘 추출되는지 확인합니다.

만약, 뼈대 추출이 되지 않는다면 model이 제대로 적용 되었는지
확인 해보시고 이미지도 사람의 이미지가 맞는지? 또는 너무 해상도가
낮지는 않은지? 점검해보시기 바랍니다.

6. 뼈대에 새로 입힐 프롬프트를 작성 후 이미지를 생성합니다.

openpose

5번에서 이미지 뼈대가 잘 추출되면
네거티브 프롬프트와 긍정 프롬프트를 입력해줍니다.

그리고 샘플링 스텝, 메소드, CFG Scale 등을 적절하게 조절한 다음
이미지 생성 버튼을 눌러 이미지를 생성해줍니다.

7. 결과가 잘 나왔는지 확인해봅니다.

원본

Openpose 적용 결과

원본 이미지는 남자 소년의 이미지였으나
Openpose로 뼈대를 추출하고 프롬프트로 여성이 춤추는 모습으로
표현해달라고 명령을 내리니 우측 이미지처럼
자세는 고정되지만 분위기가 전체적으로 바뀐 모습을 확인할 수 있습니다.

이처럼 Openpose는 다른 AI 툴에는 없는
자세를 직접적으로 고정시킬 수 있는 기능이라
긍정 프롬프트를 수십 또는 수백 줄을 줄일 수 있는 엄청난 기능입니다

사용하면서 궁금한 점이 생기거나 막히는 부분이 생기면
네이버 카페로 오셔서 질문해주세요~!