IT 활용/AI 활용

스테이블 디퓨전 기본설정 및 필수 프롬프트 사용법

&+&& 2023. 6. 16. 09:17

  로컬 PC 환경에 Stable Diffusion WebUI를 설치한 후 기본적인 화면 구성 및 설정 방법 그리고 가장 중요한 프롬프트 사용법에 대해서 알아봅니다. 구글 코랩 + 드라이브 환경에서도 여기에서 설명하는 사용 방법은 대부분 동일합니다.
  아직 스테이블 디퓨전 설치 전이시라면 아래 설치 방법 설명 글을 확인해 보시기 바랍니다. 또한 스테이블 디퓨전은 모델 파일인 checkpoint(2~4GB 용량), Lora, 부가 기능 설치 및 생성된 이미지의 저장 등 큰 저장용량을 필요로 하므로 C 드라이브의 공간이 충분하지 않다면 다른 드라이브에 설치하시기를 권장합니다.

 

AI 이미지 생성 Stable Diffusion WebUI 윈도우에 설치하기

스테이블 디퓨전은 텍스트를 입력받아 이미지를 생성하는 txt2img를 핵심 기능으로 하는 AI 모델로 스테이블 디퓨전 WebUI는 이러한 AI 모델을 웹 인터페이스 상에서 편리하게 사용하기 위한 프로젝

bigdatapy.tistory.com

 

기본 화면 설명 및 사용 방법

stable diffusion webui 초기 화면
stable diffusion 초기 구동 화면(extension이 없는 상태)

  기본 화면은 위와 같이 구성됩니다. 아래 내용은 개별 항목들의 세부적인 설명입니다.

 

Stable Diffusion checkpoint

stable diffusion checkpoint 선택 메뉴
Stable Diffusion checkpoint 항목은 현재 선택된 모델(checkpoint) 파일을 나타냅니다. checkpoint를 다운로드 받아서 추가한 경우 우측의 리프레쉬 버튼을 클릭하면 추가된 모델이 리스트 버튼을 클릭했을 때 표시됩니다.
 초기에 WebUI를 기동했을 경우 기본 모델 1가지 밖에 없는 상태입니다.
 추가 모델은 스테이블 디퓨전과 관련된 정보 및 자료를 공유하는 civitai 사이트에서 다운로드가 가능합니다.
 스테이블 디퓨전에서 모델은 checkpoint라는 이름으로 불리며 civitai 사이트에서 검색 필터를 checkpoint에 두고 검색하면 됩니다. 
 civitai 사이트 바로가기 civitai 사이트 메인 페이지 연결
회원가입을 해야 전체 자료 확인이 가능합니다.
ChilloutMix 모델 페이지 바로가기 실사와 비슷한 느낌의 이미지 생성에 가장 많이 사용되는 chilloutmix
동양계와 비슷한 느낌의 이미지를 잘 생성해 주는 것으로 평가됩니다.
Deliberate 모델 페이지 바로가기 좀 더 서양적인 느낌의 실사 이미지 생성에 많이 사용됩니다.
CamelliaMIx 모델 페이지 바로가기 애니풍의 이미지 생성에 적합한 모델입니다.
소개한 모델들 외에도 여러가지 모델들이 존재하고 메인 모델 외에 메인 모델을 기반으로 제작된 변형 모델들도 존재합니다. civitai 사이트의 창작 예시 등을 보면서 본인의 취향에 맞는 모델들을 선택하시면 됩니다.  
다운로드 받은 checkpoint 파일은 stable-diffusion-webui 설치 폴더 내의 models/Stable-diffusion 폴더에 넣어주고, 파란색 리프레쉬 버튼으로 로드한 후에 선택이 가능합니다.

 

txt2img 탭을 구성하는 prompt, negative 입력 창

stable diffusion의 메인 기능인 txt2img 기능 관련 항목입니다.
윗쪽의 Prompt 칸은 이미지 생성 시 반영하고 싶은 내용, 아래쪽의 Negative prompt 칸은 이미지에서 제외하고 싶은 내용을 입력합니다.
우측의 Generate 버튼을 클릭하면 작성한 프롬프트 내용을 기반으로 이미지 생성을 수행합니다.

 

