이번 포스팅에서는 Stable Diffusion WebUI를 사용하는 방법에 대한 내용을 다뤄볼까합니다.

Automatic1111의 WebUI는 사실상 표준 GUI라고 보시면 됩니다. 신기능이 출시하면 바로 반영이 되니까요. 하지만 결코 사용하기에 쉽지는 않습니다. 찾아볼 문서도 많지 않구요. 메뉴를 자세히 들여다보면 정말 처음보는 단어들이 많아서 어려우실거에요.

자 그래서 이미지를 만들기에 앞서서 GUI 가이드를 먼저 알려드리고, 대충 어떤 기능이 있구나 정도로 보시는게 좋을 것 같네요.

Stable Diffusion 구동화면

Stable Diffusion Checkpoint

WebUI를 실행하면 맨 위에 CheckPoint를 선택하는 메뉴가 보입니다. 확장자는 ckpt 또는 safetensors로 되어있습니다.

  • ckpt : 원래의 체크포인트 모델 format
  • safetensors : Hugging Face에서 개발한 새로운 모델 포맷입니다.
    (ckpt모델은 악성코드에 상대적으로 취약하다고 해서 safetensors를 더 선호합니다.)

Checkpoint는 학습모델이라고 이해하시면 됩니다. 만드려는 이미지의 느낌이나 형태,스타일은 이 Checkpoint에 따라 결정된다해도 과언이 아닙니다. 앞서 알려드렸던 설치방법을 따라했다면 아래의 모델이 설치되어있을겁니다.

v1-5-pruned-emaonly.safetensors

기본 설치된 Checkpoint 모델

이 모델 외에도 다양한 모델이 있고 이를 공유하는 커뮤니티나 포럼이 많이 있습니다. 여러개의 모델을 사용하면서 언제든지 변경해서 사용가능합니다.

SD모델 공유 커뮤니티, 포럼 정보

  1. CivitAI : Stable Diffusion으로 생성한 이미지 결과물이나 CKPT, SafeTensors 파일을 공유하는 커뮤니티입니다. Checkpoint 유형만 다운받아서 사용가능합니다.
    • 링크 : https://civitai.com/?types=Checkpoint
  1. Tensor.art : 결과물들을 공유하는 사이트인데, 사이트 내에서 직접 이미지를 생성할 수 있고, 일정량 이상 사용하면 유료로 과금합니다. 이곳에서 원하는 이미지나 작가를 찾아서 CivitAI에서 모델을 찾을 수 있습니다.
  1. Rentry : 유명한 SD 모델이 총집합 되어있는 곳입니다.

대표적인 Model 소개

모델이 정말 다양하게 많은데 대표적인 모델 몇가지를 소개해드릴께요.

  1. Basil Mix : 실사(Realistic)
  2. Orange Mix2 : 애니메이션 일러스트
    • nsfw : 검열이 없는 버전의 AI 모델
    • hard : 애니+실사 느낌의 AI 모델
    • sfw : 검열이 약간 있는 버전의 AI 모델
    • OrangeMix3 AOMA1B 링크 : 3부터는 sfw, nsfw가 통합, BasilMix에서 ChilloutMix로 변경
  1. Chillout Mix : 한국, 아시아 여자 스타일 (가장 퀄리티가 높음, 여러 모델 중 7.17G 짜리 받으1세요. )
  2. Deliberate : 서양 여자 스타일
  3. majicMIX : 정말 실존할거 같은 실사 스타일입니다.

{SD설치폴더} > models > Stable-diffusion

체크포인트 파일(ckpt, safetensors) 복사할 폴더위치

VAE 다운받기 : https://huggingface.co/stabilityai/sd-vae-ft-mse-original/tree/main

(vae-ft-mse-840000-ema-pruned.safetensors 파일 다운받으세요.)

{SD설치폴더} > models > VAE

VAE 복사할 폴더 위치

개인적으로는 OrangeMix AOMA1B 모델과 ChilloutMix, majicmix 는 무조건 받으시라고 추천합니다.

