반응형

https://huggingface.co/hollowstrawberry/stable-diffusion-guide/blob/main/README.md

 

README.md · hollowstrawberry/stable-diffusion-guide at main

X/Y/Z Plot ▲ Capable of generating a series of images, usually with the exact same seed, but varying parameters of your choice. Can compare almost anything you want, including different models, parts of your prompt, sampler, upscaler and much more. You c

huggingface.co

원본 글은 22년 03월 28일 마지막으로 수정되었습니다

따라서 원본의 내용이 이 글의 내용과 약간 다를수도 있습니다

 

소개

구글 코랩

로컬 학습

시작하기

모델

VAE

프롬프트

매개변수 생성

확장 기능

LoRA

LyCORIS

업스케일링

스크립트

X/Y/Z 플롯(Plot)

프롬프트 매트릭스

끝판왕 업스케일러

컨트롤넷(ControlNet)

초심자를 위한 LoRA 학습 방법

 

반응형

 

소개

스테이블 디퓨전은 PC에서 실행할 수 있는 아주 강력한 AI 이미지 생성 소프트웨어입니다. AI의 두뇌와 같은 기능을 하는 '모델'을 사용하며, 누군가가 학습시킨다면 거의 모든것을 만들 수 있습니다. 많이 사용되는 분야는 애니메이션 아트, 포토리얼리즘, 야짤입니다.

 

독자가 만든 이미지는 사용된 모델의 라이선스에 따라 어떤 용도로든 사용할 수 있습니다. 법적 의미에서 '귀하의 것'인지 여부는 현지 법률에 따라 다르며 종종 결정적이지 않습니다. 필자, 스테이블 디퓨전, 스테이블 디퓨전 모델에 관련된 그 누구도 독자가 만드는 모든 것에 대해 책임을 지지 않으며 필자는 불법적이거나 유해한 콘텐츠를 만드는 것이 명시적으로 금지되어 있습니다.

 

이 가이드는 2023년 03월 현재 모범 사례에 대한 최신 정보를 담고 있습니다. AI에서의 일주일은 현실에서의 1년과 같으므로 이 가이드를 읽으실 떄 쯤에도 여전히 유용하길 바랍니다.

 

구글 코랩

스테이블 디퓨전을 사용하는 가장 쉬운 방법은 구글 코랩(Google Colab) 을 이용하는 것입니다. 구글의 컴퓨터를 빌려서 AI를 사용하는데 보통 매일 몇 시간의 시간 제한이 있습니다. 1개 이상의 구글 계정이 필요하며 설정과 결과 이미지를 저장하기 위해 구글 드라이브를 사용합니다.

 

독자의 PC에서 실행하고 싶으면 아래로 내리면 됩니다.

 

  1. 이 페이지를 엽니다.
  2. 상단에 있는 드라이브에 복사를 클릭합니다. 새 창이 열릴 때 까지 기다렸다가 새 창이 열리면 이천 창을 닫습니다. 설정을 저장할 수 있는 여러분만의 코랩이 만들어졌고 이제부터는 구글 드라이브에서 코랩을 열어야 합니다. 원본이 업데이트를 받으면 이 방법대로 해서 독자의 코랩을 교체해야 합니다.
  3. 구성에서 다음의 옵션들을 활성화 합니다: output_to_drive, configs_in_drive, no_custom_theme 다 했으면 Models, VAEs 부분에서 anything_vae, wd_vae, sd_vae 중 하나를 활성화 합니다
  4. 이미 안정적인 배포에 익숙한 경우 custom_urls 텍스트 상자에 원하는 리소스에 대한 링크를 붙여놓을 수 있습니다. 이 가이드의 뒷부분에 몇 가지 링크를 추가할 예정입니다. 링크는 각 파일에 대해 직접 다운로드(civitai, huggingface 추천) 해야하며 쉼표로 구분해야 합니다.
  5. 페이지의 첫 번째 코드 블록에서 시작이라고 표시된 곳의 왼쪽에 있는 재생 버튼(▶)을 누릅니다. 완료될 때 까지 몇분 정도 기다리면 하단에 몇 가지 진행률 메시지가 표시됩니다. 그러면 공개 링크가 생성되며 이 링크를 열어 스테이블 디퓨전을 시작할 수 있습니다. 코랩 탭을 계속 열어두세요! (모바일에서는 코랩 하단에 있는 트릭을 사용해 탭을 계속 열어두십시오)
  6. 기본으로 제공되는 Anything 4.5 모델 덕분에 괜찮은 애니메이션 이미지를 만들 수 있습니다. 하지만 우리는 더 많은 것들을 할 수 있습니다. 이 모든 옵션은 무엇일까요? 시작하려면 아래로 내리면 됩니다.

 

로컬 학습