Sampling 관련 method 및 step 설정

sampling method 설정 화면
Sampling method : 각 종류별로 적합한 이미지 종류가 다릅니다. 이 중 가장 많이 사용되는 두 가지인 DPM++ SDE Karras, DPM++ 2M Karras 메소드의 경우 사실적인 이미지에 잘 어울리는 메소드입니다.
Sampling steps : 기본값은 20이며 수치가 커질수록 더 좋은 퀄리티의 이미지를 생성할 수 있다고 하나, 결과물을 보면 잘 체감이 되지는 않습니다. 기본값인 20 그대로 사용하거나 civitai 등에서 보이는 샘플 설정의 step을 참조하여 사용하며 됩니다. 속도를 중시한다면 10까지 낮추어서 사용하는 것도 가능합니다. 

 

이미지 생성 시 추가 옵션 : Restore faces, Tiling, Hires. fix

Restore faces : 이미지 생성 후 얼굴 부분이 이상하게 표현되는 경우가 있는데 얼굴 부분만 보정 처리를 진행해 주는 옵션입니다. 실제 Full Body 등을 뽑는 경우 얼굴이 이상한 형태로 출력되는 경우가 많은데, 그런 경우에는 DDetailer를 따로 사용합니다.
Tiling : 생성된 이미지에 타일같은 패턴 처리를 한다고 하는데, 거의 사용되지 않습니다.
Hires. fix : 1차 이미지 생성 후 고해상도로 이미지 해상도 변경 + 세부적인 디테일을 향상 시킵니다. 출력 속도를 높이기 위해 기본 이미지 출력 해상도를 조금 낮추고 Hires. fix 또는 extra기능을 이용해 원하는 최종적인 해상도로 이미지를 생성하면서 디테일을 추가합니다.
upscaler 설정 화면
Hire. fix 세부 선택 화면입니다. extras 메뉴도 구성 및 선택 화면은 비슷합니다.
Upscaler : 애니풍의 이미지에는 R-ESRGAN 4x+ Anime6B / 실사풍의 이미지에는 R-ESRGAN General WDN 4xV3 를 주로 사용합니다.
Hires steps : 기본 권장 수치는 기본 이미지 생성 시 Sampling steps와 같은 수치로 설정하는 것입니다.
Denoising strength : 디테일을 추가하면서 원본의 이미지를 얼마나 변화시키는 지와 연관된 수치입니다. 0.3은 원본 이미지와 거의 동일한 이미지를 생성하고 값이 커질수록 원본 이미지에서 변형되는 부분이 커집니다.

Upscale 사이즈 설정
Upscale by : 원본 이미지에 값을 곱해서 최종 이미지의 사이즈가 결정됩니다. 예) 원본 width X height가 512이고 Upscale by가 2라면 최종 이미지 사이즈는 1024 X 1024가 됩니다.
Resize width + height to : 원하는 최종 이미지의 사이즈를 직접 입력합니다.

 

이미지 생성 기본 사이즈 및 출력 이미지 숫자 설정

이미지 생성 사이즈 및 배치 작업 설정 부분
Width Height : 이미지의 가로, 세로 사이즈를 입력합니다. 우측의 교환 버튼으로 너비와 높이 사이즈 값을 교환할 수 있습니다.
Batch count : 몇 번의 이미지 생성 일괄 처리를 할 지 입력합니다.
Batch size : 한 번의 일괄 처리에서 몇 장의 이미지를 생성할 지 입력하는 항목입니다.
count 와 size를 곱한만큼의 이미지가 생성됩니다.
다만 Batch size는 그래픽카드의 vram과 관련되기에 지나치게 높은 값은 생성 작업 중 오류를 증가시킬 수 있습니다.
CFG Scale : 입력된 프롬프트를 얼마나 강하게 반영할 지 나타내는 값입니다. 일반적으로는 7~11 정도의 값으로 설정해 주면 됩니다. 저는 주로 10으로 놓고 사용합니다.

 

