AI 이미지/AI 기타

VRAM이 적은 PC에서 Flux AI 실행시키기

하늘이푸른오늘 2024. 12. 25. 14:41

Fulx AI 는 2024년 8월 현재 가정용 PC에서 돌릴 수 있는 가장 좋은 오픈소스 AI 이미지 생성기 입니다. 하지만 파라미터가 120억개에 이르러 요구 VRAM 용량이 무지막지합니다. 이 글에 따르면 ComfyUI 에서도 최소 16GB가 필요하니까요. 하지만 고성능 GPU 카드가 없어도  6GB  VRAM으로도 Flux AI를 돌릴 수 있는 방법이 있습니다. SD Forge WebUI를 사용하는 방법입니다.

Forge란?

SD Forge는 스테이블 디퓨전용 AUTOMATIC1111 의 포크중 하나입니다. 속도와 GPU VRAM 소모를 최적화할 수 있도록 백본을 새로 작성하였다고 합니다. A1111을 사용해보신 분이라면 Forge도 쉽게 사용하실 수 있을 것입니다.

SD Forge 설치 방법은 이 글을 읽어보시기 바랍니다. 사용법은 AUTOMATIC1111 사용법과 거의 비슷하니 참고하세요.

low VRAM NF4 Flux 모델이란?

4 비트 NormalFloat(NF4) Flux는 복잡한 4비트 양자화(quantization) 기법을 사용하여 더 작은 메모리와 빠른 속도를 달성합니다. 이는 ChatGPT와 같은 거대 언어모델을 위해 개발된 QLoRA 기법을 기반으로 합니다. NF4는 가중치가 정규분포를 이루는 경우에 이론적으로 최적화된 새로운 데이터 유형입니다.

Forge에서 Flux AI NF4 모델을 사용하는 방법

1단계: Forge 업데이트

Forge는 최근에 Flux를 지원하기 시작했습니다. 따라서 사용하기 전에 업데이트가 필요합니다. Forge 설치 폴더(아마도 webui-forge-cuXXX-torchXXX)에서 update.bat를 더블클릭하면 됩니다.

2단계: Forge AI 모델 다운로드

다음 두가지 중 하나를 선택하여 다운로드 받습니다.

다운로드 받은 후 webui_forge_cuXXX_torchXXX/webui/models/Stable-diffusion 폴더에 넣어줍니다. AUTOMATIC1111과 모델을 공유할 경우, stable-diffusion-webui/models/Stable-diffusion 에 넣어주시면 됩니다. (이 경우, 모델을 다운로드 받은 후 화면 새로고침(F5)가 필요합니다)

3단계: 이미지 생성

SD Forge WebUI에서 UI를 flux로 설정하고 체크포인트 파일을 위에서 다운로드 받은 파일을 선택합니다. 

프롬프트를 입력합니다. 아래는 예입니다.

A beautiful witch with white wings like angel, empty hall, victorian building, large window, dramatic light, looking at viewer

이미지 크기는 아래와 같이 설정합니다.

  • 1024 x 1024 (Square)
  • 1216 x 832 (3:2)
  • 1344 x 768 (16:9)

Flux모델은 부정적 프롬프트를 지원하지 않습니다. 이 때문에 CFG 척도를 1로 설정하고 생성합니다.

아래는 이렇게 생성한 이미지입니다. 제 3070에서 48초가 소요되었네요.

원래 Flux AI 모델은 프롬프트 이해도가 높고, 해부학적 표현이 정확하고, 문자를 잘 그리는 등 높은 성능을 보인다고 합니다. 그래서 이 글 에 나오는 프롬프트를 따라서 적용해봤습니다.

프롬프트: Photo of a cute woman, in kitchen cooking turkey, looking at viewer, left hand fixing her beatuiful hair, holding a kitchen knife on the right hand. 

아래는 원본 글에서 생성한 결과물인데... 오른손에 칼을 들고, 왼손은 머리를 정리하고, 부엌에서 칠면조 요리를 하는 모습... 이라는 프롬프트를 충실히 따르고 있네요.


반면 아래는 Forge에서 생성한 결과물인데, 오른손에 칼 들라는 프롬프트는 적용이 안되었습니다.  아무래도 간단 모델의 한계가 아닐까 싶습니다. 

한번 더 실행시켜 봤는데, 여전히 프롬프트를 못따르네요. 특히 왼손은 손가락이 많이 이상하고요.

아래는 다시 벽에 "FLUX"라는 글자가 쓰이도록 추가해서  실행시켜 봤습니다. 

프롬프트: Photo of a cute woman, in kitchen cooking turkey, looking at viewer, left hand fixing her beatuiful hair, holding a kitchen knife on the right hand.  A artistic picture with the word "FLUX" on the wall behind the woman.

그런데... 더 복잡해졌는데도 모든 프롬프트를 잘 따르고 있습니다. 글자도 잘나오고 오른손 왼손 모두 정확하네요.

흠... 한번더 실행시켰더니 오른손 왼손이 바껴버렸네요. 그래도... ㅎㅎ

혹시나 해서 아래와 같이 긴 텍스트를 그려달라고 했는데... 아니나 다를까 글씨가 완전히 사라지네요.

프롬프트: Photo of a cute woman, in kitchen cooking turkey, looking at viewer, left hand fixing her beatuiful hair, holding a kitchen knife on the right hand. A artistic picture with the word "FLUX AI model is Very Nice" on the wall behind the woman.

이상입니다.

이 글은 stable-diffusion-art.com의 글을 번역하면서 실제 테스트한 결과로 대체하여 작성한 글입니다.