PC에서 스테이블 디퓨전을 실행하려면 16GB 이상의 RAM, 4GB 이상의 VRAM(권장 8GB) 이 필요합니다. 이 글에서는 윈도우 10/11을 사용하고 엔비디아 그래픽카드 지포스 16, 지포스 20, 지포스 30을 사용하는 경우만 다루겠습니다(지포스 10도 가능). 죄송하게도 AMD, 리눅스, MacOS 사용자의 경우 사용하기가 더 어렵습니다. 하드웨어 요구 사항을 충족하지 않는 경우 의 구글 코랩 방법으로 진행할 수 있습니다.

 

  1. 이 페이지에서 최신 버전을 다운로드 하십시오.
  2. 설치 파일을 실행하여 접근하기 쉬운 위치를 선택한 다음 설치가 완료될 때 까지 기다립니다.
  3. 프로그램을 실행합니다. 몇 가지 옵션이 보일건데 medvram와 xformers를 활성화 해줍니다. 12GB 이상의 VRAM이 있는 경우 medvram은 활성화 하지 않아도 됩니다.
  4. 추가 실행 옵션을 이렇게 설정해줍니다: --opt-channelslast --no-half-vae --theme dark (추가 옵션은 공백으로 구분합니다)
    • GPU가 6GB 이하의 VRAM이 있다면 --opt-split-attention-v1 을 추가 옵션으로 사용하면 VRAM 사용량을 더욱 줄일 수 있습니다.
    • 컴퓨터에서 프로그램을 실행하되 휴대폰과 같은 다른 기기에서 사용하려면 --listen --enable-insecure-extension-access 을 추가 옵션을 사용하세요. 실행 후 동일한 Wi-Fi 네트워크 망에 있는 컴퓨터의 로컬 IP를 이용해 인터페이스에 접근합니다. --gradio-auth name:1234 을 사용해 비밀번호도 추가할 수 있습니다.
    • 사용 가능한 매개변수 전체 목록은 여기에서 확인하세요.
  5. 실행(Launch) 을 클릭하고 인터페이스가 표시된 인터넷 창이 열릴 때까지 기다립니다. 최초 사용시 시간이 걸릴 수 있습니다.
  6. 이제 페이지가 열렸습니다. 독자만의 비공개 웹 사이트입니다. 첫 페이지에서 이미지를 생성할 수 있습니다. 먼저 설정(Settings) 탭으로 이동합니다. 왼쪽에는 설정 부분이 있습니다.
    • 스테이블 디퓨전 부분에서 아래로 내려서 클립 건너뛰기(Clip Skip) 를 1에서 2로 바꿔줍니다. 이렇게 하면 애니메이션 이미지의 경우 더 좋은 이미지가 생성된다고 합니다.
    • 사용자 인터페이스(User Interface) 부분에서 아래로 내려 빠른 설정 목록으로 이동한 뒤 sd_model_checkpoint, sd_vae로 바꿔줍니다.
    • 다시 위로 올려서 큰 주황색의 적용(Apply) 버튼을 누른 뒤 그 옆에 있는 UI 다시 불러오기(Reload UI) 버튼도 눌러줍니다.
  7. 이미지를 생성할 준비가 되었지만 기본 모델만 사용할 수 있습니다. 기껏해봐야 몇 가지 그림만 그릴 수 있을 뿐입니다. 그리고 이 모든 옵션들은 무엇일까요? 시작하려면 아래에서 확인해보세요.

 

시작하기

처음 몇 개의 이미지를 생성하기 전이나 후에 아래 정보를 보고 경험과 결과를 개선하는 것이 좋습니다.
위의 내용대로 했다면 페이지 상단이 아래와 비슷하게 표시되어야 합니다.

여기에서 체크포인트(checkpoint) 와 VAE를 선택할 수 있습니다. 이것들이 무엇이며 어떻게 얻을 수 있는지 보겠습니다. 코랩에도 추가 설정이 있으나 지금은 무시하는 것이 좋습니다.

 

모델

체크포인트라고도 부르는 모델은 특정 유형의 이미지를 생성하기 위해 설계된 AI의 뇌입니다. 많은 옵션들이 있고 대부분은 civitai에 있습니다. 하지만 어떤 것을 선택해야 할까요? 아래는 필자가 추천하는 옵션들입니다.

  • 애니메이션의 경우 7th Heaven Mix는 애니메이션 영화와 비슷한 미학을 제공하고, Abyss Orange Mix 3(아래로 내려서 AOM3 옵션 선택) 는 고급 조명과 더 부드러운 음영의 형태로 더 사실적이고 더 꼴리는 느낌으로 제공합니다. 필자는 이 둘은 Heaven Orange Mix로 합쳤습니다.
  • Abyss Orange Mix 3는 야짤에도 아주 좋지만 인기 있는 Grapefruit도 필요에 따라 사용할 수 있습니다.
  • DreamShaper를 사용한 일반 아트 작업의 경우 창의성 측면에서 발군입니다. 애니메이션이 추가되어 아름답고 독특한 미학을 가진 Pastel Mix도 좋은 평가를 받았습니다.
  • 실사 사진같은것을 원한다면 Deliberate이 좋을겁니다. 거의 모든 작업을 할 수 있고 특히 사진을 찍는듯 합니다. 아주 복잡한 결과입니다.
  • Uber Realistic Porn은 말이 필요 없습니다.