seed 값 및 사용 방법

이미지 seed 설정 화면
AI 모델이 이미지를 생성하면서 부여되는 값입니다.
기본값인 -1은 무작위로 이미지를 생성하며 생성된 이미지는 특정한 seed 값을 갖게 됩니다. 이러한 결과 seed 값을 모든 설정이 동일한 상태에서 입력 후 이미지를 생성하면 완전히 동일한 이미지가 생성됩니다.
이미지 pnginfo 예시
활용 방법 : 이미지 생성 후 세부 내역을 보면 좌측 이미지와 같이 Seed 값이 표시됩니다. 마음에 드는 이미지의 seed값 및 기타 입력 내용을 동일하게 설정한 상태에서 prompt 등 일부 내용을 조금씩 수정하면서 좀 더 디테일하게 원하는 결과물 생성에 접근할 수 있습니다.

 

아이콘 버튼 및 이미지 생성 버튼

Generate 버튼은 생략하고 좌측부터 설명합니다.

아이콘 버튼 화면
화살표 : 현재 결과물로 선택되어 있는 이미지의 설정을 가져옵니다. seed값을 활용할 때 사용할 수 있습니다.
휴지통 : 현재 입력되어 있는 prompt, negative prompt의 내용을 모두 지웁니다.
화투패 : 사용가능한 checkpoint, Lora 등 extra networks 내용들을 표시합니다. 
파일철 : 아랫쪽의 Styles 리스트 박스에서 선택된 항목의 설정 내용을 로드합니다.
저장아이콘 : 선택하면 제목을 입력하는 팝업창이 뜨며, 현재 입력된 내용을 Style로 저장합니다.

 


필수 프롬프트 사용법

대부분의 AI 모델에 적용되는 내용이지만 원하는 이미지의 내용을 최대한 디테일하게 작성하는 것이 중요합니다. 저의 경우는 원하는 프롬프트가 떠오르지 않을 때는 랜덤 프롬프트를 사용해서 일괄 배치로 많은 수의 이미지를 생성하기도 하고 위에 적은 seed 활용 방법을 사용하기도 합니다.

  • 스테이블 디퓨전의 프롬프트는 chatGPT처럼 문장이 아니라 키워드로 작성해야 합니다. 각각의 키워드는 쉼표로 구분합니다.
  • 중요한 키워드를 앞에 위치시킵니다. 강조(우선 반영)하고자 하는 키워드는 ()로 묶습니다. 예) (masterpiece)
  • 숫자로 가중치를 적용하는 것이 가능합니다. ()는 1.0의 가중치 값(디폴트)을 가집니다.보통 0.1에서 1.8까지의 값을 사용합니다. 예) (masterpiece:0.5)
  • {keyword1 | keyword2} 입력으로 여러 개의 항목들 중 랜덤하게 선택하여 이미지 생성이 가능합니다. 예) {white dress | blue dress}
  • civitai에 있는 샘플 이미지에서 프롬프트 확인이 가능합니다. 내용을 분석해 보고 적극적으로 활용해 봅시다.
  • 본인이 선호하는 품질에 대한 키워드(masterpiece, uhd, 4k 등)와 negative(bad anatomy, bad hands, too many fingers)가 정해지면 이는 기본적인 항목으로 모든 이미지 생성에 적용하는 것이 가능합니다.

랜덤 프롬프트 사용법이 궁금하시다면 다음 글을 참고하시면 됩니다.

 

stable diffusion 랜덤 프롬프트 적용해서 이미지 생성하기

Extension : Dynamic Prompts 설치 이번 글에서는 로컬 PC 환경의 Stable Diffusion WebUI에 Dynamic Prompts를 설치하고 이를 통해 랜덤 프롬프트를 적용해서 이미지를 생성하는 방법에 대해서 알아보려고 합니다.

bigdatapy.tistory.com