LoopToken

图片生成

POST /v1/images/generations 与 /v1/images/edits:全部图片模型共用的同步接口,各模型请求协议与响应格式差异、选型对照

POST/v1/images/generations
POST/v1/images/edits

两个端点均为同步:请求会等待生成完成后返回,无需创建任务或轮询。不同模型使用不同请求协议与响应结构,必须按模型解析,不能假设所有图片接口都返回同一种响应体。

项值
模型见模型选型,可用模型以模型列表为准
模式同步(单次请求等待生成完成,无任务 ID,无轮询)
端点POST /v1/images/generations(文生图、参考图生成/编辑);POST /v1/images/edits(gpt-image-2-ext 单图编辑、grok-imagine-1.5-edit)
鉴权Authorization: Bearer <your-api-key>,完整规则见身份认证
计费按识别到的输出张数(gpt-image-2-official、gpt-image-2.6-* 按 token),价格以定价页为准
媒体保留响应中的图片 URL 为临时地址,请及时转存,见注意事项

快速开始

curl https://api.vibelab.me/v1/images/generations \
  -H "Authorization: Bearer $LOOPTOKEN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "Doubao-seedream-4.5", "prompt": "白底上的蓝色圆形图标"}'
{"created": 1719820800, "data": [{"url": "https://..."}]}

响应格式因模型而异,见响应。API Key 应只保存在服务端。请求头统一为:

Authorization: Bearer <your-api-key>
Content-Type: application/json

模式选择

POST /v1/images/generations

此端点承载文生图与参考图生成/编辑,可用参数由模型决定。

模型用途请求提示词与图片生成参数成功响应中的图片
Doubao-seedream-4.0文生图、参考图生成顶层 prompt;参考图使用顶层 image顶层图片参数data[].url 或 data[].b64_json
Doubao-seedream-4.5文生图、参考图生成顶层 prompt;参考图使用顶层 image顶层图片参数data[].url 或 data[].b64_json
Doubao-Seedream-5.0-lite文生图、参考图生成顶层 prompt;参考图使用顶层 image顶层图片参数data[].url 或 data[].b64_json
doubao-seedream-5.0-pro文生图、参考图生成顶层 prompt;参考图使用 image_urlssize、resolutiondata[].url 或 data[].b64_json
wan2.7-image文生图、编辑、序列生成顶层 prompt;参考图使用 image_urlsn、size、resolutiondata[].url 或 data[].b64_json
wan2.7-image-pro文生图、编辑、序列生成顶层 prompt;参考图使用 image_urlsn、size、resolutiondata[].url 或 data[].b64_json
gpt-image-2 / gpt-image-2-lite文生图、参考图顶层 prompt;参考图使用 image_urlsn、size、resolutiondata[](gpt-image-2-lite 为 data[].b64_json)
gpt-image-2-ext文生图顶层 promptn=1、size、qualitydata[].url 或 data[].b64_json
gpt-image-2.5-ext文生图、参考图顶层 promptn=1、size、resolution、versiondata[].b64_json
gpt-image-2-official文生图、图生图、局部重绘顶层 prompt;参考图使用 image_urls,遮罩使用 mask_urln(1-4)、size、resolution、quality、background、output_formatdata[].url
gpt-image-2.6-flare / gpt-image-2.6-sunburst文生图、图生图、局部重绘顶层 prompt;参考图使用 image_urls,遮罩使用 mask_urln(1-4)、size、resolution、quality、complexitydata[].url
nano-banana-2.1文生图、参考图顶层 prompt;参考图使用 image_urlsn(1-4)、size、resolutiondata[].url
nano-banana-2.1-ext文生图、参考图顶层 prompt;参考图使用 image_urlsn=1、size、resolutiondata[].url

Seedream 的 data[] 返回 URL 还是 Base64 取决于请求的响应格式与模型线路。

详见 Seedream 与 Wan。

POST /v1/images/edits

此端点用于 gpt-image-2-ext 单图编辑,使用 multipart 表单。

模型参考图输出数量尺寸成功响应中的图片
gpt-image-2-ext1 张,单数 image 字段固定 1 张支持比例 + 分辨率档位并转换为明确宽高;必须读取实际返回尺寸data[].url 或 data[].b64_json

完整请求结构与示例见 GPT Image。

模型选型

