AI 指南阅读约 11 分钟

FLUX 3 Image Klein:参考图、画面布局与本地编辑实用指南

从第一张图到可控编辑,了解 FLUX 3 Image Klein 的浏览器和 API 用法、边界框、Windows 与 Mac 选项、显存、许可和故障排查。

K
Ken Jo

你手上有一张能用的产品照片,但它的构图不适合下一项任务:主体需要左移,背景要换掉,右侧还得留白放标题。让图像生成器重新开始很容易,难的是拿到真正能用的修改结果。

FLUX 3 Image Klein 将文生图、图像编辑和多张参考图整合进同一模型系列。Black Forest Labs 于 2026 年 10 月 15 日发布了它。值得关注的并非又一张漂亮样图,而是你可以同时描述图像里有什么,以及各个元素应该位于哪里。BFL 发布公告

本指南从一个小实验开始,带你建立可重复的编辑流程。想先了解工具,可以从浏览器开始;要把生成接入应用,就选择 API;只有在文件控制或反复使用足以抵消部署成本时,再考虑本地运行。做出这个选择不需要先学会扩散模型的数学原理。

选择最短路径,先做出一张有用的图

你的目标入门方式仍需确认的事项
试试提示词或参考图Hugging Face 官方 Space 或 BFL Playground访问权限、当前配额、上传内容是否合适
在应用中加入生成能力BFL APIAPI 凭据、计费、重试和结果处理
在自己的机器上推理兼容的 ComfyUI、Diffusers 或参考实现完整运行时的内存需求、支持的 GPU、模型访问权限和许可
通过训练调整视觉风格基础检查点和受支持的 LoRA 配方数据集权利、训练资源和分发条款

它们是围绕相关权重构建的不同产品,并非可以互换的按钮。模型是学得的权重集合,运行时负责执行模型。ComfyUI 提供工作流界面,Diffusers 提供 Python 组件,托管 API 则提供运营好的服务。你在某个界面看到的功能,可能包含另一个界面并未执行的处理步骤。

第一次尝试时,打开官方 Space或 BFL Playground。生成前先查看账户和计费提示。Windows、macOS 和 Linux 用户都可以从浏览器开始;使用远程服务不需要本地 GPU。

选择自己拥有、可以安全发送到该服务的图片。用自己杯子的照片练习,比上传客户尚未发布的产品更妥当。下面的练习会给你一个具体的小任务,也会说明如何判断结果。

先做一次可控修改,再考虑叠加十张参考图

  1. 保存未经修改的源图,并记下尺寸。
  2. 选择编辑工作流,只附上这一张图。
  3. 描述完整的目标画面,包括哪些特征必须保持可辨认。
  4. 一次只要求一项变化,例如更换背景,不要同时更换主体、风格和构图。
  5. 以原图尺寸查看结果并进行比较。检查形状、文字、边缘和光线,而不只是缩略图。
  6. 将指令和结果放在一起保存。下一轮只改变一个变量。

例如,可以从这样的场景描述开始:

纯文本
A catalog photograph of the same plain ceramic mug from the reference image,
with its handle and proportions preserved, on a matte pale-green surface.
Soft light comes from the left. The mug sits in the left third of a wide
composition, leaving clear space on the right for text added later.

验收标准由你决定:把手没有变化,杯子的轮廓仍然可用,留白区域确实空着。如果商标必须完全准确,就拿结果和原图核对,不要相信看似合理的重绘。拼写和品牌几何形状不容出错时,应使用常规设计工具添加最终文字。

官方模型卡提到最多可用 10 张参考图。这只是容量,不代表每项任务都应该用满十张。两张相机角度互相冲突的参考图,可能比一张清晰的图造成更多歧义。给每张输入指定明确用途:主体、材质、构图或风格。

布局框能引导构图,但不是像素级锁定

FLUX 3 支持用归一化坐标描述区域。除了说“把物体放在左边”,你还可以给出一个框,并描述框内对应的内容。坐标范围为 0 到 1000,因此布局描述不直接依赖最终图像是 1024 还是 2048 像素宽。BFL 边界框指南

参考图、归一化布局框,以及单独的检查步骤。

原创说明图。框表示期望的位置,不代表实际生成结果,也不是硬性图像遮罩。

下面是用于说明的生成提示片段。它描述新的构图,并非编辑参考图;它应该放在提示词里,不是终端命令:

纯文本
A clean studio composition with a ceramic mug <mug_1> on the left.
[{"id":"mug_1","bbox":[200,80,850,480],"desc":"A plain ceramic mug with a visible handle"}]

坐标顺序是上、左、下、右。这个例子中的框从画布向下 20%、向右 8% 处开始,到向下 85%、向右 48% 处结束。实际设计时先画出目标布局,再把布局换算为坐标。横纵数值填反,很容易得到令人困惑的结果。

