IT 활용/AI 활용

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

&+&& 2023. 5. 9. 00:00

 

스테이블 디퓨전은 텍스트를 입력받아 이미지를 생성하는 txt2img를 핵심 기능으로 하는 AI 모델로 스테이블 디퓨전 WebUI는 이러한 AI 모델을 웹 인터페이스 상에서 편리하게 사용하기 위한 프로젝트입니다. 이번 글에서는 이러한 스테이블 디퓨전 WebUI를 윈도우 기반 PC에 설치하는 방법을 알아보겠습니다.

스테이블 디퓨전 WebUI 실행 화면
스테이블 디퓨전 WebUI 예시 화면

설치 환경 : Windows 노트북

i9-12900h, 3080ti, 64GB RAM, Windows11 64bit

 

Stable Diffusion은 torch를 사용한다. 즉 2023년 5월 기준으로 CUDA 11.8까지 지원하고 12버전은 아직 지원하지 않는다.

OS/CUDA 버전별 pytorch 설치 안내 페이지

 

사전 설치 및 다운로드

Stable Diffusion 사용을 위한 필요사항 설치 및 다운로드

  • Python 설치 : 현재 가장 최신 버전은 3.11 버전이지만 torch, CUDA 설정을 위하여 3.10.11 버전으로 설치한다 설치시에 Add Python to PATH 옵션은 체크 상태로 설치. 내 경우 pyenv를 통한 설치는 stable diffusion venv 실행 등에서 문제가 있었다. 트러블 슈팅이 가능한 사람이 아니라면 그냥 파이썬 홈페이지에서 3.10.11 버전을 다운로드 받아서 설치하자
  • Git 설치 : Setup 버전을 다운로드해서 설치. 기본적으로 체크되어 있는 항목을 수정하지 않고 진행하면 된다
  • Stable Diffusion Webui 다운로드 : github에 stable diffusion을 위한 레포지토리가 구성되어 있다. 윈도우 터미널을 연고 원하는 폴더를 생성 후에 아래처럼  git clone 명령어로 다운로드를 해도 되고 아니면 zip 파일 형태로 다운로드 받은 후에 원하는 경로에 압축해제를 해도 된다. github에서 최신 버전을 다운로드 받고 싶은 경우에는 해당 폴더에서 git pull 실행
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git .

stable diffusion 프로젝트 git clone sample

  • CUDA Toolkit 11.8 설치 및 cuDNN v8.9.0 for CUDA 11.x 다운로드 : 다운로드하려면 nVIDIA 회원 가입 및 developer program 가입이 필요하다. CUDA Toolkit은 설치하고, cuDNN은 아래 실행 단계를 거치고 venv 폴더가 생성되면 압축 해제 후 bin 폴더 안에 있는 dll 파일 7개를 stable-diffusion-webui\venv\Lib\site-packages\torch\lib에 복사해 주자

 

실행해 보자

CMD 관리자 권한으로 실행, git 다운로드를 받은 경로에서 webui-user.bat을 실행하면 webui가 기동된다. 기동 후 http://127.0.0.1:7860으로 접속

  • 해당 CMD창을 닫지 말고 놔둬야 한다. 아래 이미지와 같은 메시지가 표시된다면 기동은 성공
  • prompt에 적당한 내용을 입력한 뒤 generage 버튼을 클릭했을 경우 이미지가 이상 없이 생성된다면 성공. 오류가 나면서 이미지가 생성이 안된다면 cuda 및 pytorch 버전 적용 등 문제가 있는 경우일 것이다.
  • 실행 종료는 CTRL+C 키, 메시지 표시 후 Y

stable diffusion WebUI CLI 실행 상태

 

pytorch 업데이트 및 xformers 적용

venv 환경에서 torch를 업데이트한다. 

  • cmd 환경 stable diffusion 폴더 하위에 venv/Scripts 폴더로 이동
  • activate 명령을 입력하여 venv 활성화
  • pip install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cu118 실행한다.

pip을 이용한 pytorch 업데이트 및 xformers cli 화면

xformers 리빌드 및 적용

  • xformers 적용을 위해서는 webui-user.bat 파일을 편집해서 set COMMANDLINE_ARGS=--xforers 내용만 추가해 주면 된다. 하지만 pytorch + cuda11.8 적용시에는 xformers를 그냥 활성화하면 이미지 generate 시에 오류가 발생해서 리빌드가 필요하다.
  • torch 업데이트 시와 같이 여기서부터는 계속 venv activate 상태에서 진행된다. 기존 xformers 삭제
(venv)~~~> pip uninstall xformers
  • Microsoft C++ Build Tools 다운로드 후 설치
  • venv activate 상태에서 ninja, setuptools, wheel 을 설치한다.(설치되어 있는 항목이라면 skip)
(venv)~~~> pip install ninja
(venv)~~~> pip install setuptools
(venv)~~~> pip install wheel
  • stable diffusion 메인 폴더 아래에 repositories 폴더로 이동 후 xformers 소스 파일 클론
  • 다른 컴파일러 사용 설정 수행
  • xformers 폴더로 이동 후 컴파일 수행, 컴파일 완료 후 dist 폴더로 이동 후에 생성된 whl 파일을 설치
(venv)stable 메인 폴더\repositories> git clone https://github.com/facebookresearch/xformers.git --recurse-submodules
(venv)stable 메인 폴더\repositories> set NVCC_FLAGS =-allow-unsupported-compiler
(venv)stable 메인 폴더\repositories> cd xformers
(venv)stable 메인 폴더\repositories\xformers> python setup.py build
(venv)stable 메인 폴더\repositories\xformers> python setup.py bdist_wheel
(venv)stable 메인 폴더\repositories\xformers> cd dist
# 파일명이 길다. xformers까지 입력 후 tab으로 입력해주자
(venv)stable 메인 폴더\repositories\xformers\dist> pip install xformers-파일 이름.whl
  • 완료 후에 stable diffusion webui 재기동, 접속 후 하단에 현재 적용된 버전 정보들이 표시된다. 초기 시도 시 Python이 3.10.8버전이었는데, xformers에서 경고가 나오면서 정상적으로 진행이 안 되었다. 위 과정을 진행하면서 나오는 메시지들을 확인해 보자.