需求模型详情
文生图、参考图、组图(OpenAI Images 响应)Seedream 系列Seedream
文生图、编辑、序列生成(扁平协议)wan2.7-image / wan2.7-image-proWan
按张计费的 GPT Imagegpt-image-2 / -lite / -ext / gpt-image-2.5-extGPT Image
按 token 计费、透明背景、局部重绘gpt-image-2-officialGPT Image 2 Official
按 token 计费、complexity 可调gpt-image-2.6-flare / gpt-image-2.6-sunburstGPT Image 2.6
Nano Banana 系列nano-banana 等Nano Banana
Grok Imaginegrok-imagine-1.5 / -editGrok Imagine
快速文生图z-image-turbo其他图片模型

请求结构

全部图片模型都使用顶层字段:model 与 prompt 为主要输入,参考图和生成选项位于请求体顶层。GPT Image、Nano Banana、Grok Imagine 和其他 OpenAI Images 扩展模型的具体请求和响应以 GPT Image、Nano Banana、Grok Imagine 和 其他图片模型 页面为准。

请求参数

公共规则(各模型的完整字段见模型页):

参数类型必填默认说明
modelstring是-缺失或为空 → 400 invalid_request;不在 Key 白名单 → 403;平台没有该模型 → 404
ninteger否1输出张数;预扣按此值,省略或非正数按 1
sizestring否模型默认尺寸;取值因模型而异
resolutionstring否模型默认分辨率档位(1k / 2k / 4k 等),仅部分模型使用
image_urlsstring[]否-参考图(扁平协议模型),数量上限因模型而异
  • 请求体最多读取前 20 MiB,超出会被截断,通常因 JSON 不完整返回 400 invalid_request。
  • 除上述平台读取的字段外,其余字段原样转发给模型服务校验,越界通常表现为 502 upstream_error。
  • 仅 gpt-image-2-ext 的 /v1/images/edits 使用 multipart/form-data(单数 image 文件字段),其余模型一律 JSON。

响应

响应族模型图片位置说明
OpenAI ImagesSeedream、Wan 2.7、GPT Image、Nano Banana、Grok Imagine、z-image-turbodata[].url 或 data[].b64_json返回 URL 还是 Base64 因模型而异,以各模型页为准
  • 成功响应体由模型服务透传,平台不向响应体注入请求 ID;请求 ID 位于响应头 X-Request-Id,排查时请一并保存。
  • 响应中的 usage 是模型服务用量,不是 credit 金额。

计费

图片按平台识别到的输出张数计费,不同模型单价见定价页。

  • 请求前按模型、数量和尺寸预扣;成功后按可识别的实际图片数结算。
  • 2xx 响应结构无法识别图片数时,按本地解析的提交数量结算。
  • 模型服务非 2xx、没有可处理资源或重试耗尽,全额退款。
  • 响应中的 usage 是模型服务用量,不是 credit 金额。
  • 失败与退款规则以错误码为准。

错误

错误体为统一信封(type 与 code 相同),不应依赖具体 message 文案编写分支:

{
  "error": {
    "type": "invalid_request",
    "code": "invalid_request",
    "message": "invalid image generation request",
    "request_id": "req_..."
  }
}
HTTPcode触发场景处理
400invalid_request请求体不是合法 JSON、model 缺失或为空;模型与端点不匹配(如 gpt-image-2-lite、gpt-image-2.5-ext、gpt-image-2-official、gpt-image-2.6-* 只在 /v1/images/generations 提供;grok-imagine-1.5-edit 只在 /v1/images/edits 提供);各模型的参数校验失败(见模型页)按 message 修正请求,重试不会改变结果
400上游 code模型服务返回 400 且带可识别的错误码时透传该 code按 message 修改请求
401invalid_api_keyAPI Key 缺失或无效检查 Key
402insufficient_credits余额不足以预扣本次请求充值后重试
403model_not_allowedKey 的模型白名单不允许该模型调整白名单
404model_not_found未知模型名对照模型列表
429media_concurrency_exceeded用户或 Key 的媒体并发超限,响应头带 Retry-After: 5等待后重试
500internal_error计费、定价或请求构建异常稍后重试
502upstream_error模型服务拒绝参数、素材或内容,或生成失败(模型服务错误不透出)视为暂时不可完成,带抖动退避重试;已预扣部分全额退款
503no_available_channel当前没有可处理该模型的服务资源;也可能在可重试失败后返回稍后重试,已预扣部分全额退款

保留 request_id 便于排查,完整说明见错误码。

注意事项

  • 响应中的图片 URL → 临时地址,收到成功响应后应尽快下载并保存到自己的持久存储;当前公开契约不承诺精确有效时长。
  • data[].b64_json → 由调用方解码并保存。
  • 不同模型的响应体 → 结构不同,必须按模型解析,不能假设所有图片接口返回同一种响应体。

本页内容