快速開始
影片生成固定為非同步;以下使用wan2.6-t2v,並以整數 duration 表示秒數。
如何探索非同步媒體模型並取得 Schema
探索流程分為兩個步驟。先從公開模型目錄取得支援非同步介面的文生圖或文生影片模型,再使用模型的model_id 取得對應端點的請求 Schema。
取得支援非同步介面的模型清單
模型目錄與 Playground 使用相同的資料來源。type=image_generation 回傳文生圖模型,type=video 回傳文生影片模型。加入 schema_checked=true 後,清單只包含已發布並核對請求 Schema 的模型。
type 篩選目前只接受一個值,因此需要分別請求兩種模型類型。
回應格式為 {success, message, data}。data 中與非同步媒體整合相關的欄位如下。
取得單一模型的請求 Schema
不同模型支援的欄位、列舉和數值範圍可能不同。提交圖片或影片請求前,可以透過同一個公開介面取得指定模型目前可用的端點和請求 JSON Schema。modality 為 image 或 video。endpoints 陣列中的每一項描述一個可用的呼叫協定。
同一個模型可能同時回傳
/ai/v1 與 OpenAI 相容 /v1 端點。OpenAI 相容介面可能暫不支援最新模型,請優先使用 /ai/v1 端點。非同步任務介面應依 path 選擇 /ai/v1/images/generations 或 /ai/v1/videos,再讀取該項目的 request.schema。不要依賴 endpoints 陣列位置。
下面的命令可以直接擷取兩個非同步任務端點的請求 Schema。
404 model_not_found。端點資料暫時無法使用時回傳 500 endpoints_unavailable。
如何建立影片任務
影片請求一律非同步,不支援透過Prefer: wait 改為同步等待。標準協定使用整數 duration 表示秒數:
影片標準欄位
input_references 項目的結構:
type 可以是 image_url、video_url 或 audio_url。
frame_images 項目的結構:
frame_type 可以是 first_frame 或 last_frame。
媒體任務物件
圖片和影片專用介面回傳以下結構:
媒體
output 項目:
狀態說明
用戶端可以每 15 秒查詢一次,直到狀態變為
completed、failed 或 cancelled。15 秒是用戶端輪詢建議,不是伺服器協定限制。
如何查詢媒體任務
查詢媒體詳情
查詢媒體清單
建立回應遺失時,可以透過對應媒體清單找回任務 ID:如何使用統一任務介面
統一任務介面支援以下篩選條件:
統一任務詳情:
output 項目:
/ai/v1/tasks/{id}/content。多產物任務需要請求 /ai/v1/tasks/{id}/content/{result_id};未指定結果 ID 時回傳 400 result_id_required。
統一任務清單、詳情和內容介面按建立任務時的 Bearer Token 隔離。同一帳戶下的其他
API Key 無法讀取該任務。
如何下載媒體結果
下載影片
如何使用 Webhook
非同步圖片和影片支援任務層級 Webhook:webhook_url 最長 512 個字元,並且不能指向本機、私人網路或其他受限位址。省略 webhook_events_filter 時,平台推送 completed、failed 和 cancelled;明確傳入時,陣列不可為空、不可重複,並且必須與 webhook_url 一起使用。
未在請求中傳入 webhook_url 時,非同步圖片和影片會嘗試使用帳戶中設定的預設回呼位址。無效的帳戶預設位址會被忽略,不會阻止任務建立。
回呼請求
results 僅在結果已存檔時出現,下載仍需要 Bearer Token。
重試與去重
平台採用至少一次投遞,同一個事件可能重複送達:- HTTP
2xx表示接收成功。 - HTTP
5xx、網路錯誤或逾時會觸發重試。 - HTTP
3xx和4xx不會重試。 - 最多投遞 6 次,重試間隔依序為 1、4、16、64、256 秒。
event_id,重複收到相同事件時直接回傳 2xx。
錯誤回應與錯誤碼
本節適用於/ai/v1/videos/* 和影片任務。圖片錯誤請見圖片介面。
- 目前請求失敗:HTTP 非 2xx,表示本次建立、查詢或下載請求失敗,請見 HTTP 請求失敗。
- 任務執行失敗:查詢回傳 HTTP 200,但任務的
status=failed,原因記錄在任務內的error,請見任務執行失敗。 - 列表單筆結果讀取失敗:列表回傳 HTTP 200,但某筆任務帶有
output_error,請見列表單筆結果讀取失敗。
message 欄列出英文回傳訊息,說明欄解釋含義及處理方式。參數驗證錯誤列出通用訊息,實際回應可能進一步指出具體欄位和限制。用戶端應使用 code 判斷錯誤類型,不應依賴完整 message 比對。
提交 HTTP 5xx 錯誤回報
請求回傳 HTTP
5xx 時,請提交回報並附上 error.tid。HTTP 請求失敗
影片建立後透過任務狀態回傳生成結果。下表中的 HTTP 狀態用於目前請求直接失敗的情況。請求參數與媒體輸入
- 媒體大小:影片任務超限回傳
media_too_large,上傳參考圖片時也使用此碼。具體上限請見錯誤訊息或error.details.max_bytes。 - 整個請求大小:
request_too_large表示 HTTP 請求本文超過 32 MiB,包括文字、參數和內嵌媒體編碼。只傳 URL 時,連結本身計入請求本文,連結指向的檔案仍須符合模型的媒體限制。 - 實際大小:
error.details.actual_bytes僅在完整大小已確認時提供。透過 URL 讀取媒體時,若達到讀取上限後停止,可能不回傳此欄位。
error.details.allowed_mime_types 或錯誤訊息中的格式列表;未提供列表時,請查閱該模型的 Schema。
訊息中的預留位置
{media_kind}:實際媒體類型。類型已確認時,invalid_media_data和media_url_unreachable的訊息也會使用image或video。{max_bytes}:位元組上限。{allowed_formats}:允許的格式列表。格式錯誤訊息可能追加Use one of: {allowed_formats}.
生成請求與回傳結果
帳戶與權限
服務可用性與速率限制
provider_unavailable 表示已明確識別的模型推理廠商故障。僅憑一般 429 或 4xx 無法確認帳戶額度、內容審核或參數問題。
任務查詢與結果下載
任務執行失敗
任務建立成功後,生成失敗透過status=failed 和任務內的 error 表達。查詢成功仍回傳 HTTP 200。
message 結尾使用 submit a new task.,提示縮小媒體後提交新任務。
provider_empty_output 表示已確認沒有可用影片結果;result_delivery_failed 表示已有生成結果,但儲存或交付失敗。遇到後者請先聯絡支援排查已有結果。
列表單筆結果讀取失敗
圖片、影片任務列表中的個別資料列可能附帶output_error:
output=[],原 id、status、error 和分頁保持不變,其他可正常讀取的任務不受影響。即使 status=completed,也應檢查 output_error,再判斷結果是否可讀取。
請提供 output_error.tid 聯絡支援;該欄位未帶 tid 時,可提供本次回應標頭中的請求 ID。此錯誤不改變任務狀態或費用,也不觸發 Webhook。
圖片、影片列表保留已取得的 expires_at。統一 /ai/v1/tasks 列表的讀取失敗資料列可能回傳 expires_at=null,結果仍受原保留期限制。
上述處理僅適用於單筆結果無法讀取且沒有可用替代結果的情況。統一 tasks 介面整批查詢失敗仍回傳 HTTP 錯誤,詳情讀取的同類故障仍回傳 HTTP 500。
相關文件:圖片介面 · 影片介面 · 非同步任務