13. 异步任务(视频 / Midjourney)#
视频生成、Midjourney 绘图等耗时任务采用异步模式:先提交任务,立即拿到任务 id,再轮询查询结果。
13.1 提交视频任务#
POST /v1/video/create(别名 POST /v1/videos)
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
model | string | 是 | 视频模型名(如 sora / veo / wan / doubao 系列) |
prompt | string | 否 | 文本描述(与 content 二选一,不能同时传) |
content | array | 否 | 多模态内容数组。文本元素写 {"type":"text","text":"…"};引用元素写 {"type":"image_url","image_url":{"url":"…"}}(video_url、audio_url 同理,字段名与 type 保持一致);引用可带 role(reference_image、reference_video、reference_audio,如音频驱动传参考音频),URL 支持 http(s)、asset:、data: |
input | object | 否 | Sora 风格的嵌套输入 |
parameters | object | 否 | Wan 风格参数块(顶层同名字段优先于 parameters 内的值) |
images | array | 否 | 参考图 URL 列表(图生视频,须为 http/https URL) |
aspect_ratio / ratio | string | 否 | 画面比例,如 16:9(两者等价,ratio 优先) |
resolution | string | 否 | 分辨率,如 720p / 1080p |
duration | integer | 否 | 视频时长(秒),1–15;Seedance 系列要求 4–15 |
generate_audio | boolean | 否 | 是否生成带音频的视频。仅对支持音频输出的模型生效(如 Veo 3、Seedance 音频版);模型不支持时由上游报错。不传时按通道默认处理 |
watermark | boolean | 否 | 是否添加水印 |
seed | integer | 否 | 随机种子(0–4294967295),用于结果复现 |
return_last_frame | boolean | 否 | 是否在结果中返回视频末帧 |
enhance_prompt | boolean | 否 | 是否让上游增强提示词 |
enable_upsample | boolean | 否 | 是否启用超采样 |
execution_expires_after | integer | 否 | 任务保留时长(秒),1–172800,超时后任务过期 |
Shell
# 基础文生视频
curl http://183.240.79.21:52099/v1/video/create \
-H "Authorization: Bearer sk-你的YiTuoToken-Key" \
-H "Content-Type: application/json" \
-d '{
"model": "sora-2",
"prompt": "一只在草地上奔跑的柯基犬,阳光明媚",
"aspect_ratio": "16:9"
}'
# 生成带音频的视频(对支持音频的模型传 generate_audio: true)
curl http://183.240.79.21:52099/v1/video/create \
-H "Authorization: Bearer sk-你的YiTuoToken-Key" \
-H "Content-Type: application/json" \
-d '{
"model": "veo-3",
"prompt": "海浪拍打礁石,伴随海鸥鸣叫",
"resolution": "1080p",
"generate_audio": true
}'
提交成功后会返回任务
id,用它去轮询任务状态(见 13.3)。generate_audio会透传给上游:目标模型不支持音频时由上游在任务内报错,可在 13.3 查询结果的error字段看到原因。
13.2 提交 Midjourney 任务#
| 接口 | 说明 |
|---|---|
POST /v1/mj/submit/imagine | 文生图 |
POST /v1/mj/submit/blend | 多图混合 |
POST /v1/mj/submit/action | 对已有任务做放大 / 变体等操作 |
cURL
curl http://183.240.79.21:52099/v1/mj/submit/imagine \
-H "Authorization: Bearer sk-你的YiTuoToken-Key" \
-H "Content-Type: application/json" \
-d '{
"model": "midjourney",
"prompt": "a cute corgi astronaut, digital art --ar 16:9"
}'
13.3 查询任务状态#
GET /v1/tasks/{id} — 用提交时返回的 id 查询。任务归属校验:查询他人的任务返回 404(防枚举)。加 ?fresh=true 会触发一次上游实时轮询。
cURL
curl http://183.240.79.21:52099/v1/tasks/0000019f-... \
-H "Authorization: Bearer sk-你的YiTuoToken-Key"
13.4 任务列表#
GET /v1/tasks — 列出你自己的任务(按创建时间倒序)。
| 查询参数 | 说明 |
|---|---|
task_type | 按类型过滤(如 video、mj) |
status | 按状态过滤 |
offset | 偏移量,默认 0 |
limit | 每页数量,默认 50,最大 200 |
cURL
curl "http://183.240.79.21:52099/v1/tasks?task_type=video&limit=20" \
-H "Authorization: Bearer sk-你的YiTuoToken-Key"
13.5 取消任务#
POST /v1/tasks/{id}/cancel — 取消一个进行中的任务,并解冻预冻结的额度。任务不存在或已处于终态时返回 404。
cURL
curl -X POST http://183.240.79.21:52099/v1/tasks/0000019f-.../cancel \
-H "Authorization: Bearer sk-你的YiTuoToken-Key"