콘트롤넷(ControlNet)은 구도와 피사체의 자세를 복제할 수 있는 스테이블 디퓨전 확장 모델입니다. 스테이블 디퓨전을 조금이라도 써보신 분은 아시겠지만, 생성되는 이미지가 원하는 자세를 갖도록 하는 것은 거의 불가능합니다. 자세 뿐만 아니라 배경이나 인물까지도 모두 무작위로 생성되기 때문입니다. 해결 방법은 그저 이미지를 많이 생성하는 것 뿐이었습니다.
ControlNet을 사용하면 이런 문제를 어느 정도 해결할 수 있습니다. ControlNet을 사용하면 파사체를 어디에 둘지, 어떤 모습을 가지게 할지 등을 정확하게 제어할 수 있습니다. 이 글에서는 콘트롤넷(ControlNet)이 무엇인지 알아보고, 설치방법, AUTOMATIC1111에서의 사용법, 설정 방법 등에 대해 알아보겠습니다. 더 자세한 콘트롤넷 모델의 종류 및 특성, 그리고 적용사례 등은 콘트롤넷 사용방법(2)에 별도로 정리했으니 이 글을 참고하시기 바랍니다.
(참고로 이 글은 1.1에서 달라진 내용을 포함해 다중 ControlNet 사용법 등을 추가하여 수정한 글입니다.
콘트롤넷이란?
콘트롤넷은 스테이블 디퓨전 모델 을 제어하기 위한 신경망 모델로서, 단독으로는 사용할 수 없고, 다른 스테이블 디퓨전 모델과 함께 사용해야 합니다.
스테이블 디퓨전에서 가장 기본적인 형태는 text-to-image, 즉 텍스트 프롬프트(prompt)를 조건부여(conditioning)로서 입력하면, 이를 바탕으로 이미지를 생성하는 것입니다. ControlNet은 조건부여를 하나 더 추가합니다. ControlNet에도 매우 많은 모이 존재하지만, 여기에서는 외곽선 감지(edge detection)와 인체 자세 감지 등 두 가지를 예를 들어 보이겠습니다.
외곽선 감지(Edge detection)
아래 그림에서 ControlNet은 이미지를 입력으로 받아 캐니(Canny) 외곽선 감지 알고리듬을 통해 외곽선을 감지합니다. 이렇게 감지된 외곽선은 제어 맵(control map)으로 저장되며, ControlNet에 전달되어 텍스트 프롬프트와 함께 추가적인 조건부여로 활용됩니다.
입력된 이미지에서 특정한 정보(이 예에서는 외곽선)를 추출하는 프로세스를 아노테이션(annotation, 연구 논문에서 사용하는 용어) 또는 전처리(preprocessing, ControlNet에서 사용하는 용어)라고 합니다.
인체 자세 감지
위에서는 외곽선 감지에 대해서 알아보았지만, 이미지를 전처리하는 방법에는 여러가지가 있습니다. 그중에서 정말 많이 사용되고 있는 Openpose 는 손, 발, 머리 등의 위치와 같은 인간의 자세를 추출하는 빠른 키포인트(keypoint) 감지 모델입니다.
아래는 Openpose를 이용한 ControlNet 작업흐름입니다. Openpose는 입력된 이미지로 부터 키포인트를 추출하고, 이 키포인트의 위치를 포함하는 제어 맵(control map)으로 저정합니다. 이 제어 맵이 Stable Diffusion에 전달되어 텍스트 프롬프트와 함께 추가적인 조건부여로 사용됩니다.
여기에서 Canny 알고리듬과 Openpose를 비교해 보겠습니다. Canny 외곽선 감지는 대상과 배경의 외곽선을 모두 추출합니다. 이 때문에 전체적인 장면을 훨씬 더 잘 유지하는 경향이 있습니다. 즉, 춤추는 남자가 여자로 바뀌었음에도 외곽선과 머리 스타일이 비슷하게 생성됩니다.
Openpose는 머리, 팔의 자세와 같은 핵심 포인트만 감지하므로, 원래의 자세는 따르지만 이미지가 좀더 자유롭게 생성됩니다. 위의 예에서 보면, 왼손이 약간 들려있는 형태, 발끝이 향하는 방향 등이 원본과 다르다는 것을 알 수 있습니다. 이는 Openpose가 자세만 복사할 뿐 손 발의 방향은 명시하지 않기 때문입니다.
Stable Diffusion ControlNet 설치 방법
(이 글은 ControlNet 1.1을 반영하여 수정한 글입니다.)
윈도에 AUTOMATIC1111 GUI를 설치 하였을 경우, ControlNet은 쉽게 설치할 수 있습니다. (구글 Colab 및 맥의 경우는 설명하지 않습니다. 필요하시면 원본 글을 읽어보세요. ) 먼저 Extension 탭으로가서 그 아래에 있는 Avalable 탭을 설치하고 [Load from] 버튼을 누르면 됩니다.
여러가지 확장이 나열되는데, 여기에서 sd-webui-controlnet-mainpulations 을 찾아, 맨 오른쪽에 있는 [Install] 버튼을 누릅니다. 잠시 Installing... 에서 사라질 때까지 기다린 후.....
Installed 탭으로 들어가면 방금 설치한 sd-webui-controlnet이 설치되었음을 확인할 수 있습니다. 이제 [Apply and restart UI] 라는 버튼을 누르면 UI이 다시 시작됩니다. 이렇게 되면 설치는 완료된 것입니다.
ControlNet 모델 설치
ControlNet을 사용하려면, 위에서 설명한 전처리기(preprocessor)외에도 이를 처리할 수 있는 모델이 별도로 필요합니다. 모델 파일은 lllyasviel/ControlNet-v1-1 at main 에 들어가면 있습니다. 아래에서 .pth 파일들을 넣어주면 됩니다. 모두 다운로드 받아도 되고, 위에 열거한 많이 사용되는 모듈만 다운로드 받아도 됩니다.
다운 받으실 때에는 아래 동그라미 쳐둔 부분에 화살표나 LFS라고 적힌 단추를 클릭하면 다운 받을 수 있습니다. 다운로드 받아서 넣어줄 위치는 아래와 같습니다. 이 폴더에 들어가면 이미 같은 이름의 .yaml 파일이 있으니까 .pth만 넣어주시면 됩니다.
stable-diffusion-webui/extensions/sd-webui-controlnet/models
설치가 완료되면 AUTOMATIC1111 웹UI를 다시 시작합니다. 성공적으로 설치하였을 경우, 아래와 같이 txt2img 탭아래쪽 Seed 입력란 아래에 ControlNet 부분이 보일 것입니다. (여기의 맨 오른쪽에 있는 삼각형을 누르면 메뉴가 확장됩니다.)
T2I 어댑터 설치
T2I 어댑터(adapter)는 디퓨전 모델의 이미지 생성에 다른 방식의 제어를 제공하기 위한 신경망 모델입니다. 설계는 완전 다른 방식이지만, 개념적으로는 ControlNet과 유사합니다.
AUTOMATIC1111의 ControlNet 확장은 T2I 어댑터도 사용할 수 있습니다. 모델은 여기 들어가 t2iadapter_xxx.pth 처럼 생긴 파일을 다운로드 받으면 됩니다. 대부분의 T2I 어댑터 기능은 ControlNet 모델과 겹칩니다. 겹치지 않는 것으로는 아래 두 가지가 유용합니다.
- t2iadapter_color_sd14v1.pth
- t2iadapter_style_sd14v1.pth
다운로드 받는 폴더는 위의 ControlNet 모델 폴더와 동일합니다.
stable-diffusion-webui/extensions/sd-webui-controlnet/models
그런데, 저는 이 글 전체에서 Color grid T2I adapter 만 사용하고 있습니다. 대부분 중복되기 때문에 이 것만 설치해도 무방할 것 같습니다.
ControlNet extension 업데이트
ControlNet은 매우 빠르게 개발되고 있어, 며칠전에 설치하였더라도 금방 새로운 버전이 나올 수 있습니다. 따라서 콘트롤넷을 사용할 때에는 먼저 새로운 버전이 나와 있는 건 아닌지 확인해보는 것이 좋습니다.
먼저 Extension 페이지의 Intalled 탭에 들어 갑니다. 맨 오른쪽 Update 란을 보면 unknown이라고 표시되어 있습니다. 이제 [Check for updates] 버튼을 누릅니다.
잠시 후 Update에 있는 항목들이 다시 표시됩니다. 맨 오른쪽에 sd-webui-controlnet에 새로운 commit이 있다고 표시되면...
[Apply and restart UI]를 눌러주면 AUTOMATIC1111이 새로 불러집니다. 이제 다시 Extentions 탭으로 들어가서 [Check for updates] 버튼을 눌러주면 아래와 같이 모두 최신버전이라고 표시됩니다. 이제 업데이트가 완료된 것입니다.
ControlNet 사용법 - 간단한 예제
여기에서는 아주 간단한 예를 직접 적용해보면서 ControlNet 사용법을 알아보겠습니다. (단, 저는 AUTOMATIC1111 웹 UI에서 실행하는 예만 보여드립니다. 다른 UI의 경우 약간 다를 수 있습니다.)
현재 ControlNet이 성공적으로 설치된 상태라면, 아래와 같이 Seed 바로 밑에 아래와 같이 ControlNet 부분이 추가되어 있을 것입니다.
위의 그림에서 ControlNet 오른쪽에 있는 삼각형을 누르면 아래와 같이 ControlNet 패널이 열립니다.
이 절에서는 아래의 그림을 예제로 사용합니다. 필요하시면 우클릭해서 다운로드 받아 사용하시면 됩니다.
Text-to-Image 설정
ControlNet은 단독으로 사용할 수 없고, 반드시 스테이블 디퓨전 모델과 함께 사용해야 합니다. 따라서 먼저 사용할 모델을 선택해야 합니다. 원래의 v1.5 기본 모델은 v1-5-pruned-emaonly.ckpt 이며, 이를 기반으로 생성된 다른 모델들을 사용해도 무방합니다. 저는 ChilloutMix 를 선택했습니다. (어떤 모델이 좋을지는 이 글을 참고하세요)
다음으로 프롬프트와 부정적 프롬프트를 입력합니다. 예제로 입력하는 내용은 아래와 같습니다. 부정적 프롬프트가 좀 긴데, 왠만한 내용은 다 들어있습니다.
프롬프트: full-body, a young female, highlights in hair, dancing outside a restaurant, brown eyes, wearing jeans
부정적 프롬프트: ugly, tiling, poorly drawn hands, poorly drawn feet, poorly drawn face, out of frame, extra limbs, disfigured, deformed, body out of frame, bad anatomy, watermark, signature, cut off, low contrast, underexposed, overexposed, bad art, beginner, amateur, distorted face, b&w, watermark, EasyNegative
다음으로 이미지 크기를 입력합니다. 세로로 된 사진이니 512x768정도로 입력하면 될 것 같네요.
Sample 방법은 DPM++ 2M Karras를 선택했습니다. 얼굴을 잘 표현한다고 하는데 상세한 건 모르지만, 일단 인물이 들어갈 땐 항상 이 방법을 선택하고 있습니다.
이상과 같이 설정하면 txt2img탭은 다음과 비슷해질 겁니다.
ControlNet 설정
제일 먼저 해야할 일은 기준이 될 이미지를 올리는 것입니다. 이미지를 끌어다 놓거나 클릭해서 파일을 지정하면 됩니다. 그 다음 Enable이라는 체크박스를 클릭해줍니다. 저는 VRAM이 작은 GPU라서 low VRAM에도 체크해줬고, Preview도 가능하도록 해주었습니다. 아울러... Pixel Perfect라는 체크박스가 있는데, 이것도 켜주시는 게 좋습니다. 아래에서 설명 드리겠습니다.
제일 중요한 것이 제어 유형(Control Type)을 정하는 것입니다. 이번엔 Openpose를 선택합니다. 이렇게 선택하면 아래쪽에 전처리기는 openpose_full, 모델은 control_xxx_openpose로 자동 선택됩니다. 전처리기와 모델 사이에 별 모양의 단추 💥 [Run preprocess]가 있는데, 이걸 누르면 전처리기만 작동되어 입력한 그림 오른쪽에 전처리 결과가 표시됩니다. 아래는 설정 상태입니다. (참고로 그림 윗부분을 보시면 ControlNet Unit 0, Unit 1 등이 있는데, 다중 ControlNet에서 사용합니다.)
이제 이 상태에서 Generate를 눌러주면 프롬프트와 ControlNet을 조건부여(conditioning)로 사용하여 이미지 생성을 시작합니다. 아래는 수행 결과가 나타난 모습입니다. 맨 끝에 있는 건 전처리 결과입니다. 여기에서는 openpose_full을 사용하였으므로, 손발의 자세 및 얼굴까지 표현되어 있습니다.
아래는 생성된 이미지중 일부입니다. 모든 이미지가 입력된 이미지의 자세를 복제하여 생성되었다는 걸 보실 수 있을 겁니다.
![]() |
![]() |
그런데... 보시는 것처럼, 자세는 잘 복제되었는데, 얼굴이 정말 이상하게 나오네요. 모델을 바꿔보기도 하고, VAE를 바꿔보기도 했는데, 영... 잘 안나옵니다. 제 컴이 뭔가 잘못될 수도 있으니 나중에 다른 것과 비교해 봐야 할 것 같습니다.
그런데... 아래 사진의 자세를 사용해 만들어 봤는데, 이건 잘 나오네요. 아마도 얼굴 각도 때문이 아닐까... 싶어집니다.
프롬프트 : half-body, a beautiful woman, brown eyes, running, smile, small breast
부정적 프롬프트 : disfigured, ugly, bad, immature, b&w
아래 이미지중 윗쪽 2개는 Stable Diffusion v1.5 기본 모델인 v1-5-pruned-emaonly.ckpt 를 사용했고, 아래쪽 2개는 chilloutmix_NiPrunedFp32Fix.safetensors 를 사용했습니다. 어쩌다 보니 모든 모델이 탱크탑이네요.ㅎㅎ
![]() |
![]() |
![]() |
![]() |
이상이 ControlNet 기초 사용법입니다. ControlNet을 사용하지 않을 때는 [Enable] 체크를 꺼주면 됩니다.
ControlNet 설정
위에서는 ControlNet 설정중 일부만 대충 설명했는데, 여기에선 조금 더 상세하게 알아보겠습니다.
입력 콘트롤
ControlNet 유닛 : 하나의 ControlNet 수행결과를 다시 다른 ControlNet의 입력으로 사용할 때(다중 콘트롤넷) 사용합니다. 보통은 한가지 ControlNet만 사용합니다.
이미지 캔버스 : 한글로 써있는 것처럼, 이미지를 끌어놓아도 되고, 클릭하면 나오는 파일 브라우저에서 원하는 이미지를 선택해도 됩니다.
노트북 아이콘 : [새 캔버스 열기] 를 할 수 있습니다. 그런데 몇번 테스트해봐도 모르겠네요. 나중에 알게되면 다시 정리해 올리겠습니다.
카메라 아이콘 : [웹캠 활성화]를 할 수 있습니다. 웹캠을 켜고, 자신이 취한 포즈를 사용해 이미지를 생성할 수 있습니다. 원하는 자세가 포함된 사진을 찾는 것 보다 이 방법이 훨씬 좋을 것 같네요^^
좌우화살표 아이콘 : [웹캠 미러링] 웹캠으로 촬영하면 좌우가 바뀌게 됩니다. 이를 바로 잡고 싶을 때 사용합니다.
위쪽 화살표 [이미지 크기를 Stable Diffusion에 보내기] : 참조용 사진의 크기와 똑같은 크기로 만들 때 사용할 수 있습니다. 이걸 보니... 이미지 생성을 하려면 한쪽을 512로 고정시킬 경우가 많은데, 비율을 똑같이 유지시켜주는 방법이 있으면 좋겠다... 싶습니다.
모델 선택
Enable: ControlNet을 활성화 또는 비활성화시킬 때 선택합니다.
Low VRAM : VRAM이 8GB 이하일 때 사용합니다. 아직 실험적인 기능이라고 하고 GPU 메모리 에러일때 사용하라지만, 저는 오래된 컴퓨터라 일단 켜줬습니다.
Pixcel Perfect : 이걸 끄면 아래쪽에 Preprocessor Resolution이라는 게 나옵니다. 잘은 모르겠지만 이미지 크기 설정에 따라 다르게 (이미지 크기와 비슷하게?) 설정해야 했던 모양인데, 이걸 켜면 그냥 자동으로 설정된다고 합니다. 편해진 거니까 그냥 켜두면 될 것 같네요.
Allow Preview : 사진을 올리는 부분 오른쪽에 현재 선택한 전처리기의 결과를 미리 볼 수 있습니다. 예전에는 다 처리된 후에 생성된 이미지와 함께 나타났는데, 이제는 미리 확인할 수 있게 된겁니다. 전처리기를 돌린 결과는 Preprocessor와 Model 사이에 있는 💥버튼을 누르면 볼 수 있습니다.
Control Type : 어떤 모델을 사용할지를 정하는 부분입니다. Canny, Depth, Normal, MLSD, Lineart, SoftEdge, Scribble, Seg, Shuffle, Tile, Inpaint, IP2P, Reference, T2IA 등이 나열되어 있습니다. 여길 누르면 아래쪽의 전처리기(Preprocessor)와 모델이 자동 선택됩니다. 예전에는 전처리기와 모델을 따로따로 선택했어야 했는데, 이렇게 바뀌면서 고민이 줄어들었습니다.
Control Weight (제어 가중치) :
제어 가중치는 프롬프트와 이미지의 자세가 다를 때, 얼마나 ControlNet의 자세를 따를 지를 결정합니다. 예를 보여드리겠습니다. 아래는 프롬프트입니다. 이 프롬프트를 잘 보시면 레스토랑 바깥에 서있는 자세를 요구하고 있습니다.
프롬프트 : knee shot, beatiful asian woman, a young female, highlights in hair, standing outside restaurant, smile, blue eyes, wearing a dress, side light, masterpiece, HDR, UHD, photorealistic
부정적 프롬프트 : disfigured, ugly, bad, immature, b&w, nsfw
아래 그림중 좌측 위는 원본이고, 다른 이미지는 Control Weight만 달리해서 새로 생성한 이미지입니다. 이 이미지에서 볼 수 있는 것처럼, Control Weight의 값이 낮으면 프롬프트를 따르는 경향이 높고, Control Weight 값이 높으면 ControlNet을 따르는 경향이 높아집니다.
![]() |
![]() |
![]() |
원본 | 0.0 | 0.2 |
![]() |
![]() |
![]() |
0.4 | 1.0 | 2 |
제어 단계(ControlNet Step)
Control Weight 옆에 있는 Starting Control Step과 Ending Control Step은 어느 단계에서 시작해서 어느 단계까지 적용할지를 지정하는 것입니다. 기본 값은 0에서 1 그러니까 시작단계에서 끝 단계까지 모두 영향을 미친다는 뜻입니다. Step 수가 20일때 0 ~ 0.5로 지정한다면 0~ 9단계까지만 ControlNet을 적용한다는 것입니다.
저는 이렇게 까지 세밀하게 조절할 일은 없을 것 같아서.... Control Weight는 1.0으로 고정한 상태에서 약 1/3 정도씩 맨 앞, 중간, 마지막에 적용하는 걸로 실험해 보았습니다. 결과는 아래와 같습니다. 가운데가 완전히 이상한게 나왔는데, 여러번 시도해도 정상적인 게 한번도 나오지 않았습니다.
![]() |
![]() |
![]() |
0.0 ~ 0.33 | 0.33 ~ 0.66 | 0.67 ~ 1.0 |
Stable Diffusion 기본 이론 Noise Schedule에 언급되어 있는 것처럼, 완전한 무작위 이미지에서 잡음을 제거할 때, 일반적으로 처음에는 많이 제거하고 마지막에는 조금 제거하는 방식으로 진행됩니다. 따라서 왼쪽편 이미지는 처음부터 ContorlNet을 적용하니까 앉아있는 모습이 나오고, 맨 오른쪽은 프롬프트에 의해 서있는 모습이 일단 결정되었기 때문에 ControlNet이 작용해도 별 변화가 없는 게 아닌가... 라고 생각합니다. 그냥 이 정도만 확인했으니 통과합니다.
기본적으로... Control Weight는 이미지 생성단계 전체에 대해서 ControlNet을 어느 정도 반영할 것인가를 결정하는 것이고, Control Steps에서는 처음부터 끝까지 적용하는 대신, 일부 단계에서만 ControlNet을 적용하라는 것입니다. 결국 이 두가지 모두 ControlNet 반영 비율을 제어하는 방식으로, 이 두가지를 적절히 사용해서 제어하여야 하는 게 맞는 것 같습니다.
Control mode
이것도 프롬프트를 중요시할 것인지, ControlNet을 중요시할 것인지를 설정하는 부분입니다.
- Balanced: ControlNet을 샘플링 단계에서 조건부여가 있는 경우와 없는 경우 모두에 적용하는 방식이라고 합니다. 이것이 기본 값입니다.
- My prompt is more important : ControlNet의 효과가 U-Net 삽입의 인스턴스에서 점점 줄어드는 방식으로, 결과적으로 프롬프트가 ControlNet 보다 더 많이 영향을 미치도록하는 설정입니다.
- ControlNet is more important : 조건부여가 없는 경우 ControlNet을 꺼버립니다. 그 결과 CFG 척도가 ControlNet 효과에 대해 승수 역할을 합니다.
아래는 ControlNet v1.1 페이지에 들어있는 비교사진인데 참고하시기 바랍니다.
사실 제가 쓰기는 했는데 그냥 Balanced를 쓰면 좋겠다 정도지, 어떤 방식으로 작동하는지는 잘 모르겠네요~ ㅠㅠ
Resize 모드
Resize 모드는 입력된 기준 이미지와 생성될 이미지의 크기 비율이 맞지 않을 때 어떤 식으로 처리할 지를 지정하는 것입니다. (입력된 이미지와 생성할 이미지의 비율이 동일하다면 신경쓸 필요 없습니다.)여기에 있는 메뉴는 img2img의 Resize 모드와 완전히 동일합니다.
- Just resize : 입력된 이미지를 생성할 이미지의 크기에 강제로 맞춥니다. 가로세로 비율을 고려하지 않으므로 이미지가 찌그러지게 됩니다. 아래가 그 예입니다. 원본 이미지는 평범하게 앉아 있는 모습인데, 가로로 납작해지다보니 몸을 앞으로 기울인 이미지가 생성되었습니다.
![]() |
![]() |
- Crop and resize : 새로운 이미지의 공간에 원본 이미지를 맞춥니다. 이 과정에서 맞지 않는 부분은 잘려나가게 됩니다. 아래가 그 예입니다. 생성되는 이미지 전체에 ControlNet 이미지가 사용되다보니, ControlNet에서 남는 부분은 잘려나간 모습입니다.
![]() |
![]() |
- Resize and fill : 원본 이미지를 새로운 이미지의 공간에 맞추는데, 모자라는 영역은 원본 이미지의 평균적인 색으로 채워 넣습니다. ControlNet 이미지를 모두 사용하므로, 생성되는 이미지에 모자라라는 부분은 임의로 생성이됩니다.
![]() |
![]() |
Loop Back
ControlNet 맨 아래에 [Loopback] Automatically send generated images to this ControlNet unit 라는 부분이 있습니다. 생성된 이미지를 자동적으로 입력으로 되돌린다... 는 정도로 생각되는데, 아무래도 제가 설명하지 않은 Batch 탭과 함께 사용해서 애니에이션 비슷한 걸 만들어주는 게 아닐까 싶습니다. 나중에 좀더 공부해서 업뎃 시키겠습니다.
다중 ControlNet
이미지를 생성할 때 여러가지 ControlNet을 한꺼번에 적용하는 방법입니다. 이게 없었다면 한가지 ControlNet을 적용시키고, 그 결과물을 사용해서 새로운 ControlNet을 적용시키고... 등등 계속 반복해야 할텐데, 다중 콘트롤넷을 사용하면 이 과정을 한번에 처리할 수 있습니다.
이번에도 예제를 사용해서 사용방법을 알아보겠습니다. 설정은 아래와 같습니다.
모델: Protogen x5.8
프롬프트: An astronaut sitting, alien planet
부정적 프롬프트: ugly, tiling, poorly drawn hands, poorly drawn feet, poorly drawn face, out of frame, extra limbs, disfigured, deformed, body out of frame, bad anatomy, watermark, signature, cut off, low contrast, underexposed, overexposed, bad art, beginner, amateur, distorted face, b&w, watermark, EasyNegative
그냥 이 상태대로만 이미지를 생성하면 아래와 같은 이미지들이 생성됩니다.
![]() |
![]() |
![]() |
![]() |
이제 우주인의 앉은 자세와, 배경을 따로따로 제어하고 싶다고 가정해 보겠습니다. 이런 경우 ControlNet을 여러번(여기선 2번) 적용하면 해결할 수 있습니다.
앉아있는 자세에 대한 참조 이미지는 다음 영상을 사용합니다.
다중 ControlNet을 사용하려면, 각각의 설정을 ControlNet Unit에 지정해야 합니다.
ControlNet Unit 0에 대한 설정은 아래와 같습니다.
Enable: Yes
전처리기(Preprocessor): OpenPose
모델: control_xxxx_openpose
Resize mode : Resize and Refill (ControlNet 이미지를 다 사용하고 모자라는 부분은 채웁니다)
배경은 아래 그림을 참조로 해서 생성합니다.
이런 경우 ControlNet 모델로는 Depth가 가장 적합합니다. ControlNet Unit 1에 대한 설정은 아래와 같습니다.
Enable: Yes
Control Weight: 0.45 (ControlNet의 영향을 낮춥니다)
전처리기(Preprocessor): depth_zeo
모델: control_xxxx_depth
Resize mode : Crop and Resize
이제 [Generate] 버튼을 눌러 이미지를 생성한 결과입니다.
===
이상입니다. 이 글은 Andrew님의 글 중에서 개요 및 사용법만 정리한 것입니다. 다음 글은 ControlNet 의 여러가지 모델/전처리기에 대한 상세한 설명과 적용사례가 있으니 참고하세요. 이미지중 일부는 원문에서 가져온 것이고, 대부분은 제가 테스트한 결과입니다. 나머지도 정리하는 대로 올리겠습니다.
- Stable Diffusion 인공지능 이미지 생초보 가이드
- Stable Diffusion 대표 UI - AUTOMATIC1111 설치방법
- Automatic1111 GUI: 초보자 가이드(메뉴 해설)
- Stable Diffusion에 대한 기본적인 이론
- ChatGPT로 스테이블 디퓨전 프롬프트 만들기
- Stable Diffusion - 인페인트 가이드
- Stable Diffusion - 모델에 대한 모든 것
- Stable Diffusion - LoRA 모델 사용법
- Stable Diffusion - ControlNet 사용법(1)
- Stable Diffusion - ControlNet 사용법(2)
- Stable Diffusion - 하이퍼네트워크 사용법
- Stable Diffusion - AI 확대도구 사용법
- Stable Diffusion - 구역분할 프롬프트 사용법
- Stable Diffusion으로 멋진 이미지 만들기