Stable Diffusion(스테이블 디퓨전) WebUI - 04. Generation 설명

2024. 10. 29. 01:45·IT 활동/AI
어두운 배경이 싫으시다면 페이지 우측 하단에 보이는 초승달 모양의 아이콘을 클릭하면 화이트모드로 변경됩니다.
초승달 모양 버튼 : `화이트/다크 모드` 전환
테마모드 변경 가이드

 

이번 포스팅에서는 이미지를 생성하기 위한 Generation 옵션에 관하여 설명하도록 하겠습니다. 


 

1. Generation 옵션값 설명

🟦 Sampling method / Schedule type

Sampling Method 내용들.Schedule type들 모습
Sampling method와 Schedule type 목록

 

이전에 제가 작성한 포스팅에서 기본 설정을 통해 Sampler 설정을 하였다면 위와 같이 'Sampling method'가 똑같이 나올 것입니다. 만약 다르더라도 자주 사용하는 것들은 거의 정해져 있다 보니 아래에 적힌 Sampler들만 있다면 크게 상관하지 않으셔도 됩니다.

 

🔹DPM++ 2M, DPM++ SDE, DPM++ 2M SDE, Euler a, LMS

하나씩 다 설명하기에는 내용도 너무 많고 처음 사용하는 사람들은 이게 뭔지 조차도 잘 모르기 때문에 간단하게 위의 나열한 것들만 사용하셔도 이미지를 생성하는데 문제없습니다.

 

혹시나 각각의 Sampler와 Scheduler에 대해서 자세히 알고 싶으시다면 아래 Civitai에 올라온 글을 공유해 드릴 테니 가셔서 한글 번역으로 보시면 됩니다. (내용이 많습니다...)

 

 

Understanding Stable Diffusion Samplers: Beyond Image Comparisons | Civitai

Over the last couple of years, I've noticed a lot of ambiguity in articles and posts related to "which sampler to use and when." I've seen a number...

civitai.com

 

물론 다른 것을 사용한다고 문제될 일은 없지만 상황에 따라, 그리고 Generation 옵션값이나 체크포인트 모델에 따라서 전혀 다른 이미지가 생성되거나 노이즈가 많은, 깨진 이미지가 생성될 수 있습니다. 시간도 Sampler에 따라 천차만별이기 때문에 자세한 내용은 추후 따로 포스팅하도록 하겠습니다.

 

'Schedule type'도 보다시피 다양한 기능을 제공하는데, 이것들은 이미지를 생성할 때 Sampler들의 노이즈 제거를 보조해 주는 역할을 합니다. 사실 초반엔 뭐가 뭔지 모르기 때문에 'Automatic'을 사용하시면 됩니다. 아래는 'Sampling method' 종류별로 생성한 이미지 예시입니다.

 

🔹사용한 프롬프트 내용

(masterpiece, best quality, highres, highest detailed), outdoors, sky, city, destroyed, 1boy, mechanical parts,robot joints, helmet, upper body, looking at viewer

 

🔸부정 프롬프트

(worst quality, low quality:1.4)

 

샘플링별 생성한 이미지 예시
각 Sampler들로 생성한 이미지 예시

 

대체로 사람을 그릴 때에는 업스케일링이나 기타 다른 기능들을 사용하지 않고 순수하게 WebUI의 기본기능만으로 생성하면 이상하게 나옵니다. 특히 인체 비율, 거리감에 따라서 얼굴, 손가락 등의 디테일은 매우 떨어지게 됩니다. 

 

 

🟦 이미지 크기 (Width / Height)

스테이블 디퓨전은 기본적으로 512x512 이미지 사이즈 기반으로 학습합니다. 이후 업데이트를 통해 768x768 이미지까지 학습할 수 있게 되면서 모델에 따라 약간 다를 수 있지만 해당 이미지 크기로 학습된 모델을 사용하면 512 ~ 768 사이즈의 이미지를 생성할 수 있습니다.

 

이미지 크기를 다르게 하는 것만으로도 전혀 다른 이미지가 생성됩니다. 아래는 Width를 512로 고정하고 Height를 각각 512, 600, 768로 생성한 이미지입니다. (Seed값은 같음)

 

512x768 사이즈로 생성한 예시 이미지512x600 사이즈로 생성한 예시 이미지512x512 사이즈로 생성한 예시 이미지
Width값은 512, Height는 각각 왼쪽부터 768, 600, 512


 

🟦 CFG scale / Sampling steps

두 옵션은 이미지를 생성하는데 있어 중요한 값입니다. 두 값을 조절하며 디테일, 노이즈, 진하기 정도를 조절할 수 있습니다. 

 

