구글 태그

2023년 2월 16일 목요일

AMD GPU에서 Stable Diffusion 설정하기

지난번 글에서 Stable Diffusion 설치에 대한 링크를 모아뒀는데, 해당 내용은 연산을 위해 엔비디아 CUDA를 이용하도록 구성된 것이므로 AMD GPU를 사용하는 PC에서는 동작하지 않습니다. 집에서 사용하는 PC가 5600X/RX6600인 라라랜드 조합이라 Stable Diffusion 설치 과정에서 번거로웠던 내용을 약간 정리합니다.

가장 쉬운 방법은 AMD에 최적화된 배포본인 nod-ai의 SHARK를 쓰는 것인데, 이쪽은 아직 확장 프로그램이 따라오는게 늦은 상태입니다. 그냥 편하게 AMD GPU에서 이미지 생성만 해보고 싶으면 SHARK를 쓰고, 확장을 해보고 싶으면 다음 내용을 참고해서 고난의 여정;;에 참여하면 됩니다.

AMD GPU 환경에서 Stable Diffusion을 이용하려면 CUDA를 대체하는 MS의 기술인 DirectML을 사용해야 합니다. DirectML을 사용하면 CUDA보다 느리다고 알려져있긴 한데, 아예 안 되는 것보다는 나은 상황이므로 AMD GPU를 쓰는 죄(;;)로 느릴 뿐 아니라 설치가 번거롭기까지 하지만 DirectML 기반으로 환경을 구축해 보겠습니다.

큰 흐름은 이전 글에 링크된 CUDA 버전을 다루는 문서와 일치하지만 세부적으로 약간 차이가 있습니다.
https://skyksit.com/useful/install-stable-diffusion-for-windows/

DirectML 버전의 설치 방법은 다음 문서에 나와 있습니다.
https://github.com/AUTOMATIC1111/stable-diffusion-webui/wiki/Install-and-Run-on-AMD-GPUs

- 필수 설치
1. Python 설치
2. Git 설치
CUDA 설치(불필요)
3. stable-diffusion-webui 다운로드(DirectML 대응)
4. repositories의 구성요소 다운로드(DirectML 대응)
5. stable-diffusion Model 파일 다운로드
6. stable-diffusion-webui 실행(AMD GPU에만 옵션 추가)
- 옵션
7. waifu-diffusion 파일 다운로드
8. GFPGAN 파일 다운로드

1. Python 설치
명령 프롬프트를 열고
winget install python

2. Git 설치
winget install git

3. stable-diffusion-webui 다운로드(DirectML 대응)
명령프롬프트에서 설치할 경로로 이동한 후
git clone https://github.com/lshqqytiger/stable-diffusion-webui-directml.git

여기서부터 이전 글에 링크한 문서와 차이가 생기는데, CUDA에 대응하는 원본은 https://github.com/AUTOMATIC1111/stable-diffusion-webui에 있지만, 우리는 DirectML에 대응하도록 수정한 버전을 설치해야 합니다. https://github.com/lshqqytiger/stable-diffusion-webui-directml

4. repositories의 구성요소 다운로드(DirectML 대응)
명령 프롬프트에서 stable-diffusion-webui-directml/repositories 경로로 이동한 후
git clone https://github.com/lshqqytiger/k-diffusion-directml k-diffusion
git clone https://github.com/lshqqytiger/stablediffusion-directml stable-diffusion-stability-ai

5. stable-diffusion Model 파일 다운로드

다음 주소로 이동하여 무료 회원 가입 후 Model을 골라 설치해 봅니다.
https://huggingface.co/models

다운받을 수 있는 모델 포맷은 .ckpt나 .safetensors 파일인데, .safetensors 파일이 모델 변경 시 속도가 더 빠르다고 알려져 있습니다. 체감적으로는 별 차이를 모르겠네요. 다운 받은 후 models/Stable-diffusion 폴더에 넣어줍니다.

6. stable-diffusion-webui 실행(AMD GPU에만 옵션 추가)

webui-user.bat를 열고 다음과 같이 수정합니다.
set COMMANDLINE_ARGS=--opt-sub-quad-attention --lowvram --no-half-vae

저 옵션들은 제 PC에서 몇차례 실행하면서 RX6600에서 필요하다고 확인한 것들인데, 각자의 환경에 따라 더하거나 빠질 수 있습니다. 이제 webui-user.bat를 실행하고 기다리면 오류가 없을 경우 명령 프롬프트에 접속할 수 있는 웹주소가 나타납니다.

댓글 없음:

댓글 쓰기