이 가이드에 있는 코랩을 사용하는 경우 파일의 다이렉트 다운로드 링크를 복사해 custom_urls라고 표시된 텍스트 상자에 붙여놓기 합니다. 여러개의 링크는 쉼표로 구분합니다.

 

로컬에서 프로그램을 실행하는 경우 모델은 일반적으로 stable-diffusion-webui/models/Stable-diffusion 폴더에 넣습니다.

 

확장자가 .safetensors인 체크포인트는 안전하지만 .ckpt는 바이러스가 있을수도 있으므로 주의하세요. 또한 모델을 선택할 때 fp16, fp32, pruned 중에서 선택할 수 있습니다. 모두 오차 범위 내에서 동일한 이미지를 생성하므로 용량이 가장 작은 파일(pruned-fp16) 을 선택하면 됩니다. 학습하거나 병합하려면 반대로 용량이 가장 큰 파일을 선택하세요.

 

팁: 새 파일을 수동으로 배치할 때마다 페이지 하단의 UI를 재시작하거나 드롭다운 옆에 있는 🔃버튼을 누르면 됩니다.

 

VAE

대부분의 체크포인트 파일에는 VAE가 내장되어 있지 않습니다. VAE는 '이미지를 사람이 볼 수 있는 형식으로 변환'해주는 작은 별도의 모델입니다. 이 기능이 없으면 색이 시퍼렇고 눈동자가 흐릿해지는 등의 문제가 발생합니다.

 

이 가이드에 있는 코랩을 사용하는 경우 실행하기 전에 선택하라고 말한것처럼 아래의 VAE가 있어야 합니다.

  • anything vae(orangemix vae로도 알려져 있음): 모든 애니메이션 모델에 사용합니다.
  • vae-ft-mse: 스테이블 디퓨전 자체의 최신 버전입니다. 실사 사진 모델 등에 사용됩니다.
  • kl-f8-anime2(와이푸 디퓨전Waifu Diffusion 으로도 알려져 있음): 더 오래되고 더 채도가 높은 결과를 생성합니다. Pastel Mix에서 사용합니다.

VAE 모델은 일반적으로 stable-diffusion-webui/models/VAE 폴더에 넣습니다.

 

이 가이드의 내용을 지금까지 따라하지 않았다면 설정 탭에서 스테이블 디퓨전 부분으로 가서 VAE를 선택해야 합니다.

 

팁: 새 파일을 수동으로 배치할 때마다 페이지 하단의 UI를 재시작하거나 드롭다운 옆에 있는 🔃버튼을 누르면 됩니다.

 

프롬프트

첫번째 탭인 txt2img에서 대부분의 이미지를 생성할겁니다. 여기에서 프롬프트(prompt)와 네거티브 프롬프트(negative prompt)를 볼 수 있을겁니다.
스테이블 디퓨전은 미드저니(Midjourney) 같은 인기있는 이미지 생성 소프트웨어와는 다르게 원하는 것을 그냥 물어볼 수 없습니다. 아주 구체적으로 써야 합니다.
대부분의 사람들은 잘 되는 프롬프트를 찾았고 다른 사람들이 추천하는 것들만 보는 경우가 있습니다. 프롬프트와 네거티브 프롬프트에 대한 필자의 예시를 보여드리겠습니다.

  • 애니메이션
    • 2d, masterpiece, best quality, anime, highly detailed face, highly detailed background, perfect lighting
    • EasyNegative, worst quality, low quality, 3d, realistic, photorealistic, (loli, child, teen, baby face), zombie, animal, multiple views, text, watermark, signature, artist name, artist logo, censored
  • 실사 사진
    • best quality, 4k, 8k, ultra highres, raw photo in hdr, sharp focus, intricate texture, skin imperfections, photograph of
    • EasyNegative, worst quality, low quality, normal quality, child, painting, drawing, sketch, cartoon, anime, render, 3d, blurry, deformed, disfigured, morbid, mutated, bad anatomy, bad art
  • EasyNegative: 위의 네거티브 프롬프트는 이미지를 개선하기 위해 여러가지 나쁜 내용을 인코딩하는 임베딩 또는 '매직 단어'인 EasyNegative를 사용합니다. 그렇지 않으면 아주 많은 네거티브 프롬프트를 써야 합니다.
    • 이 가이드에 있는 코랩을 사용하고 있다면 이미 설치되어 있을겁니다. 다른것을 사용한다면 이 작은 파일을 다운로드 해서 stable-diffusion-webui/embeddings 폴더에 넣은 다음 WebUI 아래로 가서 UI 다시 시작을 눌러주세요. 그러면 해당 단어를 입력할 때 적용됩니다.

