
4070 그래픽 카드에서 FLUX 실행하기
요약
RTX 4070과 같은 소비자용 GPU 환경에서 FLUX 모델을 효율적으로 실행하기 위한 양자화(Quantization) 및 로컬 워크플로우 구축 방법을 소개합니다. Google Colab과 LoRA를 활용하여 개인의 예술 스타일을 학습시키고 로컬에서 생성형 AI를 구현하는 과정을 다룹니다.
핵심 포인트
- 양자화 기술을 통해 저사양 GPU에서도 대규모 모델 실행 가능
- LoRA를 활용하여 개인의 예술 스타일을 모델에 학습 가능
- Google Colab 노트북을 활용한 효율적인 로컬 환경 구축 방법
- Hugging Face 베이스 모델과 양자화 모델의 결합 활용
서론
과거에 저는 로컬 비디오 및 이미지 생성을 만족스럽게 작동시키기 위해 몇 가지 시도를 해왔습니다. Ollama로 멋진 작업들을 할 수 있다는 것을 알고 있었기에, 제 오래된 MacBook에 M 칩이 없다는 사실에 한동안 짜증이 나기도 했습니다. 하지만 매년 컴퓨터를 새로 사는 것은 비현실적이고 낭비적인 일입니다. 최근 제가 시도했던 일 중 하나는 ComfyUI에서 Fable을 사용하여 워크플로우(workflow)를 설정하는 것이었습니다. 그것이 참신하고 인상적으로 보일 수는 있지만, 결과물은 기껏해야 형편없는 수준이었고 저는 전혀 즐겁지 않았습니다. 노드(node) 혼란은 물론, 그중 절반은 제가 읽을 수 없는 언어로 되어 있었습니다. 저는 이미 너무 많은 프로젝트를 가지고 있으며, 즉석에서 외국어를 해독하거나 3개월 동안 YouTube에서 30개의 노드 처리 영상을 시청할 여유가 없습니다. 시간은 여기서 매우 중요한 요소입니다.
무료 Fable 사용의 3번째 연장 기간을 통해 저는 그것을 최대한 활용하고 있습니다. 또한 낭비하지도 않습니다. 나중에 스스로 재현할 수 있도록 모든 종류의 노트를 제 Vault에 저장하고 있습니다. 그리고 솔직히 말해서, 이것은 제 워크플로우에 있어 진정한 실질적 가치를 제공합니다.
횡설수설하기 전에, 훌륭한 Google Colab 노트북을 공유해 준 유튜버 Richard Aragon에게 공로를 돌려야겠습니다. 저는 양자화(quantization)가 도대체 무엇인지 더 자세히 알고 싶어서 양자화에 관한 영상을 찾다가 우연히 이 모든 과정에 발을 들이게 되었습니다. 이 심층 탐구 시도가 로컬 생성이라는 개인적인 문제를 해결하는 길로 저를 인도할 줄은 꿈에도 몰랐습니다. 참고로, 그는 4060에서도 이것이 가능하다고 언급했습니다. 그러니 여러분, 약간의 인내심과 좋은 타이밍만 있다면 모든 것을 포기할 필요는 없습니다. 저는 개발자로서 우리가 타의 추종을 불허하는 인내심을 가지고 있다는 것을 알게 되었습니다. 따라서 이 포스트는 여러분을 위한 것입니다. 제가 단 한 사람이라도 엄청난 좌절로부터 구할 수 있다면, 저는 제 할 일을 다 한 것입니다. 독점하는 것보다 공유하는 것이 더 낫습니다. 왜냐하면 Richard Aragon처럼, 저 또한 공유하고 돕는 것을 훨씬 선호하기 때문입니다. <3
자신만의 워크플로우 시작하기
다음은 Richard의 YouTube 링크이며, Google Colab 링크는 메모에 있습니다:
정말 놀라운 점은 양자화된 모델 (quantized model)을 로컬에서 사용하고, 제 개인 콘텐츠로 이를 학습시킬 수 있다는 사실을 발견했다는 것입니다. 예술가로서, AI가 제 예술 스타일로 어떻게 이미지를 생성할 수 있을지 매우 궁금했습니다. 미션 수락!
제가 부끄러움 없이 실행한 정확한 방법은 다음과 같습니다:
❤️ 저는 Fable에게 제가 달성하려는 바를 설명하며 Google Colab 노트북 링크를 전달했습니다. Fable은 노트북에서 데이터를 가져와 로컬에 생성했습니다. 즉, 제가 원하는 대로 수정할 수 있는 워크플로우 (workflow)의 개인 복사본을 만든 것입니다.
🧡 Hugging Face의 34GB 베이스 모델 (base model)을 사용하여, 이제 저는 제 이미지를 학습시켜 저만의 스타일을 만들 수 있습니다. 이는 베이스 모델에 부착되는 "렌즈" 역할을 하는 LoRA 파일 (LoRA file)을 사용하여 수행됩니다. 이는 여러분의 로컬 워크플로우에서 여러 개의 렌즈(스타일!)를 갖도록 학습시킬 수 있음을 의미합니다. Richard는 그의 영상에서 (혹시 들어보지 못하셨다면 유명한 예술가인) 고(故) 알폰스 무하 (Alphonse Mucha)의 작품들을 사용하여 모델을 학습시킵니다. 결과는 정확했으며, 양자화 (quantization) 후에도 대부분의 결정적인 특징을 유지할 수 있을 만큼 충분한 데이터를 보유하고 있었습니다. 이 지식을 활용하여, 저는 대조군 확인을 위해 그와 동일한 테스트를 수행했습니다.
- 학습을 하지 않은 테스트 1회.
- 학습을 진행한 테스트 1회.
💛 테스트를 마친 후, 실험을 위한 구조가 갖춰졌음을 알게 되었습니다. 가장 먼저 해야 할 일은 제 예술 작품 14장과 metadata.jsonl 파일이 담긴 폴더를 만드는 것이었습니다. (어제 처음으로 jsonl 파일을 처음부터 직접 만들었는데, 정말 멋졌습니다, 하하). 이 메타데이터 (metadata)는 이미지의 설명과 실제 이미지를 쌍으로 연결하여 FLUX가 학습을 위해 이를 해석할 수 있게 합니다.
신비감 제거 (Demystification)
본질적으로 우리가 어떻게 12GB 그래픽 카드에서 24GB 모델을 처리할 수 있는지에 대한 설명입니다. 학습과 이해를 돕기 위해 용어를 단순화했습니다:
💚 Shrink/Quantization (축소/양자화) 구체적으로는 bitsandbytes 라이브러리에 의해 수행되는 4-bit NF4 양자화 (NormalFloat4)를 의미합니다. "8-bit"와 "4-bit"는 각 모델 가중치(weight)를 저장하는 데 몇 비트가 사용되는지를 나타냅니다.
🩵 Freeze/Parameter-efficient fine-tuning (동결/매개변수 효율적 미세 조정) (PEFT), 구체적으로는 LoRA (Low-Rank Adaptation)를 의미합니다. 기본 모델의 매개변수(parameters)는 동결(frozen)되며, 대신 작은 저차원 어댑터 행렬(low-rank adapter matrices)을 학습시킵니다.
💜 Precompute/Embedding (사전 계산/임베딩) 캐싱 및 잠재 변수(latent) 캐싱입니다.
🩷 Right-size/No single fancy word (적정 규모화/특별한 용어 없음) 메모리 점유율(Memory footprint) 관리: 더 낮은 학습 해상도, 그래디언트 누적(gradient accumulation)을 사용하는 배치 크기 1, 그래디언트 체크포인팅 (gradient checkpointing, 저장 대신 재계산), 그리고 8-bit 옵티마이저 (optimizer)를 사용합니다. 각 방법은 많은 메모리를 확보하는 대신 약간의 속도나 정밀도를 희생합니다.
현재로서는 화려한 UI는 없습니다 (...이미 계획이 죽어버렸거든요 😂) 하지만 터미널을 사용하고 이후 선택적 매개변수와 함께 파이썬(python) 스크립트를 실행하면 이미지 생성에 추가적인 유연성을 제공합니다.
다음은 저의 첫 번째 로컬 테스트 결과물입니다
Control 1 - 학습되지 않음
Control 2 - Alphonse Mucha
Training 1 - 100 스텝 예술 작품 (빠름, 몇 분 소요)
Test 1 - 100 스텝 예술 작품 (EVERFLUO 스타일)
훈련 2 - 700 스텝 아트워크 (1시간 이상)
테스트 2 - 700 스텝 아트워크 (EVERFLUO 스타일)
스타일에 훨씬 더 가까워졌습니다.
테스트 3 - 한계를 확인하기 위해 매우 커스텀된 프롬프트(prompt)로 EVERFLUO 스타일을 실행했습니다. 더 화려하게 만들기 위해서는 추가적인 작업/훈련이 필요합니다.

어떤 일이 일어나는지 보기 위해 모델을 훈련 범위를 벗어나게 밀어붙여 보았습니다.
비디오는 어떤가요?
기존의 이미지 생성 설정을 활용하여 비디오 생성 워크플로우(workflow)를 구축할 수 있었습니다. 현재 제 그림 중 하나를 사용하여 4070에서 5초짜리 비디오를 만드는 시도를 하고 있습니다. 최소 1시간은 걸릴 예정이며, 이 포스트를 업데이트하겠습니다.
그건 그렇고, 5090 없이도 일 년은 더 버틸 수 있겠네요, 아마도 XD.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기