글을 적다보니까 모델별로 더 자세히 설명하기 위해서 포스팅을 따로 해야겠다는 생각이 드네요. 우선 소개한 모델을 일단 다운받고 설치하는 방법부터 알려드릴께요. 각 모델별로 옵션값이나 프롬프트 같은건 따로 정리해보겠습니다.

GUI 메뉴설명

Checkpoint 설정메뉴 아래쪽으로 txt2img / img2img / Extras / PNG Info / Checkpoint Merger / Train / Settings / Extensions 이렇게 탭메뉴가 있습니다. 순서대로 설명드리겠습니다.

TXT2IMG

Text to Image (txt2img) 탭은 말 그대로 글자를 입력해서 이미지로 변환하는 가장 핵심적인 기능을 제공하는 메뉴입니다. 프롬프트(Prompt)라는 말을 많이 들어보셨을텐데요. Stable Diffusion 이 알아들을수 있는, 그리고 위에서 설명드렸던 Checkpoint가 알아들을수 있는 여러가지 단어들을 입력하면 이미지로 결과를 만들어줍니다.

기본설정 4가지

  1. Checkpoint
    • 위에서 소개한 스테이블 디퓨전 모델 : 가장 중요한 설정입니다. 처음에는 v1.5 모델이 설치되어있는데, 저는 majicMIX 모델로 설정하고 진행하도록 할께요.
  2. 프롬프트(Prompt)
    • 만들려는 이미지를 설명하는 부분입니다. 예시를 보여드릴건데 요즘은 프롬프트 엔지니어라는 직업이 생길 정도로 전문화되는 영역인 것 같습니다. 적절한 수식어와 문장구조로 자세히 설명할 수록 결과가 좋게 나옵니다.
    • 프롬프트에 대한 자세한 내용은 따로 포스팅 올리도록 할께요.
A beautiful hyperrealistic 3d animated female ichigo, stunning face, silky hair, big clear eyes, smooth skin, healthy lips, scenic background, soft details, cinematic, close up, –ar 9:16 –s 250
EasyNegative, underwear, bra, badhandv4, bad-artist, EasynegativeV2, bad_pictures, verybadimagenegative_v1.3
  1. 이미지 사이즈(가로, 세로) : 이미지 사이즈는 1:1 혹은 Portrait 비율로 만드는 것을 추천드리고, 너무 큰 사이즈로 바로 만드는 것보다는 512px 정도 수준에서 나온 결과물로 upscale 하는게 좋습니다.
  2. 이미지 수(Batch Size) : 동일한 조건에서 한번에 생성할 이미지의 갯수입니다. 4 정도로 설정하는게 좋습니다.
위의 프롬프트로 생성한 결과물

위의 내용 외에도 화면을 보면 여러가지 설정하는 값들이 있는데, 이를 이미지 생성 파라미터(Parameter)라고 부릅니다.

Generation : 이미지 생성 파라미터

1.Sampling method : 샘플링 방법

Stable Diffusion이 이미지를 생성하는 원리를 알면 이해에 도움이 될텐데요. 깊게 들어가면 너무 어려워지니 이후에 자세히 설명하기로 하고, 간단히 설명드릴께요.

이미지를 만드는 과정에서 사용할 알고리즘 정도로 이해하시고 넘어가시면 되는데, 종류에 따라 생성되는 속도나 결과가 달라집니다. CivitAI 에서 보시면 DPM++ alt Karras 를 많이들 사용하더라구요.

2.Sampling Steps : 샘플링 횟수

샘플링을 수행하는 횟수인데, 클수록 좋고 20-25면 충분합니다.

3.Batch Count : 이미지 생성 횟수

이미지 생성 프로세스를 실행할 횟수를 정합니다.

4.Batch Size : 프로세스 1회당 생성할 이미지의 갯수

Generate버튼을 눌렀을때 Batch 1회당 생성하는 이미지의 갯수입니다. Batch Count를 2, Batch Size를 5로 설정하면 10개의 결과물이 나오게 됩니다. Batch Count보다 Size를 조정하는게 속도가 빠릅니다.