EasyNegative를 포함한 이러한 네거티브 프롬프트가 있는 경우와 없는 경우의 비교는 아래에서 확인할 수 있습니다.

위와 같은 '기본 프롬프트'가 표시된 후 원하는 내용을 입력하기 시작할 수 있습니다. 예로 young woman in a bikini in the beach, full body shot 가 있습니다. old, ugly, futanari, furry 등과 같이 싫어하는 다른 용어들을 네거티브 프롬프트에 자유롭게 추가할 수 있습니다.

생성(Generate) 버튼을 눌러 나중에 다시 사용할 수 있도록 프롬프트를 저장할 수 있습니다. 저장💾 버튼을 눌러 이름을 지정합니다. 나중에 스타일 드롭다운을 열어 선택한 다음 📋선택한 스타일을 현재 프롬프트에 적용할 수 있습니다.

 

프롬프트를 쓸 때 중요한 것 중 하나는 강조와 비강조 입니다. 괄호로 무언가를 둘러싸면 결과 이미지에서 해당 부분이 더 강조되거나 가중치가 부여되서 기본적으로 AI에게 해당 부분이 더 중요하다고 알려줍니다. 일반적으로 모든 단어의 가중치는 1이며 (소괄호) 한번마다 1.1이 곱해집니다(중복 사용 가능). 아니면 이런식으로 직접 가중치를 지정할 수도 있습니다: (full body:1.4). 비강조를 하려면 1이하로 설정하면 됩니다. [대괄호]는 가중치가 0.9이지만 더 낮추려면 여전히 소괄호를 써야합니다: (이런 식으로요:0.5)

 

또한 손과 발은 AI가 생성하기 어려운 것으로 유명합니다. 이런 방법을 사용하면 확률이 높아지지만 제대로 만드려면 포토샵, 인페이팅을 통해 수정하거나 컨트롤넷과 같은 고급 기술을 사용해야 할 수도 있습니다.

 

매개변수 생성

시작 페이지의 나머지 매개변수는 아래와 같이 표시됩니다.

  • 샘플링 방법: 이미지를 공식화하는 알고리즘으로 각각 다른 결과를 보여줍니다. 기본값인 Euler a가 가장 좋은 경우가 많습니다. DPM++ 2M Karras, DPM++ SDE Karras의 결과도 좋습니다. 아래에서 비교를 확인해보세요.
  • 샘플링 스텝: 샘플링 스텝은 미리 '계산'된 것이므로 단계가 많다 해서 항상 더 좋은 결과를 얻을 수 있는 것은 아닙니다. 필자는 30 스텝을 사용하지만, 20~50 스텝을 사용해도 일관되게 좋은 결과를 얻을 수 있습니다. 아래에서 비교를 확인해보세요.
  • 너비와 높이: 512x512가 기본값이며 이미지가 왜곡되거나 변형될 수 있으므로 어느 값이던 768을 넘어서는 안됩니다. 더 큰 이미지를 만드려면 Hires fix를 확인하십시오.
  • 배치 수와 배치 크기: 배치 크기는 GPU가 동시에 생성하는 이미지 수로 VRAM에 의해 제한됩니다. 배치 수는 해당 이미지를 반복할 횟수입니다. 배치에는 연속된 시드값이 있으며 시드값에 대한 자세한 내용은 아래에서 확인해보세요.
  • CFG 스케일: '값이 낮을수록 더 창의적인 결과물이 나옵니다'. 7을 사용하는것이 좋지만 4~10도 괜찮습니다.
  • 시드 값: 이미지 생성을 안내하는 숫자입니다. 동일한 프롬프트와 매개변수가 있는 동일한 시드 값은 작은 세부 사항과 일부를 제외하고는 매번 동일한 이미지를 생성합니다.

Hires fix: Lets you create larger images without distortion. Often used at 2x scale. When selected, more options appear:

  • Upscaler: The algorithm to upscale with. Latent and its variations produce creative and detailed results, but you may also like R-ESRGAN 4x+ and its anime version. More explanation and some comparisons further down ▼.
  • Hires steps: I recommend at least half as many as your sampling steps. Higher values aren't always better, and they take a long time, so be conservative here.
  • Denoising strength: The most important parameter. Near 0.0, no detail will be added to the image. Near 1.0, the image will be changed completely. I recommend something between 0.2 and 0.6 depending on the image, to add enough detail as the image gets larger, without destroying any original details you like.

