본문 바로가기
AI · 인공지능/이미지 생성 AI

[2023년판] Stable Diffusion WebUI로 AI 미소녀 만드는 법「ChilloutMix」

by 두우우부 2023. 9. 12.
반응형




이미지 생성 AI "Stable Diffusion"을 사용하여 화제의 AI 미소녀를 만드는 방법에 대해 정리합니다.

Q : 어떤 이미지를 만들 수 있나요?
A: 무엇이든 만들 수 있습니다. 기본적으로 불가능은 거의 없습니다. 현존하는 거의 모든 캐릭터의 이미지를 작성할 수 있으며, 구도나 표정, 복장이나 헤어스타일, 성별이나 연령, 인간 이외의 것까지 생성 가능합니다.


완전 초보도 10분이면 환경 설정이 가능하므로, 여러분도 시험해 보세요! 전혀 어렵지 않습니다.

내 PC에 로컬 환경을 구축하는 것이 아니기 때문에, 낮은 사양의 PC도 괜찮습니다.
(실제로 저는 태블릿 PC인 삼성 갤럭시탭으로 캡처를 진행했습니다.)


소개하기 전에 알아야 할 전문 용어

프롬프트

어떤 이미지를 AI로 작성할지 결정하는 지시 텍스트입니다.
예를 들어 cat이라고 넣으면 고양이의 일러스트가 생성됩니다.
또한, AI가 생성해 주었으면 하는 지시 텍스트를 포지티브(positive) 프롬프트, 반대로 생성을 원하지 않는 지시 텍스트를 네거티브(negative) 프롬프트라고 합니다.
예를 들어, 낮은 품질의 이미지가 싫다면, 네거티브 프롬프트에 worst quality를 지정합니다.

모델 데이터

특정 이미지 그룹으로 학습시킨 데이터를 말합니다.
이것을 사용하면, AI가 소재가 된 일러스트의 특징을 읽어 새롭게 일러스트를 생성해 줍니다.
예를 들어 애니메이션 톤의 일러스트를 생성하고 싶은 경우, 모델도 애니메이션톤의 일러스트 전용의 것이 필요합니다.
이번에는 ChilloutMix라는 모델을 소개하고 코스튬 플레이어풍의 이미지를 생성하고 있습니다만, 그 밖에도 많은 모델이 존재합니다.
덧붙여, 모델 데이터에는 .ckpt 혹은 .safetensors라고 하는 전용 확장자가 사용되고 있습니다.
기본적으로 .safetensors가 더 안정적이며 읽기 속도도 빠릅니다.

※모델 데이터를 Checkpoint라고 표현하는 경우도 있습니다.

LoRA

근본이 되는 모델에 추가 학습을 시켜 새로운 특성을 부여해 나가는 기법입니다.
모델 데이터만으로는 실현하기 어려운 특정 만화나 애니메이션에 등장하는 캐릭터 이미지를 굉장히 쉽게 생성해 주는 마법 같은 기술입니다.

<lora:lora_name:1> 이라는 프롬프트(표기)를 사용하여 그림에 반영합니다.

숫자 1 부분은 LoRA적 특징이 AI 일러스트에 얼마나 반영될지를 나타내는 비중입니다.
수치가 1에 가까울수록 반영률이 높아집니다.

또한 특정 프롬프트와 결합하여, 보다 강하게 효과를 발휘하는 LoRA도 있습니다.
이것을 트리거 워드 라고 하며, 기본적으로는 DL 페이지의 개요란에 기재되어 있습니다.


Stable Diffusion WebUI

Stable Diffusion을 웹 브라우저상에서 쉽게 조작할 수 있는 인터페이스입니다.
아래는 Stable Diffusion WebUI를 구동시킨 예시입니다.



이것을 사용하지 않으면, 커멘드 프롬프트로 모든 주문을 때려 넣거나, 세세한 설정을 하지 않으면 안 됩니다.

덧붙여서 WebUI를 한국어로 바꾸는 방법도 있습니다만, 번역이 완벽하지 않고, 「Stable Diffusion」의 정보는 기본적으로 영어로 작성되는 경우가 많기 때문에, 개인적으로 비추입니다. 영어판으로 각 항목의 사용법을 익히는 것이 앞으로 응용하는데 더 효과적이라고 생각합니다.

VAE

Variational AutoEncoder의 약자입니다.
AI 일러스트를 더 깨끗하게 보이기 위해 생성된 이미지의 채도를 조정하거나 해상도를 올리는 필터 같은 것입니다.
이번 글에서는 사용하지 않지만, AI 일러스트 바닥에서는 반드시 나오는 단어이므로 기억해 둡시다.
Settings → Stable Diffusion → SD VAE에서 설정할 수 있습니다.


