FLUX 3 Image Klein 中文全解:5.6B 开源文生图与图像编辑模型实战指南

FLUX 3 Image Klein

本文为 Hugging Face 模型卡的中文翻译。原文:https://huggingface.co/black-forest-labs/flux-3-image-klein

FLUX 3 Image Klein 是一个 5.6B 的开源权重大模型,用于文生图生成和图像编辑。它接收一个提示词和最多 10 张参考图像,返回一张图像。文生图、单参考编辑和多参考合成均通过同一个模型运行,并使用 Qwen3-VL-4B-Instruct 作为文本编码器。

5.6B 参数指的是图像 Transformer;文本编码器是独立的。

本仓库包含用于生成和图像编辑的蒸馏检查点。如需微调、LoRA 训练和研究,请使用 FLUX 3 Image Klein Base。

推理代码、提示词上采样(prompt upsampling)以及边界框格式见 GitHub:black-forest-labs/flux-3-image-klein。

请勿在没有提示词上采样器的情况下使用该模型。 FLUX 3 Image Klein 接收完整的场景描述(caption),无论是文生图、图像编辑还是带边界框的布局,都是如此;直接输入简短提示词只会得到泛泛的输出。请使用我们的 flux-3-image-klein-pup(参考代码默认加载它),或使用任意你偏好的 LLM,并配上一段系统提示词,把请求扩展成一段完整的场景描述(我们的系统提示词见 system_prompts.json)。Diffusers 本身不会运行该上采样器,详见提示词上采样一节。

本仓库包含 BF16 Transformer,以及 FP8 和 NVFP4 变体,并附带 Qwen3-VL-4B-Instruct 文本编码器和图像自编码器。

检查点 格式 步数 引导系数(Guidance) 适用场景
Klein Base 未蒸馏,bfloat16 50 3.5 微调、LoRA 训练、研究
Klein 蒸馏,bfloat16 16 无 生成与编辑、自托管;BFL API 背后的检查点

核心特性

  1. 一个模型同时支持文生图、单参考图像编辑和多参考图像生成。
  2. 提示词中的边界框。可在 0 到 1000 的网格上用边界框放置元素,然后通过提示词对其重新着色、移动、替换或删除。边界框用于引导位置和比例,但不会把像素约束在硬性遮罩(mask)内。
  3. 在生成的图像中渲染文字。
  4. 依据 FLUX Kommunity License 发布。该许可证允许非商业用途,并针对符合条件的用户(Qualifying Users)提供商业输出例外,具体以许可证条款为准。详见下方许可证一节。

下载

下载根目录下的 BF16 蒸馏包(包括其文本编码器和图像自编码器),而不下载量化变体:

python 复制代码
from huggingface_hub import snapshot_download

snapshot_download(
    repo_id="black-forest-labs/flux-3-image-klein",
    local_dir="weights/flux-3-image-klein",
    allow_patterns=[
        "model.safetensors", "config.json", "manifest.json",
        "ae.safetensors", "text_encoder/*",
        "README.md", "LICENSE.md", "NOTICE.md",
    ],
)

