第 13 章 / 共 21 章約 2 分鐘

13. 非同步任務(影片 / Midjourney)#

影片生成、Midjourney 繪圖等耗時任務採用非同步模式:先送出任務,立即拿到任務 id,再輪詢查詢結果。

13.1 送出影片任務#

POST /v1/video/create(別名 POST /v1/videos)

參數類型必填說明
modelstring是影片模型名(如 sora / veo / wan / doubao 系列)
promptstring否文字描述(與 content 二擇一,不可同時傳)
contentarray否多模態內容陣列。文字元素寫 {"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:
inputobject否Sora 風格的巢狀輸入
parametersobject否Wan 風格參數區塊(頂層同名字段優先於 parameters 內的值)
imagesarray否參考圖 URL 清單(圖生影片,須為 http/https URL)
aspect_ratio / ratiostring否畫面比例,如 16:9(兩者等價,ratio 優先)
resolutionstring否解析度,如 720p / 1080p
durationinteger否影片時長(秒),1–15;Seedance 系列要求 4–15
generate_audioboolean否是否產生帶音訊的影片。僅對支援音訊輸出的模型生效(如 Veo 3、Seedance 音訊版);模型不支援時由上游報錯。不傳時按通道預設處理
watermarkboolean否是否加入浮水印
seedinteger否隨機種子(0–4294967295),用於結果重現
return_last_frameboolean否是否在結果中回傳影片末幀
enhance_promptboolean否是否讓上游增強提示詞
enable_upsampleboolean否是否啟用超取樣
execution_expires_afterinteger否任務保留時長(秒),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"