媒体指南
图片生成
生成或编辑图片,并处理直接结果与异步任务
TokenLab 支持文生图、图生图和图片编辑。不同模型的参数不一样,发送请求前请查看所选模型支持的字段。
选择 API
| 想做什么 | API | 适合 | 不适合 |
|---|---|---|---|
| 文生图 | POST /v1/images/generations | 只从文字开始生成 | 编辑已有的 GPT Image 图片 |
| 图生图 | POST /v1/images/generations | 模型接受 operation: "image-to-image" 和图片 URL | 必须使用 multipart 图片的编辑模型 |
| 图片编辑 | POST /v1/images/edits | 用支持编辑的模型修改已有图片 | Nano Banana 一类的参考图生成 |
| 图片变体 | POST /v1/images/variations | 已有功能就在使用 Variations API | 新建参考图功能 |
| 查询状态 | GET /v1/tasks/{id} | 创建响应带有 task_id、pending 或 poll_url | 响应已经返回最终 data[] |
请求中必须包含 model,图片端点没有默认模型。
选择模型
用下面的请求查找当前图片模型:
curl "https://api.tokenlab.sh/v1/models?recommended_for=image" \
-H "Authorization: Bearer sk-your-api-key"打开所选模型详情,确认:
- 支持哪些生成类型,例如
text-to-image、image-to-image或image-edit。 - 应该使用哪个 API。
- 参考图应该放在
image_url、image_urls、reference_image_urls、multipartimage还是 JSONimages[]。 - 模型是否接受
size、aspect_ratio、resolution、quality、background、output_format或response_format。
不同模型使用不同字段
gpt-image-2一类请求使用 OpenAI 风格的size、quality和编辑字段。生成和编辑时,background可以是auto或opaque,暂不支持transparent。需要自动默认值时,省略对应字段即可。- Gemini 和 Nano Banana 图像系列通常使用
aspect_ratio;仅在模型详情暴露时发送resolution。 - Nano Banana 图像到图像应在
/v1/images/generations上,带有operation: "image-to-image"和参考图像 URL。 /v1/images/generations不接受顶层images[]或file_id;这些字段用于图片编辑。- 远程图片必须能通过
http或https访问。不要使用内网地址、带凭据的地址、URL fragment,或即将过期的签名 URL。
文生图示例
curl https://api.tokenlab.sh/v1/images/generations \
-H "Authorization: Bearer sk-your-api-key" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2",
"prompt": "一个干净的陶瓷咖啡杯在胡桃木桌上的产品照片",
"size": "1024x1024",
"response_format": "url"
}'参考图示例
curl https://api.tokenlab.sh/v1/images/generations \
-H "Authorization: Bearer sk-your-api-key" \
-H "Content-Type: application/json" \
-d '{
"model": "nano-banana-2",
"operation": "image-to-image",
"prompt": "保持产品形状,将背景更改为明亮的工作室设置",
"image_urls": ["https://example.com/input/product.png"],
"aspect_ratio": "1:1"
}'获取图片
图片可能直接返回,也可能先返回任务:
- 直接完成时,
data[]中会有url或b64_json。 - 异步生成会返回
id、task_id、status,通常还有poll_url。 - 有
poll_url时直接使用;需要固定地址时调用GET /v1/tasks/{id}。 - 需要
b64_json时请使用同步请求,异步图片结果通过 URL 提供。
curl "https://api.tokenlab.sh/v1/tasks/$TASK_ID" \
-H "Authorization: Bearer sk-your-api-key"保存图片 URL、任务 ID、模型,以及你自己的用户或任务 ID。状态已经是 completed 或 failed 后不再继续查询。
上线前检查
- 检查提示词长度、图片数量、URL 是否可访问,以及文件类型。
- 高分辨率同步请求需要更长超时;模型支持异步时,耗时任务可以使用异步模式。
- 保存
request_id、task_id、poll_url、模型、API 地址和请求字段名。 - 客户端超时后,确认没有创建任务再重新提交。
- 最终费用以 Usage 和
billing_transaction_id为准。
常见错误
| 症状 | 可能原因 | 修复 |
|---|---|---|
400 和 param: "model" | 缺少显式模型 | 查询 /v1/models?recommended_for=image 并发送 model |
| 不支持的字段 | 所选模型没有这个字段 | 删除字段,或换成明确支持它的模型和 API |
异步结果中没有 b64_json | 异步图片通过 URL 返回 | 需要 base64 时使用同步模式 |
| 参考图被拒绝 | API 不对,或 URL 无法访问/已经过期 | 按模型文档填写参考图,并使用可访问的 URL |