본문 바로가기
취미/- 파이썬

AMD에 Stable Diffusion Web UI 설치하기(2), zluda 버전

by 밀리테크를 지향하는 세계 2025. 2. 26.
반응형

AMD에 Stable Diffusion Web UI 설치하기(1), Direct ML 버전

 

AMD에 Stable Diffusion Web UI 설치하기(1), Direct ML 버전

Stable Diffusion으로 멋진 이미지를 만들어보려고 했던 저의 여정을 공유하려고 합니다. 특히 NVIDIA 그래픽 카드에서 AMD RX7800 XT로 바꾸면서 겪은 고생과, 결국 성공적으로 설치한 경험을 바탕으로

myview7144.tistory.com

지난 1편에 이어서 이번에는 zluda를 이용한 설치 방법을 작성해 보겠습니다. 

 

1. 느린 Direct ML 그래서 찾은 방법: ZLUDA를 이용한 방법

 

 속도 문제를 해결하기 위해 다양한 방법을 검색했고, ZLUDA라는 솔루션을 발견했습니다. ZLUDA AMD GPU에서 CUDA를 에뮬레이션해서 NVIDIA처럼 빠른 성능을 낼 수 있는 도구로, 최근 RX 7800 XT 같은 RDNA 3 기반 GPU에서 특히 효과적이라는 이야기를 들었습니다. ZLUDA를 사용하면 DirectML보다 VRAM 사용이 효율적이고 속도가 4~5배 빠를 수 있다고 해서 기대가 컸습니다.

 

2. 하지만 이 방법도 설치가 만만치 않았습니다: 각종 오류 해결 과정

 

일단 기본적인 설치방법은 앞선 DirectML 방식과 유사합니다. 기본적으로 파이썬 동일 버전 와 git 동일 버전이 설치되어 있고 Path 환경 매개 면수까지 추가가 되어 있어야 합니다. 다른 점이라고는 AMD GPU 지원 클론 버전과 zluda master 버전 그리고 ROCm을 추가해야 하는 것입니다. 

 

 

2.1. 설치하기 : 1번에 첨부되어 있는 링크 페이지에서 ROCm을 누른 후 최신 버전을 설치합니다. 

2.2. 설치가 완료되면 환경 변수를 추가 설정합니다

- HIP_PATH : C:\Program Files\AMD\ROCm\6.2 (예시)

2.3 Stable Diffusion WebUI를 다운로드합니다.

- 파워쉘을 열고 설치할 폴더를 생성합니다. 

D:
mkdir StableDiffusion
cd StableDiffusion

 

해당 과정이 정상 진행이 되었다면 아래의 코드를 추가로 넣고 파일을 다운로드합니다.

git clone https://github.com/lshqqytiger/stable-diffusion-webui-amdgpu.git

 

2.4 zluda를 설치합니다. 

아래의 링크에서 초록색 code 부분을 누른 후 다운로드 zip를 선택하여 다운로드합니다. 

https://github.com/vosen/ZLUDA

 

GitHub - vosen/ZLUDA: CUDA on non-NVIDIA GPUs

CUDA on non-NVIDIA GPUs. Contribute to vosen/ZLUDA development by creating an account on GitHub.

github.com

파일을 다운로드 완료한 후, 압축을 해제하고 해당 파일을 Stable Diffusion을 다운로드한 폴더로 붙여 넣기 합니다.

이때, 파일을 덮어쓸 것인지에 대한 요청이 들어오는 덮어써도 무방합니다. 

 

2.5 Stable Diffusion 실행 준비 

- stable-diffusion-webui-amdgpu 폴더로 이동하여 webui-user.bat를 메모장으로 편집합니다. 메모장을 열고 아래의 코드를 삽입하여 저장합니다. 

set COMMANDLINE_ARGS=--use-zluda --skip-torch-cuda-test

 

2.6 webui-user.bat를 실행 

앞선 DirectML 버전과 같이 해당 배치파일을 실행하면 여러 코드가 뜨면서 최초에 다운로드를 진행합니다. 하지만 이 과정에서 에러가 제일 많이 났었습니다. 

 

3. 하나씩 해결해 나가기 : 오류 해결하기 

 

