스테이블 디퓨전에서 ControlNet은 텍스트-이미지 변환 모델에 추가적인 조건을 부여하여 더 정교하고 제어된 이미지 생성을 가능하게 하는 신경망 구조입니다. 이 모델은 기존의 생성 모델에 "잠긴" 가중치와 "학습 가능한" 가중치를 결합하여, 원래 모델의 성능을 유지하면서도 새로운 조건을 학습할 수 있도록 설계되었습니다.

 

주요 특징:

  1. 조건부 제어: ControlNet은 텍스트 프롬프트 외에도 추가적인 입력(예: 스케치, 포즈, 외곽선 등)을 기반으로 이미지를 생성할 수 있습니다.
  2. 모듈형 설계: 기존 모델의 구조를 변경하지 않고, 추가적인 모듈을 통해 확장 가능.
  3. 효율적인 학습: 소규모 데이터셋으로도 학습이 가능하며, 원래 모델의 성능을 손상시키지 않습니다

pexels 홈페이지 다운로드 사진
pexels 홈페이지 다운로드 사진

 

ControlNet의 openpose 파라미터로 인물의 자세를 추출할수 있다.

 

openpose로 인물의 자세를 추출한다

 

스테이블 디퓨전 WebUi에서 openpose를 적용

 

스테이블 디퓨전 WebUI에서 ControlNet 설치하기

 

ControlNet을 설치하려면 ControlNet 본체프리 프로세서 모델을 나눠 설치해야 합니다.

 

우선 WebUI에서 Extensions 탭에서 본체를 다운로드 합니다.

 

URL에 주소 입력하고 Install을 클릭합니다.

https://github.com/mikubill/sd-webui-controlnet.git

 

GitHub - Mikubill/sd-webui-controlnet: WebUI extension for ControlNet

WebUI extension for ControlNet. Contribute to Mikubill/sd-webui-controlnet development by creating an account on GitHub.

github.com

 

 

설치가 완료되면 체크 업데이트를 누르고 적용을 시키나서 WebUI를 리스타트 합니다.

적용을 하고 WebUI를 리스타트 합니다

 

그 다음 프리 프로세서 모델을 다운로드 합니다. ControlNet은 여러 베이스 모델별로 다른 모델이 있기 때문에 각자 맞는 버전을 다운받으셔야 됩니다. 여기서 초보자가 착각하는 것 중 하나가 WebUI와 SD 버전 1.5, 2.0, SDXL 등을 구별 못한다는 것인데요. WebUI와 SD 버전은 다른겁니다. WebUI는 단순히 모델을 사용하기 위한 프로그램이 입니다. 메모장, 워드 같은 프로그램을 말하는 거구요. SD버전이 바로 모델 버전입니다. 이 SD 모델이란거는 Stability AI에서 개발한 모델을 말합니다. SD 1.5, SD 2.0, SDXL 등.

아래 링크를 타고 가셔서 프리 프로세서 모델을 다운로드 합니다.

https://huggingface.co/lllyasviel/sd_control_collection/tree/main

 

lllyasviel/sd_control_collection at main

Detected Pickle imports (3) "torch.HalfStorage", "torch._utils._rebuild_tensor_v2", "collections.OrderedDict" What is a pickle import?

huggingface.co

diffusers_xl_canny_full.safetensors 다운로드

 

 

diffusers_xl_canny_full.safetensors 를 다운받고

 

*스테이블 디퓨전 루트 디렉터리/extensions/sd-webui-controlnet/models ←이 위치로 프리 프로세스 모델을 이동시킨다

 

스테이블 디퓨전 루트 디렉터리/extensions/sd-webui-controlnet/models
스테이블 디퓨전 루트 디렉터리/extensions/sd-webui-controlnet/models

 

 

ControlNet 설치 완료

 

이제 ControlNet 설치가 완료 되었으므로 각 파라미터를 설명 드리겠습니다.

 

ControlNet Unit

여기서 편집할 이미지를 업로드 합니다. unit 0 ,unit 1, unit 2 각 각 다른 탭에서 각자 이미지 별로 편집하고 싶을때 사용합니다.

 

Single Image/Batch/Multi-inputs 

Single Image 이거는 이미지를 한장 한장 업로드 할때 사용합니다.

Batch는 해당 폴더로 경로 지정을 해서 여러 장을 한꺼번에 업로드 처리 합니다

Multi-inputs 이거는 폴더와 상관 없이 여러 이미지를 한꺼번에 다 넣고 처리할때 사용합니다.

 

Enable 이것을 선택하셔야 Controlnet이 작동합니다.

Low VRAM : VRAM 이 부족할때 사용하며, 그 대신에 속도가 느려집니다.

Pixel Perfect : 프리 프로세서의 해상도를 자동 설정하도록 합니다. 초기 설정이 On으로 되어있습니다.

Allow Preview : 쉽게 말하면 미리보기 기능입니다. 이것을 선택 한 다음 프리 프로세서 모델을 선택하고

                          위에 폭탄그림 아이콘을 클릭하면 미리보기로 생성됩니다.

Effective Region Mask  : 입력 이미지에서 마스크 처리한 부분을 업로드할 때 사용합니다.

 

Control Type

여기서 프리 프로세서 종류를 선택합니다.

선택을 하시면 아래 프리프로세서와 모델이 자동 설정 됩니다.

 

Preprocessor/Model

위에 메뉴와 같다 보시면 되고 프리프로세서 모델을 선택할 수 있습니다.

 

Control Weight 이것은 가중치 설정입니다.

 

Starting Control Step / Ending Control Step

이것은 0.1,  0.2, 1 등 백분율 단위로 사용합니다.

예를 들어 Starting을 0.1로 하고 Ending을 0.2로 설정하면

ControlNet이 10%에서 생성 시작했다가 20%에서 종료합니다.

 

Control Mode

프롬프트의 압력의 밸런스를 적용합니다.

나의 생성 이미지 프롬프트를 중시할것이냐 아니면 ControlNet 기능을 중시할것이냐 그걸 말하는 겁니다.

 

Resize Mode

이건 img2img 탭에서 사용하는 파라미터와 같은 것인데 

쉽게 설명하면

단지 이미지 사이즈를 변경할것이냐 아니면 사이즈를 변경하면 상실하는 부분이나 이미지가 커질때 어떻게 처리할것이냐

그것을 선택하는 겁니다. 단지 사이즈를 바꾼다. 사이즈 바뀐 부분은 짤리거나 새로 생성한다. 줄이면 줄인다. 늘릴때는 새로운 이미지가 생성되거나 하는 겁니다.

 

자 ControlNet 부분에서 설치하고 설명까지 마치었습니다.

 

다음 포스팅은 프리 프로세서를 적용했을때 이게 뭔지 한번 적용해 보겠습니다. 감사합니다

 

 

 

반응형
LIST

+ Recent posts