콘텐츠로 건너뛰기

스테이블디퓨전, 이미지 업스케일링 3가지 방법(ControlNet 타일 업스케일, SD 업스케일, AI 업스케일)

  • 제3의펜 
이 글은 스테이블디퓨전 완벽가이드 시리즈 6 개의 글 중 5 번글입니다.

원문: https://stable-diffusion-art.com/controlnet-upscale

디테일이 많은 안정적인 확산으로 큰 이미지를 만들고 싶으신가요? 업스케일러를 사용해야 합니다. 이 글에서는 이미지를 업스케일링하는 3가지 방법을 소개합니다.

  • AI 업스케일러
  • SD 업스케일
  • 컨트롤넷 타일 업스케일

이러한 방법을 비교하고 장단점에 대해 알아볼 수 있습니다.

업스케일러에 익숙하지 않은 경우 업스케일러의 기본 사항을 학습하는 것이 좋습니다.

소프트웨어

업스케일링을 수행하기 위해 AUTOMATIC1111 Stable Diffusion GUI를 사용합니다. 이 GUI는  WindowsMac, 또는  Google Colab에서 사용할 수 있습니다.

마지막 방법을 사용하려면 Ultimate SD UpscaleUltimate SD Upscale 확장이 필요합니다.

Colab 사용자

사이트에서 제공하는 Colab Notebook을 사용하는 경우, 노트북을 시작하기 전에 ControlNet 및 Ultimate SD Upscale 확장 프로그램을 선택하기만 하면 됩니다.

Windows 또는 Mac 사용자

Ultimate SD 업스케일 확장 프로그램 설치

Ultimate SD upscale은 기본 제공 SD Upscale 스크립트와 유사한 기능을 제공하지만 몇 가지 고급 옵션이 추가된 확장 프로그램입니다. 

AUTOMATIC1111에 Ultimate SD 업스케일을 설치하려면 다음과 같이 하세요:

  1. 확장 페이지로 이동합니다.
  2. URL에서 설치 탭을 선택합니다.
  3. 확장 프로그램의 저장소 URL 필드에 다음 URL을 입력합니다.
https://github.com/Coyote-A/ultimate-upscale-for-automatic1111
  1. 설치 버튼을 클릭합니다.
  2. 확장 프로그램이 성공적으로 설치되었다는 확인 메시지가 나타날 때까지 기다립니다.
  3. AUTOMATIC1111을 재시작합니다.

설치에 성공하면 img2img 페이지 하단의 스크립트 드롭다운 메뉴에 Ultimate SD 업스케일 사용 가능이 표시됩니다.

ControlNet 확장 설치

ControlNet은 이미지 생성을 추가로 제어할 수 있는 확장 기능입니다. 자세한 내용은 ControlNet tutorial 튜토리얼을 참조하세요.

AUTOMATIC1111에 Ultimate SD 업스케일을 설치하려면 다음과 같이 하세요:

  1. 확장 페이지로 이동합니다.

2. URL에서 설치 탭을 선택합니다.

3. 확장 프로그램의 저장소 URL 필드에 다음 URL을 입력합니다.

https://github.com/Mikubill/sd-webui-controlnet

4. 설치 버튼을 클릭합니다.

5. 확장 프로그램이 설치되었다는 확인 메시지가 나타날 때까지 기다립니다.

6. AUTOMATIC1111을 재시작합니다.

7. ControlNet models 페이지로 이동합니다.

8. 모든 모델 파일을 다운로드합니다(파일 이름이 .pth로 끝남). 모든 모델을 다운로드하지 않으려면 이 튜토리얼에 사용할 타일 모델(_tile로 끝나는 모델)만 다운로드하면 됩니다.

9. 모델 파일을 컨트롤넷 확장자의 모델 디렉토리에 넣습니다.

stable-diffusion-webui\extensions\sd-webui-controlnet\models

10.AUTOMATIC1111을 재시작합니다.

txt2img 페이지에 ControlNet 섹션이 표시되어야 합니다. 모델 드롭다운 메뉴에서 타일 모델을 선택할 수 있어야 합니다. 메뉴가 보이지 않으면 메뉴 옆에 있는 새로 고침 버튼을 누릅니다.

이미지 입력

Stable Diffusion에서 생성한 다음 이미지를 사용합니다.

관련 글  25세 여성과 45세 여성: stable diffusion

Model: Lyriel v1.5

프롬프트 및 네거티브 프롬프트:

“The Last Dance”: In a grand ballroom, our star-crossed lovers share a dance. Time seems to slow as they waltz, lost in each other’s eyes. Unbeknownst to them, this will be their final moment together before fate intervenes.

(GPT-4에서 이 프롬프트를 받았습니다)

disfigured, deformed