Others:

  • Restore faces: May improve realistic faces. I never need it with the models and prompts listed in this guide as well as hires fix.
  • Tiling: Used to produce repeating textures to put on a grid. Not very useful.
  • Script: Lets you access useful features and extensions, such as X/Y/Z Plot ▼ which lets you compare images with varying parameters on a grid. Very powerful.

Here is a comparison of a few popular samplers and various sampling steps:

 

An explanation of the samplers used above: Euler is a basic sampler. DDIM is a faster version, while DPM++ 2M Karras is an improved version. Meanwhile we have Euler a or "ancestral" which produces more creative results, and DPM++ 2S a Karras which is also ancestral and thus similar. Finally DPM++ SDE Karras is the slowest and quite unique. There are many other samplers not shown here but most of them are related.

 

확장 기능

스테이블 디퓨전 WebUI는 확장 기능을 지원합니다. 확장(Extensions) 탭으로 이동한 다음 URL에서 설치(Install)로 이동해 여기에 있거나 다른곳에서 가져온 링크를 붙여넣기 해서 추가할 수 있습니다. 그런 다음 설치를 누르고 완료될 때 까지 기다립니다. 설치됨(Installed) 부분으로 이동해 적용(Apply) 를 누르고 UI를 다시 불러옵니다.

아래는 몇 가지 유용한 확장 기능들입니다. 이 가이드에 있는 코랩을 사용중이라면 대부분을 사용해 본 것들이겠지만 위의 2개는 직접 추가해서 사용하는 것을 추천합니다.

  • 이미지 브라우저(Image Browser) - 과거에 생성된 이미지를 매우 효율적으로 탐색할 수 있을 뿐만 아니라 해당 이미지의 프롬프트와 매개변수를 txt2img, img2img 등으로 보낼 수 있습니다.
  • 태그 완성(TagComplete) - 애니메이션 그림체에 필수적인 기능입니다. 입력할 떄 일치하는 부루(booru) 태그를 보여줍니다. 애니메이션 모델은 부루 태그를 통해 작동하며, 부루 태그가 없는 프롬프트는 일반적으로 작동하지 않으므로 부루 태그를 알고 있다는 것은 엄청난 것입니다. 하지만 모든 태그가 모든 모델에서 잘 작동하는 것은 아니고 드물게 나오는 태그는 더더욱 잘 작동하지 않습니다.
  • Locon - Locon과 LoHa를 사용할 수 있습니다. 자세한 내용은 아래에서 확인해보세요.
  • 컨트롤넷 - 자체 가이드가 필요할 정도로 큰 확장 기능입니다. 모든 이미지를 분석해 자신의 이미지에 대한 참조로 사용할 수 있습니다. 실제로 원하는 포즈나 환경을 만들 수 있습니다.
  • 끝판왕 업스케일러(Ultimate Upscale) - img2img 부분에서 아주 큰 이미지를 만드는데 사용하는 확장 기능으로 일반적으로 VRAM이 허용하는 최대 크기까지 만들 수 있습니다. 자세한 것은 아래에서 확인해보세요.
  • 투 샷(Two-shot) - 일반적으로 같은 이미지에 둘 이상의 캐릭터를 만들 수 없습니다. 이 확장 기능을 사용하면 이미지의 전체, 왼쪽, 오른쪽 부분으로 분할해 두 캐릭터가 있는 이미지를 만들 수 있습니다.
  • 동적 프롬프트(Dynamic Prompts) - 이미지에서 무작위로 선택된 요소 등을 생성할 수 있는 확장 기능입니다.
  • 모델 변환기(Model Converter) - safetensors. fp16, no-ema를 선택하여 대부분의 4GB, 7GB 모델을 2GB로 변환할 수 있습니다. 이러한 가지치기된(pruned) 모델은 풀(full) 모델과 '거의 동일하게' 작동합니다. 즉 수학적인 이유로 인해 눈에 띄는 차이가 없습니다. 요즘에는 대부분의 모델들이 2GB로 나옵니다.

 

LoRA

LoRA(Low-Rank Adaptation) 는 엑스트라 네트워크의 한 형태이며 전체 모델에 일종의 작은 모델을 추가할 수 있는 최신 기술입니다. 앞서 살펴본 임베딩과 비슷하지만 LoRA는 더 크고 더 많은 기능을 제공합니다. 기술적인 세부 사항은 생략하도록 하겠습니다.

 

LoRA는 캐릭터, 그림체, 자세, 옷, 심지어는 사람의 얼굴까지 표현할 수 있습니다. 일반적인 작업에는 체크포인트로도 충분하지만, 기존 사례가 거의 없는 구체적인 디테일에 관해서는 LoRA가 필요합니다. LoRA는 civitai와 그 외의 곳(NSFW) 에서 다운로드할 수 있으며, 기본적으로 용량이 144MB이지만 1MB까지 낮출 수 있습니다. 용량이 크다고 해서 항상 좋은 것은 아닙니다. 대부분의 체크포인트와 마찬가지로 *.safetensors 형식으로 제공됩니다.

 