스테이블 디퓨전은 원본 이미지를 학습할 때 노이즈를 일부러 넣으면서 완전히 뭉개버립니다. 그러면 최종적으로 전혀 알아볼 수 없는 노이즈 이미지가 만들어지고 다시 역순으로 수학적인 계산 방식을 통해 단계적으로 방향을 확률 계산하며 이미지를 복구(생성) 해 나가는 방식입니다. 마치 방정식을 푸는 것과 같습니다. (이게 너무 방대한 양이어서 노가다를 위해 GPU의 힘이 필요한 것!)

 

🔹CFGScale

얼마만큼의 확률(각도)로 각각의 프롬프트를 해석하여 정확하게 원본 이미지 복구해갈지를 정하는 값입니다. 뭐 말은 어렵지만 간단하게 설명하면 '윌리를 찾아라'를 생각하시면 됩니다. '동그란 뿔테 안경, 빨간색 방울 모자, 횐색과 빨간색이 섞인 줄무늬 셔츠, 청바지'와 같은 프롬프트를 사람에게 던져주고 '찾아'라고 하는 것과 같은 원리입니다.

 

즉, 아래 사진만 봐도 누가 윌리인지를 눈으로 찾기 정말 힘든데, AI는 확률 계산으로 '이놈이겠지, 이놈이겠지'를 반복하면서 노이즈를 제거해 수많은 노가다로 방정식을 GPU로 풀면서 이미지를 만들어내는 것입니다.

 

CFG Scale은 윌리를 찾는 과정의 정확도를 의미하는 것과 같다.
윌리를 찾아라 예시. 눈 아프네

 

CFG 값이 낮으면 대충 이놈이겠지를 정하고 그려나가는 것이고 너무 높으면 이놈이 제일 비슷한 놈인 것 같다고 들입다 그놈만 분석합니다. 그래서 전혀 다른 놈을 윌리라고 말할 수도 있고, 엄청 비슷한 놈일 수도 있고, 진짜 윌리일 수도 있습니다.

 

그렇기 때문에 CFG Scale 값은 보통 5 ~ 10 사이로 사용하며, 추천하는 값은 7입니다.

 

🔹Sampling steps

어느 정도의 단계를 거쳐서 노이즈를 제거하며 원본 이미지를 구현해갈지를 정하는 값입니다. 이것도 노이즈가 어떤 의미를 나타내는지를 잘 모르면 어려운 말일 수 있는데 간단한 예시로 포스트잇에 볼펜으로 꾹꾹 눌러 글씨를 쓰고 뜯어내면 바로 아래 포스트잇에 글자 자국이 남습니다. 이것을 연필로 문지르면 글자가 나타나는 원리를 생각하시면 됩니다.

 

즉, 연필로 계속 문지르면서 원하는 이미지의 모습을 찾아가는 과정을 'Sampling step'이라 하며, 이 값이 낮으면 연필로 대충 몇 번 슥삭하는 정도라 뭔 글자인지 알아보기 힘들고, 반대로 너무 높으면 연필로 찐하게 여러 번 문질러서 잘 보이긴 하는데 굳이 그렇게 열심히 문지를 필요가 없을 정도라 오히려 연필심(GPU)만 낭비하게 됩니다.

 

마찬가지로 'Sampling steps'가 낮으면 이미지가 선명하지 않고 좀 뿌옇게 나옵니다. 반대로 높으면 꽤 디테일하게 나오지만 어느 정도 임계점을 넘어가면 별다른 차이가 없습니다. 보통 20 ~ 40 정도의 범위로 사용하며 추천하는 값은 30입니다.

 

아래는 'CFG scale' 값과 'Sampling steps' 값에 따른 이미지 생성 예시입니다. 각각 'CFG Scale'은 3, 7, 10 값을, 'Sampling steps'는 5, 30, 60 입니다.

 

CFG scale과 Steps 값의 예시 이미지
CFG scale과 Steps의 예시 이미지


 

🟦 Batch count / Batch size

'Batch count'는 단순히 이미지의 개수를 의미합니다. 2를 입력하면 2장을 생성합니다. 'Batch size'는 한 번에 생성할 이미지의 개수를 지정합니다. 즉, 3을 입력하면 한 번 이미지를 생성할 때 총 3장을 생성합니다. 즉, Batch count X Batch size만큼 이미지가 생성됩니다.

 