编辑时既要标明来源,也要标明目标。下面这个 API 请求体仅用于示意:它把杯子从画面中央的源框移到左侧目标框。请将示例图片 URL 换成你拥有且可访问的图片;不要不经修改就提交占位地址。第一张参考图的标识是 ref_image_0。

JSON
{
  "images": ["https://example.com/your-own-mug.png"],
  "output_format": "png",
  "prompt": "In <ref_image_0>, move the mug <mug_1> to the left. Preserve the mug's handle and the plain background. [{\"id\":\"mug_1\",\"from\":\"ref_image_0\",\"src_bbox\":[200,300,850,700],\"tgt_bbox\":[200,80,850,480],\"desc\":\"The same plain ceramic mug with its handle visible\"}]"
}

这里,from 指定参考图,src_bbox 标出原始区域,tgt_bbox 描述期望位置。需要更细致地安排保留内容时,可以为其他元素添加条目。本地参考 CLI 的独立 boxes.json 使用 0 到 1 的坐标;不要把 API 的 0 到 1000 数值直接粘贴进去。托管编辑语法、本地框格式

不要把框当作框外内容必定不变的保证。原始检查点文档提醒,编辑可能影响其他区域,元素也可能超出边界框。BFL 的托管编辑流程还包含像素恢复行为;不能悄悄把这项服务功能说成所有本地工作流都有。检查你实际使用的实现。检查点限制

用于印刷或客户项目时,把新旧图像叠加到编辑器里比较。如果物体成功移动,但包装文字也变了,那么构图任务成功了,素材保真任务却失败了。把两者分开判断,迭代时就不会那么挫败。

API 请求只是任务的开始,不是最终文件

开发者可以向文档所述端点提交图像请求。在 macOS 或 Linux 终端中,将 BFL_API_KEY 安全地设为环境变量,再运行下面的简例。这可能产生服务费用;不要把密钥放在公开仓库或浏览器代码包中。

Bash在终端中运行
curl --fail-with-body --request POST \
  --url https://api.bfl.ai/v1/flux-3-image-klein \
  --header "x-key: $BFL_API_KEY" \
  --header "Content-Type: application/json" \
  --data '{"prompt":"A simple studio photograph of a plain ceramic mug on a pale green surface","aspect_ratio":"16:9","output_format":"png"}' \
  --output bfl-job.json

Windows PowerShell 可使用相同端点和原生 JSON 序列化方式:

