Stable-diffusion / SDXL 설치
windows 환경에서 설치 방법입니다.
1. stable-diffusion-webui 설치
https://github.com/AUTOMATIC1111/stable-diffusion-webui
최신 버전도 많지만 v1.5.1 tag가 붙은 버전을 설치합니다.
https://github.com/AUTOMATIC1111/stable-diffusion-webui/releases/tag/v1.5.1
stable-diffusion-webui-1.5.1.zip 파일을 다운로드 받아서 적당한 위치에 압축을 해제합니다.
2. python 3.10.6 설치
Stable-diffusion이 구동될려면 python, git 이 설치 되어어야 합니다.
https://www.python.org/downloads/release/python-3106/
버전을 맞춰주시고 path 설정도 해줍니다.
1번에서 해제된 압축 파일을내에 webui-user.bat 파일을 열어
PYTHON 경로를 넣어줍니다. (경로는 사용자마다 다릅니다.)
예) set PYTHON=C:\Users\AppData\Local\Programs\Python\Python310\python.exe
추가로 아래 부분도 변경 시켜주세요
set COMMANDLINE_ARGS=--xformers --no-half-vae
이 부분을 안해주면 결과물이 이상하게 나옵니다.
3. git 설치
아래에서 맞는 버전을 설치해줍니다.
https://git-scm.com/download/win
4. SDXL 모델 다운로드
huggingface 에서 각각 아래 파일을 다운로드 받습니다.
https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0/tree/main
sd_xl_base_1.0.safetensors
https://huggingface.co/stabilityai/stable-diffusion-xl-refiner-1.0/tree/main
sd_xl_refiner_1.0.safetensors
Stable-diffusion 만 설치하는 것이라면 4, 5 단계를 무시하면 됩니다.
5. 다운로드 받은 파일을 models\Stable-diffusion 폴더로 복사
6. webui-user.bat 실행
stable diffusion checkpoint 에서 어떤 모델을 선택하느냐에 따라 SDXL이 되는 것입니다.
앞에 다운로드 받았던, sd_xl_base_1.0.safetensors, sd_xl_refiner_1.0.safetensors 를 선택한다면 SDXL 이 됩니다.
[에러 발생시]
Version: 1.5.1
Commit hash: <none>
Launching Web UI with arguments:
Traceback (most recent call last):
File "D:\dev\SDXL\stable-diffusion-webui-1.5.1\launch.py", line 39, in <module>
main()
File "D:\dev\SDXL\stable-diffusion-webui-1.5.1\launch.py", line 35, in main
start()
File "D:\dev\SDXL\stable-diffusion-webui-1.5.1\modules\launch_utils.py", line 390, in start
import webui
File "D:\dev\SDXL\stable-diffusion-webui-1.5.1\webui.py", line 44, in <module>
import gradio # noqa: F401
File "D:\dev\SDXL\stable-diffusion-webui-1.5.1\venv\lib\site-packages\gradio\__init__.py", line 3, in <module>
import gradio.components as components
File "D:\dev\SDXL\stable-diffusion-webui-1.5.1\venv\lib\site-packages\gradio\components.py", line 55, in <module>
from gradio import processing_utils, utils
File "D:\dev\SDXL\stable-diffusion-webui-1.5.1\venv\lib\site-packages\gradio\utils.py", line 339, in <module>
class AsyncRequest:
File "D:\dev\SDXL\stable-diffusion-webui-1.5.1\venv\lib\site-packages\gradio\utils.py", line 358, in AsyncRequest
client = httpx.AsyncClient()
File "D:\dev\SDXL\stable-diffusion-webui-1.5.1\venv\lib\site-packages\httpx\_client.py", line 1397, in __init__
self._transport = self._init_transport(
File "D:\dev\SDXL\stable-diffusion-webui-1.5.1\venv\lib\site-packages\httpx\_client.py", line 1445, in _init_transport
return AsyncHTTPTransport(
File "D:\dev\SDXL\stable-diffusion-webui-1.5.1\venv\lib\site-packages\httpx\_transports\default.py", line 275, in __init__
self._pool = httpcore.AsyncConnectionPool(
TypeError: AsyncConnectionPool.__init__() got an unexpected keyword argument 'socket_options'
=>pip install httpx==0.24.1
그런데 venv로 동작하고 있어서 venv 환경의 httpx 설치를 바꿔줘야 합니다.
cmd 창을 열고
설치된 폴더 stable-diffusion-webui-1.5.1\venv\Scripts 여기로 이동한뒤 activate.bat 를 실행 시킵니다. 그러면 아래와 같은 화면이 나오고 앞에 (venv) 가 붙습니다.
위와 같이 pip install httpx==0.24.1 명령을 수행합니다.
그 이후 webui-user.bat 를 다시 실행시키면 됩니다.