스테이블 디퓨전(StableDiffusion)

어느 세월에 뽑아요ㅠ.. 스테이블 디퓨전 이미지 생성 속도 Up! 하는 방법!

물범쌤 2024. 5. 23. 15:42

안녕하세요 여러분. 물범쌤입니다.

간만에 포스팅으로 찾아뵈었는데요.

집안 어르신께서 별세하셨기에,
장례식을 치르느라 포스팅 업로드가 지연되었습니다.

미리 공지드리지 못해 죄송합니다.


자, 분위기를 바꿔서 본론으로 들어가겠습니다!

스테이블 디퓨전을 사용하시면서 가장 고민되시는 부분 중 하나가
아마 이미지 생성속도가 아닐까 싶습니다.


프롬프트가 짧은 경우에는 크게 상관 없지만,

제가 주로 진행하는 실사 이미지 생성의 경우에는

프롬프트 초반에 화질에 대한 프롬프트를 나열하면서
자연스럽게 프롬프트의 전체 길이가 길어질 수 밖에 없기 때문에

이미지 생성속도가 느려지는 문제점이 있습니다.

 

오늘은 몇 가지 체크 사항과 개선 방법을 통해

같이 이 부분을 해결해 봅시다 :)


1. 사양체크

첫 번째로 확인해야 하는 사항은 바로 컴퓨터의 사양체크 입니다.

정확하게는 그래픽 카드의 성능을 확인해야 하는데요,

지난번 스테이블 디퓨전 설치방법을 다룬 포스팅에서 말씀드렸지만,

스테이블 디퓨전이 구동되는데에 가장 중요한 사항이
GPU의 성능과 VRAM의 용량입니다.

 

비교를 위해 제가 기존에 사용하던 GTX 1060과

이번에 교체한 RTX 3060에서

동일한 프롬프트로 이미지 생성을 진행해 보았습니다.

 

(생성된 이미지 밑에 제작시간이 표시되지만,
가시성을 높이기 위해 별도 타이머를 사용했습니다.)

GTX1060 - 41분 27초

 

RTX 3060 - 1분 25초

 

Q. 에이, 쌤! 아무리 차이를 보여주고 싶으셔도 그렇지

이미지 하나에 41분이 걸리는게 말이 되나요?

조작같은데요?

 

A. 아래에 80배속 노컷영상을 첨부했으니 한번 확인해보세요.
저도 믿기지 않았습니다.ㅠㅠ

 

1060_80배속.mp4
4.37MB

 

 

 

그래픽 카드는 위의 두 가지를 결정짓는 가장 중요한 컴퓨터 부품이기 때문에

이것에 따라서 이미지 생성 시간이 천차만별로 차이나게 됩니다.

아래는 그래픽카드 성능에 따른 이미지 생성속도 비교 그래프 입니다.

 

따라서 컴퓨터 그래픽카드의 사양이 낮으신 분들은 로컬 web-ui 보다는
구글 COLAB을 사용하여 스테이블 디퓨전을 사용하시는 것을 추천드립니다.

 


2. xformers

xformers는 자연어 처리를 가속화 하고,
VRAM의 사용량을 감소시켜주는 일종의 모듈입니다.

이렇게 말씀드리면..여러분께서 전혀 이해가 안되시겠죠?

 

 

쉽게 설명드리겠습니다.

예를들어 우리가 프롬프트를 입력하면,
스테이블 디퓨전은 그 단어들을 하나하나 사전에서 찾아가면서

무슨뜻인지 기억하고, 이해하면서 이미지를 생성하려고 합니다.

 

하지만 xformers를 설치하면 스테이블 디퓨전에게

 

"야! 그거 언제 다 기억하고 이해할라고 그래!

쉬운 말들은 그냥 벼락치기 식으로 느낌만 대충 캐치하고 넘어가!
알잘딱 하라고! 오케이?"

 

이렇게 전달 된다고 보시면 됩니다.

 

실제로 이미지 생성과 동시에 진행되는 업스케일 옵션인 Hires.fix를 사용해보면

xformers를 사용했을 경우가 사용하지 않았을 경우

이미지 생성 속도에 차이가 거의 2배에 달하는것을 볼 수 있습니다.