Embeddings

생성된 AI 일러스트에 수정 · 개량을 더하는 추가 기능입니다.
EasyNegative나 Ulzzang-6500(나중에 별도로 다루겠습니다) 등이 이에 해당합니다.


ChilloutMix 소개

「Stable Diffusion WebUI」의 기동 방법은 3종류 있습니다.
「Stable Diffusion WebUI」를 기동해 AI 일러스트를 작성하는 경우, 추천하는 방법은 3개 있습니다.

우선, 다음에 설명할 「sd-1click-colab」을 사용한 시작 방법입니다.
이 방법의 가장 큰 장점은 이미 설정이 완료된 구글 코랩 노트북을 이용하여 시작하기 때문에, 초보자도 쉽게 WebUI를 사용할 수 있다는 것입니다.

단점은 제작자가 준비하지 않은 모델이나 LoRA를 사용하고 싶은 경우에는 설정이 좀 번거롭다는 것입니다.

두 번째는, AUTOMATIC1111의 「maintained by Akaibu」 라는 구글 코랩 노트북을 사용하는 방법입니다.
초기 설정이 다소 번거롭지만 일단 토대를 만들면 어느 모델, LoRA, embeddings에서도 간단하게 사용할 수 있게 됩니다.

sd-1click-colab에 익숙해진 후에는 이 maintained by Akaibu를 꼭 사용해 보시는 것이 좋습니다.

maintained by Akaibu 사용법

Stable Diffusion AUTOMATIC 1111의 Colab에서 모델을 사용하는 방법

전에 소개했던 「sd-1click-colab」은 매우 간단하고, 초심자에게 추천할만한 AI 일러스트 생성 방법입니다만, 제작자가 준비한 것 이외의 모델이나 LoRA를 사용할 때는 설정이 번거롭다는 단점이 있

doooob.tistory.com


세 번째는 로컬 버전의 도입입니다.
클라우드를 사용하지 않고 자신의 PC로 WebUI를 기동 하기 때문에, 일절 제한이 없다는 점이 최대의 매력입니다.
단점은 도입 과정이 가장 어렵다는 점과, 사용하고 있는 PC의 GPU 스펙에 따라서, Colab보다 압도적으로 일러스트의 생성 속도가 느려진다는 점입니다.
대체로 RTX3060(VRAM12GB) 이상이 추천되고 있습니다.


sd-1click-colab 사용법

이번에 소개하는 방법에는 Google 계정이 필요합니다.


먼저 아래 URL에서 Google 코랩에 액세스 합니다.
이것은 브라우저에서 Python(Stable Diffusion을 실행하는 데 필요한 프로그래밍 언어)을 작성하고 실행할 수 있는 서비스입니다. 무료로 사용할 수 있습니다.

https://colab.research.google.com

Google Colaboratory

colab.research.google.com



구글 계정에 로그인되어 있다면 아래의 창이 열리므로 업로드 탭을 선택합니다.



만일 위의 팝업창이 안 나타났다면 아래의 메뉴에서 직접 누르시면 됩니다.



이제, 업로드할 파이썬 프로그램 파일을 다운로드하겠습니다.
GitHub에서 이번에 사용할 모델인 「ChilloutMix」를 다운로드합니다.

https://github.com/nolanaatama/sd-1click-colab

GitHub - nolanaatama/sd-1click-colab

Contribute to nolanaatama/sd-1click-colab development by creating an account on GitHub.

github.com



녹색 Code → Download ZIP을 선택하고 다운로드 후 압축을 풉니다.



그다음, chilloutmix.ipynb 파일을 선택해 업로드합니다.



아래와 같은 화면이 표시되므로 실행 버튼을 클릭합니다.



아래와 같이 현재 실행되는 명령문으로 녹색 포인터가 움직이면서 설치를 진행해 나갑니다.
내 PC가 아닌 구글 Colab의 클라우드 환경에 설치되는 것이며,
1회성 실행이기에, 일정 시간이 지나면 다시 초기화되니, 아무런 부담 없이 진행하시면 됩니다(완전 무료).




스크롤을 내려보면, 현재 무엇을 설치하고 있는지 볼 수 있습니다.
(저의 경우엔 설치 완료까지 약 4분 정도 소요되었습니다.)




처리가 완료되면 public URL이 표시되므로 이것을 클릭합니다.




이제 Stable Diffusion이 Web 브라우저로 시작되었습니다.




종료하려면 브라우저의 × 버튼을 누르거나 탭을 닫는 대신, Google Colaboratory의 '런타임'→ '런타임 연결 해제 및 삭제'를 선택합니다.




