레이블이 Stable-diffusion인 게시물을 표시합니다. 모든 게시물 표시
레이블이 Stable-diffusion인 게시물을 표시합니다. 모든 게시물 표시

2024년 4월 28일 일요일

Stable-diffusion / SDXL 설치

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 실행

실행된 내용에 있는 주소를 브라우저로 엽니다. 커맨드 라인의 Running on local URL 입니다.

아래 화면에서는 http://127.0.0.1:7860/ 이곳입니다.




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 를 다시 실행시키면 됩니다.