FLUX.2-dev LoRA 학습은 기존 SD 모델 훈련과 매우 다릅니다. FLUX.2 [dev]는 32B 파라미터의 거대한 Rectified Flow 트랜스포머, 24B Mistral 텍스트 인코더, 고품질 오토인코더를 결합하여 텍스트-이미지 생성과 이미지 편집을 단일 체크포인트에서 처리합니다. 이 가이드에서는 다음을 다룹니다:
- FLUX.2 [dev]의 특별한 점
- 이러한 설계가 LoRA 훈련에 미치는 영향
- 다양한 하드웨어 구성을 위한 AI Toolkit 설정 방법
- 원하는 스타일 / 캐릭터 / 편집 동작을 얻기 위한 데이터셋, 트리거, 파라미터 설정 방법
이 문서는 AI Toolkit LoRA 훈련 시리즈의 일부입니다. Ostris AI Toolkit이 처음이시라면, FLUX.2 [dev] LoRA 학습에 들어가기 전에 AI Toolkit LoRA 훈련 개요부터 시작하세요.
목차
- 1. FLUX.2 [dev] LoRA 학습 이해하기
- 2. 어떤 유형의 FLUX.2 LoRA를 훈련할 것인가?
- 3. LoRA 설정에 영향을 주는 FLUX.2 고유 세부사항
- 4. FLUX.2 LoRA 훈련을 위한 하드웨어 및 VRAM 요구사항
- 5. FLUX.2 LoRA용 데이터셋 설계
- 6. 단계별: AI Toolkit에서 FLUX.2 dev LoRA 훈련 구성
- 7. FLUX.2 LoRA 결과 디버깅 및 품질 개선
- 8. 추론에서 FLUX.2 LoRA 사용하기
1. FLUX.2 [dev] LoRA 학습 이해하기
슬라이더를 조작하기 전에, 무엇을 파인튜닝하는지 이해하는 것이 도움됩니다.
1.1 고수준 아키텍처
공식 FLUX.2-dev 모델 카드와 Black Forest Labs 발표에서:
- 베이스 모델
FLUX.2 [dev]는 32B 파라미터 Rectified Flow 트랜스포머(DiT 스타일 잠재 플로우 모델)로 처음부터 훈련되었습니다. 텍스트-이미지 생성과 이미지 편집(단일 이미지 및 다중 참조)을 단일 체크포인트에서 결합합니다. - 텍스트 인코더
FLUX.2 [dev]는 Mistral Small 3.1 / 3.2 – 24B를 비전-언어 텍스트 인코더로 사용합니다. 이는 32B DiT 외에 추가로 24B 파라미터입니다.
- 오토인코더 (VAE)
32개 잠재 채널을 가진 새로운 AutoencoderKLFlux2를 사용합니다(FLUX.1은 16개). 고해상도 편집과 미세한 텍스처 보존을 위해 설계되었습니다.
- 통합 생성 + 편집
동일한 아키텍처가 순수 텍스트-이미지, 단일 이미지 편집, 다중 참조 편집을 처리합니다.
- 가이던스 증류
FLUX.2 [dev]는 가이던스-증류 모델입니다: 별도의 "조건부"와 "비조건부" 패스가 있는 기존 CFG가 없습니다.
LoRA에 대한 의미:
- 코어 트랜스포머가 거대합니다. LoRA 랭크를 신중히 선택해야 합니다.
- 텍스트 인코더가 무겁고 동작에 핵심적입니다.
- 동일한 가중치가 T2I와 편집을 처리합니다.
- 가이던스가 특별합니다. 일반적으로
guidance_scale = 1로 훈련합니다.
2. 어떤 유형의 FLUX.2 LoRA를 훈련할 것인가?
FLUX.2 [dev]에서는 먼저 어댑터가 무엇을 해야 하는지 결정해야 합니다. 베이스 모델은 이미 다중 참조 편집과 복잡한 프롬프트 따르기에 강합니다.
Flux2 dev LoRA 훈련의 일반적인 목표:
- 스타일 LoRA (T2I + 편집) – 특정 페인팅 스타일, 컬러 그레이드, 렌더 룩을 가르칩니다.
- 캐릭터 / 아이덴티티 LoRA – 일관된 얼굴/특징을 가진 특정 인물, 아바타, 마스코트를 모델링합니다.
- 오브젝트 / 프롭 / 브랜드 LoRA – 엄격한 지오메트리나 브랜드 제약이 있는 특정 제품, 로고, 형태를 캡처합니다.
- 인스트럭션 / 편집 LoRA – 스타일 대신 동작을 변경합니다.
3. LoRA 설정에 영향을 주는 FLUX.2 고유 세부사항
3.1 융합 트랜스포머에서의 LoRA (랭크 스케일링)
FLUX.2 [dev]는 어텐션과 MLP 프로젝션을 매우 넓은 행렬로 융합합니다. 이는:
- 매우 낮은 랭크(4–8)는 너무 약하게 느껴질 수 있습니다.
- FLUX.2 [dev]의 스타일이나 캐릭터 LoRA에는 랭크 32가 좋은 기본값입니다.
- VRAM이 부족하면 랭크 8–16을 사용합니다.
- 복잡한 브랜드나 아이덴티티에는 랭크 32–64가 도움될 수 있습니다.
FLUX 2 dev LoRA 파인튜닝에서 모델은 일반적으로 이전 모델보다 높은 랭크에서 더 잘 작동하지만, VRAM과 과적합 위험이 증가합니다.
3.2 가이던스-증류 모델: guidance_scale = 1에서 훈련
FLUX.2 [dev]는 가이던스-증류이므로 일반적인 Stable Diffusion의 "CFG 7–8" 직관이 적용되지 않습니다.
- 훈련:
guidance_scale = 1설정. - 추론: 2–4 범위의
guidance_scale이 잘 작동합니다.
3.3 텍스트 인코더가 거대함 (임베딩 캐싱이 중요한 이유)
FLUX.2의 텍스트 인코더로 사용되는 Mistral 24B VLM은 약 24GB 파라미터입니다.
AI Toolkit에서의 일반적인 패턴:
- 고정 캡션과 DOP 미사용 시: Cache Text Embeddings 켜기.
- Differential Output Preservation (DOP) 사용 시: 텍스트 임베딩을 캐시할 수 없습니다.
3.4 오토인코더와 해상도
FLUX.2는 32개 잠재 채널의 AutoencoderKLFlux2를 사용합니다. 실제로 768–1024 해상도에서의 FLUX.2 LoRA 학습 AI Toolkit이 대부분의 이점을 제공합니다.
4. FLUX.2 LoRA 훈련을 위한 하드웨어 및 VRAM 요구사항
4.1 VRAM 티어별 권장 설정
티어 A — 16–24 GB GPU (예: 4070 Ti, 4080, 4090)
- 현실적 범위: FLUX.2-dev LoRA 트레이닝 가능하지만 빡빡함. Batch Size = 1, 896–1024 px.
- 주요 설정: Low VRAM 켜기, Layer Offloading 켜기, Transformer와 Text Encoder를
float8 (default)로.
티어 B — 32–48 GB GPU (예: RTX 6000 Ada, A6000)
- 현실적 범위: FLUX.2 LoRA 학습 AI Toolkit이 편안해집니다. 1024×1024에서 스타일과 캐릭터 LoRA, 20–60+ 이미지, 1000–3000 스텝.
- 주요 설정: Batch Size = 1–2, Steps ≈ 1000–3000, Learning Rate = 0.0001, Linear Rank = 32.
티어 C — 64–96+ GB GPU (예: RunComfy의 H100, H200)
- 현실적 범위: 1024×1024, Batch Size = 2–4, DOP 기본 켜기.
- 주요 설정: Low VRAM 끄기, Linear Rank = 32–64.
4.2 로컬 AI Toolkit vs 클라우드 AI Toolkit (RunComfy)
- 로컬 AI Toolkit – GitHub 리포지토리에서 설치.
- RunComfy 클라우드 AI Toolkit – RunComfy 클라우드 AI Toolkit을 열어 H100/H200 GPU에서 훈련.
5. FLUX.2 LoRA용 데이터셋 설계
5.1 이미지 수
- 단순 스타일 LoRA: 약 15–30장의 큐레이션된 이미지.
- 캐릭터/아이덴티티 LoRA: 약 20–60장.
- 편집/인스트럭션 LoRA: 50–200개의 트리플(소스, 타겟, 인스트럭션).
5.2 캡션 전략
캡션에서 쓰지 않는 것은 LoRA가 트리거에 연결하기 위해 "자유"입니다.
스타일 LoRA: 이미지의 내용을 설명하고, 붓터치나 색상, 미디엄을 설명하지 않습니다.
캐릭터 LoRA: 짧고 고유한 트리거(예: midnight_tarot)와 클래스 단어(person, woman 등)를 사용합니다.
5.3 Differential Output Preservation (DOP)
트리거가 없을 때 LoRA가 변경하는 것을 페널티하는 정규화 전략입니다.
6. 단계별: AI Toolkit에서 FLUX.2 [dev] LoRA 훈련 구성
6.1 초기 설정
- AI Toolkit을 설치하거나 RunComfy 클라우드 AI Toolkit을 엽니다.
6.2 데이터셋 준비
- 이미지를 수집하여
/ai-toolkit/datasets/flux2_midnight_tarot/에 배치합니다. .txt캡션 파일을 추가합니다. 캡션에서[trigger]를 사용합니다.
6.3 새 훈련 작업 생성
6.3.1 JOB 패널
- Training Name: 예:
flux2_midnight_tarot_v1. - Trigger Word: 예:
midnight_tarot.
6.3.2 MODEL & QUANTIZATION 패널
- Model Architecture: FLUX.2.
- Name or Path:
black-forest-labs/FLUX.2-dev. - Low VRAM: 티어 A/B에서 켜기, 티어 C에서 끄기.
- Transformer와 Text Encoder:
float8 (default).
6.3.3 TARGET 패널
- Target Type:
LoRA. - Linear Rank: 32가 좋은 기본값.
6.3.4 TRAINING & SAVE 패널
- Batch Size: 24–48GB에서
1, 64GB+에서2. - Steps: 스타일 800–2000, 캐릭터 1000–2500, 인스트럭션 1500–3000.
- Learning Rate:
0.0001. - Optimizer:
AdamW8Bit. - Cache Text Embeddings: DOP 미사용 시 켜기, DOP 사용 시 끄기.
- Data Type:
BF16. - Save Every:
250스텝.
6.3.5 Regularization & Advanced
- Differential Output Preservation: 베이스 모델 동작을 유지하려면 켜기.
- Do Differential Guidance: 켜기, Scale
3.
6.3.6 DATASETS 패널
- Cache Latents: 켜기.
- Resolutions: VRAM에 따라
[768, 896, 1024].
6.4 프리뷰 샘플링 구성
- Sample Every:
250스텝. - Guidance Scale:
1. - Prompts: 대표 프롬프트 2–4개.
7. FLUX.2 LoRA 결과 디버깅 및 품질 개선
7.1 "GatedRepoError / 401" 오류
Hugging Face에서 라이센스에 동의하고, Read 토큰을 생성하여 트레이너 설정에 추가합니다.
7.2 "1000+ 스텝 후에도 변화 없음"
- LoRA가 샘플링에 적용되는지 확인합니다.
Linear Rank = 16–32를 시도합니다.Learning Rate = 0.0001.- 캡션에서 스타일 설명을 제거합니다.
7.3 "LoRA가 베이스 모델을 덮어씀"
- Differential Output Preservation 켜기.
- 800–1500 스텝으로 줄이기.
Linear Rank = 16,Learning Rate = 0.000075.
7.4 "CUDA out of memory"
- 해상도를 1024 → 896 또는 768로 낮추기.
- Gradient checkpointing과 accumulation 활성화.
- FP8/4-bit 양자화.
- Cache Latents 켜기.
- RunComfy의 H100/H200로 이전.
8. 추론에서 FLUX.2 LoRA 사용하기
- 모델 플레이그라운드 – FLUX.2 LoRA 플레이그라운드를 엽니다.
- ComfyUI 워크플로우 – Flux 2 Dev 같은 워크플로우를 로드합니다.
추가 AI Toolkit LoRA 훈련 가이드
학습을 시작할 준비가 되셨나요?

