스테이블 디퓨전 설치 및 사용 가이드

0

인터넷의 세계는 끝없는 창조의 가능성으로 가득 차 있죠. 그 중심에 있는 것이 바로 이미지 생성 AI 툴입니다. 특히, 스테이블 디퓨전은 사용자들에게 간단한 입력만으로 다양한 스타일의 이미지를 생성할 수 있는 놀라운 능력을 제공합니다. 그러나 많은 사람들이 이 흥미로운 툴을 사용하기 전에 벽에 부딪히죠.

오늘은 스테이블 디퓨전을 설치하고 사용하기 위해, 파이썬과 git의 다운로드부터 시작하여, 웹UI 사용법까지 모든 것을 단계별로 설명합니다. 비개발자분들도 복잡해 보이는 개발 지식 없이도 쉽게 따라올 수 있도록 모든 과정을 간단하고 이해하기 쉽게 풀어 설명헤보겠습니다.

1. 스테이블 디퓨전의 버전과 차이점

스테이블 디퓨전은 다양한 버전이 있습니다. 각각의 버전은 고유의 특성과 사용 제약을 가지고 있어, 어떤 것을 선택해야 할지 혼란스러울 수 있습니다. 여기서는 스테이블 디퓨전의 주요 버전들과 그 차이점을 소개해하며, 가장 적합한 버전을 선택할 수 있도록 도와드리겠습니다.

  • sd1.5버전 스테이블 디퓨전 사용자들 사이에서 가장 널리 사용되는 버전입니다. 이 버전의 가장 큰 특징은 모든 프롬프트에 대한 제약이 없다는 것입니다. 즉, 사용자는 자신의 상상력을 마음껏 발휘하여 다양한 이미지를 생성할 수 있습니다.
  • sd2.0버전: 이미지 생성 시 노출 수위에 대한 문제로 일부 프롬프트에 제한을 두어, 사용자의 창작 범위에 약간의 제한을 가합니다. 이는 특정 내용의 이미지 생성을 제한함으로써 사용자와 커뮤니티의 다양한 요구를 충족시키려는 시도입니다.
  • sd2.1버전: 2.0버전에서 발생한 프롬프트 제약으로 인한 이미지 생성 문제를 해결하기 위해 개발되었습니다. 이 버전은 2.0의 제약을 일부 완화하여 사용자가 더 다양한 이미지를 생성할 수 있도록 했습니다.
  • SDXL베타버전: 아직 베타 단계이며, 많은 정보가 공개되지 않았지만, 최신 기술과 기능을 시험해볼 수 있는 기회를 제공합니다. 베타 버전이기 때문에 실험적인 기능을 체험하고자 하는 사용자에게 적합할 수 있습니다.

이렇게 각 버전마다 가지는 특성을 이해하고, 자신의 창작 목적에 맞는 버전을 선택하는 것은 스테이블 디퓨전을 사용하는 데 있어 매우 중요한 선택이 될 수 있습니다. 창작의 목적에 맞는 버전을 선택함으로써, 더 풍부하고 다채로운 이미지를 생성하는 데 한 걸음 더 다가갈 수 있습니다.

2. 스테이블 디퓨전 WebUI 로컬 설치 가이드

스테이블 디퓨전 WebUI의 로컬 설치를 위해 필요한 사양과 준비물을 구체적으로 알아보겠습니다. 스테이블 디퓨전 설치를 시작하기 전에 D드라이브 같은 여분의 저장 공간에 폴더를 생성하는 것이 중요합니다. 이는 프로그램의 원활한 실행과 시스템의 안정성을 보장하기 위함이며, 폴더 이름은 sdpro와 같이 간단하고 기억하기 쉬운 영문으로 설정하는 것이 좋습니다.

1. Python 설치하기