stable-diffusion-webui/models/Lora 폴더에 LoRA 파일을 넣거나 이 가이드에 있는 코랩을 사용하는 경우 custom_urls 텍스트 상자에 직접 다운로드 링크를 붙여놓기 해줍니다. 그런 다음 생성(Generate) 버튼 아래에 있는 추가 네트워크 표시 버튼(🎴) 을 눌러줍니다. 바로 아래 또는 맨 아래에 새 부분이 열립니다. LoRA 탭을 클릭하고 새로 고침 버튼을 눌러 새 LoRA를 검색합니다. 해당 메뉴에서 LoRA를 클릭하면 다음과 같이 프롬프트에 LoRA가 추가됩나다: <lora:파일명:1>. 시작은 항상 동일합니다. 파일 이름은 *.safetensors 확장자가 없는 시스템의 정확한 파일 이름입니다. 마지막으로 숫자는 앞서 본 것처럼 가중치입니다. 대부분의 LoRA는 0.5에서 1 사이의 가중치에서 작동하며, 특히 여러 LoRA를 동시에 사용하는 경우 값이 너무 높으면 이미지가 '튀겨질' 수 있습니다.

 

LoRA의 예시로 두꺼운 선을 쓴 애니메이션 스타일이 있는데, 이는 이미지가 전통적인 애니메이션처럼 보이기를 원하는 경우 완벽합니다.

 

LyCORIS

LyCORIS는 LoRA가 더 많은 레이어를 학습할 수 있도록 하는 새롭게 개발된 것입니다. 여기에서 자세히 알아보세요. LyCORIS를 사용하기 위해서는 확장 기능이 필요합니다.

현재 LoRA의 새로운 유형은 아래의 2가지입니다

  • LoCon - 스타일에 좋음
  • LoHa - 캐릭터가 포함된 스타일에 좋음

트레이너 아래에서 독자만을 위한 학습도 가능합니다.

* 원본 글에 해당 내용 없음, 추후 추가될 수도 있음

 

업스케일링

매개변수 생성에서도 언급한것처럼 일반적으로 이미지를 생성할 때는 너비 또는 높이가 768 픽셀을 넘지 않아야 합니다. 대신 업스케일러와 적절한 노이즈 제거 수준을 선택할 때 Hires fix을 사용해야 합니다. 그러나 Hires fix는 VRAM 제한을 받으므로 끝판왕 업스케일러를 통해 더 크게 확장하는데 관심이 있을 수 있습니다.

 

추가 업스케일러는 다운로드 해서 stable-diffusion-webui/models/ESRGAN 폴더에 넣을 수 있습니다. 그러면 Hires fix, 끝판왕 업스케일러, 추가 가능에서 사용할 수 있습니다.

 

이 가이드에 있는 코랩에서는 모든 종류의 이미지에 적당한 만능 업스케일러인 Remacri를 포함한 여러 종류가 코랩에 있습니다.

 

  • 몇 가지 주목할 만한 업스케일러는 여기에서 찾을 수 있습니다.
  • LDSR은 고품질이지만 느린 업스케일러이며 모델과 설정은 여기에서 찾을 수 있고 stable-diffusion-webui/models/LDSR 폴더에 둬야합니다.
  • 업스케일링 위키에는 과거부터의 수십개의 선택 항목이 있습니다.

 

스크립트

스크립트는 매개변수 생성 하단에서 txt2img 또는 img2img로 찾을 수 있습니다.

 

X/Y/Z 플롯(Plot)

일반적으로 똑같은 시드를 사용하지만 원하는 매개변수를 변경하여 일련의 이미지를 생성할 수 있습니다. 다양한 모델, 프롬프트의 일부, 샘플러, 업스케일러 등 원하는 거의 모든 것을 비교할 수 있습니다. 가변 파라미터를 1개, 2개, 3개(X, Y, Z)로 설정할 수 있습니다.

 

X/Y/Z 플롯의 매개변수는 쉼표로 구분되지만 그 사이에 다른 매개변수를 넣을 수 있습니다. 비교하는 가장 일반적인 매개변수는 S/R 프롬프트이며, 첫 번째 용어는 프롬프트의 문구이고 그 이후의 각 용어는 원본을 대체합니다. 이것을 알면 아래와 같이 LoRA 강도를 비교할 수 있습니다.

 

<lora:my lora:0.4>, <lora:my lora:0.6>, <lora:my lora:0.8>, <lora:my lora:1>

 

여기서는 S/R 프롬프트(가로) 를 이용해 다양한 모델(세로) 과 다양한 인종의 얼굴들을 비교했습니다.

