单张图像的标称价格并不是一个好的初筛指标。两款标价相同的模型,在是否支持参考图、是否支持蒙版编辑、如何选择输出尺寸,以及按请求还是按 token 计费等方面可能截然不同。应先按能力筛选候选模型,然后结合你自己的提示词,对比产出单张合格结果的实际成本。
本文是一份图像生成 API 的选型框架。内容涵盖图像生成,不涉及视频。若业务流水线同时需要两者,相同的异步与计费机制同样适用,但视频不在本文讨论范围内。
第 1 步:匹配所支持的操作
第一轮筛选取决于操作类型。仅支持纯文本生成的端点无法完成蒙版编辑,而专为局部重绘(inpainting)构建的模型也无法胜任通用的提示词生图任务。
在 TokenLab 上,生成与编辑通常对应不同的端点:
| 需求 | 端点 | 说明 |
|---|---|---|
| 文本到图像 | POST /v1/images/generations |
请求仅基于提示词发起 |
| 图像到图像 / 参考图驱动生成 | POST /v1/images/generations |
接收 operation: "image-to-image" 及参考图 URL 的模型 |
| 蒙版或多部分编辑 | POST /v1/images/edits |
明确说明支持编辑流程的模型 |
| 现有图像的变体 | POST /v1/images/variations |
适用于已采用变体格式的集成方案 |
| 任务状态 | GET /v1/tasks/{id} |
当创建响应返回 task_id、status: "pending" 或 poll_url 时 |
决策对照表请参阅图像生成指南,请求字段请参阅创建图像与编辑图像参考文档。
有一条路由规则经常导致大量的调用失败:Nano Banana 的参考图请求(nano-banana-2、nano-banana-pro)应发送至 /v1/images/generations,并传入 operation: "image-to-image" 和 image_urls,而不是发送至 /v1/images/edits。相反,gpt-image-2 的编辑操作属于 /v1/images/edits,它支持 multipart image 上传、JSON image_url / image_urls,以及最多 16 张源图像的 images[] 引用。
当前 TokenLab 目录中的实用分组:
- 兼具生成与编辑:
flux-2-klein-4b,flux-2-klein-9b,flux-2-pro,flux-2-flex,flux-2-max,flux-kontext-pro,flux-kontext-max,gemini-3-pro-image,gemini-3.1-flash-image,nano-banana-2,nano-banana-2-lite,nano-banana-pro,gpt-image-2,gpt-image-2.5-flare,gpt-image-2.5-sunburst,grok-imagine-image,grok-imagine-image-quality,grok-imagine-image-2.0,qwen-image-2.0,qwen-image-2.0-pro,qwen-image-3.0,seedream-4.0,seedream-4.5,seedream-5.0,seedream-5.0-lite,seedream-5.0-pro,vidu-image-lite,vidu-image-pro。 - 仅支持文本到图像:
flux-1-dev,flux-pro-1.1,flux-pro-1.1-ultra,sd3.5-medium,sd3.5-large,sd3.5-large-turbo,sd3.5-flash,stable-image-core,stable-image-ultra,z-image,z-image-turbo,kling-image,kling-omni-image,hy-image-lite。 - 专业编辑工具:
stability-inpaint,stability-control-sketch,stability-control-structure,stability-style-guide,stability-upscale-fast,stability-upscale-conservative,image-upscaler,image-background-remover,flux-pro-1.0-fill,qwen-image-edit。
请按具体模型而非模型家族核验操作支持情况。GET /v1/models?recommended_for=image 会返回当前的推荐集合,而获取模型参考文档中展示的 supported_operations 字段则能告知特定模型 ID 所接受的操作。
第 2 步:检查模型如何接收参考图
参考图的处理方式往往是系统集成中最容易出错的地方。各字段名称之间不可混用:
image_url—— 单张参考图像。image_urls—— JSON 格式的一张或多张参考图像。reference_image_urls—— 针对将主要输入与参考输入分开的模型所使用的附加参考图。image—— multipart 文件上传,适用于私有或受 header 保护的源图像。- 带有
image_url或file_id的images[]—— 编辑流程专用的入参形态;/v1/images/generations不支持。
来自 API 参考文档、值得在架构设计时纳入考量的限制条件:
- 远端参考图必须是公开的
http/httpsURL,不能包含内嵌凭据或片段标识符(fragments),且不得解析至 localhost、私有或保留 IP 地址段。每次重定向都会重新检查。 - 通过 URL 拉取的图像:单张限 50 MiB,每个请求总计限 200 MiB(含蒙版),拉取超时时间为 30s,最多允许 3 次重定向。拉取到的有效负载必须是真实的 PNG、JPEG 或 WebP 格式。
- 源图像上限各不相同:
gpt-image-2最多支持 16 张;文档中说明的 3 张输入图像上限专门适用于grok-imagine-image和grok-imagine-image-quality(超过 3 张会报错400 too_many_images),而文档中未对grok-imagine-image-2.0注明该限制。 mask必须是小于 50 MiB 且尺寸与源图像一致的 PNG 图像。
如果你的源图像是私有的,建议规划使用 multipart 上传或 /v1/files 引用,而不是传递带过期时间的签名 URL。若签名 URL 在处理开始前已过期,系统会将其视为拒绝输入,而非生成失败。
第 3 步:对比输出控制项,而非仅看模型名称
处于同一层级的两个模型可能会提供截然不同的尺寸和质量控制参数。在围绕其构建 UI 之前,请确认所选参数的契约约定。
| 控制项 | 检查要点 |
|---|---|
size |
OpenAI 风格的模型系列接受 auto 或 WIDTHxHEIGHT。对于 gpt-image-2,尺寸必须是 16 的倍数,长边不超过 3840px,长宽比最大为 3:1,总像素数介于 655,360 到 8,294,400 之间 |
aspect_ratio |
Google 图像系列及 Grok Imagine 使用 1:1、16:9、9:16、3:2、2:3 等类似值 |
resolution |
gemini-3.1-flash-image、gemini-3-pro-image、nano-banana-2 和 nano-banana-pro 支持 1k、2k、4k,而 nano-banana-2-lite 仅支持 1k。Grok Imagine 支持 1k 和 2k |
quality |
GPT Image 模型使用 auto、low、medium、high。其他模型可能使用不同的取值 |
n |
单次请求生成的图像数量,取决于模型 |
response_format |
url 或 b64_json。异步任务无论请求何种格式均返回 URL |
background, output_format, output_compression |
在 gpt-image-2 文档中有记录;不支持 transparent |
async |
gpt-image-2 及官方 FLUX/BFL 图像模型支持 |
传递未在文档中说明的字段并非全无影响。例如,input_fidelity 不在当前 gpt-image-2 支持的字段列表中,传入会返回 400 unsupported_parameter。其他模型传入不支持的字段也会出现类似失败。完整的字段列表请参阅创建图像参考文档。
第 4 步:在比较前先弄清计费单位
如果把按 token 计费的模型与按图像计费的模型当作同一单位进行比较,成本核算就会出现偏差。
gpt-image-2采用按 token 计费。TokenLab 遵循厂商针对文本输入、图像输入、已上报缓存输入以及图像输出 token 的用量明细拆分进行计费;它并不属于固定按单张图像计费的模型。- 大多数其他图像模型则是按请求、按图像或按模型页面上展示的其他单位计费。
这带来的实际影响是:对于 gpt-image-2,相同的提示词在相同的标称设置下,其费用可能会因分辨率、质量以及提示词本身而有所不同,因为输出 token 数量会发生变化。在敲定路由规则之前,务必进行实际测量。
建议在请求时读取最新的计费单位和价格,而非把价目表硬编码到代码中:
- 账单与定价解释了扣费、估算以及异步额度预留的运作机制。
- 获取模型返回单个模型的
tokenlab.pricing和tokenlab.pricing_unit。 - 列出模型返回包含
tokenlab.pricing、tokenlab.capabilities和tokenlab.deliveryAvailability的模型目录。 - 模型页面展示了相同的信息供浏览查看。
TokenLab 价格列中的破折号表示该模型目前暂无 TokenLab Verified 报价,并不代表该模型免费。具备 Official 渠道供应的模型仍可通过 Official 或 Auto 交付选项调用。
第 5 步:决定采用同步还是基于任务的流程
高分辨率图像请求可能耗时近一分钟甚至更久。对于同步调用,请将 HTTP 客户端超时时间至少设置为 120s,或者改用任务流程。
- 在调用
gpt-image-2或官方 FLUX/BFL 图像模型时传入async: true,以获取task_id和poll_url,而非直接等待返回成品图像。 - 不要将某个模型硬编码为始终同步或始终异步。请检查创建请求的响应:如果其中包含
status: "pending"、task_id或poll_url,请按返回的poll_url进行轮询。 - 状态包含
pending、processing、completed和failed。即使任务失败,成功读取状态的操作也会返回 HTTP 200;请通过status字段判断,而不是依据 HTTP 状态码。 - 异步图像结果以 URL 形式返回。若需要原始的
b64_json,请使用同步请求。 - 每隔几秒轮询一次,并在达到终态时停止轮询。生成的图像 HTTP(S) 结果 URL 最长可作为媒体副本保留 30 天;请查看
media_retention.items获取各项的状态与expires_at。
重试不仅带来延迟风险,还会带来扣费风险。超时后重试的创建请求可能会生成第二个任务并产生二次扣费。请保存 request_id、task_id 以及任何 billing_transaction_id,并在重试前确认任务是否已经创建。
第 6 步:基于你自己的提示词集进行评估
本文未包含任何中立的第三方厂商质量排名,亦不建议轻信营销宣传中的结论。请通过基于你自身工作负载的实际测试来论证选型:
- 整理一套能够反映你生产环境分布的固定提示词集 —— 包括你实际接收到的主体、风格和指令结构。通用的演示提示词无法帮你拉开模型间的差距。
- 在相同的设置下,对候选模型运行这套提示词,并记录每次请求的生成耗时(包含重试)。
- 使用固定的评分标准(无论是自动化评分还是人工评审团)对输出结果进行打分,切忌仅凭肉眼主观抽查。
- 计算产出单张合格图像的成本,而非单张生成图像的成本。如果一个单价更低的模型平均需要尝试两次才能产出一张可用图像,那它实际上并不便宜。
- 如果你的产品对延迟敏感,请记录分位数指标而非平均值,因为尾部延迟才是用户真正能感知到的。
- 当你更换服务商或目标分辨率时,请重新进行对比评估,因为计费单位和模型表现都可能发生变化。
产出单张合格图像的成本,是解答单价更高的模型对于你的具体工作负载是否物有所值的唯一指标。
示例请求
以下是生成调用形态的示例说明,并非实测结果。示例使用了一个支持 aspect_ratio 和 resolution 参数的模型。
curl https://api.tokenlab.sh/v1/images/generations \
-H "Authorization: Bearer $TOKENLAB_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gemini-3-pro-image",
"prompt": "A cinematic portrait of a white cat sitting on a rainy windowsill",
"aspect_ratio": "16:9",
"resolution": "2k"
}'
如果该响应返回 status: "pending",请针对返回的 poll_url 进行轮询,而不要将其视作失败。
不同 API 格式对模型的接入方式并非完全一致。TokenLab 支持 Chat Completions、Responses、Anthropic Messages 以及 Gemini 请求形态,而特定模型可能仅支持其中的一部分。在复用现有客户端之前,请检查模型上的 tokenlab.accepted_request_formats —— 详见 API 格式。
本文的局限性
- 本文未包含针对任何图像模型的独立质量基准测试、延迟测算或吞吐量数据。厂商关于人体结构、文字渲染或照片级逼真度的宣传定位均未作为既定事实引述。
- 本文未列出具体价格。图像模型的计费单位各不相同且可能调整;请直接在模型页面或通过
GET /v1/models/{model}查看最新数值。 - 模型可用性因交付选项和工作空间而异。
tokenlab.deliveryAvailability描述的是已配置的支持情况;它并不保证实时可用性,具体将在请求运行时进行核验。 - 适用公共区域限制。
相关阅读
来源
- https://docs.tokenlab.sh/guides/image-generation资料更新于 2026-09-27
- https://docs.tokenlab.sh/api-reference/images/create-image资料更新于 2026-09-27
- https://docs.tokenlab.sh/api-reference/images/edit-image资料更新于 2026-09-27
- https://docs.tokenlab.sh/api-reference/models/get-model资料更新于 2026-09-27
- https://docs.tokenlab.sh/guides/billing资料更新于 2026-09-27
- https://docs.tokenlab.sh/api-reference/models/list-models资料更新于 2026-09-27
- https://tokenlab.sh/models
- https://docs.tokenlab.sh/guides/async-jobs-polling资料更新于 2026-09-27