스테이블 디퓨전 WebUI의 성공적인 설치를 위해서는 Python 3.10.6 버전을 설치해야 합니다. 해당 버전이 아닌 파이썬을 설치한 경우에는 설치가 진행되지 않을 수 있습니다. 실제로 현재 기준 파이썬의 최신 버전인 3.12.2에서도 제대로 설치가 되지 않고, 3.10.6 버전을 설치해야 한다는 안내 메세지를 던집니다. 파이썬 3.10.6 버전은 아래의 링크에서 다운로드할 수 있습니다.

https://www.python.org/downloads/release/python-3106/

Python의 버전은 세 가지의 수로 구성되는데, 이는 각각 major, minor, 그리고 micro 버전을 나타냅니다. 3.10.6 버전에서 3은 주요 변경을, 10은 작은 변경을, 6은 버그 패치를 의미합니다. 중요한 것은, 설치 시 “add Python 3.10 to path” 옵션에 반드시 체크를 해야 한다는 점입니다. 이는 Python이 시스템 내 어디에 설치되었는지 운영 체제에 알려주는 것으로, 이 과정을 건너뛰면 나중에 환경 변수를 추가로 설정해주어야 하는 불편함이 생깁니다.

  • 3: major 버전, 구문 또는 큰 변화
  • 10: minor 버전
  • 6: micro 버전, 버그 패치

2. git 설치하기

git의 경우 최신 버전을 설치하면 되며, 설치는 복잡한 설정 없이 그냥 확인만 연속으로 눌러주면서 진행하면 됩니다. 이렇게 파이썬과 git을 설치하고 나면 스테이블 디퓨전을 설치할 수 있는 최소한의 소프트웨어 환경을 갖추게 됩니다.

3. 스테이블 디퓨전 설치하기

스테이블 디퓨전을 로컬에 설치하는 것은 분명한 장점이 있습니다. 구글 코랩에서 사용하는 것과 비교해보면, 로컬 설치는 사용량 제한 없이 안정적인 환경에서 스테이블 디퓨전을 사용할 수 있게 해주며, 자신의 컴퓨터 사양에 맞게 설치를 진행할 수 있어, 더 나은 성능의 이미지 생성을 경험할 수도 있습니다.

로컬 설치 시 필요한 최소 사양에 대해서는 아래의 표를 참고하시기 바랍니다. GPU, 하드 사양에 대한 구체적인 정보와 권장 사양은 사용자가 시스템을 최적화하는 데 중요한 정보일 겁니다.

항목 권장사양 기본사양
CPU
AMD RIZEN 3700X / INTEL 17 9800K
AMD RIZEN 3700X / INTEL 17 9800K
RAM
32GB
32GB
GPU
NVIDIA 3060 TI 12GB
NVIDIA 3060 TI 8GB
HDD/SSD
(NVME 3.0) 2TB
(NVME 3.0) 500GB

Automatic 1111 설치는 스테이블 디퓨전 WebUI를 실행하는 데 핵심적인 단계입니다. 우선, Automatic1111의 GitHub 레포지토리 링크를 복사해야 합니다. 그 후, 명령 프롬프트를 열고, git clone 명령어를 사용해 레포지토리의 내용을 로컬 드라이브에 복제합니다. 이 과정에서 sd/webui와 같은 구조로 폴더를 생성하여 설치 경로를 정리하는 것이 중요합니다. 이렇게 함으로써, 설치된 파일들을 체계적으로 관리할 수 있습니다.

  • Automatic 1111 설치하기

  • Automatic1111 github에 있는 레포지토리 링크를 복사합니다.
    https://github.com/AUTOMATIC1111/stable-diffusion-webui
  • cmd 모드에 접속합니다. cmd창을 띄우려면 찾기 버튼에서 cmd를 검색하거나, 명령 프롬프트에서 관련 부분을 실행시키면 됩니다.
  • git clone 명령어를 실행해 레포지토리에 있는 내용을 복제합니다.
    git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git sd/webui