5.CFG (Classifier Free Guidance) Scale

ChatGPT에서 Top P 같은 속성입니다. 프롬프트에 1~30 사이의 값을 설정하면 되는데, 30은 프롬프트에 완전히 따른다는 의미고 1에 가까울 수록 자유도가 높아집니다.

6.Seed : 씨드

위의 Sampling 개념을 설명할때 더 자세히 말씀드릴수 있을거 같은데, 초기 tensor 생성에 사용되는 값 입니다. Noise처럼 보이는 이 tensor를 기반으로 이미지를 생성하기 때문에 같은 seed를 사용하면 비슷한 이미지를 만들수 있습니다.

마음에 드는 이미지가 나왔는데 프롬프트를 조금 수정하고 싶을때는 Seed를 동일하게 설정하고 프롬프트만 고쳐서 생성하면 됩니다. 하지만 다른 느낌으로 결과물이 나오기도 하니 참고해주세요.

7. Seed Extra : 씨드 추가옵션

우측에 extra 옵션을 체크하면 Variation 속성들이 나옵니다. 동일한 프롬프트에서 나온 결과물 중에 여러개의 이미지가 마음에 드는 경우에 Seed를 섞어볼수가 있습니다.

  • Variation Seed : 추가로 혼합할 이미지의 Seed 값
  • Variation Strength : Seed에 영향도의 세기, 0에 가까울 수록 원본 Seed, 1에 가까울수록 추가한 Seed에 가까워집니다.

예시로 어떤 변화가 있는지 살펴볼께요.

Best quality, masterpiece, ultra high res, (photorealistic:1.4), raw photo, 1girl, waist up, in coffeeshop, deep shadow, dark theme
Negative prompt: ng_deepnegative_v1_75t, (badhandv4:1.2), (worst quality:2), (low quality:2), (normal quality:2), lowres, bad anatomy, bad hands, ((monochrome)), ((grayscale)) watermark
Steps: 30, Sampler: Euler a, CFG scale: 10, Seed: 2672744549, Size: 512×768, Model hash: 7c819b6d13, Model: majicmixRealistic_v7, Denoising strength: 0.7, Hires upscale: 2, Hires upscaler: Latent, Version: v1.6.0
Best quality, masterpiece, ultra high res, (photorealistic:1.4), raw photo, 1girl, waist up, in coffeeshop, deep shadow, dark theme
Negative prompt: ng_deepnegative_v1_75t, (badhandv4:1.2), (worst quality:2), (low quality:2), (normal quality:2), lowres, bad anatomy, bad hands, ((monochrome)), ((grayscale)) watermark
Steps: 30, Sampler: Euler a, CFG scale: 10, Seed: 2672744548, Size: 512×768, Model hash: 7c819b6d13, Model: majicmixRealistic_v7, Denoising strength: 0.7, Hires upscale: 2, Hires upscaler: Latent, Version: v1.6.0

위의 2가지 이미지가 마음에 들었다면, 1번째 이미지는 Seed가 2672744549, 2번째 이미지는 Seed가 2672744548 입니다. Variation Strength 값을 변경해가며 결과물을 보시죠.

Variation strength : 0.2
Variation strength : 0.5
Variation strength : 0.8

0.2, 0.5 의 경우는 포즈가 1번째 이미지와 비슷합니다. 0.8은 2번째 이미지에 가깝네요. 뭐… 이정도의 Variation이라고 생각하면 되겠습니다.

이 외에 Hires, Refiner, Script 등은 프롬프트와 모델에 익숙해 진 후에 추가로 설명드리도록 하겠습니다. Face Restoration은 요즘 ADetailer로 대체하는 분위기 같아요. (별도의 Plugin입니다.)
다음 포스팅에서 ADetailer를 알아보고 메뉴설명을 이어가도록 할께요.

포스팅이 너무 길어져서 다음 포스팅에서 이어서 알아볼께요!

More on this topic

Comments

LEAVE A REPLY

Please enter your comment!
Please enter your name here