
FLUX.3 Image Klein 登陆 Diffusers

FLUX.3 Image Klein 来自 Black Forest Labs,即日起在 Diffusers 中可用。一个模型同时覆盖文生图、多参考图图生图和新增的布局控制。你可以在提示词里直接写 bounding box,指定画面中每个物体的位置,或者指定参考图中的哪块区域要移动。官方提供了两个开源 checkpoint,Hugging Face Space 可以直接在线生成。
蒸馏版 checkpoint 在 H100 上生成一张 1024×1024 图像大约需要 2 秒,默认 16 步。同时提供了 NVFP4 和 FP8 单文件权重,用 from_single_file 加载即可,给较小 GPU 使用。LoRA 训练脚本同时覆盖文生图和图像编辑,整个 pipeline 是模块化的,可以自由拆装。
安装和基本使用非常简单:pip install -U diffusers transformers,然后用 ModularPipeline 加载模型。文生图建议写完整的场景描述,包括主体、环境、光线、构图和风格。图生图时传入 reference 图像,在提示词中用 、 这样的占位符引用。多参考图时,模型会按传入顺序对应。
布局控制是这次的一大亮点。提示词后面可以接一段 JSON 列表,每个区域有 id、bbox 和 desc。bbox 格式是 [y_min, x_min, y_max, x_max],坐标基于 0–1000 的归一化尺度,所以同一个框在任何尺寸下都适用。编辑模式下,每个区域还可以指定 src_bbox(在参考图中的来源)和 tgt_bbox(在输出图中的目标位置),两者相同时表示该区域保持不动。示例中把毛线骑士从原位置移到左上角,同时锁定背景、悬崖、针、龙和火焰,实现局部重排。
基础版 checkpoint 用于微调,运行需要 50 步和 classifier-free guidance。单文件格式有 bf16、fp8r(行级 FP8)和 nvfp4 三种。fp8r 需要计算能力 8.9+(Ada、Hopper、Blackwell),nvfp4 需要 Blackwell 和匹配版本的 flashinfer。量化权重在每一步都会反量化,所以内存更低但没有加速。
LoRA 微调方面,官方提供了 DreamBooth 脚本,文生图和图生图都有。示例是训练塔罗牌风格,数据集来自 multimodalart/1920-raider-waite-tarot-public-domain,触发词 trtcrd。训练命令给出了完整参数,包括 rank=16、learning_rate=1e-4、max_train_steps=1500 等。可以通过 –gradient_checkpointing、–cache_latents、–use_8bit_adam 来降低显存占用。图生图脚本则训练 (reference, target, instruction) 三元组。
内存和速度有具体数据。峰值分配内存:nvfp4(RTX 6000)13.4 GiB(加载后)和 15.3 GiB(推理后),fp8r(H100)14.35/16.27,bf16(H100)18.80/20.72。端到端生成速度(蒸馏模型,16 步,H100 80GB):文生图 1024×1024 为 1.93 秒,单参考图图生图 3.87 秒,布局编辑(1360×768 参考)4.10 秒,峰值内存均为 23.8 GiB。参考图大约使时间翻倍,因为参考 token 会拼接到序列里——一张 1024×1024 参考图增加 4096 个 token。
架构上,FLUX.3 是潜在空间流匹配模型。VAE 与 Flux.2 相同,8 倍压缩到 32 通道,每 2×2 patch 打包成一个 token,因此一个 token 对应 16×16 像素,1024×1024 图像变成 64×64=4096 个 token。文本编码器是 Qwen3-VL,不取最后一层,而是取 36 层中的 8 层(第 4、8、…、32 层)堆叠,每个文本 token 变成 20480 维,再投影到 3072。
Transformer 有两个阶段。第一阶段是 per-mode blocks:文本、噪声图像、参考图像各自走 5 个权重独立的块,只做自注意力。第二阶段是 joint blocks:拼接成 [text | image | reference] 序列,经过 28 个共享权重的块,所有 token 互相注意。相比 FLUX.2 从一开始就让文本和图像相互注意,FLUX.3 先让各流独立处理,再合并。
每个块的结构相同:LayerNorm 没有学习参数,scale、shift、gate 由时间步嵌入提供;注意力中的 query 和 key 做 RMS 归一化并加 RoPE;MLP 是 SwiGLU,与注意力并行,结果加回残差流。值得注意的是,文本和参考 token 的时间步调制固定为 0,表示“这是已给定的上下文”,只有噪声图像 token 使用当前时间步 t。蒸馏模型还可以指定每一步跳到的目标时间步。
RoPE 有四个位置轴:(t, h, w, l) 分别对应时间步、高度、宽度、序列长度,每个 128 维注意力头分给每轴 32 维。文本 token 沿 l 排列,图像和参考是二维 (h, w) 网格,参考沿 l 轴负向偏移。因为参考图与输出图使用相同的 (h, w) 坐标,src_bbox/tgt_bbox 编辑才有精确的几何语义。
去噪使用 flow matching,50 步。调度器的时间位移为 6.93,使得大部分步骤都在高噪声水平上进行:50 步中有 44 步 σ > 0.5。在采样过程中可以读出模型对最终图像的预测,第 10 步时狐狸的姿势和光线已经确定,而树枝和毛发纹理要到最后几步才出现。
模块化是另一个特点。可以查看可用的 workflow(如 text2image、image_conditioned),打印每一步的模块。示例中把文本编码器弹出来,一次性编码提示词,释放显存,然后重复生成多张图。也可以插入自定义步骤,比如实现一个记录每步 x0 预览的模块,用于生成采样过程可视化。这种设计让扩展、诊断和定制变得非常直接。
整体来看,FLUX.3 Image Klein 把多模态生成能力(文生图、多参考图、布局控制)压缩进一个统一模型,同时给出了量化、LoRA 微调和模块化改造的完整路径。对研究者和工程团队来说,上手成本很低,硬件要求也给出了明确基准。


