创建任务
统一提交图片或视频生成任务;服务端会根据 model 自动识别任务类型并返回 task_id。
这是对外生成能力最核心的创建接口。
创建的任务、扣费和生成结果均归属于 API Key 对应的团队工作空间,不能通过请求头切换归属。
你不需要分别记图片接口和视频接口。当前推荐直接调用:
POST /v1/generations服务端会根据你传入的 model 自动判断这是图片任务还是视频任务。
接口概览
| 项 | 说明 |
|---|---|
| 路由 | POST /v1/generations |
| 鉴权 | Authorization: Bearer sk_yeehoo_xxx |
| 幂等 | 建议传 Idempotency-Key,避免重复下单 |
| 请求体 | application/json |
| 返回 | 201 Created + 任务对象 |
| 结果获取 | 轮询 GET /v1/tasks/{task_id} 或等待 webhook |
接入提醒
不要把这个接口当成同步返回图片或视频结果的接口。创建成功代表服务端已提交生成,最终内容仍要看任务终态。
Authorizations
所有对外生成接口都使用 API Key Bearer 鉴权。
Authorization: Bearer sk_yeehoo_your_api_key
Content-Type: application/json
Idempotency-Key: gen-demo-001Header 说明
| Header | 必填 | 说明 |
|---|---|---|
Authorization | 是 | 固定格式 Bearer sk_yeehoo_xxx |
Content-Type | 是 | 固定为 application/json |
Idempotency-Key | 强烈建议 | 同一次业务提交保持同一个值,防止网络重试导致重复创建任务 |
Body
先看最常用、最该传的字段。
通用必填字段
| 字段 | 类型 | 必填 | 示例 | 说明 |
|---|---|---|---|---|
model | string | 是 | gpt-image-2 | 指定具体模型。服务端根据模型判断是图片任务还是视频任务 |
prompt | string | 是 | A cinematic fashion poster... | 生成指令,建议直接写清主体、风格、构图、光线、镜头感 |
图片任务常用字段
适用于当前公开图片模型。具体字段与枚举以 GET /v1/models 返回的 schema.fields 为准。
| 字段 | 类型 | 必填 | 默认值 | 示例 | 说明 |
|---|---|---|---|---|---|
reference_images | string[] | 否 | - | ["https://.../ref1.png"] | 参考图 URL 列表。可先调用上传参考图获取平台托管 URL |
aspect_ratio | string | 否 | auto | 1:1 | 输出宽高比 |
resolution | string | 否 | 模型相关 | 1K | 输出分辨率 |
n | integer | 否 | 1 | 2 | 本次任务希望生成的图片数量 |
quality | string | 否 | 模型相关 | low | 仅在 schema.fields 声明时传入;当前 gpt-image-2-official 支持 low、medium、high,普通版不支持 |
视频任务常用字段
适用于当前公开视频模型。具体字段必须以 GET /v1/models 返回的模型 schema 为准。
| 字段 | 类型 | 必填 | 默认值 | 示例 | 说明 |
|---|---|---|---|---|---|
reference_images | string[] | 否 | - | ["https://.../ref.png"] | 参考图片 URL,Seedance 2 系列最多 9 张 |
reference_videos | string[] | 否 | - | ["https://.../ref.mp4"] | 参考视频 URL,最多 3 个;传入后可能产生输入视频计费 |
input_video_duration | number | 否 | 输出时长 | 8 | 实际处理的输入视频秒数;传参考视频时建议准确提供 |
reference_audios | string[] | 否 | - | ["https://.../ref.mp3"] | 参考音频 URL,最多 3 个 |
generate_audio | boolean | 否 | true | true | 是否生成音频 |
audio | boolean | 否 | false | false | Kling 模型的生成音频开关;仅 schema 声明时传入 |
mode | string | 否 | 模型相关 | pro | Kling 生成档位,常见值为 std、pro、4k |
first_frame_image_url | string | 否 | - | https://.../first.png | 首帧图片 URL;仅模型 schema 声明时传入 |
last_frame_image_url | string | 否 | - | https://.../last.png | 尾帧图片 URL;仅模型 schema 声明时传入 |
aspect_ratio | string | 否 | 模型默认 | 16:9 | 视频宽高比 |
resolution | string | 否 | 模型默认 | 720p | 视频清晰度,具体枚举取决于模型 |
duration | integer | 否 | 模型默认 | 5 | 视频时长,单位通常为秒 |
参数由模型 schema 决定。
GET /v1/models的每个模型对象都包含schema.fields,其中有类型、必填、默认值、枚举options和部分数量限制。不要把某个模型的参数照搬到其他模型。
Kling V3 Omni 和 Kling Video O1 的参考视频使用 reference_videos 与 input_video_duration。Kling V3 Omni 包含参考视频时必须设置 audio=false;Kling Video O1 不支持音频字段。Gemini Omni Flash 当前只开放 duration=10。
外部参考视频和音频 URL
当前公开上传接口只支持图片。reference_videos 和 reference_audios 需要使用你方托管的 HTTPS URL:服务端无需 Cookie 或自定义 Header 即可下载,URL 在任务完成前持续有效,响应 Content-Type 与真实文件一致。建议使用至少数小时有效的签名 URL;不要传本地路径、blob: URL 或仅浏览器登录后可访问的地址。具体格式、大小和时长限制以模型 schema.fields 及上游校验结果为准。
Response
创建成功后返回提交回执。它不是完整任务对象;请使用 task_id 调用 GET /v1/tasks/{task_id} 获取状态、模型、结果和错误。
创建成功响应示例
{
"created": 1784779200,
"task_id": "task_01jxyz...",
"object": "generation.task",
"progress": 0,
"billing_transaction_id": "bt_01jxyz..."
}响应字段说明
| 字段 | 类型 | 说明 |
|---|---|---|
task_id | string | 后续轮询和 webhook 对账的核心 ID |
created | integer | 创建时间 Unix 时间戳 |
object | string | 固定为 generation.task |
progress | integer | 提交响应时的进度 |
billing_transaction_id | string | 计费交易 ID,仅用于对账;查询任务仍使用 task_id |
data | array | 极少数已同步完成的情况可能存在;异步任务通常不返回,结果以任务查询为准 |
成功后的下一步
- 记录
task_id - 调用
GET /v1/tasks/{task_id}轮询任务状态 - 或者提前给 API Key 配置 webhook,等待
task.succeeded/task.failed/task.canceled
轮询和回调怎么选
| 场景 | 建议 |
|---|---|
| 本地联调 | 先只接轮询,排查最直观 |
| 正式生产 | 轮询保底,webhook 做异步通知 |
| 要求强一致 | 收到 webhook 后仍建议按 task_id 再查一次任务详情 |