Skip to main content
AIHubMix 提供三組任務介面:圖片使用 /ai/v1/images,影片使用 /ai/v1/videos,統一任務記錄使用 /ai/v1/tasks。
  • 圖片生成預設同步,傳入 async: true 後非同步執行。
  • 影片生成固定非同步。
  • 圖片和影片詳情介面用於取得媒體任務的最新狀態。
  • /ai/v1/tasks 提供圖片、影片和 LLM 任務的統一唯讀檢視。
豆包 Seedance 影片需要引用真人素材時,先依豆包真人素材使用指南完成本人確認和素材準備,再建立影片任務。

影片教學:非同步任務

講解非同步任務的整體機制,並以非同步生圖為例示範完整呼叫流程。

前往主控台開啟非同步任務

使用 /ai/v1 媒體任務介面前,請先為目前帳戶開啟非同步任務功能。
未開啟非同步任務功能時,圖片和影片任務建立請求回傳 403 async_not_enabled。

快速開始

以下範例使用 wan2.6-t2v 建立影片。該模型接受 duration 和 size;不同模型的有效欄位可能不同。

如何選擇三組介面

Base URL 為 https://aihubmix.com,驗證方式為 Bearer Token:
模型清單與模型 Schema 都是公開探索介面,不需要 Bearer Token。其他介面都需要驗證。
/ai/v1/tasks 不提供建立介面。圖片和影片必須透過對應的媒體生成介面建立;LLM 恢復任務由平台在用戶端中斷後自動儲存。

媒體介面和統一任務介面的差異

媒體詳情介面與統一任務介面回傳相同的任務頂層欄位,但 output 項目和查詢行為不同: 因此,輪詢媒體生成狀態時應使用圖片或影片詳情介面;需要統一篩選任務、讀取結果中繼資料或恢復 LLM 回應時使用 /ai/v1/tasks。

如何探索非同步媒體模型並取得 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。

支援的模型和欄位

圖片和影片協定都定義了跨模型標準欄位,但每個模型會依據實際能力縮小欄位、列舉和數值範圍。呼叫前應透過模型 Schema 介面取得對應模型目前的參數限制。 例如:
  • wan2.6-t2v 支援 duration、size 和 seed,不接受 resolution、aspect_ratio、frame_images、input_references 或 generate_audio。
  • qwen-image-2.0 支援 n、size、seed、negative_prompt、image 和 images,不接受 aspect_ratio 或 mask。
標準欄位集合不代表所有模型支援全部欄位。傳入目前模型不支援的欄位會回傳參數錯誤。

LLM 中斷恢復模型

目前支援以下模型:
  • gpt-5.6-sol
  • gpt-5.5-pro
  • gpt-5.4-pro
  • gpt-5.2-pro
  • claude-fable-5
  • claude-opus-5
支援範圍可能調整,請以本頁清單為準。使用中斷恢復還需要目前帳戶已開啟非同步任務功能。任一條件不符合時,原 LLM 請求仍會正常執行,但用戶端斷線後不會儲存恢復任務。

如何建立圖片任務

同步圖片

省略 async 或設定為 false 時,介面會等待生成完成並回傳任務物件:
同步圖片任務也會儲存任務記錄。用戶端連線中斷或建立回應遺失時,可以透過 GET /ai/v1/images 尋找對應任務。

非同步圖片

將 async 設定為布林值 true 後,介面會立即回傳任務物件,生成在背景繼續:
使用 GET /ai/v1/images/{id} 查詢非同步圖片任務。完成後,直接請求每個 output 項目中的 content_url;該 URL 已包含對應圖片的 result_id。
圖片請求中的 async 必須是布林值。webhook_url 和 webhook_events_filter 僅能與 async: true 一起使用。

圖片標準欄位


如何建立影片任務

影片請求一律非同步,不支援透過 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 無法讀取該任務。

如何下載媒體結果

下載圖片

圖片完成後,逐項請求媒體任務物件中的 output[].content_url:
圖片的媒體下載路徑為 /ai/v1/images/{id}/content/{result_id}。媒體任務物件不另外公開 result_id,用戶端直接使用 content_url 即可。 當 b64_json 非空時,可以直接對該欄位進行 Base64 解碼。

下載影片

結果可能過期,並且可能存在下載次數限制。過期回傳 410 artifact_expired,超過下載次數限制回傳 429 too_many_downloads。

如何使用 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。
任務層級 Webhook 本身不含獨立簽章金鑰。需要簽章驗證時,請設定帳戶層級 Webhook 訂閱,並保留任務詳情查詢作為結果確認方式。

LLM 中斷恢復如何生效

LLM 中斷恢復用於取回用戶端斷線後的最終回應。請求方式、串流行為和回應格式保持不變,也不會在請求開始時預先回傳任務 ID。 以下條件需要同時符合: 平台僅在偵測到回應未完整交付且用戶端已斷線時建立恢復任務,並儲存最終 JSON 或 SSE。正常完成並完整交付給用戶端的 LLM 請求不會建立恢復任務。 LLM 回應標頭包含 X-Aihubmix-Request-Id。用戶端應儘早儲存該值,以便在主控台中定位對應請求。公開任務 API 目前無法按請求 ID 篩選;可以按模型和建立時間查詢最近的 LLM 任務:
LLM 任務的統一 output 項目包含 type=response、content_type、content_url 和 truncated。GET /ai/v1/tasks/{id}/content 回傳儲存的原始 JSON 或 SSE。
LLM 中斷恢復任務目前不傳送任務層級 Webhook。用戶端中斷不會停止平台繼續處理請求,該次呼叫仍按原介面規則計費。