이미지를 클릭하세요!

 

 


xformers는 web-ui 배치파일을 통해 설치할 수 있습니다.

 

1. 만일 저를 따라 설치하셨다면 C:\stable-diffusion-webui 경로로 이동해주세요
그리고 우리가 스테이블 디퓨전을 실행할때 클릭하는 web-ui 배치파일을 찾아주세요

 


 

2. 배치파일을 우클릭 하셔서 '편집'을 눌러주세요!

메모장을 여시고 드래그 앤 드롭으로 넣으셔도 됩니다.


3.우리가 작성할 부분은

'set COMMANDLINE_ARGS=' 라는 부분입니다.

이 부분은 web-ui가
스테이블 디퓨전을 런치하기 전에 적용되어야 하는 변수들을 설정하는 부분입니다.

예를 들자면 학교가는 아이에게 준비물을 쥐어주는 개념인것이죠.

 

우리는 이 옆으로 xformers를 포함하여 여러가지 도움이 되는 설정들을 해줄겁니다.

아래의 구문을 ARGS 옆쪽으로 붙여넣기 해주세요.

--xformers --no-half --precision full --no-half-vae --autolaunch

 

 

※ 구문을 해석해 보자면 다음과 같습니다.

--xformers : xformers 설치 / 속도 증가 (Nvidia 그래픽 카드의 경우 확실히 차이난다고 하네요)

--no-half : 리소스 리미트 해제

--precision full : 정밀도 증가

--no-half-vae : vae 모델을 16비트 플롯으로 바꾸지 않고 그대로 사용

--autolaunch : 웹브라우저 자동 실행

 

이렇게 설정해주고 배치파일을 다시 실행해 주시면 됩니다 :)

별도로 UI가 변하는 부분은 없으니 이미지는 별도로 첨부하지 않겠습니다.

 

Q. 잠깐만요, 쌤!
저는 구글 COLAB을 쓰는데 xformers 를 어떻게 설정하나요?

 

A. xformers는 40번대 이하의 그래픽 카드에서
'CUDA'라는 병렬적 컴퓨팅 기능을 실행할 수 없을때 설치하는 모듈입니다.

따라서 스테이블 디퓨전을 위해 유료버전의 COLAB을 설치하신 분들이라면

이미 고효율의 GPU를 사용하시는 것이기 때문에

xformers를 설치하실 필요가 없습니다 :) 


 

**여기서 추가적인 팁을 한가지 더 드리겠습니다.

스테이블디퓨전 web-ui는 현재 'git'이라는
공동 개발 프로그래밍 사이트를 통해 지속적으로 업데이트 되고 있습니다.

 

따라서 익숙하고 편하다는 이유로 계속 구 버전의 web-ui를 쓰면,

추후에 확장 기능이나 확장프로그램을 사용할때 어려움을 겪을 수 있습니다.

우리는 스테이블 디퓨전을 로컬로 설치했을때에 이미 git을 설치했기 때문에

업데이트 방법은 매우 간단합니다.

'git pull'이라는 구문을 추가하면 끝입니다.

이 상태로 저장하고 배치파일을 실행하면 업데이트를 실시하게 되는데

업데이트 후에는 꼭 배치파일에서 해당 구문을 삭제해 주세요

안그러면 스테이블 디퓨전을 켤때마다 업데이트를 하기 때문에

구동시간이 지연됩니다.


3. Stability Matrix

 

스테빌리티 매트릭스는 스테이블 디퓨전과 관련된 프로그램을 통합으로 설치할 수 있는

일종의 종합 컨트롤 프로그램입니다.

 

Stable Diffusion - 기본 버전

Stable Diffusion Forge - 기본 버전에서 VRAM사용효율을 높여 생성속도를 끌어올린 버전

Comfy UI - 노드UI를 통해 불필요한 데이터처리를 줄여 생성속도를 끌어올린 버전

 

스테빌리티 매트릭스의 장점은
기존에 URL을 통해 설치해야만 했던 프로그램들을
버튼 한 번으로 설치할 수 있고,

기존에 web-ui에서 사용하던 확장파일들을