원본 크기는 768×512픽셀로 꽤 작습니다. 3,072×2,048픽셀로 4배 확대해 봅시다. 세 가지 업스케일링 방법으로 테스트해 보겠습니다.

  1. AI Upscaler
  2. SD Upscale
  3. ControlNet tile upscale

방법 1: AI 업스케일러

AI Upscaler는 사진을 확대하고 디테일을 채워서 이미지가 선명하게 유지되도록 학습된 AI 모델입니다. 이것은 AUTOMATIC1111에서 이미지를 업스케일링하는 기본 방법입니다.

  1. AUTOMATIC1111에서 추가 기능 페이지로 이동합니다.

2. 이미지를 이미지 캔버스에 업로드합니다.

3. 크기 조정을 4로 설정합니다(이미지를 4배 확대).

4. 업스케일러 1에서 업스케일러를 선택합니다. 저는 유니버설 업스케일러 v2를 사용했지만 아무 업스케일러나 사용할 수 있습니다. (여기에서 새 업스케일러 다운로드 및 설치 지침을 참조하세요).

5. 생성을 클릭합니다.

잠시 후 오른쪽 출력 창에 업스케일링된 이미지가 표시됩니다.

어떻게 되는지 살펴봅시다. 먼저 드레스를 살펴봅시다.

AI 업스케일링(유니버설 업스케일러 v2)
원본(확대)

드레스의 디테일을 충실히 채우는 데 꽤 괜찮은 작업을 수행하고 있습니다.

하지만 여성의 얼굴은 이 업스케일러가 할 수 있는 것 이상으로 약간의 보정이 필요합니다.

AI 업스케일링(유니버설 업스케일러 v2)
원본(확대)

물론 다른 AI 모델을 사용하여 얼굴을 복원하는 얼굴 복원을 켤 수 있습니다. 하지만 이 모델은 특정 스타일로 훈련되지 않았기 때문에 아티팩트가 발생하고 얼굴이 부자연스러워 보일 수 있습니다.

방법 2: SD 업스케일

얼굴 복원을 사용하지 않고 얼굴을 수정할 수 있는 방법이 있나요?

우선, 얼굴은 원본 이미지와 비슷합니다. 그렇기 때문에 스케일 업을 할 때 우리가 얻은 결과를 얻었습니다.

하지만 어차피 원본 이미지가 컴퓨터로 생성된 것이기 때문에 더 많은 변경이 필요하다면 어떻게 해야 할까요? 이미지 대 이미지로 추가 작업을 수행하여 디테일을 재생성할 수 있습니다.

이것이 바로 SD 업스케일 스크립트가 하는 일입니다.

이 방법의 장점은 다음과 같습니다.

  • 동일한 모델과 프롬프트로 새로운 줌인 디테일을 생성할 수 있습니다.
  • AI 업스케일러로 인해 발생한 아티팩트를 제거할 수 있습니다.

AUTOMATIC1111의 img2img 페이지에서 SD 업스케일 스크립트를 사용하여 AI 업스케일링과 SD img2img를 한 번에 쉽게 수행할 수 있습니다. 이 스크립트는 작은 타일에서 안정적인 확산 img2img를 수행하므로 낮은 VRAM GPU 카드에서 작동합니다.

단계별 가이드

SD 업스케일을 수행하려면 다음 단계를 따르세요.

  1. img2img 페이지에서 이미지를 이미지 캔버스에 업로드합니다.

2. 원본 프롬프트와 네거티브 프롬프트를 입력합니다. 원본 프롬프트가 없는 경우 “매우 상세”를 사용할 수 있습니다.

대안 1: txt2img 페이지에서 이미지를 방금 생성한 경우 img2img로 보내기 버튼을 클릭합니다. 이미지와 프롬프트가 자동으로 채워집니다.

대안 2: 생성된 이미지가 로컬 저장소에 저장되어 있는 경우 PNG 정보 페이지에 업로드할 수 있습니다. 프롬프트 및 모델을 포함하여 이 이미지를 생성하기 위한 모든 정보가 표시됩니다. img2img로 보내기를 클릭합니다. 이미지와 프롬프트가 자동으로 채워집니다.

3.스테이블디퓨전 체크포인트 드롭다운 메뉴에서 이 이미지를 생성할 때 원래 사용한 모델을 선택합니다.

4. 이미지 너비와 높이를 모두 512로 설정합니다. SD 업스케일링에 사용할 타일 크기입니다.

관련 글  초보자를 위한 ChatGPT 초급 과정을 소개합니다

5. 노이즈 제거 강도를 0.3으로 설정합니다. 값이 높을수록 더 많은 디테일과 복구를 얻을 수 있지만 0.4보다 높게 설정해서는 안 됩니다. 그렇지 않으면 아티팩트가 표시됩니다.