github의 레포지토리를 복사할 때는 clone 명령어를 사용하는데 각각의 의미는 다음과 같습니다.

git 명령어의 구조

git clone 시 세부 설치 경로를 적어주는 이유는 드라이브에 해당 주소를 그대로 작성하면 수많은 파일들이 그대로 깔려버리기 때문입니다. 그래서 sd라는 폴더를 만들고, 그 안에 webui라는 폴더를 만들어 설치를 한 것입니다.

3. 스테이블 디퓨전 webui 설치 및 사용법

1. webui-user.bat 실행하기

기본적인 세팅을 마무리했다면, 스테이블 디퓨전 webui를 사용하기 위해 가장 중요한 것은 설치를 위한 실행입니다. Automatic 1111을 설치했으면 webui 폴더 안에는 .GIT, extensions, embeddings, repositories, scripts 등 소스코드 버전 관리와 확장 프로그램을 담은 여러 폴더가 생성되어 있을 겁니다.


Automatic 1111을 설치한 후, webui 폴더 내에 위치한 webui.bat 또는 webui-user.bat 파일을 실행해야 합니다. 이 과정은 프로그램의 모든 필수 구성요소가 올바르게 설정되어 있는지 확인하며, 필요한 기본 모델들도 다운로드 받게 됩니다. 설치 과정에서 인터넷 연결 상태에 따라 시간이 다소 소요될 수 있습니다.


2. venv 실행하기

venv를 실행하는 이유는 프로젝트를 독립된 환경에서 실행하기 위해서 입니다. 명령 프롬프트에서 \venv\Scripts\activate 명령어를 입력하여 venv를 활성화합니다. 이는 스테이블 디퓨전을 포함한 다양한 Python 프로젝트에서 일반적으로 사용되는 가상 환경을 구성합니다.

venv는 프로젝트 별 의존성 관리, 시스템 환경 보호, 프로젝트의 이동성 확보, 그리고 다양한 Python 버전의 사용을 가능하게 해줍니다. 이를 통해 개발자와 사용자 모두가 보다 안정적이고 유연한 환경에서 작업할 수 있게 됩니다. venv 가상 환경을 종료하고 싶다면, \venv\Scripts\deactivate 명령어를 입력해주면 됩니다.

3. 스테이블 디퓨전 WebUI 실행하기

webui-user.bat을 실행시키면, 브라우저의 주소창에 localhost:7860 또는 127.0.0.1:7860을 입력하면 됩니다. 이를 통해 사용자는 스테이블 디퓨전 WebUI의 인터페이스에 접근할 수 있으며, 다양한 창작 활동을 시작할 수 있습니다. 이 과정에서 사용자는 AI 기술을 활용하여 이미지를 생성하고, 자신만의 창작물을 만들어낼 수 있게 됩니다.


4. 스테이블 디퓨전 설치 시 에러가 나는 경우

스테이블 디퓨전 WebUI 설치 과정에서는 때때로 예상치 못한 문제가 발생할 수 있습니다. 이러한 문제를 해결하는 방법을 알아 둘 필요가 있습니다. 여기서는 설치 시 발생할 수 있는 몇 가지 일반적인 에러와 그 해결 방법을 소개합니다.

1. python을 찾을 수 없다는 에러가 나올 경우

만약 Python을 찾을 수 없다는 에러가 발생한다면, 이는 대부분 Python 경로가 시스템 환경 변수에 제대로 설정되지 않았기 때문입니다. 이 문제를 해결하기 위해서는 webui-user.bat 파일을 편집하여 Python의 정확한 위치를 set PYTHON= 부분에 추가해 주어야 합니다. Python의 경로를 찾는 방법은 터미널에서 Python을 실행한 후 import syssys.executable을 순서대로 입력하면 됩니다.

set PYTHON=파이썬 설치 경로

2. gpu 사용 불가 에러가 나는 경우

