개발/툴

Mac에서 스테이블 디퓨전(Stable Diffusion) 설치 과정과 half 오류메시지 대응

jeonjoy 2023. 5. 31. 09:40

AI로 게임이펙트 텍스쳐를 제작할 수 있다는 소식에 나도 시도해보고자 여러가지를 찾다가 관련 개발자들이 Stable Diffusion을 사용중인것을 보고 맥에서 설치를 시도했다. 참고로 내 맥은 2019버전에 AMD 그래픽카드를 사용중인 환경이다. 아래는 내가 설치한 방법을 기록한 것인데, 터미널을 열고 순차대로 아래와 같이 입력해주면 된다.

 

1. 파이썬 설치하기

 

터미널을 실행한다.

 

더보기

brew install cmake protobuf rust python@3.10 git wget

 

를 입력해준다. 그러면 약 5분 정도가 소요되고 Installed 단어와 함께 터미널에 메시지가 뜨면서 설치가 완료된다. 찾아봤을 땐 5분 정도 걸린다고 했지만, 내 경우에는 그것보다 한 10분은 더 걸린 것 같다. 😢

 

+ 만약 파이썬 설치가 진행되지 않고 오류메시지가 뜬다면? -> 대부분의 경우 Homebrew 가 맥에 설치되어 있지 않아서 뜨는 에러인데, 아래 사이트에 방문해서 설치해도 되고,

Homebrew 공식 홈페이지

 

아니면 마찬가지로 터미널에

 

 

를 입력해주면 된다(웹사이트에도 그대로 적혀있음, 몇가지 설치하면서 예외의 이슈가 생길 수 있기에 홈페이지 링크를 추가해두었다)

 

2. 깃의 Stable Diffusion 클론하기

 

Stable Diffusion은 깃에서 받아오는 방법과 웹사이트에서 링크로 들어가는 방법이 있는데, 웹사이트로 들어갔을땐 유료 버전으로 구독료를 받고 있었다.

정확하게 무슨 차이인지는 모르겠지만 찾아본 결과 많은 분들이 깃에서 받아 설치하고 사용중이여서 나도 대세를 따르기로 했다.

방법은 마찬가지로 터미널을 실행한다.

 

 

를 입력해준다.

그러면 꽤 오랜 시간과 함께 터미널에서 설치가 진행된다.

 

3. 스테이블 디퓨전 폴더로 이동

그 다음 순서로 터미널에 스테이블 디퓨전을 찾고 실행해! 를 말해야 하는데, 그러려면 일단 어디에 종속되어있는지 폴더를 찾아야 한다.

터미널의 명령어중 cd-는 해당 경로로 들어가라는 명령어이다. 따라서

 

터미널을 실행후

 

더보기

cd stable-diffusion-webui

 

를 입력하면 몇 줄과 함께 해당 경로로 진입하게 된다.

 

4. 스테이블 디퓨전 Web UI 실행

 

이제 거의 다 왔다. 폴더까지 진입했으니 터미널에서 바로

 

더보기

./webui.sh

 

를 입력해주면 알아서 해당 파일을 찾아갈 것이다. 마지막에

처럼 URL이 나타나는데 이 URL이 내가 들어가야 할 Web UI(Stable Diffusion) 주소이다.

 

대부분의 경우 같은 주소일 것이다. 설치 후 터미널을 닫지 않은 상태에서(매우 중요)

 

더보기

http://127.0.0.1:7860/

 

로 진입하자.

짜잔. 그러면 이렇게 스테이블 디퓨전이 설치가 된다. 상단 txt2img에서 원하는 Prompt 명령어를 입력해주고 Generate 버튼을 누르면 ai이미지 작업이 실행된다.

 

 

 

+ RuntimeError: "LayerNormKernelImpl" not implemented for 'Half' 에러메시지 해결사례

 

내 경우엔 그런데 키워드 명령어를 넣고 Generate버튼을 누르니 RuntimeError: "LayerNormKernelImpl" not implemented for 'Half' 라고 에러메시지가 뜨고 작업이 실행되지 않았다.

 

원인을 정확히 몰라서 한참 찾았는데 그래픽카드가 원인인 것 같았다. 구글링을 했을 땐 Stable Diffusion 폴더 내의 launch.py 파일을 실행해서 내부 코드를

 

commandline_args = os.environ.get('COMMANDLINE_ARGS', "")

 

에서

 

더보기

commandline_args = os.environ.get('COMMANDLINE_ARGS', "--precision full --no-half --skip-torch-cuda-test")

 

로 바꿔주면 된다고 했는데 이 방법으로도 해결되지 않았다.

삽질 수백만년...

 

어떤 구글링 사이트에서 이런 코멘트를 찾았다.

 

./webui.sh --precision full --no-half

in the end use this command instead of ./webui.sh

 

그래서 다시 터미널 재실행하고 cd stable-diffusion-webui 입력후 바로 ./webui.sh --precision full --no-half

를 넣어준 후 다시 URL을 얻어서 (참고로 같은 URL이다.) 실행했더니

 

짜잔! 나도 드디어 성공했다.

 

근데 문제는 이렇게 방법을 바꾸어서 그런지 이미지 하나 만드는데 엄청 오랜 시간이 걸린다.

 

이걸 가지고 제대로 이펙트 텍스쳐를 작업할 수 있을지 좀 의문이지만, 우선은 여기까지 성공 완료.

 

나처럼 half 에러메시지로 고통받는 사람이 있을까봐 해결되길 바라는 마음에서 글을 작성했다.

 

다음엔 이걸로 이펙트 텍스쳐 사용방법 글을 올려봐야겠다.

반응형