: 다음과 같이 따옴표를 사용하여 쉼표로 S/R을 표시할 수 있습니다(쉼표와 따옴표 사이에는 공백을 두지 않음): "term 1, term 2","term 3, term 4","term 5, term 6"

 

프롬프트 매트릭스

개념적으로는 앞서 본 S/R과 비슷하지만 더 심층적입니다. 프롬프트의 | 기호 사이에 나열된 가능한 모든 용어 조합을 표시하는 방식으로 작동합니다. 예로 young man|tree|city 에는 항상 'young man'이 포함되지만 'tree'와 'city'를 추가하거나 제거하면 어떤 일이 발생하는지 살펴볼 것입니다. 기호 사이에는 쉼표와 공백을 사용할 수 있습니다.

 

스크립트 내에서 행렬을 만들 프롬프트, 네거티브 프롬프트 중 하나를 선택하고 변수 조건을 시작, 끝에 넣을지 여부를 선택합니다.

 

다음은 프롬프트 부분에서 설명드린 네거티브 프롬프트를 이용한 비교입니다. EasyNegative가 이미지에 어떤 영향을 미치는지, 나머지 프롬프트가 이미지에 어떤 영향을 미치는지, 그리고 두 프롬프트가 이미지에 어떤 영향을 미치는지 함께 확인할 수 있습니다.

 

: 프롬프트 매트릭스를 사용할 때 배치 크기를 사용하면 여러 이미지 또는 전체 그리드를 한 번에 생성할 수 있습니다.

 

끝판왕 업스케일러

내장 스크립트의 개선 버전으로 확장 기능으로 추가하여 img2img 내에서 사용할 수 있습니다. 이 스크립트의 목적은 이미지의 크기를 조정하고 느리지만 이미지를 여러 덩어리로 나눠 VRAM의 일반적인 한계를 넘는 더 많은 디테일을 추가하는 것입니다. 방법은 아래와 같습니다.

 

1. 일반적으로 최대 768 픽셀의 너비와 높이를 가진 이미지를 생성한 다음 가능한 경우 hires fix을 적용할 수 있습니다.

2. txt2img 또는 이미지 브라우저 확장 프로그램에서 프롬프트와 매개변수를 img2img로 직접 전달합니다.

3. Denoising을 0.1~0.4로 설정합니다. 더 높은 값을 주면 현대 미술이 나올 가능성이 높습니다.

4. 스크립트로 이동하여 Ultimate SD Upscale을 선택합니다. 그런 다음 원하는 크기와 업스케일러 'Chess' 타입을 사용하여 매개변수를 아래와 같이 설정합니다.

  • VRAM이 충분하다면 타일의 타일 너비(Tile width)패딩(Padding) 값을 늘릴 수 있습니다. 예를 들어서 두 값 다 2배입니다. 타일 높이(Tile height)에 0을 넣으면 너비와 같은 값으로 적용됩니다.
  • 최종 이미지에서 영역간에 눈에 띄는 이음새가 발생하지 않는 한 Seams fix을 설정할 필요가 없습니다.

 

5. 이미지를 생성하고 기다립니다. 이미지 미리보기를 활성화 한 경우 사각형이 선명해져 가는것을 볼 수 있습니다.

 

컨트롤넷(ControlNet)

컨트롤넷은 스테이블 디퓨전을 위한 아주 강력한 최신 기능입니다. 이 기능을 사용하면 기존에 존재하는 모든 이미지에 대한 정보를 분석하여 AI 이미지 생성에 활용할 수 있습니다. 이것이 의미하는 것은 아래에서 다시 살펴보겠습니다.

 

이 글에 있는 코랩을 사용하는 경우 all_control_models 옵션을 활성화 해야합니다. 그렇지 않은 경우 컨트롤넷 확장 기능을 설치한 다음 여기로 이동해서 stable-diffusion-webui/extensions/sd-webui-controlnet/models 경로에 둬야 할 몇 가지 모델을 다운로드 해야합니다. 이 글에서는 Canny, Depth, Openpose, Scribble을 추천합니다.

 

컨트롤넷 사용 방법을 보여드리겠습니다 이를 위해 온라인에서 인기 있는 샘플 이미지로 선택했습니다. 이대로 따라할 필요는 없지만 이미지를 다운로드 하여 PNG Info 탭에 넣으면 생성 데이터를 볼 수 있습니다.

 

먼저 txt2img 페이지에서 아래로 내려서 ControlNet을 클릭하여 메뉴를 열어야 합니다. 그런 다음 Enable을 누르고 일치하는 Preprocessor와 Model을 선택해줍니다. 저는 이 두가지 모두에 Canny를 사용해 보겠습니다. 마지막으로 샘플 이미지를 업로드 해줍니다. 샘플 이미지를 누르지 않으면 그리기가 시작합니다. 다른 설정은 무시해도 됩니다.

 

  • Canny

