스테이블 디퓨전 컨트롤넷은 굉장히 다양한 기능들을 제공하고 있습니다. 그 중에서도 타일리샘플(Tile Resample) 기능은 원본 이미지를 잘게 타일로 쪼갠 뒤 각 부분 부분을 디테일링 처리하여 다시 타일을 이어붙여 이미지 품질을 전반적으로 향상시키는 기술입니다.
따라서 디노이즈 강도가 강해지면 원본과 매우 달라지는 일반 i2i와는 달리, 타일리샘플 기능을 활용하면 디노이즈 강도를 매우 높게 잡더라도 원본 이미지에서 크게 벗어나지 않고 구도와 느낌을 그대로 가져가면서 디테일을 향상 시키는 결과를 얻을 수 있습니다.
타일리샘플 설치
타일리샘플(Tile Resample) 기능은 컨트롤넷(ControlNet)의 수많은 기능 중 하나기 때문에 이를 사용하기 위해서는 기본적으로 컨트롤넷을 설치한 뒤 타일리샘플 모델을 다운받아 컨트롤넷 모델 폴더에 옮겨주셔야합니다. 아직 컨트롤넷을 설치하지 않은 분들은 아래 글에서 확장기능 설치 및 컨트롤넷 타일리샘플 모델 다운로드 방법을 확인하실 수 있습니다.
WebUI 기준 다운받은 컨트롤넷 타일리샘플 모델은 기본적으로 WebUI 설치폴더 > extensions > sd-webui-controlnet > models 폴더로 이동시켜주시면 됩니다.
타일리샘플 기초
위의 안내에 따라 컨트롤넷 설치 및 타일리샘플 모델 다운로드를 마쳤다면 WebUI 실행 후 img2img 탭에서 기본 이미지 생성 설정값들 아래로 내려오다 보면 ControlNet 탭에서 아래와 같은 설정 창을 보실 수 있습니다.
먼저 컨트롤넷 사용을 위해 Enable을 체크하여 활성화합니다. 이후 Control Type에서 Tile/Blur를 선택하면 자동으로 전처리기(Preprocessor)와 모델(Model)이 각각 tile_resample, control_v11file_sd15_tile로 잡히게 됩니다. 타일리샘플 모델은 다운받으신 모델의 버전에 따라 표기명이 다를 수 있습니다. 자동 설정이 되지 않는 경우 위 이미지를 참고하여 동일하게 세팅해주시면 됩니다.
그 아래에는 실제로 타일리샘플을 적용할 때 반영되는 설정값들로 각 설정값의 역할을 간단히 살펴보면 다음과 같습니다.
- Control Weight : 컨트롤넷(타일리샘플)이 이미지 변형에 얼마나 영향을 미칠 것인가
- Starting/Ending Control Step : 컨트롤넷이 이미지 생성 스탭에서 관여하는 시작/종료 위치 설정
- Down Sampling Rate : 컨트롤넷이 이미지 처리 전 원본의 해상도를 내리는 강도 설정
- Control Mode : 컨트롤넷 vs 프롬프트의 반영 강도 비율 설정
각 설정값의 변경에 따른 구체적인 타일리샘플 효과에 대한 예시가 궁금하신 분들은 아래 글을 계속해서 참고해주시기 바랍니다.
Control Weight
말 그대로 컨트롤넷(control)의 가중치(weight)를 의미합니다. 우리가 생성할 이미지에 대해 얼마만큼의 컨트롤넷의 역할이 개입하는지를 나타내는 지표로, 타일리샘플뿐만 아니라 모든 컨트롤넷 기능들을 사용할 때 제어할 수 있는 설정값입니다. 아래는 Control Weight에 따른 변화하는 타일리샘플 결과 이미지입니다.
Resize mode : Just resize
Sampling method : DPM++ 2S a Karras
Sampling steps: 20
Resize by : 1
CFG Scale : 3
Denoising Strength : 0.9
S/E Control Step : 0~1
Down Sampling Rate : 1
Control Mode : Balanced
기본적으로 디노이즈 강도(Denoising Strength)를 매우 높게 설정한 상태로 타일리샘플을 진행했기 때문에 Control Weight 값이 0인 경우 원본 이미지를 살짝만 참고한 아예 새로운 그림이 생성된 것을 볼 수 있습니다. 반면 Control Weight이 0.5인 경우 원본 이미지의 느낌을 거의 그대로 살려가면서 인물의 얼굴과 옷의 질감 등에 모델(체크포인트)의 특성이 잘 반영된 것을 확인할 수 있습니다. Control Weight이 1.0 이상으로 넘어가게 되면 실제 이미지의 구도는 잘 반영되고 있지만 오히려 강한 컨트롤넷 개입으로 이미지가 열화되는 것을 볼 수 있습니다.
Starting/Ending Control Step
컨트롤넷이 이미지 생성 전제 step 중 언제 개입할지를 제어하는 설정값입니다. 0~1 사이의 값을 설정하여 컨틀롤넷의 개입 시점과 종점을 설정할 수 있습니다.
Resize mode : Just resize
Sampling method : DPM++ 2S a Karras
Sampling steps: 20
Resize by : 1
CFG Scale : 3
Denoising Strength : 0.9
Control Weight : 1
Down Sampling Rate : 1
Control Mode : Balanced
0.4~0.5 지점, 즉, 샘플링 초기 단계에서 컨트롤넷 개입이 없는 경우 원본이미지의 구도를 벗어나는 이미지가 생성됩니다. 이는 아무래도 스테이블 디퓨전의 특성상 그림이 생성되는 초기 단계에서 전반적인 구도가 결정되기 때문인 것으로 보입니다.
Control Weight이 기본값인 1로 설정되어 있기 때문에 위에서 살펴본 바와 같이 다소 강하게 컨트롤넷이 개입할 수 있지만, 개입 스텝을 0~0.5로 설정한 경우 마치 Control Weight 값을 0.5만 적용한 것처럼 자연스러운 이미지를 얻을 수 있었습니다.
Down Sampling Rate
Down Sampling Rate는 컨트롤넷이 타일리샘플로 이미지를 재구성하기 전 원본 이미지의 화질을 얼마나 흐릿하게(블러처리) 전처리한 뒤 다시 구체화할 것인가를 결정하는 값입니다. 1~8까지 설정 가능하며 각 단계별 다운샘플링 전처리 이미지 및 결과 이미지는 다음과 같습니다.
Down Sampling Rate 값에 따른 전처리 이미지
Down Sampling Rate 값에 따른 타일리샘플 결과 이미지
Resize mode : Just resize
Sampling method : DPM++ 2S a Karras
Sampling steps: 20
Resize by : 1
CFG Scale : 3
Denoising Strength : 0.9
Control Weight : 1
S/E Control Step : 0~1
Control Mode : Balanced
다운샘플링 값이 커질수록 원본이미지의 블러 처리가 더욱 강해진다는 것을 알 수 있습니다. 일반적으로 블러 처리가 더 많이 된 이미지를 사용할수록 컨트롤넷이 이미지를 다시 그려낼 때 해석할 수 있는 여지가 많기 때문에 전반적인 디테일링이 살아나고 원본과는 미묘하게 다른 그림을 생성하게 됩니다.
현재 테스트한 원본이미지의 경우 원본 자체의 디테일이 좋기 때문에 위의 결과 이미지에서 디테일의 큰 차이가 눈에 잘 보이지 않을 수 있습니다. 하지만 자세히 살펴보면 확실히 다운샘플링이 1일 때와 8일 때의 결과 이미지 디테일에 차이가 있는데요, 눈동자 및 입술, 머리카락 결 등의 표현력이 조금 더 살아나는 느낌입니다.
Control Mode
컨트롤 모드는 컨트롤넷의 타일리샘플과 사용자가 작성한 프롬프트의 강도를 어떻게 배분할지를 결정하는 설정값입니다. 총 3가지 모드가 있으며, 각 모드 별 배분정도는 그 이름에서 알 수 있습니다.
- Balanced : 컨트롤넷과 프롬프트를 적절히 잘 섞어서 반영
- My prompt is more important : 컨트롤넷 비중을 줄이고 사용자 프롬프트를 더욱 중시
- ControlNet is more important : 프롬프트보다 컨트롤넷을 우선 반영
Resize mode : Just resize
Sampling method : DPM++ 2S a Karras
Sampling steps: 20
Resize by : 1
CFG Scale : 3
Denoising Strength : 0.9
Control Weight : 1
S/E Control Step : 0~1
Down Sampling Rate : 1
위 이미지를 생성할 때 프롬프트는 단순 퀄리티 태그와 여성을 나타내는 기본 단어(girl, solo, long hair)만 작성했습니다. 이때 사용자의 프롬프트를 우선한 결과에서는 단순한 프롬프트 덕분에 가방끈이 사라지고 상의도 반팔 티셔츠로 바뀐 것을 볼 수 있습니다. 반면 컨트롤넷을 우선한 결과에서는 타일리샘플 모델이 원본 이미지를 최대한 디테일링한 결과(머리결의 방향, 위치, 얼굴의 크기, 가방끈의 존재, 배경의 디테일 등)를 보여주고 있습니다. 어느 이미지가 더 좋다라고 할 것은 아니며, 사용자의 필요와 상황에 따라 Control Mode를 선택하여 이미지를 생성할 수 있습니다.
맺음말
본 글에서는 컨틀롤넷 타일리샘플의 설치 방법과 세부 설정값에 따른 결과 이미지 변화 정도를 함께 살펴봤습니다. 타일리샘플은 기본적으로 원본 이미지를 해치지 않으면서 디테일을 향상하는 기술이기 때문에 다양한 컨트롤넷 기능 중에서도 적절히 잘 사용할때 가장 많은 부분에서 활용도가 발생하는 기술이므로 꼭 본문을 참고해 한 번쯤 사용해보시기 바랍니다. 다음 글에서는 타일리샘플을 응용해 다양한 방식으로 이미지를 가공하는 방법을 다뤄보도록 하겠습니다.