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)使用分类器自由引导运行 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 80 GB,无卸载)
| 工作流 | 输出尺寸 | 时间 | 峰值内存 |
|---|---|---|---|
| 文本到图像 | 1024×1024 | 1.93 秒 | 23.8 GiB |
| 图像到图像(一个参考) | 1024×1024 | 3.87 秒 | 23.8 GiB |
| 布局编辑(骑士示例) | 1360×768 | 4.10 秒 | 23.8 GiB |
参考图像大致会使延迟翻倍,因为其令牌会与文本序列连接(每个 1024×1024 参考图像约增加 4 千个令牌)。
架构概述
- 令牌类型 – 文本、噪声图像潜变量和可选参考潜变量。
- 像素到令牌转换 – VAE 将 1024×1024 像素压缩为 64×64 潜变量网格(4,096 个令牌),每个令牌覆盖 16×16 像素块。
- 文本编码 – Qwen3-VL 提供其 36 层中八层的隐藏状态;每个令牌成为 20,480 维向量,投影到 3072 的变换器宽度。
- 两阶段变换器 – 阶段 1 使用各自的 5 个块处理每种模态;阶段 2 将所有流合并为 28 个联合块,实现跨模态注意力。
- 调制 – 时间步嵌入调制令牌;图像令牌使用当前时间步,而文本和参考令牌始终使用时间步 0(视为干净上下文)进行调制。
- 注意力 – 旋转位置嵌入覆盖四个轴(时间步、高度、宽度、序列长度),为基于参考的编辑提供精确的空间定位。
- 去噪循环 – 流匹配调度器在每个步骤预测速度向量;蒸馏检查点使用更大的跳跃(16 步流映射)。
模块化 Diffusers 集成
FLUX.3 作为 ModularPipeline 提供。用户可以:
- 列出可用的工作流(
text2image、image_conditioned)。 - 移除文本编码器,一次性编码提示词并生成多个图像,无需重新编码。
- 通过扩展
ModularPipelineBlocks插入自定义块(例如,记录中间去噪潜变量的预览步骤)。
自行尝试
- 模型中心 – FLUX.3 Image Klein 集合:https://huggingface.co/collections/black-forest-labs/flux-3-image-klein
- 文档 – Diffusers 的 FLUX.3 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
在 Hub 上构建、分享和迭代您自己的 FLUX.3 管道和 LoRA!