Canny 방법은 샘플 이미지의 테두리 부분을 추출합니다. 다양한 유형의 이미지, 특히 작은 세부 사항과 이미지의 일반적인 모양을 보존하려는 경우에 유용합니다.

ㅇㅇㅇㅇ

 

  • Depth

Depth 방법은 샘플 이미지의 3D 요소를 추출합니다. 복잡한 환경과 일반적인 구도에 적합합니다.

 

  • Openpose

Openpose 방법은 샘플 이미지에서 사람의 자세를 추출합니다. 생성된 캐릭터의 원하는 샷과 구도를 얻는데 큰 도움이 됩니다.

 

  • Scribble

간단한 스케치를 만들고 프롬프트의 도움을 받아 완성된 작품으로 변환할 수 있습니다. 위의 샘플 이미지를 사용하지 않은 유일한 예제입니다.

 

Scribble을 제외한 각 방법에 대해 2가지 결과가 있음을 알 수 있습니다. 첫번째는 전처리된 이미지라고 하는 중간 단계로, 최종 이미지를 생성하는데 사용합니다. 전처리된 이미지를 직접 제공할 수 있으며 이 경우에는 Preprocessor를 None으로 설정해야 합니다. 이 기능은 블렌더(Blender) 나 포토샵(Photoshop) 과 같은 외부 도구에서 아주 강력합니다.

 

설정 탭에서는 여러개의 컨트롤넷은 한번에 활성화 할 수 있는 컨트롤넷 섹션이 있습니다. 특정 환경에서 특정 캐릭터의 자세를 취하거나 특정 손동작이나 디테일을 얻기 이해 Openpose를 사용할 때 유용하게 사용할 수 있습니다.

 

입력 이미지와 샘플 이미지가 모두 결과에 특정 효과를 주는 img2img에서 컨트롤넷을 사용할 수 있습니다. 필자는 이 방법을 많이 써보지 않았습니다.

 

각각의 컨트롤넷 모델에는 약간 다른 결과를 생성하는 대체 버전도 있습니다. 원한다면 사용해 볼 수 있겠지만 사용해 본 적은 없습니다.

 

초심자를 위한 LoRA 학습 방법

LoRA를 학습시키는 것은 어려운 작업입니다. 하지만 구글 코랩의 새로운 가이드는 무료로 시작하는데 필요한 모든 것을 제공합니다.

 

🎴여기에서 LoRA 학습시키는 방법을 보세요

 

최소 8GB의 VRAM이 있는 경우 여러분의 컴퓨터에서 LoRA를 학습시킬 수 있습니다. 이를 위해 아래에 몇 가지 방법들을 보여드리겠습니다.

 

  • 학습에는 bmaltais의 Kohya GUI를 사용해보세요. 여기에는 제 학습 코랩과 동일한 설정 등이 모두 포함되어 있으므로 이 가이드를 따르셔도 됩니다. 이 링크에서 유튜브 튜토리얼도 볼 수 있습니다.
  • 또한 ao의 LoRA 학습 가이드도 참고해보세요
  • 이 가이드와 같이 Gelbooru에서 이미지를 수집하려면 Grabber를 설치해보세요
  • 데이터세트에 태그를 지정하려면 WEBUI용 WD1.4Tagger 확장 프로그램을 사용해보세요. 먼저 확장 프로그램을 추가하고 할성화 한 다음 전체 WEBUI를 재시작합니다. Tagger 탭으로 이동한 다음 디렉토리에서 배치를 선택하고 이미지가 있는 폴더를 선택합니다.출력 이름을 [name].txt로 설정하고 임계값(threshold)을 0.35 이상으로 설정합니다. 그런 다음 Interrogate 버튼을 누르면 텍스트 파일 생성이 시작됩니다.
  • 이 가이드와 같이 대그를 큐레이션 하려면 WEBUI용 태그 편집기 확장 프로그램을 사용하세요. 태그 정렬, 가지치기, 바꾸기, 병합 등 필요한 모든 기능을 갖고 있습니다. 활성화 태그를 추가하는 방법은 이렇습니다: 확장 프로그램을 추가하고 WEBUI를 다시 시작한 뒤 Dataset Tag Editor 탭으로 이동한 다음 Batch Edit Captions으로 이동합니다. 'Show only the tags...' 를 끄고 'Prepend additional tags'를 켠 다음 Edit Tags 텍스트 상자에 활성화 태그를 추가합니다. 그런 다음 변경 사항을 적용하기 위해 위로 스크롤하여 올린 다음 Save all changes를 눌러줍니다. 그래야만 파일이 수정되고 모든 텍스트 파일의 시작 부분에 새 태그가 추가됩니다.
반응형

+ Recent posts