본문 바로가기
푸른지성의 이야기/Stable Diffusion

AI 그림 그리기(SD) #7 - 강제로 구도/포즈를 지정하자 (Controlnet)

by 푸른지성 2023. 3. 3.
반응형

전편에서는 프롬프트만을 이용해서 포즈를 지정해봤습니다만,

참 말을 안듣죠?

100장중에 몇장밖에 원하는 포즈의 결과물을 내주지 않습니다.

이편에서는 정말 강제로 포즈를 지정하는 방법을 알아봅시다.

 

그냥 되는 것은 아닙니다. 별도의 SD 확장팩이 필요합니다.

사실 추가 확장팩을 이용한 작업은 나중에 몰아서 확장팩쪽에서 다룰 예정이였습니다만,

매일매일 기능이 추가되고 사람들이 좋아하는 기능들이 나오는 판에, 

"포즈는 프롬프트만으로는 어렵습니다." 하고 끝내버리면 너무 애매해지므로 이 편에서 이어서 소개하겠습니다.

자, SD의 메뉴중 맨 마지막에 있는 Extensions를 사용할때입니다.

위와같이 Extensions탭을 누르면 Installed, Available, Install from URL이 있는데, 이중에서 Install from URL을 눌러주세요.

URL for extentions' git repository 에 

https://github.com/Mikubill/sd-webui-controlnet 

를 입력하고 Install 버튼을 눌러주세요.

로컬 실행이 아닌, --listen 모드, --share 모드일 경우 "AssertionError: extension access disabed because of commandline flags" 라는 에러가 납니다.

이럴때는 실행시 커멘드라인에 "--enable-insecure-extension-access" 를 추가해줘야 합니다.

Install 버튼을 눌러도 별 반응이 없어보입니다만, 제대로 버튼을 눌렀다면 Installed 탭을 눌러보세요.

 제대로 눌렀다면 위의 항목과 같이 "sd-webui-controlnet" 이라는 항목이 표기됩니다.

이때 위의 노란색 버튼 "Apply and restart UI" 버튼을 눌러주세요.

잠시 기다리면 페이지가 새로고침 될겁니다.

 

아래의 그림같이 txt2img 의 아래쪽에 뭔가 생겼죠?

위와같이 ControlNet 이라는 항목이 추가되었으면 성공입니다.

눌러봅시다.

우와. 뭔가 또 복잡해지네요. 너무 걱정은 안하셔도 됩니다.

여기에 나온 대로만 하시면 됩니다.

우선 콘트롤넷에서 사용할 모델을 별도로 다운로드 해야 합니다.

  • webui/ControlNet-modules-safetensors at main
  • We’re on a journey to advance and democratize artificial intelligence through open source and open science.

https://huggingface.co/webui/ControlNet-modules-safetensors/tree/main

위의 페이지에서 control_openpose-fp16.safetensors 를 다운로드 받으신 다음 (다른것들도 흥미 있으면 시도해보시기 바랍니다.)

자신의 SD 폴더의 extensions 폴더 안에 새로 추가된 sd-webui-controlnet폴더 안의 models 폴더에 넣으시면 됩니다.

아래와 같이 나오면 됩니다.

자, 이제 확장팩의 준비는 끝났습니다. 

 

사진을 구합시다. 자기가 원하는 포즈의 사진을 구글에서 검색해서 가져옵시다.

가능하면, 배경이 없는게 가장 좋고, 단순한 배경의 이미지가 가장 좋습니다.

저는 요 전편에 했던 두팔벌려 소리지르는 사진을 한장 구해왔습니다.

콘트롤넷의 화면 중앙을 클릭하여 업로드 합니다.

아래의 옵션중 Enable 에 체크하시고, Preprocessor에서는 openpose를 선택하세요.

그리고 Model을 선택해야 하는데, 넣었어도 안나옵니다. 오른쪽에 있는 파란색 새로고침 마크를 누른 뒤 다시 리스트를 누르면 나옵니다.

해당 모델을 선택합니다.

포즈에 대한 준비는 다 되었습니다. ㅋㅋㅋㅋㅋ 

이게 동작해?????

이제 위쪽의 프롬프트와 네거티브, 기타 설정들을 전편과 동일하게 지정해줍시다.

제너레이트를 누르면?

 

콘트롤넷이 지시한 포즈를 베이스로 AI가 창작을 해갑니다.

절대 안보여주던 시원시원한 팔벌림을 보여줍니다.

신기하죠?

가능하면 프롬프트만으로 해결하는게 가장 쉬운 방법입니다.

이렇게 콘트롤넷을 사용하려면 사진을 구하거나 만들고, 옵션 조정도 추가로 필요해서 복잡해지죠.

하지만

 

다음편에 계속!

 

반응형

댓글