FLUX 3 Image 已通过 Black Forest Labs 自有的 Replicate 模型和多个合作伙伴端点上线,支持 4K 输出,以及基于最多 10 张参考图进行编辑。不过,BFL 的原生文档目前仍主要介绍 FLUX 3 Video;在图像服务商这里,接口结构、输入限制和计费方式各不相同。
FLUX 3 Image API 到底能不能用?
FLUX 3 Image API 确实已经可用,但“官方”这个说法需要先定义清楚。最有力的证据,是 Replicate 上由 Black Forest Labs 持有的在线模型页面 black-forest-labs/flux-3-image。它既支持文生图,也会在传入图像后切换到编辑模式,同时提供 4k 分辨率选项。
| 截至 2026 年 10 月 2 日核查的入口 | 当前可用内容 | 能够证明什么 |
|---|---|---|
| Replicate 上的 BFL 模型 | black-forest-labs/flux-3-image | BFL 持有的模型;支持文生图、编辑、4K 和最多 10 张参考图 |
| fal 合作伙伴端点 | blackforestlabs/flux-3/edit-image | 商业编辑端点,支持 1-10 张参考图、排队式 API,以及按分辨率计费 |
| Layer API 文档 | bfl-flux-3-image | 通过异步工作区 API 支持 1K、2K、4K 生成和编辑 |
| BFL 原生 API 文档 | 文档中介绍了 FLUX 3 Video | 核查时未列出对应的原生 FLUX 3 Image 路由 |
flux3api.com 及社区封装 | 独立的第三方服务 | 名称相似,并不能证明其由 BFL 持有,也不能证明当前能访问 FLUX 3 Image |
BFL 关于 FLUX 3 的帮助文章目前只介绍视频模型;而独立的 BFL 持有的 Replicate 模型页面和合作伙伴端点,则验证了图像编辑能力确实存在。
在这个端点出现之前,Reddit 用户 u/rerri 曾预测它会以 API 优先的方式发布:
“如果 API-only 的 Flux 3 Image 先发布,我一点也不会惊讶。”——u/rerri,发布于 r/StableDiffusion
如今的发布路径确实符合这一判断,但能调用 API,并不意味着开放权重已经公开。
4K 和多参考图编辑,实际意味着什么?
FLUX 3 Image 提供 4k 输出选项,也最多接受 10 张参考图。但这两个参数都不能保证生成结果完整保留人物身份、产品细节或小字号文字。服务商页面目前提供的是参数说明和示例,并没有独立的质量评分。
BFL 持有的 Replicate README 列出了 768sq、1k、1.5k、2k 和 4k。参考文件支持 JPEG、PNG、GIF 或 WebP,尺寸至少为 256×256 像素,大小不得超过 16 megapixels。将 aspect_ratio 设为 auto 时,第一张参考图会决定编辑结果的宽高比。
fal 的编辑接口定义与此类似,但并不完全相同。它支持 1-10 个 URL 或 data URI,每张输入图上限为 4 megapixels,输出范围从 512sq 到 4k,并提示 4K 任务可能需要几分钟。参考图的顺序具有语义:image 1 指的是 image_urls 中的第一项。
| 控制项 | Replicate | fal | 对生产环境的影响 |
|---|---|---|---|
| 最多参考图数量 | 10 | 10 | 在提示词中明确写出每张输入图的编号 |
| 输入尺寸上限 | 16 MP | 每张图 4 MP | 路由到服务商前先完成校验 |
| 输出选项 | 768sq、1K、1.5K、2K、4K | 512sq、768sq、1K、2K、4K | 不要未经校验就让多个服务商共用同一套枚举值 |
| 自动宽高比 | 由第一张参考图引导 | 由第一张参考图引导 | 把负责构图的参考图放在第一位 |
| 输出格式 | WebP、JPG、PNG | JPEG、PNG | 下游文件处理需要统一格式逻辑 |
| 4K 延迟说明 | 未公布实测延迟 | 可能需要几分钟 | 不要把 4K 放进交互式预览链路 |
处理多参考图编辑时,最好为每个输入明确分工:基础构图、主体身份、产品或风格。fal 自己的建议是每次请求只做一次编辑。比如,“以图 1 为基础,只将其中的瓶子替换为图 2 中的产品,保留拍摄角度、手部、光线和背景”,就比同时修改服装、字体和地点的复杂请求更容易检查。
一套适合生产环境的排队式 API 工作流
在生产环境中使用 FLUX 3 Image API,应当把生成任务当作异步作业处理。应用先上传稳定可访问的输入 URL,提交范围明确的请求,保存服务商返回的请求 ID,再通过退避策略轮询状态,最后把生成结果复制到自己的存储中。
下面的示例使用 fal 文档中的端点标识和请求字段。它是一个集成模板,并不表示本文核查期间实际执行过这段请求。
import os
import time
import requests
ENDPOINT = "https://queue.fal.run/blackforestlabs/flux-3/edit-image"
headers = {
"Authorization": f"Key {os.environ['FAL_KEY']}",
"Content-Type": "application/json",
}
payload = {
"prompt": (
"Use image 1 as the base. Replace only its package with the product "
"from image 2. Preserve the hands, camera angle, shadows, and background."
),
"image_urls": [
"https://cdn.example.com/base.jpg",
"https://cdn.example.com/product.png",
],
"resolution": "1k",
"aspect_ratio": "auto",
"output_format": "png",
"safety_tolerance": 2,
}
submitted = requests.post(ENDPOINT, headers=headers, json=payload, timeout=30)
submitted.raise_for_status()
job = submitted.json()
status_url = job["status_url"]
response_url = job["response_url"]
while True:
status = requests.get(status_url, headers=headers, timeout=30)
status.raise_for_status()
state = status.json().get("status")
if state == "COMPLETED":
break
if state in {"FAILED", "CANCELLED"}:
raise RuntimeError(status.text)
time.sleep(2)
result = requests.get(response_url, headers=headers, timeout=30)
result.raise_for_status()
print(result.json())
模型页面链接的 fal 队列文档还提供了 sync_mode,但对于 4K 任务,排队执行更稳妥,因为渲染时间可能超过普通 HTTP 请求的超时时间。Layer 则把这种异步契约写得更明确:提交请求后返回 HTTP 202、一个 inference_id 以及建议的轮询间隔。Layer 还支持可在 24 小时内重放的幂等键,有助于避免网络重试造成重复扣费。
正式接入流量前,至少要完成以下准备:
- 拒绝任一边小于 256 像素的图片,并执行所选服务商的 megapixel 上限校验。
- 保留数组顺序,并在提示词中使用
image 1、image 2等编号。 - 服务商支持幂等键时,为每个任务使用唯一幂等键;否则,应在重试前先持久化请求。
- 限制轮询时长,向用户展示待处理状态,不要让应用请求一直保持打开。
- 将完成后的文件复制到受控存储中,因为托管结果 URL 的保留策略可能与应用要求不一致。
- 为每个任务记录模型 ID、服务商、分辨率、参考图数量、报价、耗时和审核结果。
成本与质量:需要正视的取舍
目前能够做出的成本比较很有限,因为核查到的页面没有公布完整的分辨率价格表。fal 展示的促销价是每张 1K 图片 $0.024,促销结束后上涨至 $0.048;页面还说明参考图数量不会改变收费。该模型页面没有列出确切的 2K 和 4K 价格,因此不能根据 1K 价格推算 4K 预算。
与其默认 4K 永远更好,不如采用两阶段策略:
| 阶段 | 分辨率 | 目的 | 升级规则 |
|---|---|---|---|
| 提示词与参考图验证 | 1K | 检查构图、身份、产品形状和文字 | 在生成高成本输出前拒绝或修改 |
| 最终素材 | 2K 或 4K | 生成已经批准的交付文件 | 只有目标渠道确实需要这些像素时才升级 |
更高分辨率带来的是更多像素,而不是更好的编辑保真度:一个糟糕的 1K 编辑结果,到了 4K 只会变成更大的失败。4K 更适合已经审核通过、要用于印刷、广告牌版式或大幅裁切的编辑结果。
应用启动时,可以发送一个最小有效测试任务,或查询服务商的价格接口,记录返回的报价;如果报价缺失,或超过任务预算,就禁用 4K。Layer 的初始响应可能包含 estimated_price_creative_units,但其公开模型页面没有提供 Creative Units 与美元之间的换算方式。Replicate 的模型页面记录了输入参数,却没有固定价格。这些都是上线前需要在账户后台确认的采购信息,不应该在代码里自行猜一个数字。
根据运营需求选择端点
服务商的选择,应该取决于应用真正需要的接口契约。模型归属相同,并不意味着不同服务商的参数结构可以直接互换。
- Replicate:如果模型来源是首要考虑因素,而且现有技术栈已经使用 Replicate 的 prediction 工作流,可以选择这个 BFL 持有的模型页面。它在本文核查的选项中提供了更高的输入上限,达到 16 MP,并支持可选的网页/图像 grounding。
- fal:如果你更看重清晰的图像编辑控制、排队式工作流和可见的 1K 价格,可以选择这个合作伙伴编辑端点。但它每张图 4 MP 的输入上限意味着需要提前缩小图片。
- Layer:如果你需要工作区管理、正式的 HTTP
202契约、轮询提示和 24 小时幂等能力,可以选择它。在制定预算前,务必确认 Creative Units 如何换算成美元。
不要因为服务商的域名或仓库名里出现“FLUX3”,就直接认定它属于官方渠道。应核对模型 ID、持有方或合作伙伴标识、当前枚举值、商业条款,以及一次成功的低成本请求。排名靠前的 Anil-matcha/Flux-3-Dev-API 封装在核查时仍将其图像路由标记为“coming soon”,而 BFL 持有的 Replicate 路由和 fal 合作伙伴路由已经可用。
上线前的生产验收门槛
FLUX 3 Image 适合用于受控的 API 测试,包括 4K 和最多 10 张参考图。正式上线前,应让选定的端点在 1K 和最终分辨率下,使用同一组有代表性的编辑任务完成验证。
| 检查项 | 通过条件 |
|---|---|
| 来源 | 确认是 BFL 持有的模型 ID,或已验证的合作伙伴模型 ID |
| 可用性 | 真实的低成本请求能够完成,而不只是文档中存在对应路由 |
| 参考图行为 | 在代表性的 2 张、5 张和 10 张图片案例中,输入顺序和角色标注都能正确生效 |
| 质量 | 身份、产品几何形状、文字和未修改区域达到既定审核标准 |
| 成本 | 服务商能够为每一种启用的分辨率返回或展示可接受的价格 |
| 延迟 | 实测排队和渲染时间符合预览与批处理服务的目标 |
| 可靠性 | 重试不会产生无法追踪的重复任务或重复扣费 |
| 存储 | 在服务商 URL 过期或策略变化前,完成结果文件复制 |
更稳妥的做法是先上线 1K 编辑,持续记录报价和延迟数据,再只为已批准的最终素材启用 2K 或 4K。这样既能用上新模型目前已经明确的核心能力,也不会对高分辨率质量或成本做未经验证的假设。