그럼, 즉시 이미지를 생성해 보겠습니다.
아래의 포지티브 및 네거티브 프롬프트를 위아래로 입력해서 Generate 버튼을 누릅니다.
프롬프트에 ( )를 붙이면 괄호 속 단어의 가중치를 늘릴 수 있습니다.

【 Positive 】
masterpiece, best quality, highres, photoreaslistic, detailed face, 1girl, upper body, medium breasts, very long hair, black hair, cute, soft smile, outdoors, black tank top, hot pants
【 Negative 】
painting, sketches, (worst quality:1.4),(low quality:1.4), lowers, (monochrome, greyscale:1.4), skin spots, acnes, skin blemishes, age spot, nsfw, ugly face, fat, EasyNega



아래와 같이 생성이 완료되었습니다. ^^




생성된 이미지를 클릭하면 확대됩니다.


사용한 프롬프트의 예

제가 사용한 프롬프트를 소개합니다.
또한 예 1의 프롬프트에 대해서는 Sampling method를 DPM++ SDE Karras, height를 768로 설정하고 있습니다.
예 2 이후의 이미지에는 hires.fix라는 고화질화 기능을 사용하고 있습니다. 다른 섹션에서 자세히 설명합니다.
생성할 이미지 사이즈에 관해서는, 기본적으로 512×512, 768×512, 512×768 중 하나를 추천합니다.

[예제 1]

【 Positive 】
masterpiece, best quality, highres, photoreaslistic, detailed face, 1girl, upper body, medium breasts, short hair, black hair, cute, soft smile, outdoors, bare shoulders, sweater, miniskirt
【 Negative 】
painting, sketches, (worst quality:1.4),(low quality:1.4), lowers, (monochrome, greyscale:1.4), skin spots, acnes, skin blemishes, age spot, nsfw, ugly face, fat, EasyNega


[예제 2]

【Positive】
masterpiece, best quality,ultra high res,(photo realistic:1.4),1 girl,big breasts,big blue eyes,blonde hair,upper body, close up of face shot, (ulzzang-6500-v1.1: 1.0),cute, seductive smile, young, posing, lustrous skin, very long hair, cyberpunk, sword, city, headphones,
【Negative】
EasyNegative, (worst quality:2),(low quality:2),(normal quality:2), lowers, normal quality,((monochrome)),((grayscale)),skin spots, acnes, skin blemishes , age spot, nsfw, ugly face, fat, missing fingers, extra fingers, extra arms, extra legs, watermark, text, error, blurry, jpeg artifacts, cropped, bad anatomy



[예제 3]

【Positive】
masterpiece, best quality, ultra high res, (photo realistic:1.4), ((1girl)), medium breasts, cleavage, upper body, close up of face shot, big blue eyes, cat ears, blonde hair, ( ulzzang-6500-v1.1:1.0), maid costume with a lot of frills, black shirt, cute, young, posing, looking at viewer, very long hair, cyberpunk, night city, neckless, cross, <lora:koreanDoll 0.3>
【Negative】
EasyNegative, (worst quality:2), (low quality:2), (normal quality:2), lowers, normal quality, ((monochrome)), ((grayscale)),skin spots, acnes, skin blemishes , age spot, nsfw, ugly face, fat, missing fingers, extra fingers, extra arms, extra legs, watermark, text, error, blurry, jpeg artifacts, cropped, bad anatomy,2 girls



[예제 4]

【Positive】
masterpiece, best quality, highres, photoreaslistic, detailed face, 1girl, upper body, medium breasts, very long hair, twintails, (white hair:1.2), cute, soft smile, outdoors, white shirt, <lyco:koreanDo :0.2>
【Negative】
painting, sketches, (worst quality:1.4),(low quality:1.4), lowers, (monochrome, greyscale:1.4), skin spots, acnes, skin blemishes, age spot, nsfw, ugly face, fat, EasyNega



변경해야 할 WebUI 설정

보다 고품질의 AI 일러스트를 생성하기 위해, 변경해 두면 좋은 설정을 소개합니다.
※초기값이 더 좋은 경우도 있습니다. 모델에 따라 다르므로 배포되는 데이터의 개요를 잘 살펴봅시다.

Batch count

Batch count는 생성하는 AI 일러스트의 매수를 설정하는 항목입니다.
예를 들어 이것을 5로 설정하면 입력한 프롬프트를 사용하여 AI 일러스트레이션이 5장 생성됩니다.



Batch size

Batch size는 동시에 이미지를 생성하는 매수입니다.
예를 들어 3으로 설정하면 3장의 AI 일러스트를 병렬 처리로 생성해 주므로 생성 속도가 향상됩니다.
대신 VRAM 소비량이 늘어나므로 GPU의 스펙이 낮은 경우에는 1을 권장합니다.
Batch count와 Batch size를 곱한 수가 최종적으로 생성되는 AI 일러스트의 매수가 됩니다.