如需下载量化的蒸馏 Transformer,请将根目录下的三个 Transformer 文件模式(model.safetensors、config.json 和 manifest.json)替换为 variants/fp8r/* 或 variants/nvfp4/*。其他组件仍需保留 ae.safetensors 和 text_encoder/*。

这些文件只是模型包,并不是完整的推理应用。请使用支持 flow-map 采样和该检查点格式的推理实现。量化包需要支持其格式的加载器;其文件大小并不代表总的 GPU 内存占用。

使用参考代码

该蒸馏检查点通过 BFL API 以 FLUX 3 Image Klein 的名义提供服务。参考推理代码位于 black-forest-labs/flux-3-image-klein。

在参考实现的代码目录中,安装该包,并下载 CLI 除本检查点之外还要加载的两个组件。CLI 从 weights/ 读取权重(可通过 WEIGHTS_DIR 指定其他根目录),上面的下载命令会把本仓库放到该目录下。

bash 复制代码
pip install -e .

# 安全分类器,始终加载
hf download Falconsai/nsfw_image_detection --local-dir weights/nsfw-classifier
# 提示词上采样器(18.8 GB),默认开启;--no-pup 会按原样发送提示词,适用于由其他 LLM 撰写描述的场景
hf download black-forest-labs/flux-3-image-klein-pup --local-dir weights/pup

# 文生图
python scripts/cli.py 'A chunky knitted diorama: three white cable-knit icebergs with tiny pale blue houses, a cream banner embroidered "KNITTED ICEBERG VILLAGE", a giant magenta knitted whale tail bursting from a yarn sea' \
  --model distilled --out knitted.png

# 图像编辑;使用多个参考图时重复传入 --image
python scripts/cli.py 'the same scene at night under a knitted full moon, embroidered stars above the peaks' \
  --model distilled --image knitted.png --out knitted_night.png

使用 Diffusers

FLUX 3 Image Klein 使用模块化流水线(modular pipeline)。传入 prompt 进行文生图,或同时传入 image 和提示词进行编辑;image 可以是单张图像,也可以是参考图像列表。该模型接收完整的场景描述,而不是简短提示词:按原样发送请求只会得到泛泛的输出。下面的每个请求都会先经过提示词上采样器,它是一个独立的 9B 模型(black-forest-labs/flux-3-image-klein-pup),流水线本身不会自动运行它。请将其与流水线一起加载,然后生成:

bash 复制代码
pip install git+https://github.com/huggingface/diffusers.git
python 复制代码
import json

import torch
from diffusers import ModularPipeline
from huggingface_hub import hf_hub_download
from transformers import AutoProcessor, Qwen3_5ForConditionalGeneration

pipe = ModularPipeline.from_pretrained("black-forest-labs/flux-3-image-klein")
pipe.load_components(dtype=torch.bfloat16)
pipe.to("cuda")

pup_id = "black-forest-labs/flux-3-image-klein-pup"
processor = AutoProcessor.from_pretrained(pup_id)
upsampler = Qwen3_5ForConditionalGeneration.from_pretrained(pup_id, dtype=torch.bfloat16, device_map="auto").eval()
system_prompts = json.load(open(hf_hub_download(pup_id, "system_prompts.json")))


def upsample(prompt, images=()):
    if images:
        text = (
            "Reference images follow in order (the first image, the second image, ...).\n"
            f"User request: {prompt}\nOutput the caption."
        )
        content = [{"type": "image", "image": image} for image in images] + [{"type": "text", "text": text}]
        messages = [{"role": "system", "content": system_prompts["i2i"]}, {"role": "user", "content": content}]
    else:
        messages = [{"role": "system", "content": system_prompts["t2i"]}, {"role": "user", "content": prompt}]
    inputs = processor.apply_chat_template(
        messages, add_generation_prompt=True, tokenize=True, return_dict=True, return_tensors="pt", enable_thinking=False
    ).to(upsampler.device)
    with torch.no_grad():
        output = upsampler.generate(**inputs, max_new_tokens=3584, do_sample=False)
    return processor.decode(output[0, inputs["input_ids"].shape[1]:], skip_special_tokens=True).strip()


caption = upsample('A chunky knitted diorama: three white cable-knit icebergs with tiny pale blue houses, a cream banner embroidered "KNITTED ICEBERG VILLAGE", a giant magenta knitted whale tail bursting from a yarn sea')
image = pipe(prompt=caption, generator=torch.Generator().manual_seed(1), output="images")[0]
image.save("knitted.png")

night = pipe(
    prompt=upsample("the same scene at night under a knitted full moon, embroidered stars above the peaks", [image]),
    image=image,
    generator=torch.Generator().manual_seed(1),
    output="images",
)[0]
night.save("knitted_night.png")

提示词上采样

提示词上采样器会把一个简短请求(编辑时还会结合参考图像)转换成模型所需的完整场景描述:媒介与风格、场景、光照与镜头,以及每个主体的颜色、材质和在画面中的位置。参考 CLI 默认运行它。上面的 upsample 使用 Transformers 运行它:文生图使用 system_prompts["t2i"];编辑时使用 system_prompts["i2i"],并把参考图像放在用户消息的最前面,采用贪心解码、关闭 thinking。其模型卡中包含解码设置和布局形式(t2i_bbox、i2i_bbox),后者接收一组边界框,并在描述之后写出边界框表格。

任何其他 LLM 都可以替代它:把 system_prompts["t2i"](或带参考图的 "i2i")作为系统提示词,把请求作为用户消息,再将它返回的描述作为 prompt 传入即可。

提示词编写

描述决定构图;参考图像用于锚定内容,但不会锁定结构。

  • 始终运行提示词上采样器,可以使用我们的,也可以使用你自己的 LLM:该模型接收完整的场景描述(取景、主体、背景、光照),按原样发送简短提示词只会得到泛泛的输出。一句简短的编辑指令(例如 "make it blue")会重新定义整个镜头。
  • 进行编辑时,提示词上采样器会根据指令和参考图像写出描述:一段对参考图像的完整描述,并将编辑内容融入其中。若要指定风格,请描述其属性(配色、笔触、质感),而不是直接点名某件艺术作品。
  • 若要指定布局,请在描述后附加一个 JSON 元素列表。每个边界框为 [top, left, bottom, right],位于 0 到 1000 的网格上;并在描述中用 <id> 标记该元素:
text 复制代码
Minimalist graphic illustration featuring a black silhouette of a person <silhouette_1> centered against a solid, vibrant chartreuse background <background_1>. The figure is captured in a dynamic, mid-stride running pose, facing toward the left side of the frame. [{"id": "background_1", "bbox": [0, 0, 1000, 1000], "desc": "A flat field of neon yellow-green with a subtle paper texture and fine, organic grain."}, {"id": "silhouette_1", "bbox": [150, 150, 850, 850], "desc": "A black silhouette of a person in motion, made of dense stippled ink."}]

若要通过边界框进行编辑,请将第 n 张参考图称为 <ref_image_n>,并为每个元素提供 from、src_bbox 和 tgt_bbox;目标设为 null 表示删除该元素。完整格式及示例见:边界框。

局限性

  • 该模型并不旨在也无法提供事实性信息。
  • 虽然模型可以输出文字,但渲染出的文字可能不准确或出现扭曲。
  • 作为一个统计模型,该检查点可能体现或放大训练数据中存在的偏见。
  • 模型可能无法生成与提示词相符的输出。
  • 提示词遵循程度在很大程度上受提示词风格影响。简短提示词会产生泛泛的输出。
  • 边界框只设定位置和比例,并不是硬性遮罩:元素可能超出其边界框,而请求的小元素可能不会出现。编辑可能会改变所请求区域之外的内容。

硬件

使用参考代码、B200、1024x1024、关闭提示词上采样器时的峰值 GPU 内存:BF16 为 31 GB,FP8 为 26 GB,NVFP4 为 25 GB。在 80 GB GPU 上,提示词上采样器会增加约 28 GB 占用。

超出范围的使用

完整限制请参见 FLUX Kommunity License 第 4 节。这些限制包括:军事用途;监控(包括相关的研究与开发);生物特征处理;非法、不安全、欺诈、诽谤或滥用性活动;生成非法内容,包括儿童性虐待材料或未经同意的私密图像;侵犯第三方权利,包括形象权或数字复制权;以及使用该模型、其衍生作品或其输出,来改进另一个执行与 FLUX 模型或衍生作品类似功能的 AI 模型。

该许可证还涵盖出口管制和制裁。其商业使用例外并非对商业微调或分发的全面许可。请查阅完整许可证,了解适用于每种用途的条款。

本模型卡中的任何内容均不得解释为、或被视作对模型发布所依据许可证的限制或修改。

负责任的 AI 开发

Black Forest Labs 致力于负责任的模型开发与部署。在发布 FLUX 3 Image Klein 之前,我们评估并缓解了多项风险,包括儿童性虐待材料(CSAM)和未经同意的私密图像(NCII)。有关我们的缓解措施、评估流程、内容溯源功能和政策的详细信息,请参阅我们的文章:Capable, Open, and Safe: Combating AI Misuse。如需报告安全问题,请联系 safety@blackforestlabs.ai。

许可证

该模型依据 FLUX Kommunity License v.1.0 发布:允许非商业用途,并允许年化总收入(包括关联方)低于 500 万美元的符合条件的用户(Qualifying Users)进行商业输出生成,具体以许可证条款为准。其他用途请参见商业许可。

Qwen3-VL-4B-Instruct 文本编码器采用 Apache-2.0 许可证。

商标与知识产权

使用 Black Forest Labs 和 FLUX 商标需事先获得书面许可,除非是必要的署名或必要的描述性引用。使用不得引起混淆,也不得暗示赞助或背书。第三方商标仍受其所有者政策的约束。

引用

如果你在作品中使用了 FLUX 3 Image,请引用:

bibtex 复制代码
@misc{bfl2026flux3image,
  author       = {{Black Forest Labs}},
  title        = {{FLUX} 3 Image Klein},
  year         = {2026},
  url          = {https://bfl.ai/blog/flux-3-image-klein},
}
相关推荐
匠测AI说1 小时前
AI for Testing 提效实战 · 执行自动化(六):轻量 Mock 编排实战——WireMock 手工落地 + AI 加速
人工智能·测试
Sakura_j_h_1 小时前
STM32F103 定时器的三种用法:PWM 输出、输入捕获与编码器接口
stm32·嵌入式·输入捕获·定时器·pwm·编码器·1024程序员节
我是小邵1 小时前
1024 特辑:我写过的 Skill,正在变成 AI 编程的基础设施
人工智能·agent·ai编程·skill·知识沉淀·协作·开发者工具
全栈练习生1 小时前
Jev 决策模型
python·ai·1024程序员节
LMT流氓兔1 小时前
第五单元——第十二课:把脚本整理成项目
java·数据库·python·langchain·1024程序员节
miofly1 小时前
山东大学研究:代码智能体的复杂 harness 主要提升 token 消耗而非性能
开源·github
yuniko-n1 小时前
【JUC】四种内存屏障示例
java·1024程序员节
界首大学1 小时前
CUDA C++ 高效入门第四章 -- CUDA 同步技术之线程块同步
1024程序员节·cuda c++
八苦1 小时前
本地视频 → 序列帧动画精灵图
人工智能