안녕하세요. 이번에는 stablediffusion의 extension cotrolnet을 이용해서 모델의 포즈를 따오고 변형하고 적용하는 방법에 대해 간단하게 다뤄보겠습니다.
1. controlnet 설치
sd webui를 실행한 후 extesions > install from URL에 들어가서 "https://github.com/Mikubill/sd-webui-controlnet" 붙여 넣어주고 Install을 합니다. 그리고 SD를 재실행하시고 UI를 리로딩해 주시면 설치가 되신 화면을 볼 수 있습니다.
2. controlnet 메뉴 구성
컨트롤이 설치되면 txt2img와 img2img 하단에 ControlNet이라는 메뉴가 생긴 것을 확인할 수 있는데요. 옆에 있는 ◀ 버튼을 통해 세부 옵션을 확인할 수 있습니다.
세부 옵션에 체크박스에 Enable을 체크해서 controlnet을 사용하며, 램이 부족할 경우 Low VRAM을 체크하시면 됩니다. Preprocessor(전처리기)에서 내가 원하는 스타일의 처리방법을 선택하여 Model에서 선택한 방법으로 적용할 수 있습니다.
여러 가지 처리기가 있으나 내가 원하는 모델의 동작을 추출하기 위해서는 Openpose를 사용하면 됩니다.
Resize Mode는 3가지 방법이 있으나 저는 기본적으로 Scale to Fit으로 사용합니다.
이 포스팅에서는 모델의 원하는 포즈를 생성하는 목적으로 글을 작성하니 다른 사용법에 대해서 깃허브(https://github.com/Mikubill/sd-webui-controlnet)를 참고해주세요
3. openpose : 모델에서 포즈 추출하기
추출하고 싶은 포즈를 하고 있는 이미지를 controlnet에 등록합니다. 저는 유튜브에서 가져왔는데요. 원하는 포즈를 찾지 못한 경우 본인의 사진을 직접 찍어서 올려도 됩니다. 사진을 등록한 후 Enable 체크 후 Preprocessor와 Model을 둘 다 openpose와 controlnetPreTrained_openpose로 선택하여 줍니다.
그리고 이미지를 생성해 주면 아래와 같이 두장의 이미지로 생성된 것을 볼 수 있습니다.
이대로 원하는 포즈를 추출해서 프롬프트를 적당하게 가감하여 다른 스타일의 이미지로 생성할 수 도 있고요. 이 뼈대를 따로 저장해 놨다가 나중에 사용하거나 이 포즈를 직접 변경해서 사용할 수 있습니다. (OpenPose Editor 이용)
4. openpose 뼈대 활용하기
생성된 pose 뼈대는 따로 저장해놨다가 필요할 때 뼈대만 가져와서 사용할 수 있습니다. 저장한 pose를 컨트롤넷으로 가져옵니다. 이번에는 포즈가 생성되어 있으므로 전처리 과정을 생략합니다. preprocessor에서 'none'으로 변경하고 model에서는 controlnetPreTrained_openpose를 선택해 줍니다. 3번에서 진행할 때는 이미지를 기본으로 포즈를 추출해야 되므로 전처리기 선택이 필요한 거고 이미 포즈 뼈대가 있으면 전처리 과정을 생략합니다. 이제 원하는 그림이 나올 때까지 Generate 해주면 됩니다!
'[TIP] Stable Diffusion' 카테고리의 다른 글
[SD. TIP] LoRa 만들기, 학습을 위한 기본 준비 (feat. kohya_ss) (6) | 2023.05.06 |
---|---|
stable diffusion : vladmandic 버전 (0) | 2023.04.29 |
[SD. TIP] Photoshop에서 SD를 사용하자! (0) | 2023.03.23 |
Lookbook research with AI (0) | 2023.03.21 |
[SD. TIP] Dynamic Thresholding 으로 고퀄리티를 뽑아보자 (2) | 2023.03.16 |
댓글