GGUF(GGML Universal File) 파일 형식은 텐서와 메타데이터를 단일 파일에 저장하는 바이너리 형식 포맷으로서, 모델 데이터를 빠르게 저장하고 로드할 수 있도록 설계되었다....(중략).... GGUF 파일은 일반적으로 PyTorch나 Tensor와 같은 다른 머신 러닝 라이브러리로 개발된 모델을 변환하여 생성된다.(출처: GGUF-wiki)
저는 머신러닝에 대해선 거의 모르지만, GGUF는 그냥 공통 파일 포맷 정도로 생각하면 되고, 무엇보다 대형모델을 빠르게 돌릴 수 있는 장점이 있다고 합니다.
사실 제가 GGUF까지 관심을 둘만한 일은 아닙니다. 그런데... Stable Diffusion 보다 성능이 좋다는 Flux 모델을 사용하고 싶은데, SD-Forge에서는 소형모델이나마 지원해주는데, ComfyUI에서는 소형모델(NF4)를 지원해주는 커스톰 노드를 찾았으나 현재는 오류가 발생하고, 이 커스톰 노드 대신 ComfyUI_GGUF 커스톰 노드를 사용하라고 되어 있어, 어쩔 수 없이 뒤적거리기 시작했습니다.
아무튼 이 글에서는 GGUF를 사용하면 Flux AI 모델을 돌릴 수 있는 방법을 설명드립니다.
====
Flux 는 Black Forest Labs에서 개발한 텍스트-이미지 디퓨전 모델입니다. 2024년 현재 자신의 PC에서 돌릴 수 있는 오픈 소스 이미지 모델중 최고라고 알려져 있습니다. StabilityAI에서 공개한 SDXL이나 Stable Diffusion 3 medium 에 비해 품질이 월등하다고 합니다.
특히 Flux.1 dev 모델은 프롬프트를 아주 잘 이해하고, 손가락 등이 잘못 생성되는 등의 문제가 없으며, 텍스트도 매우 잘 생성합니다.
이 글에서는 Flux 모델 자체가 아니라, Flux를 변환한 GGUF 파일을 돌리는 방법을 설명합니다.
Flux AI 모델의 종류
Flux AI 모델은 아래와 같은 종류가 있습니다.
- Single-file FP8 버전 - 모든 내용이 하나의 파일로 포함된 중간정도 정밀도의 모델. 사용하기 쉽다.(16GB)
- Flux Schnell 버전 - 농축된 4단계 모델. 샘플링 시간이 줄어든 만큼 품질도 저하된다.(16GB)
- Regular FP16 풀버전 - 완전한 정밀도 버전으로 품질이 약간 더 좋다.(24GB)
이상에서 보는 것처럼 정상적인?? Flux AI 모델은 상당히 높은 수준의 VRAM을 요구합니다. 제가 사용하는 3070은 8GB로 어떤 것도 돌리기가 힘들죠.
이 이외에도 Flux1 dev NF4 모델도 있습니다. 이 모델은 훨씬 더 크기를 줄인 모델로서 최소 6GB VRAM에서도 돌릴 수 있습니다. 하지만, 이 모델은 현재 Forge 만 지원하고 ComfyUI에서는 지원을 하지 않습니다.
제가 이 글에서 사용하는 Flux GUFF 모델은 다음과 같은 종류가 있습니다. 그리고 이 링크를 들어가면 보시겠지만, 2bit ~ 16bit까지 다양한 종류의 파일이 존재합니다. 어떤게 어떻게 좋은지는 잘 모릅니다. 그냥 파일의 크기가 큰 게(bit 수가 높은 게) 품질이 좋겠다고 합니다.
소프트웨어
이 글에서는 스테이블 디퓨전용 GUI중에서도 제가 제일 좋아하는 ComfyUI를 사용합니다. ComfyUI가 처음이시라면, 설치 및 기본 사용방법 및 초보가이드를 확인하시기 바랍니다.
따라하기
1단계: 모델 다운로드
GGUF unet 모델
저는 Flux dev GGUF 모델을 사용합니다(참고 Schnell 모델). 링크에 들어가면 아래와 같이 여러개의 파일이 보이는데, 원하는 것만 골라서 다운로드 받으시면 됩니다. 저는 이중에서 F16, Q8_0, Q3_K_S 등 세가지를 받았습니다. F16은 23.8GB 나 되어서 3070에서 절대 안돌아갈 것 같았지만 돌아가더군요. 어떻게 가능한지는 모르겠지만요.
어쨌든 다운로드 받은 파일은 ComfyUI_windows_portable\ComfyUI\models\unet 속에 넣어주시면 됩니다.
CLIP 모델
다음은 CLIP 모델입니다. 먼저 여기에 들어가서 t5 clip encoder GGUF 파일을 다운로드 받아, ComfyUI_windows_portable\ComfyUI\models\clip 에 넣어줍니다. 마찬가지로 아래와 같이 많은 파일이 보이는데, 저는 여기도 마찬가지로 같은 버전으로 받았습니다.
다음으로 일반적인 클립인 clip-l 모델을 다운로드 받아서 동일한 폴더에 넣어줍니다.
아래가 제가 다운로드 받은 결과입니다.
vae 모델
마지막으로 vae 모델이 필요합니다. 여기에 들어가서 다운로드 받은뒤, ComfyUI_windows_portable\ComfyUI\models\vae 폴더에 넣어주시면 됩니다. 원하시면 구분하기 쉽도록 파일명을 flux-dev-gguf.safetensors 로 변경해주시면 좋습니다.
2단계: 워크플로 불러오기
아래의 JSON 파일을 ComfyUI에 불러옵니다. 좌측위의 Workflow->Open 메뉴를 사용하면 됩니다. 참고로 이 워크플로는 ComfyUI Example 사이트에 있는 FLUX 샘플에서 Loader 부분만 GGUF 용으로 변경한 것입니다.
이 워크플로를 불러오면 대부분 오류가 발생할 것입니다. 그러한 경우, 다음과 같은 작업이 필요합니다.
- 처음 사용할 때 - ComfyUI Manager 를 설치해야 합니다.
- ComfyUI를 오랜만에 사용할 때 - ComfyUI를 최신버전으로 업데이트해야 합니다.
- 노드가 없다고 (빨간색) 경고가 뜰 때 - 빠진 커스톰 노드를 가져오기해야 합니다.
- 불러오기 혹은 수행중 에러 발생시 - 커스톰 노드를 업데이트해야 합니다.
3단계: 프롬프트 검토
이 워크플로에서는 다음과 같은 프롬프트를 사용했습니다. 왼손은 머리를 가다듬고, 오른손은 칼을 들고 칠면조 요리를 자르려는 모습입니다. 또 뒷쪽 벽에 " Flux GUFF"라는 텍스트가 나타나도록 했습니다.
프롬프트: Photo of a cute woman, in kitchen cooking turkey, looking at viewer, holding a kitchen knife on the right hand and cut the turkey, left hand fixing her beatuiful hair. "Flux GUFF" is written on the back wall.
4 단계: 이미지 생성
이제 QUEUE 버튼을 누르면 이미지가 생성됩니다. 보시는 것처럼 텍스트가 약간 이상하긴 해도 원하는 이미지가 잘 뽑혔습니다.
저 bit 모델 테스트
8 bit 모델
위의 설정으로 생성했을 경우, 대략 이미지 생성에 1분 15초 정도 소요되었습니다. 아.. 이건 모델을 불러오고 CLIP encode하는 시간은 제외한 단순 샘플링 시간입니다.
여기에서 Flux GGUF와 CLIP을 모두 Q8_0 버전으로 바꾸고 실행시키면 생성시간이 1분 1초 정도 소요되네요. 아래는 실행 결과입니다. 이미지 자체는 문제가 없는데, 글씨나 자세등이 원하는대로 나오지 않네요.
![]() |
![]() |
3비트 모델
3비트 모델로 실행하면 시간이 1분 3초정도 걸리네요. 비트수가 낮으면 모델 크기도 작은데 8비트 모델보다 시간이 더 걸리는 건 이상하네요. 아래가 결과인데... 흠... 그냥 16비트로 돌리는 게 제일 나을 것 같네요.
![]() |
![]() |
워크플로 설명
좌측 위에는 모델 불러오는 노드들이 있습니다. 아래처럼 세가지 모델을 각기 지정해주면 됩니다.
이 오른쪽에 프롬프트와 관련된 노드들이 모여 있습니다. [CLIP Text Encode] 에서 [FluxGuidance] 그 다음 [Basic Guider] 를 거쳐 샘플러로 들어갑니다.
이 아래쪽에는 샘플러 관련 노드들이 모여 있습니다. KSampler의 경우엔 모든 기능이 포함되어 있지만, 여기에서는 여러가진 노드를 조합해서 만들어줘야 한다는 점이 다릅니다. 그런데... 왼쪽 위에 있는 [ModelSamplingFlux]노드는 무슨 역할을 하는지 모르겠네요.ㅠㅠ
간편 워크플로
아래는 [SamplerCustomAdvanced] 노드를 사용하지 않고, [KSampler]노드를 사용한 버전입니다. 워크플로는 완전히 다르게 생겼지만, 결과는 비슷합니다.
![]() |
![]() |
이상입니다.
이 글은 stable-diffusion-art.com의 글 등 여러가지 글을 참조로 해서 작성하였습니다.
- ComfyUI로 설치 및 사용법 기초
- ComfyUI 투토리얼
- ComfyUI를 위한 유용한 정보
- ComfyUI와 SDXL 사용법(1) - 기초
- ComfyUI에서 ControlNet 사용법
- 편리한 ComfyUI 워크플로 모음
- LCM-LoRA - 초고속 스테이블 디퓨전
- Stable Video Diffusion(비디오 스테이블 디퓨전)
- Stable Diffusion 인공지능 이미지 생초보 가이드
- Stable Diffusion 대표 UI - AUTOMATIC1111 설치방법
- Automatic1111 GUI: 초보자 가이드(메뉴 해설)
- Stable Diffusion에 대한 기본적인 이론
- ChatGPT로 스테이블 디퓨전 프롬프트 만들기