CFG Scale

입력한 프롬프트가 생성되는 AI 일러스트에 어느 정도 영향을 미칠지 그 영향력을 나타내는 수치입니다.
수치를 크게 하면 할수록 프롬프트에 충실한 출력이 나옵니다만, 색채가 변하거나 구도가 붕괴되어 버립니다.
낮출수록 프롬프트와 관계없는 이미지가 생성되지만, AI 일러스트의 자유도가 향상됩니다.
달리 명시하지 않는 한, 기본 7을 사용하는 것이 무난합니다.



Seed

Seed 값이란 간단하게 말하면, 생성한 AI 일러스트의 일련번호와 같습니다.
같은 프롬프트를 사용해도 생성되는 AI 일러스트는 매번 다릅니다만, Seed를 고정하는 것으로 이전과 완전히 같은 이미지를 생성할 수 있습니다(물론 같은 프롬프트의 경우).

Seed의 오른쪽에 있는 주사위 버튼을 누르면  -1(seed가 랜덤이 된다)이 자동 입력되어, 주사위 오른쪽의 리사이클 마크를 클릭하면 생성한 이미지의 Seed를 표시할 수 있습니다.




Sampling method

AI가 일러스트를 만드는 기법 같은 것입니다.
이것을 바꾸면 똑같은 프롬프트에서도 다른 일러스트가 생성됩니다.
자주 사용되는 것은 「Euler a(초기 설정)」, 「DPM++ 2M Karras」, 「DPM++ SDE Karras」입니다.
AI 코스프레나 애니메이션풍 일러스트에는 「DPM++ SDE Karras」가 특히 자주 사용되고 있습니다.



Clip Skip

CLIP은 입력한 프롬프트(텍스트)를 이미지에 반영하는 텍스트 인코더와 같습니다.
CLIP의 처리는 복수의 레이어로 나누어져 있어, 일반적으로 Stable Diffusion에서는 마지막 레이어까지 처리를 하고 나서 일러스트를 생성합니다만(clip skip = 1), 그것을 마지막에서 2번째 레이어까지만 처리하고 중지하는 것(마지막 레이어의 처리를 스킵)이 clip skip = 2 입니다.
Novel AI가 사용하고 있던 clip skip=2가 퍼져 지금 현재에 이른 것 같습니다.

애니메이션 일러스트 계, 2.5D 계의 모델에서는 skip = 2 를 사용하고,
포토 리얼계의 모델에서는 1과 2 의 양쪽 모두 시험해 봐서, 맘에 드는 것을 선택하는 것을 추천합니다.


Setting → Stable Diffusion → Clip Skip에서 변경할 수 있습니다.



Eta noise seed delta (ENSD)

종종 ENSD를 31337로 설정하는 것이 좋습니다. 이것은 NovelAI가 사용하고 있던 설정에서 유래했다고 합니다.
지금까지 ENSD=31337로 수백 장 이상 일러스트를 생성해 봤습니다만, 어떤 모델이든 특별히 문제는 없었기 때문에, 우선 31337로 해 두면 좋다고 생각합니다.

Setting → Sampler parameters → Eta noise seed delta에서 변경할 수 있습니다.



생성된 AI 일러스트의 고화질화

AI 일러스트를 생성한 후에는 반드시 아래에서 소개하는 방법을 사용하여 고화질화를 실시합시다.
특히 애니메이션 일러스트계의 모델에서는 필수입니다.
예시를 보겠습니다.

고화질화 이전(768×512)



고화질화 이후(1536×1024)



고화질화 이전의 이미지는 얼굴이 약간 뭉개져 보입니다.

덧붙여, 손가락에 관해서는 어느 정도 어쩔 수 없는 부분도 있습니다(이 부분은 다음에 수정 방법을 별도로 다루겠습니다).

고화질화 기법 1: Hires.fix
고화질화 기법 2: MultiDiffusion
고화질화 기법 3: Ultimate SD Upscaler
고화질화 기법 4: 루프백 스케일러

위의 고화질화 기법 소개 역시 다음에 다루겠습니다.

관련글

Stable Diffusion AUTOMATIC 1111의 Colab에서 모델을 사용하는 방법

Stable Diffusion AUTOMATIC 1111의 Colab에서 모델을 사용하는 방법

전에 소개했던 「sd-1click-colab」은 매우 간단하고, 초심자에게 추천할만한 AI 일러스트 생성 방법입니다만, 제작자가 준비한 것 이외의 모델이나 LoRA를 사용할 때는 설정이 번거롭다는 단점이 있

doooob.tistory.com

반응형