한 번에 여러 장을 생성할 때는 컴퓨터 하드웨어와 그래픽 카드 성능에 따라 달라질 수 있겠지만, 한 장씩 개별로 생성하는 것보다는 대체 조금 더 빠릅니다. 그래서 여러 장을 만들어 원하는 특정 이미지를 찾아낼 때 유용한 방법입니다.

 

클릭하여 크게 볼 수 있습니다. 왼쪽이 개별 생성, 오른쪽이 Batch size 2, Batch count 3으로 생성한 결과


 

🔸번외 : Seed

Seed 값은 저번 포스팅에서도 설명하였는데, 이미지를 생성시키게 하기 위한 씨앗(Seed)으로 이 값에 따라서 다양한 이미지를 생성합니다. 범위는 겁나 큽니다. 64bit 크기이기 때문에 2^64 제곱이니 뭐... 알아서 계산하시길;; 숫자는 0부터 시작입니다.

 

-1 값을 넣으면 랜덤 한 Seed로 생성되며, 여러 장을 생성할 경우 처음 생성된 Seed 번호에 +1씩 더해져서 생성됩니다. 어차피 특정 Seed가 무슨 이미지를 생성한다는 것 자체가 의미 없기 때문에 이미지를 수정하기 위한 용도 또는 누군가 올린 이미지의 Seed값을 이용하여 똑같이 만들거나 수정하고 싶을 때를 제외하고는 그냥 -1 값을 기본으로 사용하면 됩니다.

 

Seed 값 오른쪽에 보이는 두 아이콘이 있는데, 🎲아이콘이 랜덤 시드(-1)로 변경하는 버튼이고, 그 옆에 있는 ♻️아이콘은 생성한 이미지의 Seed 값을 복사하여 넣는 버튼입니다.

 

아래는 같은 Seed 값으로 다른 프롬프트(머리 스타일만 바꿈) 특징을 넣어서 만든 예시 이미지입니다. 물론 주변 환경도 일부 바뀌긴 했지만 전체적인 인물 특징이나 구도는 거의 유지된 상태입니다. 프롬프트를 너무 많이 바꾸거나 옵션값을 다르게 주지 않는다면 같은 Seed일 때 유사한 이미지를 만들어낼 수 있습니다.

 

원본 Seed 이미지 갈색의 긴 파마 웨이브 머리의 여성같은 Seed로 짧은 핑크색 머리의 여성
같은 Seed에서 약간의 프롬프트만 변경한 이미지 비교

 

다음 포스팅에서는 본격적으로 이미지의 퀄리티를 높이는 작업으로 업스케일링(Hires), Textural Inversion 사용하는 방법에 대해서 설명하도록 하겠습니다.


구독 및 좋아요는 컨텐츠를 생산하는데 많은 도움이 됩니다. 😊

감사합니다.

저작자표시 비영리 변경금지
'IT 활동/AI' 카테고리의 다른 글
  • Stable Diffusion(스테이블 디퓨전) WebUI - 06. 프롬프트 작성법
  • Stable Diffusion(스테이블 디퓨전) WebUI - 05. 품질 올리기(Hires, Embbeding)
  • Stable Diffusion(스테이블 디퓨전) WebUI - 03. 이미지 생성해보기
  • Stable Diffusion(스테이블 디퓨전) WebUI - 02. 초기 설정 및 모델 다운로드
RightNowHJ
RightNowHJ
온갖 잡다한 IT 관련 지식 모아모아 공유하는 블로그 (옛 LeePorter 블로그 이전)
  • RightNowHJ
    잡식성 개발자의 블로그
    RightNowHJ
  • 전체
    오늘
    어제
    • 분류 전체보기 (67)
      • IT 활동 (44)
        • 티스토리 (16)
        • 소프트웨어 (13)
        • AI (15)
      • 프로그래밍 (12)
        • 언리얼엔진 (9)
        • C++ (3)
      • 일상생활 (11)
        • 이슈모아보기 (5)
        • 실생활지식 (5)
        • 재테크 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    UE5
    구글 애드센스
    stable diffusion
    메타 퀘스트
    WEBUI
    Meta Quest
    소프트웨어
    플러그인
    을사년
    다크모드
    셀프 등기
    오블완
    유틸리티
    블로그
    티스토리
    hELLO 스킨
    sd 1.5
    언리얼 엔진
    Utility
    수동 광고
    웹 ui
    광고
    언리얼5
    부담부 증여
    스테이블 디퓨전
    부동산
    Unreal Engine
    AI 이미지
    티스토리챌린지
    AdSense
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
RightNowHJ
Stable Diffusion(스테이블 디퓨전) WebUI - 04. Generation 설명
상단으로

티스토리툴바