스테이블 디퓨전, ‘Shuffle’ 사용 방법 (txt2img+controlnet)

이번 포스팅은 ‘Shuffle’ 기능에 대해 소개를 해보겠습니다.
컨트롤넷 기능 중 하나이고 참고 이미지의 느낌을 원본에 섞을 때
사용하기 좋은 기능입니다.

‘셔플’은 컨트롤 넷에서 단 1개만 가지고 사용하긴 애매한 기능입니다.
셔플을 선택하고 이미지를 생성해보면 왜곡된 이미지만 생성되는 것을
확인하실 수 있습니다.

즉, ‘셔플’을 사용하려면 2장의 이미지가 필요합니다.
1장은 색상을 섞고 싶은 이미지 (Lineart 또는 Canny로 적용할 이미지)
1장은 새롭게 섞을 이미지에 참고할 이미지 (우주 배경, 눈 쌓인 배경 등)

아래에서 조금 더 자세히 설명 법을 소개해드리겠습니다.

컨트롤넷 ‘Shuffle’ 사용법

1. 컨트롤넷 확장기능과 shuffle 모델이 다운 받아져 있는지 확인합니다.

가장 중요한 컨트롤넷 확장 기능을 미리 설치 하셨는지 확인해주시고
shuffle model도 hugging face에서 다운 받으셔야 사용 가능합니다.

만약, 설치가 안되어 있다면 아래 링크를 통해 확장 기능 및 모델을 다운 받을 수 있으니
설치 후 다시 shuffle 사용법 포스팅으로 넘어오시기 바랍니다.

2. 이미지 2장을 준비합니다. (txt2img 기준)

Canny에 넣을 이미지

Shuffle에 적용할 이미지

컨트롤넷은 img2img와 txt2img에서 모두 사용 가능하지만
각각 사용법이 다르기 떄문에, 기본적으로 txt2img에서 어떻게 사용하는지
소개해보도록 하겠습니다.

먼저, 이미지 2장을 준비하는데
1장은 느낌을 입힐 이미지로 준비하셔야 합니다.
예를 들면, Canny나 Lineart 등에서 쉽게 사용할 수 있는 이미지로 준비 하는게 좋습니다.
이 경우, 원하는 느낌 또는 효과를 더 극적으로 나타낼 수 있으니 참고해주세요

또 다른 1장은 이펙트나 내가 입히고 싶은 느낌을 갖고 있는
예술 작품 or 화려한 사진을 준비해주시면 됩니다. (우주, 번개, 파티클, 바다 느낌의 이미지 등등)
위 이미지를 참고해주세요

3. 이미지2장을 컨트롤넷에 업로드하기!

shuffle

셔플 기능을 사용할 땐 단순히 하나의 이미지만 가지고 효과를 나타낼 수 없습니다.
따라서, 컨트롤넷을 2개 이상 적용하여 사용합니다.

기본적으로 사용하는 예시를 소개해드리면
처음에 준비한 이미지를 먼저 컨트롤넷 Unit 1번에 업로드해줍니다.
1번 이미지는 느낌을 입힐 이미지여야 합니다.

그리고, 컨트롤넷의 2번째 영역을 클릭하여
효과 또는 이펙트가 있는 이미지를 업로드해줍니다.
2번 이미지는 내가 1번 이미지에 입히고 싶은 느낌이 있는 이미지를 올려주면 됩니다.

4. ControlType 설정하기 (1번 영역 -> Canny or Lineart, 2번 영역 -> Shuffle)

shuffle2

1번 컨트롤넷 영역의 Control type은 Lineart나 Canny를 설정해주시면 됩니다.

2번 컨트롤넷 영역에는 ‘셔플’을 선택하면 준비 완료!

5. 각 컨트롤넷 유닛별로 Preprocessor와 Model이 잘 설정되었는지 확인

컨트롤넷을 2개 적용하는 과정이기 때문에
각 유닛별로 Preprocessor와 Model이 잘 설정되었는지 확인합니다.

만약, 1번 컨트롤넷을 Canny로 설정했다면 Preprocessor는 canny
그리고 Model도 Canny가 선택 되어야 합니다.

2번 컨트롤넷은 Preprocessor는 shuffle
Model도 shuffle로 선택되어있으면 올바르게 세팅 된 것입니다.

6. 프롬프트 입력 -> 이미지 사이즈 및 값 조절 -> 이미지 생성

shuffle3

이제 이미지를 생성할 준비가 모두 끝났습니다.
마지막으로 프롬프트를 입력하고 이미지 크기와 Sampling method, steps등
이미지 생성에 최종적으로 영향을 미칠 수 있는 요소들을 조절하고
이미지 생성 버튼을 눌러줍니다.

7. ‘셔플’이 잘 적용되었는지 결과 확인하기

원본 이미지

프롬프트 + Canny + Shuffle

셔플에 적용한 이미지의 느낌이 Canny와 프롬프트와 섞여서
신기한 분위기의 이미지가 생성된 것을 확인할 수 있습니다.

다른 확장 기능과 다르게 shuffle 단 하나의 컨트롤넷 기능만으론
text2img에서 의미가 없는 기능이지만

이미지의 라인과 shuffle 그리고 프롬프트를 조합하면
특정 이미지의 느낌을 입혀서 이미지에 새로운 변화를 줄 수 있습니다.

만약, 잘 적용이 되지 않는다면 컨트롤넷에서 Controlnet weight 수치를
각각 조절해보시는 것을 추천 드립니다.