본문 바로가기
AI

[AI 그림 만들기] stable diffusion webui ControlNet 사용법

by 1day2day 2023. 4. 23.

썸네일

stable diffusion 사용자라면 원하는 정확한 포즈를 생성하는 것이 얼마나 어려운지 알 것입니다.
ControlNet은 이 문제를 해결합니다.
ControlNet은 구도와 사람 포즈를 복사할 수 있는 stable diffusion model입니다.
이뿐만 아니라 강력하고 다재다능하여 모든 stable diffusion model과 사용할 수 있습니다.
webui에서 ControlNet을 사용하는 방법에 대해 알아보겠습니다.


일단 간단하게 사용해 보기!!!!

(1) [ txt2img ] TAB에서 하단의 [ controlNet ] 기능 선택

 

(2) 테스트 할 이미지 추가

테스트 원본 이미지 (출처 : stable-diffusion-art.com)

 

(3) [ Enable ] "true" 체크

 

(4) [ Preprocessor ] "openpose" 선택

 

(5) [ Model ] "control_openpose-*" 선택

 

(6) 원하는 prompt 입력

full-body, a young female, highlights in hair, dancing outside a restaurant, brown eyes, wearing jeans

 

(7) Generate!!!! 원본과 같은 포즈로 생성된걸 확인할 수 있습니다.

ControlNet 사용한 결과물

 

참고로 아래 이미지는 ControlNet의 workflow 입니다.

ControlNet workflow (출처 : stable-diffusion-art.com)


Preprocessor

가장자리, 깊이, normal maps 를 감지하는 등 input 이미지를 전처리 하기 위해 사용합니다.
'none' 값은 input 이미지를 control map으로 사용합니다.

 

Model
ControlNet model을 선택합니다.

preprocessor를 선택한 경우 일반적으로 해당 model을 선택합니다.


Canny
Canny는 오래된 edge 감지기 입니다. 곡선과 직선을 잘 추출합니다. 하지만 noise에 취약할 수도 있습니다.

Canny control map


Depth
Depth map은 이미지의 객체가 얼마나 멀리 떨어져 있는지 전달하는 데 유용합니다. 흰색은 가까움을, 검은색은 멀어짐을 의미합니다.

Depth control map


Depth LeRes
LeRes는 단일 이미지에서 3D 장면을 재구성하기 위해 설계된 최신 depth 추정 모델입니다. LeRes는 많은 디테일을 복구하고 control map을 조정하기 위해 더 많은 제어 파라미터를 사용합니다.

Depth LeRes control map


HED
HED는 사람처럼 이미지에서 윤곽선을 생성하는데 능숙한 edge 감지 AI model입니다. 기능적으로는 Canny와 유사하지만 noise가 적습니다.

HED control map


mlsd
M-LSD는 빠른 직선 감지 기능입니다. 인테리어 디자인, 건물, 거리 풍경, 액자, 종이 가장자리와 같이 직선 가장자리가 있는 윤곽선을 추출하는데 유용합니다.
참고로 곡선이 있는 피사체는 추출이 안됩니다.

mlsd control map


Normal map
Normal map은 픽셀이 놓여 있는 표면의 normal vector 방향을 지정합니다. 일반적으로 3D 모델에서 텍스처나 깊이를 만드는 데 사용됩니다.

Normal map control map


OpenPose
OpenPose는 실시간으로 사람의 keypoint를 감지하는 소프트웨어입니다. 이 옵션은 헤어 스타일, 의상, 배경과 같은 다른 세부 사항을 복사하지 않고 사람의 포즈를 추출하는데 사용됩니다.

OpenPose control map

 

Segmentation
Segmentation map은 교육받은 추측에 따라 서로 다른 색상을 가진 서로 다른 객체를 할당합니다.

Segmentation control map


기타 옵션

Enable
ControlNet 사용여부


Invert input color
sketch한 이미지를 업로드할 때 사용합니다.

기본적으로 ControlNet은 검은색 배경에 흰색 sketch를 기대합니다.
만약 흰색 배경에 sketch한 이미지일 경우 이 옵션을 사용해야 합니다.

RGB to BGR
업로드 한 이미지의 color channels 순서를 변경하는 기능입니다.

또는 업로드한 normal map의 좌표 순서도 변경할 수 있습니다.

Low VRAM
GPU 메모리가 8GB 미만으로 부족할때 사용합니다.


Guess Mode
non-prompt mode라고도 불립니다.

이미지 생성시 prompt 내용을 전혀 영향 받지 않을 수 있습니다.

Weight
prompt에 비해 control map을 얼마나 강조할지 설정합니다.

Preprocessor는 OpenPose를 사용하고 prompt는 아래와 같습니다.

full-body, a young female, highlights in hair, sitting outside a restaurant, brown eyes, wearing jeans

Weight에 따른 결과


Guidance Start/End
ControlNet이 적용되는 steps 수 입니다. denoising strength와 유사합니다.

만약 값이 '1' 이면 sampling steps의 100%에 ControlNet이 적용됩니다.
값이 '0.7' 이고 100 steps 수행하는 경우 70 steps에 ControlNet이 적용됩니다.

Resize mode

  • Just Resize : 이미지 캔버스에 맞게 control map의 해상도를 독립적으로 조정합니다. 이렇게 하면 control map의 종횡비가 변경됩니다.
  • Scale to Fit (Inner Fit) : 전체 control map을 이미지 캔버스에 맞춥니다. 빈 값으로 control map을 확장하여 이미지 캔버스와 같은 크기가 되도록 합니다.
  • Envelope (Outer Fit) : 이미지 캔버스를 control map에 맞춥니다. 캔버스와 같은 크기가 되도록 control map을 자릅니다.


ControlNet 확장 프로그램은 이미지 생성 라운드가 끝날 때마다 control map의 사본을 표시합니다. 하지만 때로는 control map을 보고 파라미터를 실험하고 싶을때가 있습니다. 이때 아래 옵션을 사용합니다.

  • Preview annotator result : preprocessor 설정에 따라 control map을 생성합니다. input 이미지 바로 옆에 control map이 표시됩니다.
  • Hide annotator result : control map을 숨깁니다.

Preview annotator result 설정

댓글