스테이블 디퓨전 설치 시 GPU 사용 불가 에러가 나타날 수 있습니다. 이는 시스템이 PyTorch와 호환되는 GPU를 사용할 수 없을 때 발생합니다. 이런 상황에서는 webui-user.bat 파일을 열고 set COMMANDLINE_ARGS= 부분에 --skip-torch-cuda-test --precision full --no-half를 추가해 주면 됩니다. 이렇게 하면 GPU 체크를 건너뛸 수 있어, GPU가 없거나, 호환되지 않는 경우에도 설치를 진행할 수 있습니다.

RuntimeError: Torch is not able to use GPU; add --skip-torch-cuda-test to COMMANDLINE_ARGS variable to disable this check
set COMMANDLINE_ARGS=--skip-torch-cuda-test --precision full --no-half
CUDA 사용 가능 여부 확인 방법

터미널 창에서 스테이블 디퓨전 WebUI 폴더의 /venv/Scripts로 이동하여 activate을 실행하면 pytorch가 설치된 python 가상 환경이 실행됩니다. 해당 화면에서 python을 입력한 수 아래의 코드를 순서대로 작성해주면 됩니다.

import torch
is_cuda = torch.cuda.is_available()
device = torch.device('cuda' if is_cuda else 'cpu')

print('Current cuda device is ', device)
# GPU  사용 시: Current cuda device is cuda
# CPU  사용 시: Current cuda device is cpu

venv 가상 환경을 종료 할 때는 해당 폴더에서 deactivate을 입력해주면 됩니다.

5. stable-diffusion 모델 설치하기

이제 스테이블 디퓨전 WebUI 설치 과정의 마지막 단계에 도달했습니다. 바로 모델을 설치하는 과정입니다. 모델은 사용자가 생성할 이미지의 품질과 스타일에 직접적인 영향을 미지며, 선택한 모델의 학습 방식에 따라 결과물의 특성이 크게 달라질 수 있습니다.

모델을 다운로드할 수 있는 대표적인 사이트는 CivitaiHugging Face가 있습니다. 이 사이트들에서 제공하는 다양한 모델을 선택할 수 있는데, 이 사이트들은 사용자에게 여러 가지 옵션을 제공하여, 각자의 프로젝트에 가장 적합한 모델을 찾을 수 있게 도와줍니다.

다운로드한 모델 파일은 \webui\models\Stable-diffusion 폴더 안에 넣어주기만 하면 됩니다. 중요한 점은, Lora 모델이 아닌 CHECK POINT 태그가 붙은 파일을 선택해야 한다는 것입니다. 이는 모델의 호환성을 보장하고 최적의 성능을 제공하기 위함입니다.

unsplash

모델 선택과 설치 과정은 스테이블 디퓨전을 사용하는 사용자로서 마주할 수 있는 가장 중요한 결정 중 하나입니다. 올바른 모델을 선택함으로써, 사용자는 자신의 창의적인 비전을 현실로 구현할 수 있는 강력한 도구를 갖추시길 바랍니다.

6. 스테이블 디퓨전 최적화하기

실행을 시키면 no module ‘xformers’. Processing without 이란 메세지가 뜨는 경우가 있습니다. 물론 xformers가 없어도 되지만, xformers를 추가하면 조금더 나은 성능으로 이미지 생성이 가능합니다. 우선 webui폴더 안의 webui-user.bat를 메모장으로 열어주세요. 그리고 아래와 같이 set COMMANDLINE_ARGS=--xformers를 추가해주면 됩니다.

@echo off

set PYTHON=
set GIT=
set VENV_DIR=
set COMMANDLINE_ARGS=--xformers

call webui.bat

만약 이렇게 수정하고 난 후 오류가 발생한다면 아래와 같이 입력해주고 다시 실행시켜 주면 됩니다.

@echo off

set PYTHON=
set GIT=
set VENV_DIR=
set COMMANDLINE_ARGS=--reinstall-torch --xformers

