Alibaba: Wan 3.0
Alibaba Wan 3.0 可根據提示詞、首格或首尾影格,以及多模態參考建立有聲影片。原廠規格在同一模型中結合分鏡、來源素材編輯與接續,提供 2–30 秒、30 fps 的 MP4 輸出,解析度為 480p、720p 或 1080p。
關於模型
此說明介紹模型的能力。Ailoot 可用的輸入、輸出與選項,依所選方法列於下方。
Alibaba Wan 3.0 是整合式影片創作規格,將製作簡述及輔助素材轉為附帶聲音的場景。原廠將標準模型識別為 wan3.0-video。純文字生成、開場與結尾影格、多模態參考、編輯及接續,在此規格中各自使用不同輸入安排。實用素材包括短篇敘事、產品展示、圖片轉場,或依特定創意方向修訂的來源短片。
純文字場景需準備主體、地點、動作、攝影機、視覺風格與聲音。原廠支援單鏡頭及多鏡頭分鏡,建議每鏡約四至六秒,並可選填時間範圍。短故事可以先介紹工作檯上的小型機械鳥,再跟隨它首次移動,最後停留於特寫,同時延續室內環境聲。請描述這些節點的視覺關係,讓三十秒額度服務於一個連貫故事,而非不相干的動作清單。
首格生成讓提供的靜態圖片動起來。圖片定義起始構圖,提示詞說明動作及運鏡。首尾影格生成也固定結尾,並描述兩張圖片間的轉變。請準備場景相容、構圖符合預期的兩端圖片。指南建議這些模式使用自適應長寬比。影格輸入與參考圖片、參考影片、參考音訊、檔案及網頁連結的輸入安排分開,因此請選擇符合計畫鏡頭的素材模式。
參考模式可結合最多十張圖片、五段影片及五段音訊,總額度為二十份素材。圖片參考可識別角色、物件、場景或風格;影片可引導動作或運鏡,音訊可引導演出或節奏。Image 1、Video 1、Audio 1 等類型專用標籤,分別依各自輸入順序編號。請為每份參考指定用途,並描述它們如何互相配合。角色外觀正確但場景錯誤,與攝影機未呈現預期動作,是不同問題。
文件中的參考檔案上限為每張圖片 20 MB、每段影片 100 MB、每段音訊 15 MB。參考影片合計限十五秒;音訊參考另有合計十五秒上限。參考素材可附帶一份文件或一個公開網頁參考;文件與連結互斥。來源必須無須登入即可公開存取。請準備範圍集中的來源,交代哪些內容應影響短片,尤其是文件資訊多於場景所需時。
原生音訊將對話、背景音樂、環境聲及音效與生成畫面結合。請交代應說出的話、說話者及演繹方式、重要音效,以及是否需要背景音樂。原廠指南預設啟用音訊,也可停用。示範場景可先用一句簡短開場,再呈現產品細節,以安靜的機械聲標示動作。請聆聽完成短片的實際台詞、說話者分配與同步,不要只從書面簡述判斷音訊。
編輯工作需描述變更及保留內容。指南涵蓋新增或移除元素、替換屬性、改變視覺風格或光線,以及修訂對話。接續工作則描述現有短片之前、之後或周圍應發生什麼。自適應構圖與智慧片長,有助於來源影片流程保留形狀及時間意圖。提供影片輸入時,文件要求輸入與輸出影片時長合計不得超過 30 秒。請保留原始來源,檢查變更區域及整段短片的連續性。
輸出為 30 fps MP4,解析度可選 480p、720p 或 1080p。新生成片長為二至三十秒,也可使用智慧片長讓模型選擇長度。文件記載橫式、方形與直式形狀,自適應構圖則適合提供的素材。原廠以工作方式處理請求,回傳的完成影片位置有效二十四小時。請將實際結果、簡述及參考保存為製作紀錄,並在與其他短片排列前確認回傳片長及構圖。
標準 Wan 3.0 與 Prime 變體共用文件中的整合模式;Prime 強調生成速度。Wan 2.7 與 2.6 有不同的工作專用片長及參考規則,因此不應將它們的介面視為本版本設定。請檢查完成場景的角色及產品身分、空間連續性、語音、音效、來源衍生細節,以及預期開頭與結尾。具體的下一次修正能保留成功方向,同時處理短片中實際發現的缺陷。
Ailoot Ultra · 影片 POST /v1/videos alibaba/wan-3.0
alibaba/wan-3.0入門
Alibaba Wan 3.0 可根據提示詞、首格或首尾影格,以及多模態參考建立有聲影片。原廠規格在同一模型中結合分鏡、來源素材編輯與接續,提供 2–30 秒、30 fps 的 MP4 輸出,解析度為 480p、720p 或 1080p。
- 接受的輸入
- 文字 · 圖片
- 結果
- 影片
Ailoot 可用 · 輸入與方法
Ailoot Ultra · 影片 POST /v1/videos
- 輸入
text,image- 輸出
video- 輸出格式
- 原始 MP4 位元組;不進行正規化或轉碼
| 欄位 | 類型 | 要求 | 值與限制 | 預設值 |
|---|---|---|---|---|
欄位model | 類型string | 要求必填 | 值與限制 alibaba/wan-3.0 | 預設值— |
欄位prompt | 類型string | 要求必填 | 值與限制 | 預設值— |
欄位duration | 類型integer | 要求必填 | 值與限制 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30 最小值: 1 最大值: 600 | 預設值— |
欄位resolution | 類型string | 要求選填 | 值與限制 480p, 720p, 1080p | 預設值— |
欄位aspect_ratio | 類型string | 要求選填 | 值與限制 16:9, 4:3, 1:1, 3:4, 9:16 | 預設值— |
欄位generate_audio | 類型boolean | 要求選填 | 值與限制 false, true | 預設值— |
欄位frame_images | 類型array | 要求選填 | 值與限制 項目數下限: 1 項目數上限: 1 輸入內容: 影格物件陣列。每個物件包含 type=image_url、內含 url 的 image_url,以及 frame_type。請使用 HTTPS 圖片 URL,並將 frame_type 設為 first_frame。每種影格角色最多只能出現一次。 確切鍵名: type, image_url, frame_type 條件: 這些鍵描述每個影格物件;image_url 僅包含 url。僅含文字的請求請省略 frame_images。 | 預設值— |
欄位input_references | 類型array | 要求選填 | 值與限制 | 預設值— |
欄位seed | 類型integer | 要求選填 | 值與限制 最小值: -9,223,372,036,854,775,808 最大值: 9,223,372,036,854,775,807 | 預設值— |
欄位callback_url | 類型string | 要求選填 | 值與限制 模式: ^https:// | 預設值— |
欄位session_id | 類型string | 要求選填 | 值與限制 | 預設值— |
欄位trace | 類型object | 要求選填 | 值與限制 | 預設值— |
欄位user | 類型string | 要求選填 | 值與限制 | 預設值— |
輸入素材組合
文字生成影片 · 文字提示詞。 · 必填: model, prompt, duration
請以文字提供 prompt,並以整數秒提供 duration。請選擇支援的解析度;如有需要,也請指定長寬比。
model: 類型: string · alibaba/wan-3.0
prompt: 類型: string · UTF-8 位元組數上限: 10,000 · 必須包含非空白字元: 是
圖片生成影片 · 文字提示詞與首格圖片。 · 必填: model, prompt, duration, frame_images
frame_images 是陣列。每個影格物件包含 type、image_url 與 frame_type;image_url 內含 url。請將 type 設為 image_url,並使用 first_frame。每種影格角色最多只能出現一次。請為每個影格提供公開的 HTTPS 圖片 URL,並選擇支援的解析度;如有需要,也請指定長寬比。
確切鍵名: type, image_url, frame_type
model: 類型: string · alibaba/wan-3.0
prompt: 類型: string · UTF-8 位元組數上限: 10,000 · 必須包含非空白字元: 是
Reference to video · 文字提示詞與支援的圖片參考資料。 · 必填: model, prompt, duration, input_references
input_references 是物件陣列。請將 type 設為 image_url,並使用相應且內含 url 的欄位。請使用公開的 HTTPS URL。省略 frame_images 即可選擇參考資料模式。請選擇支援的解析度;如有需要,也請指定長寬比。
model: 類型: string · alibaba/wan-3.0
prompt: 類型: string · UTF-8 位元組數上限: 10,000 · 必須包含非空白字元: 是
方法參數與生命週期
| 參數 | 規格 |
|---|---|
參數content_type | 規格application/json |
參數required | 規格model, prompt, duration |
參數material_types | 規格text, image |
參數additional_properties | 規格false |
參數optional_controls | 規格resolution, aspect_ratio, generate_audio, frame_images, input_references, seed, callback_url, session_id, trace, user |
生命週期: submit_once_poll_original
GET /v1/videos/{public_id}
GET /v1/videos/{public_id}/content
方案
最終費用的計算方式
顯示的費率用於在生成前估算費用。最終費用依原始生成作業記錄的成本計算。實測的輸出時間長度與預估數量並非最終計費數量。
費率資訊不會增加請求選項。支援的參數列於所選方法中。
- 快速模式
- 未指定 選取快速模式時
- flex 模式
- 未指定 選取 flex 模式時
- 最高推理強度
- 未指定 最高推理強度採用 default 調整值時
供比較的預估費率
各設定的價格
請逐一核對各項費用與所列條件。每組互為替代選項的設定只套用一種費率。
| 設定 | 費率表 | 預估數量 | 計費單位 | 計費條件 | 費用 |
|---|---|---|---|---|---|
| 設定基礎 token 費率 | 費率表基本費率 | 預估數量— | 計費單位— | 計費條件— | 費用 輸入 · 輸入 Token · 僅供比較的估算 — / 1K Token 輸出 · 輸出 Token · 僅供比較的估算 — / 1K Token 輸入 · 讀取快取 · 僅供比較的估算 — / 1K Token 輸入 · 寫入快取 · 僅供比較的估算 — / 1K Token 輸入 · 寫入快取,1 小時 · 僅供比較的估算 — / 1K Token |
| 設定影片價格 | 費率表— | 預估數量— | 計費單位每秒影片 | 計費條件resolution: 1080p | 費用 輸出 · 影片價格 · 僅供比較的估算 $0.4 每秒影片 |
| 設定影片價格 | 費率表— | 預估數量— | 計費單位每秒影片 | 計費條件resolution: 480p | 費用 輸出 · 影片價格 · 僅供比較的估算 $0.1 每秒影片 |
| 設定影片價格 | 費率表— | 預估數量— | 計費單位每秒影片 | 計費條件resolution: 720p | 費用 輸出 · 影片價格 · 僅供比較的估算 $0.2 每秒影片 |
| 設定預估生成費用 | 費率表— | 預估數量單次生成估算值 | 計費單位— | 計費條件— | 費用 輸出 · 預估生成費用 · 僅供比較的估算 $0.2 生成前估算 此估算並非額外費用,也不是本次生成完成後的固定費率。 |
Ailoot 會在請求前預留估算金額。取得結果後,依實測用量結算最終費用。串流結算採用最終用量紀錄。預留金額與結算的運作方式 →
參考費率詳情
模型層級的參考費率表不會變更方法選擇、報價或費用。實際計費採用所選 Ailoot 方法的費率。
影片設定的價格參考
各設定的價格
請逐一核對各項費用與所列條件。每組互為替代選項的設定只套用一種費率。
| 設定 | 計費條件 | 費用 |
|---|---|---|
| 設定影片價格 | 計費條件resolution: 480p | 費用 輸出 · 影片價格 $0.1 每秒影片 所示設定的公開價格參考。最終費用依實際計費設定計算。 |
| 設定影片價格 | 計費條件resolution: 720p | 費用 輸出 · 影片價格 $0.2 每秒影片 所示設定的公開價格參考。最終費用依實際計費設定計算。 |
| 設定影片價格 | 計費條件resolution: 1080p | 費用 輸出 · 影片價格 $0.4 每秒影片 所示設定的公開價格參考。最終費用依實際計費設定計算。 |
請求範例
Ailoot Ultra · 影片
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
from pathlib import Path
Path('request.json').write_text('{"aspect_ratio":"16:9","duration":8,"model":"alibaba/wan-3.0","prompt":"A serene mountain landscape at sunset","resolution":"720p"}', encoding='utf-8')
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos \
-H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
--data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
r=json.loads(Path('result.json').read_text())
print(json.dumps(r,ensure_ascii=False,indent=2))
print('Keep the complete JSON and response headers; do not resubmit an unknown creation.')
PY_RESULT
接收並儲存結果
Ailoot Ultra · 影片
自有內容的簽署 URL
GET /v1/videos/{public_id}GET /v1/videos/{public_id}/content
查看工作狀態
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_STATUS_URL'
import json
from pathlib import Path
from urllib.parse import quote
r=json.loads(Path('result.json').read_text())
if not isinstance(r.get('id'),str) or not r['id']:raise SystemExit('Keep the original response and headers for reconciliation; no returned ID')
Path('status-url.txt').write_text('https://api.ailoot.ai/v1/videos/'+quote(r['id'],safe=''))
PY_STATUS_URL
curl --fail-with-body --silent --show-error "$(cat status-url.txt)" \
-H "Authorization: Bearer $AILOOT_API_KEY" -D status-headers.txt -o status.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
r=json.loads(Path('status.json').read_text())
print(json.dumps(r,ensure_ascii=False,indent=2))
print('Keep the complete JSON and response headers; do not resubmit an unknown creation.')
PY_RESULT
其他內容讀取方式
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
export AILOOT_API_KEY
python3 - <<'PY_ASSETS'
import json,os,subprocess
from pathlib import Path
from urllib.parse import urljoin,urlsplit
r=json.loads(Path('status.json').read_text())
if r.get('status')!='completed':raise SystemExit('Keep the original ID and read its status; never recreate an unknown job')
if not isinstance(r.get('data'),list) or not r['data']:raise SystemExit('Keep the complete original status; no completed outputs supplied')
urls=[]
for i,u in enumerate(r.get('data',[])):
if not isinstance(u,str):raise SystemExit('Keep the original response; unexpected asset shape')
urls.append((str(i),u))
for label,path in urls:
u=urljoin('https://api.ailoot.ai',path);z=urlsplit(u)
if z.scheme!='https' or z.netloc!='api.ailoot.ai' or z.username or z.password:raise SystemExit('Use the actual returned Ailoot owned content URL')
target=Path('owned-'+label+'.bin')
subprocess.run(['curl','--fail-with-body','--silent','--show-error',u,'-H','Authorization: Bearer '+os.environ['AILOOT_API_KEY'],'-D',str(target)+'.headers','-o',str(target)],check=True)
print('All returned owned URLs saved; complete metadata, timing and usage remain in the JSON.')
PY_ASSETS
保留所有已完成的結果
請儲存每部已完成的影片或傳回的檔案,並從實際傳回的每個素材 URL 取得素材。
請保留每個實際的自有輸出,以及回傳的實測中繼資料。
需要檢查原始回應時
503 result_pending_check + 原始 id + X-Should-Retry:false;切勿重送原始請求
回應欄位
| 欄位 | 類型 | 含義 |
|---|---|---|
欄位index | 類型integer | 含義此影片在輸出清單中的位置,索引從零開始。 |
欄位content_url | 類型string | 含義此已完成影片的簽署 HTTPS 下載 URL。 |
欄位sha256 | 類型string | null | 含義原始影片位元組的 SHA-256 摘要;無法取得時為 null。 |
欄位size_bytes | 類型integer | null | 含義原始影片檔案大小,以位元組為單位;無法取得時為 null。 |
欄位duration_ms | 類型integer | null | 含義實測的影片長度,以毫秒為單位;無法取得時為 null。 |
欄位width | 類型integer | null | 含義影片寬度,以像素為單位;無法取得時為 null。 |
欄位height | 類型integer | null | 含義影片高度,以像素為單位;無法取得時為 null。 |
欄位video_codec | 類型string | null | 含義影片編碼識別碼;未記錄時為 null。 |
欄位has_audio | 類型boolean | null | 含義影片是否包含音軌;未測量時為 null。 |
欄位audio_codec | 類型string | null | 含義音訊編碼識別碼;未記錄識別碼時為 null。 |
錯誤與後續步驟
| 回應 | 條件 | 下一步 |
|---|---|---|
回應404 · not_found_error | 條件無法存取影片,或找不到此影片 ID。 | 下一步請確認影片存取權限。若影片已存在,請使用其原始公開 ID 與相同的 API 金鑰。 |
回應401 · authentication_error | 條件API 金鑰與已驗證的帳號不符。 | 下一步提交前,請先確認 API 金鑰與帳號存取權限。 |
回應400 · invalid_request_error | 條件無法讀取請求,或下載索引無效。 | 下一步請修正請求本文。若要下載,請選擇原始工作回傳的輸出索引。 |
回應422 · price_unavailable | 條件所選影片設定無法定價。 | 下一步請選擇支援的影片設定,填妥其必要選項,再提交修正後的請求。 |
回應422 · invalid_request_error | 條件影片輸入或原始延續工作無效。 | 下一步請使用有效的 HTTPS 輸入。若要延續影片,請使用已完成原始影片的公開影片 ID,以及相同的 API 金鑰。 |
回應402 · billing_error | 條件可用餘額或限制不允許預留額度。 | 下一步傳送新的請求前,請先確認可用餘額與限制。 |
回應503 · server_error | 條件影片驗證、儲存系統或服務存取暫時無法使用。 | 下一步請等待服務恢復可用。若已有影片 ID,請查詢該原始工作,切勿另行建立生成工作。 |
回應503 · result_pending_check | 條件原始影片結果與費用需要查核。 | 下一步請保留回傳的影片 ID,並查詢該工作。查詢期間切勿傳送替代的生成請求。 |
回應503 · owned_result_unavailable | 條件現有影片暫時無法下載。 | 下一步請稍後查詢同一影片工作,並下載其現有輸出。新的生成請求會建立獨立操作。 |
回應409 · video_not_ready | 條件影片內容尚未發布。 | 下一步請查詢原始工作狀態。回報 completed 後再下載;若回報 failed,請依其費用查核通知處理。 |
別名
模型別名
Ailoot Ultra alibaba/wan-3.0
方法路徑別名
請使用上方列出的 API 方法路徑。
相關呼叫用 ID
FAQ · Alibaba: Wan 3.0
- 可以使用哪些輸入與結果?
POST /v1/videos·alibaba/wan-3.0:text,image→video- 請求使用哪些欄位?
POST /v1/videos·alibaba/wan-3.0:model,prompt,duration,resolution,aspect_ratio,generate_audio,frame_images,input_references,seed,callback_url,session_id,trace,user- 適用哪些限制?
POST /v1/videos·alibaba/wan-3.0:duration.minimum:1;duration.maximum:600;frame_images.max_items:1;frame_images.min_items:1;seed.minimum:-9223372036854775808;seed.maximum:9223372036854775807