3.1. ImportError: cannot import name 'broadcast_to' from 'numpy.lib.stride_tricks' 유형이 가장 먼저 절 반겨주었습니다. 해당 오류는 NumPy 라이브러리의 모듈에서 특정 함수를 찾을 수 없다는 뜻이에요. 이 문제는 주로 NumPy 버전 불일치나 설치 과정에서의 손상 때문에 발생합니다. 아래 3가지가 가장 큰 원인일 가능성이 높습니다. 

  • NumPy 버전 문제: Stable Diffusion이 사용하는 특정 버전의 NumPy와 현재 설치된 버전이 맞지 않을 가능성이 높습니다. 오래된 버전이거나, 최신 버전에서 broadcast_to 함수의 위치가 변경된 경우입니다.
  • 의존성 충돌: 가상 환경(venv)에서 다른 패키지(예: matplotlib, gradio 등)가 NumPy를 요구하면서 버전 충돌이 생겼을 수 있습니다..
  • 설치 손상: NumPy 설치 과정에서 파일이 제대로 설치되지 않았거나 손상되었을 가능성.

제가 찾은 해결 방법은 아래와 같습니다. 

 

가장 처음으로 가상 환경을 확인합니다. 

 

Stable Diffusionvenv 폴더에 독립적인 Python 환경을 사용합니다. 오류 메시지에서 E:\StableDiffusion\stable-diffusion-webui-amdgpu\venv 경로가 보이니, 이 환경에서 문제가 발생했습니다.

먼저 가상 환경을 활성화해서 직접 확인해 보겠습니다. 가상 환경을 활성화하는 코드를 파워쉘에서 실행합니다.

E:
cd E:\StableDiffusion\stable-diffusion-webui-amdgpu
.\venv\Scripts\activate

 

 해당 프롬프트가 활성화되면 (venv)가 표시됩니다. 이 상태에서 Numpy 버전을 확인합니다. 

pip show numpy

 

 코드를 넣고 정상적으로 작동하면 아래와 같이 표기가 됩니다. 저의 경우에는 정상적으로 설치가 되어 버전이 출력되고 있습니다. 

 

 만약 출력이 되지 않거나 설치가 되었지만 정상 인식이 안된다고 판단이 될 때에는 아래의 코드를 삽입하여 재설치를 진행해야 합니다. 먼저 설치된 numpy를 제거합니다. 

pip uninstall numpy

 

 이후 선택창이 하나 뜹니다. 그때 Y를 눌러 완전히 삭제를 진행합니다. 삭제가 진행되면 다시 아래의 코드를 삽입하여 재설치를 진행합니다. (가장 안정적인 버전은 1.23.5입니다.)  설치가 완료되면 버전이 안정적으로 설치되었는지 확인합니다.

pip install numpy==1.23.5
pip show numpy

 

 그리고 numpy 문제로 다른 패키지도 영향을 받았을 가능성이 있으니, Stable Diffusion의 요구사항을 다시 설치합니다. 

pip install -r requirements.txt

 

 가상 환경이 활성화된 상태에서 다시 실행해 봅니다. 

python launch.py --use-zluda

 

정상적으로 진행이 되었을 경우 브라우저 창이 열리며 이미지 생성이 가능합니다. 

 

3.2. zluda 관련 경고 메시지 

 

 설치 이후에 아래와 같은 경고 메시지가 발생했습니다. 

WARNING: ZLUDA works best with SD.Next. Please consider migrating to SD.Next.
WARNING: you should not skip torch test unless you want CPU to work.

 

  • ZLUDA는 SD.Next(Stable Diffusion의 다른 포크)에서 더 잘 작동하도록 설계되었어요. 현재 사용 중인 stable-diffusion-webui-amdgpu에서도 동작은 하지만 최적화가 덜 될 수 있다는 경고입니다.
  • --skip-torch-cuda-test 옵션 때문에 GPU(ZLUDA) 초기화가 제대로 안 됐을 가능성이 있어요. 이 옵션은 CUDA(GPU) 검사를 건너뛰고 CPU로 fallback 할 수 있게 만드는데, ZLUDA가 의도한 대로 작동 안 할 수도 있습니다.

영향 : GPU가 아닌 CPU로 실행 중일 가능성이 있습니다. 이는 이미지 생성이 느리거나 아예 안 될 수 있습니다. webui-user.bat를 편집하면서 어떤 증상인지 확인을 해야 하며 필요할 경우 배치파일을 수정하여 실행해야 합니다. 

 해결 : 아래의 코드로 수정하여 재 실행합니다. 

set COMMANDLINE_ARGS=--use-zluda

 