call webui.bat

참고로, xformers는 메타 플랫폼에서 개발한, 고성능 트랜스포머 모델 구성 요소를 위한 라이브러리입니다. 트랜스포머 모델은 자연어 처리(NLP), 컴퓨터 비전, 그리고 다양한 시퀀스 기반 작업에서 혁신적인 성과를 보여준 인공지능 모델의 한 종류로, xformers는 이런 트랜스포머 모델의 계산 효율성과 확장성을 개선하기 위해 설계되었습니다.

  • xformers의 핵심 기능

  • 메모리 효율성과 속도 최적화: xformers는 트랜스포머 모델의 핵심 연산을 최적화하여, 더 적은 메모리를 사용하면서도 빠른 속도로 실행할 수 있게 합니다. 이를 통해 대규모 데이터셋과 모델을 효율적으로 처리할 수 있습니다.
  • 다양한 Attention 메커니즘 지원: 트랜스포머 모델의 핵심은 Attention 메커니즘에 있으며, xformers는 스탠다드, 스파스, 그리고 저랭크 Attention 등 다양한 종류의 Attention 메커니즘을 지원합니다. 이는 모델의 유연성과 적용 범위를 넓힙니다.
  • 커스터마이징 가능성: 사용자는 자신의 특정 요구 사항에 맞게 xformers를 커스터마이징할 수 있습니다. 이는 특정 작업에 최적화된 트랜스포머 모델을 구축할 때 유용합니다.
  • 다양한 하드웨어 지원: xformers는 CPU와 GPU를 비롯해 다양한 하드웨어에서 효율적으로 실행될 수 있도록 설계되었습니다. 이는 트랜스포머 모델을 더 넓은 환경에서 활용할 수 있게 해줍니다.

다중 GPU 시스템 이용시 GPU 지정하기

그래픽 카드가 2개 달린 GPU 시스템일 경우 기본적으로 스테이블 디퓨전은 무조건 첫번째 GPU를 이용합니다. 만약 다른 GPU를 사용하도록 설정하고 싶다면, webui-user.bat 파일을 열어 COMMANDLINE_ARGS 아래에 다음의 내용을 추가해주면 됩니다.

set CUDA_VISIBLE_DEVICES=1

이때 1번은 2번째 설치된 GPU를 의미하며, 디폴트는 0입니다.

스테이블 디퓨전으로 이미지 생성하기

스테이블 디퓨전 WebUI를 설치한 후에는 웹 인터페이스를 통해 간편하게 접속하고, 직관적인 프롬프트 입력으로 복잡한 이미지 생성 과정을 시작할 수 있습니다. 이 과정은 크리에이티브한 아이디어를 시각적 형태로 실현하는 데 필요한 다양한 도구와 옵션을 제공합니다.

우선 체크포인트 모델의 선택은 생성할 이미지의 스타일과 퀄리티에 큰 영향을 미칩니다. 사용자는 자신의 프로젝트에 적합한 체크포인트를 선택하여, 원하는 방향성을 설정해야 합니다. 프롬프트에는 생성할 이미지의 세부 사항을 명시하며, 불필요한 요소는 네거티브 프롬프트를 통해 제외시킬 수 있습니다.