6.img2img 페이지의 버튼 근처에서 스크립트 드롭다운 메뉴를 찾습니다. SD 업스케일을 선택합니다.

7. 4배로 확대하려면 스케일 팩터를 4로 설정합니다.

7. 업스케일러를 선택합니다. 이전 방법에서 사용한 것과 동일한 업스케일러를 선택했습니다. 업스케일러가 없는 경우 ESRGAN 또는 R-ESRGAN을 선택할 수 있습니다.

8. 생성을 클릭합니다.

결과

이것이 결과물입니다.

Stable Diffusion img2img 덕분에 나무 바닥에 많은 디테일이 있습니다..

이제 얼굴을 비교해 봅시다.

SD 업스케일.
AI 업스케일.
원본(확대)

많이 개선되었습니다! SD 업스케일링은 아티팩트를 도입하지 않고 얼굴을 수정합니다.

드레스를 살펴볼까요?

SD 업스케일.
AI 업스케일.
원본(확대).

세부 사항도 약간 더 있습니다.

다음 매개 변수로 실험해 볼 수 있습니다.

  • 샘플링 단계: 더 높게 설정하면(예: 50 – 100) 더 많은 디테일을 얻을 수 있습니다.
  • 샘플링 방법. 특히 조상 샘플러를 사용하면 세부 사항이 달라질 수 있습니다.
  • 디노이즈 강도. 추가할 디테일의 양을 제어합니다. 이 방법의 작업 가능 범위는 0.1에서 0.4 사이입니다.
  • 시드: 디테일을 변경합니다.

디테일 수준은 노이즈 제거 강도 매개변수에 의해 제어됩니다. 앞서 말했듯이 이 방법은 0.4보다 높게 설정하면 안정적 확산이 이미지를 너무 많이 변경하기 때문에 실패합니다. 아티팩트가 보이기 시작합니다.

원본 구성을 희생하지 않고 노이즈 제거 강도를 높일 수 있는 방법이 있나요? 음… 이것은 참조 이미지에서 구도를 복사하는 확장 프로그램의 기능과 매우 유사하게 들립니다…

맞습니다. 해결책은 바로 컨트롤넷을 사용하는 것입니다!

방법 3: 컨트롤넷 타일 업스케일링

컨트롤넷 타일은 이미지 세부 정보를 재생성하기 위한 컨트롤넷 모델입니다. 로컬 이미지 세부 정보가 프롬프트와 일치하지 않으면 프롬프트를 무시하고 로컬 세부 정보를 채웁니다. 이 동작은 타일에서 업스케일링하는 데 이상적이므로 낮은 VRAM 설정에서 작동합니다.

이 방법을 사용하려면 Ultimate SD 업스케일 및 ControlNet 확장 프로그램을 설치해야 합니다. 아직 설치하지 않았다면 소프트웨어 섹션의 지침을 따르세요.

이 방법이 기본 제공 SD 업스케일 스크립트에서 작동하지 않는 이유를 모르겠습니다. 작동해야 하지만 그렇지 않습니다.

단계별 가이드

To perform ControlNet tile upscale:

ControlNet 타일 업스케일을 수행하려면 다음과 같이 하세요:

1. AUTOMATIC1111에서 img2img 페이지로 이동합니다.

2. 이미지를 img2img 캔버스에 업로드합니다.

3. 원본 프롬프트와 네거티브 프롬프트를 입력합니다. 원본 프롬프트가 없는 경우 “매우 상세”를 사용할 수 있습니다.

대안 1: txt2img 페이지에서 이미지를 방금 생성한 경우 img2img로 보내기 버튼을 클릭할 수 있습니다. 이미지와 프롬프트가 img2img 페이지에 자동으로 채워집니다.

대안 2: 생성된 이미지가 로컬 이미지에 저장되어 있는 경우 PNG 정보 페이지에 업로드합니다. 프롬프트 및 모델을 포함하여 이 이미지를 생성하기 위한 모든 정보가 표시되어야 합니다. img2img로 보내기를 클릭합니다. 이미지와 프롬프트가 자동으로 채워집니다. img2img 페이지에서.

4. 샘플링 단계를 50으로 설정합니다.

5. 노이즈 제거 강도를 0.5로 설정합니다.

다음 단계는 콘트롤넷 섹션에 대한 것입니다.

  1. 동일한 원본 이미지를 ControlNet의 이미지 캔버스에 업로드합니다.
  2. 활성화를 선택하여 ControlNet 확장을 활성화합니다.
  3. 전처리기 드롭다운 메뉴에서 타일_리샘플을 선택합니다.
  4. 모델 드롭다운 메뉴에서 control_v…_sd15_tile을 선택합니다.