錯誤回應與錯誤碼

本節適用於 /ai/v1/images/*、/ai/v1/videos/* 及已識別為圖片或影片的 /ai/v1/tasks/*。LLM 任務維持原有錯誤規範;未指定媒體類型且尚未取得 Task 的查詢繼續使用通用錯誤規範。
  • 目前請求失敗:HTTP 非 2xx,表示本次建立、查詢或下載請求失敗,請見 HTTP 請求失敗。
  • 任務執行失敗:查詢回傳 HTTP 200,但任務的 status=failed,原因記錄在任務內的 error,請見任務執行失敗。
  • 列表單筆結果讀取失敗:列表回傳 HTTP 200,但某筆任務帶有 output_error,請見列表單筆結果讀取失敗。
下表 message 欄列出英文回傳訊息,說明欄解釋含義及處理方式。參數驗證錯誤列出通用訊息,實際回應可能進一步指出具體欄位和限制。用戶端應使用 code 判斷錯誤類型,不應依賴完整 message 比對。

提交 HTTP 5xx 錯誤回報

請求回傳 HTTP 5xx 時,請提交回報並附上 error.tid。

HTTP 請求失敗

下表中的 HTTP 狀態用於目前請求直接失敗的情況。已建立任務的執行失敗請見下方「任務執行失敗」表。

請求參數與媒體輸入

大小限制
  • 媒體大小:圖片任務超限回傳 image_too_large,其他媒體任務回傳 media_too_large。影片任務上傳參考圖片時也使用 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}:位元組上限。圖片上限未知時,回傳 The image is too large. Reduce the image size and try again.
  • {allowed_formats}:允許的格式列表。格式錯誤訊息可能追加 Use one of: {allowed_formats}.

生成請求與回傳結果

帳戶與權限

服務可用性與速率限制

provider_unavailable 表示已明確識別的模型推理廠商故障。僅憑一般 429 或 4xx 無法確認帳戶額度、內容審核或參數問題。

任務查詢與結果下載

任務執行失敗

任務建立成功後,生成失敗透過 status=failed 和任務內的 error 表達。查詢成功仍回傳 HTTP 200。
媒體輸入錯誤也可能出現在失敗 Task 中,錯誤碼含義與上方媒體輸入表一致;此時查詢成功的 HTTP 狀態仍為 200。媒體大小錯誤的 message 結尾使用 submit a new task.,提示縮小媒體後提交新任務。 output_blocked 表示明確攔截且未回傳可用圖片,本次不收取生成費用。output_policy_violation 依現有內容審核收費規則處理。歷史費用請以計費記錄為準。

列表單筆結果讀取失敗

圖片、影片任務列表中的個別資料列可能附帶 output_error:
此欄位表示本次無法讀取該筆結果。列表仍回傳 HTTP 200,該筆資料的 output=[],原 id、status、error 和分頁保持不變,其他可正常讀取的任務不受影響。即使 status=completed,也應檢查 output_error,再判斷結果是否可讀取。 請提供 output_error.tid 聯絡支援;該欄位未帶 tid 時,可提供本次回應標頭中的請求 ID。此錯誤不改變任務狀態或費用,也不觸發 Webhook。 統一 /ai/v1/tasks 列表的讀取失敗資料列可能回傳 expires_at=null,結果仍受原保留期限制。圖片、影片專屬列表保留已取得的過期時間。 上述處理僅適用於單筆結果無法讀取且沒有可用替代結果的情況。統一 tasks 介面整批查詢失敗仍回傳 HTTP 錯誤,詳情讀取的同類故障仍回傳 HTTP 500。 相關文件:圖片介面 · 影片介面 · 非同步任務

完整影片範例


常見問題

媒體任務應該查詢 /ai/v1/tasks/{id} 還是媒體詳情介面? 輪詢生成狀態時使用媒體詳情介面:圖片查詢 /ai/v1/images/{id},影片查詢 /ai/v1/videos/{id}。/ai/v1/tasks/{id} 回傳唯讀快照。 為什麼影片請求中的 seconds 回傳參數錯誤? /ai/v1/videos 標準協定使用整數 duration,單位為秒。具體允許值由對應模型支援的參數決定。 為什麼 resolution 在部分影片模型中回傳參數錯誤? 標準影片協定包含 resolution 和 size,但具體模型會縮小欄位。例如 wan2.6-t2v 使用 size,不接受 resolution。 建立回應遺失後如何找回媒體任務? 圖片請求 GET /ai/v1/images,影片請求 GET /ai/v1/videos。清單支援 after、limit 和 order 分頁參數。 為什麼兩種詳情介面的 output 欄位不同? 媒體詳情介面提供直接下載所需的簡化欄位;統一任務介面額外提供 result_id 和 content_type,並為 LLM 存檔提供 truncated。 Webhook 沒收到怎麼辦? 確認回呼位址可公開存取並及時回傳 2xx,然後使用媒體詳情介面查詢最終狀態。
更新時間:2026-08-12