sampling method의 선택은 이미지 생성 과정에 있어 중요한 변수로, DPM++ 2M SDE karras는 일반적으로 세밀한 디테일과 고품질 이미지를 생성하는 데 사용됩니다. 이런 설정은 사용자가 명시적으로 지정함으로써, 이미지의 세부 사항과 질감을 더욱 풍부하게 표현할 수 있게 합니다. 스테이블 디퓨전에서 사용되는 대표적인 샘플링 방법에는 다음과 같은 것들이 있습니다:

  • Denoising Diffusion Probabilistic Models(DDPM): DDPM은 이미지를 생성하는 과정에서 노이즈를 점진적으로 제거해 나가는 방식을 사용합니다. 이 과정은 여러 단계를 거쳐 수행되며, 각 단계에서 이미지의 노이즈가 조금씩 줄어들면서 최종 이미지가 생성됩니다.
  • DPM++ and DPM++ 2M: DPM++는 DDPM의 변형으로, 더 빠르고 효율적인 이미지 생성을 가능하게 합니다. DPM++ 2M은 이러한 접근 방식을 더욱 발전시킨 것으로, 모델의 성능을 최적화하여 더욱 빠른 생성 속도와 높은 퀄리티의 이미지를 제공합니다.
  • Score-Based Generative Models: 점수 기반 생성 모델은 이미지의 각 픽셀에 대한 점수(gradient)를 계산하고, 이를 바탕으로 이미지를 점진적으로 생성해 나가는 방식을 사용합니다. 이 방법은 이미지의 세부적인 특성을 더욱 정밀하게 제어할 수 있게 해줍니다.
  • SDE(Stochastic Differential Equations): 확률적 미분 방정식을 사용하는 이 방법은 연속적인 공간에서 이미지 생성 과정을 모델링합니다. SDE는 복잡한 패턴과 구조를 가진 이미지를 생성하는 데 특히 유용합니다.
  • Karras et al.: NVIDIA의 연구자들이 개발한 이 방법은 특히 고품질의 이미지 생성에 초점을 맞추고 있습니다. 이 방식은 높은 해상도에서도 세밀한 디테일을 잘 보존할 수 있는 이미지를 생성할 수 있습니다.

고해상도 이미지 생성을 위한 Hires.fix 옵션의 활성화는 이미지의 선명도와 디테일을 높이는 데 도움을 줍니다. 또한 사용자는 시드 값을 고정하여 일관된 스타일의 이미지를 여러 개 생성하거나, 랜덤한 시드값을 사용하여 다양한 결과를 탐색할 수 있습니다. 스테이블 디퓨전 WebUI를 통한 이미지 생성 과정을 정리하면 다음과 같습니다.

  • Model: 사용 할 모델을 선택합니다.
  • Prompt: 생성할 이미지 설명을 입력합니다.
  • Negative prompt: 어떤 것을 빼야할 지 적어줍니다.
  • sampling method: 보통 DPM++ 2M SDE karras를 사용합니다.

위 이미지는 아래와 같이 설정하여 생성한 이미지입니다.

Stable Diffusion checkpoint: detailAsianRealistic_v60LCM
Sampling method: DPM++ 2M SDE karras
Sampling steps: 20
Hires. fix

Prompt:
ultra detailed, highly detailed:1.4, best quality, masterpiece, dragon, simple background

Negative Prompt:
low quality, worst quality:1.3

마치며

스테이블 디퓨전 WebUI를 처음 접하는 분들이라면, 그 가능성과 함께 다양한 기능을 통한 정교한 작업의 세계에 대한 기대감을 가지고 계실 것입니다. 이 강력한 도구는 단순한 프롬프트 입력을 넘어서, 창작 과정을 풍부하게 하고 시간을 현저히 단축시켜 줄 수 있는 매력적인 기능들을 제공합니다. 하지만, 이러한 기능들을 최대한 활용하기 위해서는 스테이블 디퓨전의 구조와 원리에 대한 충분한 이해가 필요합니다.

스테이블 디퓨전과 같은 첨단 기술을 마스터하는 길은 복잡해 보일 수 있으며, 초기에는 다소 벅찰 수 있습니다. 그럼에도 불구하고, 적절한 학습을 통해 이러한 과정을 체계적으로 배울 수 있다면, 누구나 고도의 이미지 생성 기술을 자신의 것으로 만들 수 있을 것으로 생각됩니다. 이를 통해 여러분의 창작 여정이 이 강의를 통해 더욱 풍부하고 다채로워지길 바랍니다.

답글 남기기