로그에 "ZLUDA initialized" GPU 관련 메시지가 더 자세히 나오면 성공입니다.

 

3.3. ROCm 및 GPU인식 

ROCm: agents=['gfx1101', 'gfx1036']
ROCm: version=6.2, using agent gfx1101
No ROCm runtime is found, using ROCM_HOME='C:\Program Files\AMD\ROCm\6.2'

 

  • AMD GPU(RDNA 3 또는 RDNA 2)가 인식되고 ROCm 6.2가 설정되었어요. gfx1101은 RX 7000 시리즈(GPU 모델)를 가리킵니다.
  • 하지만 "No ROCm runtime is found"는 ROCm 런타임이 제대로 설치되지 않았거나 경로가 잘못됐을 가능성을 시사해합니다.  ZLUDA는 ROCm에 의존하지 않을 수도 있지만, 이 부분이 불안정하면 GPU 활용에 영향을 줄 수 있습니다.

영향 : 이 경우 ZLUDA가 GPU를 인식 못하면 이미지 생성이 불가합니다. 하지만 순서대로 했다면 큰 문제없습니다. 

해결 : "No ROCm runtime is found"를 해결하려면 ROCm이 제대로 설치되었는지 확인:

  • C:\Program Files\AMD\ROCm\6.2 폴더가 실제로 있는지 확인.
  • 없으면 AMD ROCm 공식 사이트(rocm.amd.com)에서 ROCm 6.2 SDK를 다운로드해 설치합니다. 
  • 설치 후 환경 변수에 추가:
  • "환경 변수 편집"에서 ROCM_HOME을 C:\Program Files\AMD\ROCm\6.2로 설정.

 

3.4. 모듈 누락(xformers, ONNX 등) 

no module 'xformers'. Processing without...
ONNX failed to initialize: Failed to import optimum.onnxruntime.modeling_diffusion...
cannot import name 'UMT5EncoderModel' from 'transformers'
  • xformers가 없어도 기본적으로 실행은 되지만, 메모리 효율성과 속도가 떨어질 수 있어요. AMD GPU에서는 필수적이진 않으니 큰 문제는 아님.
  • ONNX와 transformers 관련 오류는 일부 확장 기능(예: Aura Flow 같은 파이프라인)이 작동 안 할 거라는 뜻이에요. 기본 이미지 생성에는 영향이 덜하지만, 특정 모델이나 기능을 사용할 때 문제가 될 수 있어요.

 영향: 기본 이미지 생성에는 큰 문제없음.하지만 의존성 충돌 가능성 있음

 해결 : 없음. AMD GPU에서 구동 불가. 무시해도 됨. 

 

5. 드디어 구동하기 

 

 결국 ZLUDA를 기반으로 Stable Diffusion Web UI RX 7800 XT에서 정상적으로 작동시킬 수 있었습니다. 초기 컴파일 시간이 길었고("Compilation is in progress" 메시지가 반복), 첫 이미지 생성까지 10분 이상 걸리기도 했지만, 이후부터는 훨씬 안정적으로 작동했습니다. 512x512 이미지는 빠르게 생성되며, DirectML보다 2배 이상 빠른 속도를 경험할 수 있었습니다. 게다가 VRAM 사용이 효율적이어서 고해상도 이미지 생성도 문제없이 진행됩니다.

 

 코딩에 익숙하지 않은 초보가 설치하기에는 정말 어려웠습니다. 하지만 도전 끝에 해내고 나니 너무 뿌듯하더군요. 이제는 조금 더 블로그 글에 어울리는 이미지를 생성할 수 있게 되었습니다. 사실 LLM 모델들이 만드는 이미지가 제 마음에 들지 않았기 때문에 이를 찾아 헤맸습니다. 다음에는 베이스 모델을 공부하여 이미지 생성하는 것에 대해서 작성해 보겠습니다. 감사합니다. 

AMD에 Stable Diffusion Web UI 설치하기(3), SD NEXT 버전

 

AMD에 Stable Diffusion Web UI 설치하기(3), SD NEXT 버전

AMD에 Stable Diffusion Web UI 설치하기(2), zluda 버전 AMD에 Stable Diffusion Web UI 설치하기(2), zluda 버전AMD에 Stable Diffusion Web UI 설치하기(1), Direct ML 버전 AMD에 Stable Diffusion Web UI 설치하기(1), Direct ML 버전Stable

myview7144.tistory.com

 

반응형