다음 단계는 Ultimate SD 업스케일 확장을 위한 단계입니다.

  1. 페이지 하단의 스크립트 드롭다운 메뉴에서 궁극의 SD 업스케일을 선택합니다.
  2. 대상 크기 유형 드롭다운 메뉴에서 이미지 크기에서 크기 조정을 선택합니다.
  3. 배율을 4로 설정합니다.
  4. 업스케일러를 선택합니다. 저는 유니버설 업스케일러 v2를 사용했습니다. 그러나 일반 업스케일러의 경우 ESRGAN 또는 R-ESRGAN을 선택할 수 있습니다.
관련 글  프리드리히 니체: stable diffusion
  1. 타일 너비가 512, 높이가 0인지 확인합니다. 업스케일링 중에 512×512 타일이 사용됩니다.
  2. 생성을 클릭합니다.

결과

다음은 업스케일링된 이미지입니다.

확대하여 비교해 봅시다.

다음은 얼굴입니다.

컨트롤넷 타일 업스케일.
SD 업스케일.
AI 업스케일.
원본(확대).

놀랍습니다! 컨트롤넷 타일 업스케일링의 품질은 정말 놀랍습니다. 얼굴과 머리카락이 매우 선명하고 디테일이 풍부하게 렌더링됩니다.

이제 드레스를 살펴봅시다.

컨트롤넷 타일 업스케일.
SD 업스케일.
AI 업스케일.
원본(확대).

얼마나 많은 디테일이 추가되었는지 보고 깜짝 놀랐습니다!

이 방법의 단점은 아마도 너무 많은 디테일이 추가된다는 것입니다. 더 이상 원본을 충실하게 확대하지 않는 방식으로 이미지가 변경될 수 있습니다. 하지만 목표에 따라 다릅니다.

매개변수 조정

다음 매개변수를 실험해 볼 수 있습니다.

  • 노이즈 제거 강도: 이 값을 낮추면 추가되는 디테일의 양이 줄어듭니다. 제 경험상 가장 합리적인 값은 0.5입니다.
  • 다운샘플링 속도(컨트롤넷): 컨트롤 타일에 얼마나 많은 다운샘플링이 수행되는지 제어합니다. 이 값을 높이면 제어 이미지가 더 흐릿해집니다. 컨트롤 이미지가 더 흐릿해질수록 모델이 디테일을 더 자유롭게 구성할 수 있습니다.
다운샘플링 비율 1
  • 샘플링 단계: 단계 수를 늘리면 디테일과 선명도가 향상되는 경향이 있습니다.
  • 샘플링 방법: SD 업스케일과 마찬가지로 샘플러가 최종 디테일에 영향을 줄 수 있습니다.
  • 시드: 시드를 변경하여 디테일을 변경합니다.
  • 심 수정(궁극의 SD 업스케일): 512×512 타일이 보인다고 생각되면 활성화합니다. 이 옵션은 타일의 경계를 따라 추가 업스케일링을 실행합니다.

어떤 옵션을 사용해야 하나요?

AI 업스케일, SD 업스케일, ControlNet 타일 업스케일의 세 가지 업스케일링 옵션 중 어떤 것을 사용해야 하나요?

권장 사항을 설명하기 전에 SD 업스케일과 ControlNet 타일 업스케일의 사용 사례는 비슷하다고 말씀드리고 싶습니다. 컨트롤넷 타일 업스케일이 더 우수합니다. ControlNet 타일 업스케일 대신 SD 업스케일을 사용하고 싶은 경우는 없을 것입니다.

따라서 선택은 (1) AI 업스케일러와 (2) ControlNet 타일 업스케일의 두 가지로 귀결됩니다.

일반적으로 컨트롤넷 타일 작업 전에 AI 업스케일링으로 이미지를 업스케일링하기 때문에 기본적으로 컨트롤넷 타일 컨디셔닝으로 이미지 간 추가 업스케일링을 수행할지 여부에 따라 결정됩니다.

실제 사진으로 작업하거나 충실도가 중요한 경우에는 ControlNet 타일을 사용하지 않고 AI 업스케일러만 사용할 수 있습니다. 다양한 유형의 이미지에 사용할 수 있는 다양한 AI 업스케일러가 있습니다.

사실 이러한 AI 업스케일러도 세부적인 부분을 구성하므로 현명하게 사용하세요.

괜찮거나 디테일을 추가하는 것을 선호한다면 컨트롤넷 타일 업스케일을 사용하는 것이 좋습니다. 이는 스테이블 디퓨전 또는 기타 AI 이미지 생성기로 생성된 이미지에 적용됩니다.

Series Navigation<< 로고 제작을 위한 stable diffusion 프롬프트 40개이미지 생성 AI를 처음 사용하는 사람들을 위한 완벽 가이드 >>

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다