FLUX.3 Image Klein 릴리스: Diffusers의 통합 텍스트-이미지, 다중 참조 이미지-이미지, 레이아웃 제어 모델
TL;DR
FLUX.3 Image Klein은 텍스트-이미지, 다중 참조 이미지-이미지, 경계 상자 레이아웃 편집을 처리하는 통합 이미지 생성 모델로, Hugging Face Diffusers에서 빠른 증류 체크포인트(H100에서 1024×1024 약 2초)와 파인튜닝용 기본 체크포인트로 제공됩니다.
시작하기
최신 Diffusers와 Transformers(Qwen3-VL 텍스트 인코더용)를 설치하고 증류 체크포인트를 로드합니다:
pip install -U diffusers transformers
import torch
from diffusers import ModularPipeline
pipe = ModularPipeline.from_pretrained("black-forest-labs/flux-3-image-klein")
pipe.load_components(dtype=torch.bfloat16)
pipe.to("cuda")
pipe(prompt="a red fox", output="images")[0].save("fox.png")
기본 체크포인트(black-forest-labs/flux-3-image-klein-base)는 분류기 없는 가이드(CFG)로 50회 추론 단계를 실행하며 LoRA 파인튜닝의 권장 시작점입니다.
FLUX.3이 할 수 있는 것
텍스트-이미지
모델은 상세한 장면 설명을 기대합니다. 증류 체크포인트는 기본적으로 16단계로 1024×1024 이미지를 생성합니다. 예제 프롬프트와 코드는 공지에서 제공됩니다.
이미지-이미지
image 인수를 통해 하나 이상의 참조 이미지를 전달하고 프롬프트에서 원하는 변경 사항을 설명합니다. 여러 참조는 <ref_image_0>, <ref_image_1>, ...으로 지정됩니다.
레이아웃 제어
경계 상자 레이아웃 편집은 캡션에 추가된 JSON 영역 목록으로 표현됩니다. 각 영역에는 id, 정규화된 bbox(y 우선, 0-1000 스케일), 텍스트 desc가 포함됩니다. 모델은 각 설명을 해당 상자 안에 그립니다. 편집의 경우 src_bbox와 tgt_bbox가 콘텐츠가 어디서 오고 어디에 배치되어야 하는지 지정합니다.
모델 체크포인트 및 양자화
| 체크포인트 | 설명 | 기본 추론 |
|---|---|---|
black-forest-labs/flux-3-image-klein |
시간 단계 증류, 빠른 추론 | 16단계, CFG 없음 |
black-forest-labs/flux-3-image-klein-base |
파인튜닝용 기본 모델 | 50단계, CFG |
두 체크포인트 모두 단일 파일 safetensors로 제공됩니다. 두 가지 양자화 변형(fp8r 및 nvfp4)은 Flux3Transformer2DModel.from_single_file 및 BFLQuantizationConfig로 로드할 수 있습니다. fp8r 변형은 컴퓨트 기능 8.9+(Ada, Hopper, Blackwell) GPU에서 실행됩니다. nvfp4는 FlashInfer 커널이 있는 Blackwell GPU를 대상으로 합니다.
LoRA 파인튜닝
FLUX.3은 텍스트-이미지 및 이미지-이미지 모두에 대한 DreamBooth LoRA 스크립트를 지원합니다. 샘플 명령은 공개 도메인 데이터 세트 multimodalart/1920-raider-waite-tarot-public-domain에서 타로 카드 스타일 LoRA를 파인튜닝합니다. 권장 메모리 절약 플래그에는 --gradient_checkpointing, --cache_latents, --use_8bit_adam이 포함됩니다.
훈련된 어댑터는 diffusers-modular/flux3-tarot-lora에서 호스팅됩니다. 이미지-이미지 LoRA 스크립트(train_dreambooth_lora_flux3_klein_img2img.py)는 (참조, 대상, 지시) 트리플로 훈련하며 프롬프트에서 <ref_image_0> 자리 표시자를 사용합니다.
리소스 사용량 및 성능
메모리 사용량
| 변형 | 로드 후 피크(GiB) | 추론 후 피크(GiB) |
|---|---|---|
nvfp4 (RTX 6000) |
13.4 | 15.3 |
fp8r (H100) |
14.35 | 16.27 |
bf16 (H100) |
18.80 | 20.72 |
양자화된 체크포인트는 메모리를 줄입니다. 텍스트 인코더는 한 번 실행 후 해제할 수 있으며, ComponentsManager를 통해 자동 CPU 오프로딩이 지원됩니다.
속도 (단일 NVIDIA H100 80GB, 오프로딩 없음)
| 워크플로 | 출력 크기 | 시간 | 피크 메모리 |
|---|---|---|---|
| 텍스트-이미지 | 1024×1024 | 1.93초 | 23.8GiB |
| 이미지-이미지(참조 1개) | 1024×1024 | 3.87초 | 23.8GiB |
| 레이아웃 편집(기사 예제) | 1360×768 | 4.10초 | 23.8GiB |
참조 이미지는 텍스트 시퀀스에 토큰이 연결되므로 대기 시간이 약 2배가 됩니다(1024×1024 참조당 약 4k 추가 토큰).
아키텍처 개요
- 토큰 유형 – 텍스트, 노이즈 이미지 잠재, 선택적 참조 잠재.
- 픽셀-토큰 변환 – VAE가 1024×1024 픽셀을 64×64 잠재 그리드(4,096토큰)로 압축하며, 각 토큰은 16×16 픽셀 패치를 덮습니다.
- 텍스트 인코딩 – Qwen3-VL은 36개 레이어 중 8개 레이어의 숨겨진 상태를 제공합니다. 각 토큰은 20,480차원 벡터가 되어 트랜스포머 너비 3072로 투영됩니다.
- 2단계 트랜스포머 – 1단계는 각 모달리티를 자체 5블록으로 처리합니다. 2단계는 모든 스트림을 28개의 공동 블록으로 병합하여 교차 모달 주의를 가능하게 합니다.
- 변조 – 시간 단계 임베딩이 토큰을 변조합니다. 이미지 토큰은 현재 시간 단계를 사용하는 반면, 텍스트 및 참조 토큰은 항상 시간 단계 0(깨끗한 컨텍스트로 처리)으로 변조됩니다.
- 주의 – 회전 위치 임베딩은 4축(시간 단계, 높이, 너비, 시퀀스 길이)에 걸쳐 있어 참조 기반 편집에 정밀한 공간적 근거를 제공합니다.
- 잡음 제거 루프 – 흐름 매칭 스케줄러가 각 단계에서 속도 벡터를 예측합니다. 증류 체크포인트는 더 큰 점프(16단계 흐름 맵)를 사용합니다.
모듈형 Diffusers 통합
FLUX.3은 ModularPipeline으로 노출됩니다. 사용자는 다음을 수행할 수 있습니다:
- 사용 가능한 워크플로 나열(
text2image,image_conditioned). - 텍스트 인코더를 제거하여 프롬프트를 한 번 인코딩하고 다시 인코딩하지 않고 여러 이미지를 생성합니다.
ModularPipelineBlocks를 확장하여 사용자 지정 블록(예: 중간 잡음 제거 잠재를 기록하는 미리 보기 단계)을 삽입합니다.
직접 사용해 보기
- 모델 허브 – FLUX.3 Image Klein 컬렉션: https://huggingface.co/collections/black-forest-labs/flux-3-image-klein
- 문서 – FLUX.3용 Diffusers API: https://huggingface.co/docs/diffusers/main/en/api/pipelines/flux3
- 파인튜닝 – DreamBooth LoRA 스크립트: https://github.com/huggingface/diffusers/blob/main/examples/dreambooth/README_flux3_klein.md
- 프롬프트 가이드 – Black Forest Labs 프롬프팅 가이드: https://docs.bfl.ai/guides/prompting_summary
허브에서 자신만의 FLUX.3 파이프라인과 LoRA를 구축, 공유, 반복하세요!