PowerShell在PowerShell中运行
$body = @{
    prompt = "A simple studio photograph of a plain ceramic mug on a pale green surface"
    aspect_ratio = "16:9"
    output_format = "png"
} | ConvertTo-Json
$job = Invoke-RestMethod -Method Post `
    -Uri "https://api.bfl.ai/v1/flux-3-image-klein" `
    -Headers @{ "x-key" = $env:BFL_API_KEY } `
    -ContentType "application/json" -Body $body
$job | ConvertTo-Json -Depth 10 | Set-Content -Encoding utf8 bfl-job.json

上面两种提交方式任选一种。两者都会把已接受的任务保存到 bfl-job.json,都不会下载结果。在同一文件夹里将下面这个标准库 Python 脚本保存为 poll_result.py。确保运行进程能读取 BFL_API_KEY,然后在 Windows 运行 python poll_result.py,在 macOS/Linux 运行 python3 poll_result.py。脚本会轮询已有任务并保存 result.png,不会再次提交生成请求。

Python
import json
import os
from pathlib import Path
import time
from urllib.parse import urlparse
from urllib.request import Request, urlopen

job = json.loads(Path("bfl-job.json").read_text(encoding="utf-8-sig"))
polling_url = job["polling_url"]
parsed = urlparse(polling_url)
if parsed.scheme != "https" or not (parsed.hostname or "").endswith(".bfl.ai"):
    raise ValueError("Unexpected polling host; inspect the saved job")
headers = {"x-key": os.environ["BFL_API_KEY"]}
deadline = time.monotonic() + 600

while time.monotonic() < deadline:
    with urlopen(Request(polling_url, headers=headers), timeout=60) as reply:
        result = json.load(reply)
    status = result["status"]
    print(job["id"], status)
    if status == "Ready":
        sample = result["result"]["sample"]
        if urlparse(sample).scheme != "https":
            raise ValueError("Unexpected result URL")
        with urlopen(sample, timeout=120) as image:
            Path("result.png").write_bytes(image.read())
        print("Saved result.png; inspect it before accepting the asset")
        break
    if status not in {"Pending", "Reasoning", "Generating"}:
        raise RuntimeError(f"Job stopped: {status}; keep bfl-job.json")
    time.sleep(1.5)
else:
    raise TimeoutError("Keep bfl-job.json and resume polling this job later")

结果 API区分运行中、就绪、审核拦截和错误等状态。如果网络异常打断脚本,保留任务文件并重新运行轮询脚本,不要重新提交生成请求。提交响应状态不确定时,先检查情况再尝试;丢失响应并不代表服务拒绝了收费任务。请求参数

实用的应用会保留三类记录:源素材、生成任务和已接受的输出。即使用户拒绝某次修改,也应该能找回原图。这种设计比隐藏所有中间步骤、只吐出一张来历不明的新 JPEG 的按钮更有价值。

本地安装要按完整内存预算来规划

Klein 的 5.6B 指图像 Transformer,并不代表工作流只需要这一项。文本编码器、图像自编码器、提示词扩写器、激活值和参考图 token 也会占用资源。参考 CLI、演示程序和 Python API 默认启用扩写器;除非你提供了已处理好的扩写式描述,BFL 明确建议保持启用。因此,权重文件大小不能可靠地代表总显存需求。这和评估大型本地语言模型时要区分的情况相同。参考实现

BFL 宣传了面向消费级 GPU 的优化路径,包括适用于 8GB 显卡的 INT8 配置。参考代码模型卡则报告了其他配置下显著更高的峰值。这些说法对应不同配方;没有任何一个是适用于所有界面、分辨率和参考图数量的通用最低要求。记录显存数据时,也要一并记录运行时、精度、图像尺寸和卸载策略。发布时的硬件示例、参考代码硬件详情

权重、文本处理、图像输入和运行时工作都会计入本地资源预算。

原创资源清单,不是基准测试。组件大小和运行时峰值取决于具体配方。

在装有兼容 NVIDIA GPU 的 Windows 电脑上,可以先试当前的 ComfyUI 集成或 BFL 推荐的运行时。确认加载的是准确的 FLUX 3 工作流,不要因为名称相似就套用 FLUX 2 模板。成功下载模型并不能证明自定义节点、量化内核和文本编码器彼此兼容。

在 Linux 上,参考仓库和 Diffusers 集成指南提供面向开发者的路径。下面的参考安装流程对应文档中的 CUDA 13 配方,发布者在 B200 上测试过;它不是给 8GB 显卡准备的。Windows 用户需要兼容的 Linux/WSL 环境才能运行这些 Bash 命令。先确认驱动兼容性和完整内存预算。

  1. 安装 Git 和 Python 3.12,然后创建隔离环境:
Bash在终端中运行
git clone https://github.com/black-forest-labs/flux-3-image-klein.git
cd flux-3-image-klein
python3.12 -m venv .venv
source .venv/bin/activate
python -m pip install -e . --extra-index-url https://download.pytorch.org/whl/cu130

  1. 在你自己的 Hugging Face 账户中接受检查点条款,用 hf auth login 完成身份验证,然后下载文档指定的蒸馏版套件。参考 README 为这个模型、扩写器和安全分类器预留约 52GB 磁盘空间;磁盘空间不等于显存。
Bash在终端中运行
hf download black-forest-labs/flux-3-image-klein --local-dir weights/flux-3-image-klein --exclude 'variants/*'
hf download black-forest-labs/flux-3-image-klein-pup --local-dir weights/pup
hf download Falconsai/nsfw_image_detection --local-dir weights/nsfw-classifier

  1. 保持提示词扩写启用,运行一次生成,然后检查 out.png 和随附的设置 JSON:
Bash在终端中运行
python scripts/cli.py "A plain ceramic mug on a pale green studio surface" --model distilled --out out.png --seed 7

  1. 如需在本机启动浏览器界面,运行 python scripts/app.py,打开 http://127.0.0.1:7860,选择 Edit,附上自己的源图并输入一项修改要求。绘制框的 Layout 是另一个独立标签页。将应用限制在本机回环地址;含私人素材时不要启用公开分享选项。参考安装和演示

只有在基线流程已经跑通后,才加入量化或 CPU 卸载。8GB GPU 用户应遵循单独的 ComfyUI 文件和说明,不要套用完整参考代码的内存假设。

在 Mac 上,浏览器和 API 仍然是简单直接的选项。不要把 CUDA 安装命令或 NVIDIA 速度数据套用到 Apple Silicon 上。本地运行需要兼容 Metal/MPS 的实现,以及足够容纳所有组件的统一内存;库里出现一个使用 mps 的通用示例,并不能证明每一种量化路径都可用。Intel Mac 是另一类硬件,不是 Apple Silicon 的别称。

提示词写得更长,只有在消除歧义时才有帮助

参考实现会先把简短指令扩写为完整场景描述,再生成图像。这个提示词扩写是独立的语言模型步骤,在参考 CLI、演示程序和 Python API 中默认启用。当前参考 README 也链接了一个每次请求都会执行扩写的 Diffusers 流程。保留这一行为,不要把简短原始提示词当作等价输入。提示词准备

如果扩写器和图像模型无法同时装入内存,参考配方可以先运行扩写器,再把处理好的描述交给生成步骤。也可以用外部视觉语言模型根据公开的系统提示词准备描述。只有已经处理好的描述才适合配合 --no-pup;这个参数不是让未扩写的一行提示词白捡内存的优化。提示词扩写和托管服务的像素恢复是两项不同功能;保留其中一项,不代表另一个运行时也包含另一项。

加入专业语法之前,先用普通语言写清主体、背景、光线和预期改动。“做得专业一点”几乎没有确定任何细节。“保留杯子和把手,使用纯色背景,右侧留出三分之一空白”能减少系统需要协调的冲突目标。形容词变多不等于指令更好。

第二种用途是制作一组文章插图。固定配色和主体描述,只调整宽幅页眉与方形社交图片的构图。检查物体在不同格式中是否一致,不要假定某个宽高比成功后其他比例也会完美复现。

第三种用途是在内部比较包装样稿。使用虚构标签或已获批准的素材,并明确标注输出只是概念图。渲染图好看,不代表产品可制造、颜色还原准确,也不代表有权使用照片中人物的肖像。生成之后,生产设计审核仍然不可少。

估算一项成品的成本,而不只看一次成功请求

截至 10 月 15 日,发布公告列出的 API 起价为每张 1K 图像 0.009 美元。这个起步单位价并不保证适用于每种分辨率和工作流。估算活动成本前,查看当前的 BFL 价格、账户费用和请求规则。

预算时应统计每项被接受素材所需的尝试次数。如果一项任务修改了五轮,相关成本就是五次尝试,再加上审核和后期时间。本地运行会用硬件、电费、存储和维护取代部分服务费,但不会免去检查结果的成本。

开放权重也不代表商业使用不受限制。FLUX Kommunity License区分非商业用途、符合条件的商业输出生成和其他商业活动。营收门槛、关联公司、模型再分发和训练用途都要分别核查。输入照片、商标或人物的权利也不由模型许可决定。

编辑不顺利时,先缩小故障范围

现象首先检查下一步建议
构图没有按要求变化坐标顺序及互相冲突的场景描述减少到一张参考图、一个区域
图像其他部分也变了原始模型说明和托管服务的保真功能是否不同叠图比较,必要时用基于遮罩的工具收尾
本地运行耗尽内存所有已加载组件、分辨率和参考图数量回到运行时文档所述的低内存配方
文字看着像真的,内容却不对检查完整分辨率下的字样,而非缩略图在常规编辑器里添加准确文字
API 响应里暂时没有图像文件任务状态和结果轮询跟踪已有任务,不要立刻重复提交

开始第二个项目之前,先弄清这些问题

FLUX 3 Image Klein 能替代 Photoshop 吗?

它是一个可通过多种方式运行的生成与编辑模型,不是完整的图层式生产应用。它可以帮你制作或修改素材;选区工具、精准排版、色彩管理、版本管理和交付工作仍可能需要在编辑器中完成。

可以指望它准确生成韩文吗?

用实际交付尺寸测试真实文字。模型卡提醒,渲染文字可能不准确或变形。英文演示可读,不代表韩文排版可靠。条件允许时,把准确文案保留为可编辑文本。

本地推理是否意味着整个流程都离线?

只有你有意将整个流程设置为离线时才是。初始下载、远程提示词扩写、外部节点和遥测都可能产生网络流量。要检查完整工作流,而不只是图像 Transformer 所在的位置。

初学者应该选择哪个检查点?

先使用文档所述的蒸馏版生成路径。基础检查点主要面向适配和研究。确定一个已知可用任务后,再在相同输入上比较其他选择,不要同时更换模型、提示词和分辨率。

真正的突破,是得到可信的修改结果

我们的看法是,图像 AI 的价值在于更好地控制修改,而不是生成更多令人意外的图片。FLUX 3 Image Klein 值得关注,是因为参考图、布局描述和多种部署方式让这种控制更接近日常工作。接下来仍要把原图、预期修改和验收标准明确呈现出来。

从一张图和一次有意图的编辑开始。能稳定产出已获批准素材的工作流,胜过一个速度很快、却让你猜不透究竟改了哪里的模型。

来源与媒体

核对日期:2026 年 10 月 18 日。以上产品能力和性能数据来自链接中的发布方;本文没有声称进行本地基准测试或付费生成。三张图均为原创说明图。可查看 BFL 的官方输出图库和官方交互演示了解产品示例;本文没有转载这些第三方图片。

让实验成果便于复用

把源链接、提示词、设置和审核记录放在一起,而不只是保存最终图片。Telli.sh 可以帮助整理研究笔记;它不是图像生成集成。创建 Telli.sh 账户


← 返回博客