일괄적으로 다른 프로그램들과 공유해서 사용할 수 있다는 장점이 있습니다.

 

다만 설치하는 과정에서 오류가 발생하기도 하니 이부분은 유의해서 진행해주세요

 

설치는 쉽습니다.

1.스테빌리티 매트릭스의 배포 사이트인 https://lykos.ai/ 로 이동해주세요

해당 프로그램을 설치해 줍니다.

 

※ 여기서 중요한게 있는데,

Stability Matrix를 설치하는 경로에 유의해주셔야 합니다.

설치 경로에 한글이 들어가는 경우 디렉토리 경로를 읽을 수 없어 

스테이블 디퓨전 설치시에 오류가 발생합니다.

 

예시

C:\Users\물범\AppData\Roaming\StabilityMatrix -> 오류

C:\Users\moolbum\AppData\Roaming\StabilityMatrix -> 정상 구동

 

하지만 컴퓨터 로그인 계정이 이미 한글로 생성되어있으신 분들이 있으시겠죠?

그런 분들은 스테이블 디퓨전 설치시에 하셨던 것처럼
C드라이브 바로 밑에 설치 해주시면 해당 오류를 피해가실 수 있습니다 :)

 


 

2. 설치가 완료되면 Add Package를 통해 설치를 진행해주세요

저는 이미 Stable Diffusion Forge 와 Comfy UI 를 설치했기 때문에

기본 Stable Diffusion으로 예시를 보여드리겠습니다.

 


 

3. 여러가지 패키지가 뜨는데

여러분들은 Stable Diffusion Forge를 먼저 설치하시는걸 추천드립니다.

Stable Diffusion Forge는 기존  web-ui와 UI(유저 인터페이스)가

거의 동일하기 때문에 빠르게 적응 하실 수 있습니다 :)

 

저는 위에서 말씀드린대로 이미 설치되어 있기 때문에

기본 스테이블 디퓨전으로 진행하겠습니다.

(조만간 ComfyUI에 대해서도 포스팅 예정입니다.^^)

 


4. 이 화면에서 Advenced Options를 통해

체크포인트나 로라를 먼저 설치하실수 있는데

어차피 저희는 기존에

로컬에 설치했던 파일들을 공유해서 사용할것이기 때문에

그냥 Install을 눌러주세요

 


 

5. 설치 화면에서 꺾쇠를 눌러서 설치 진행도를 눈으로 확인할 수 있습니다.

 


 

6. 설치가 정상적으로 끝나셨다면 아마 패키지에 프로그램들이 보이실 겁니다.

 


 

6. 여기서 끝이 아니죠

위에서 말씀드린대로 체크포인트 등의 파일들을 공유시켜야 합니다.

좌측 메뉴에서 Checkpoints 메뉴를 클릭해주시고,

꺾쇠를 열어주시면 드래그 앤 드롭을 통해 파일을 넣으실 수 있습니다.

 

각 파일들의 경로는 저를 따라 설치하셨다면
C:\stable-diffusion-webui\embeddings  ,
C:\stable-diffusion-webui\models 에서 찾아 넣으시면 됩니다.


 

Q.잠깐만요 쌤! 이전에 받았던 임베딩 파일인 'easynegative'파일을 넣으려고 했는데

쌤 화면에 보이는 TextualInversion 파트가 저한테는 없는데요?

 

A.기본 셋팅에는 TextualInversion 파트가 포함되어 있지 않습니다.

상단에 'Categories'를 통해서 임포트 메뉴를 커스터마이징 할 수 있습니다 ^^

 

이런 식으로 파일들이 들어가게 되면 완료입니다.

한번 Stable Diffusion Forge를 사용해볼까요?

 


 

 

어떤가요? 기본 Web-ui와 거의 동일하죠?

하지만 이미지를 생성해보시면 속도가 확연히 차이나는것을 느끼실 수 있으실 겁니다.


오늘은 여기까지

스테이블 디퓨전의 고질적인 문제인 이미지 생성속도를 개선하는 방법을 알아보았습니다.

 

이 컨텐츠가 유익하셨다면 공감(♡)과 댓글 부탁드립니다.

 

그럼 오늘도 좋은 하루 되세요! ^^

반응형