萬相 3.0 與快樂馬影片 API

Essevin 上的阿里百煉影片生成——萬相 3.0 全能參考最長 30 秒,快樂馬 1.1 文生 / 圖生 / 參考生影片,僅按成片計費。

Essevin 以阿里自家的 DashScope 契約接入阿里雲百煉影片生成,並保持原始路徑。用阿里官方 SDK 或 HTTP 寫好的程式碼遷移過來只需改 base URL 與密鑰——請求體、回應結構、路徑都不用動。

兩個模型系列都是非同步的:提交任務後輪詢 Essevin 任務 ID。請使用已開通阿里分組的密鑰,並在發起付費任務前用 GET /v1/models 確認可用性。

端點

方法路徑用途
POST/api/v1/services/aigc/video-generation/video-synthesis提交萬相 3.0 或快樂馬影片任務
GET/api/v1/tasks/{task_id}查詢單一任務

所有請求使用 Authorization: Bearer sk-your-keyContent-Type: application/json。你不需要送出 X-DashScope-Async——閘道向上游一律以非同步方式請求。

請求體嚴格解碼:未知欄位與第二個 JSON 值會在呼叫上游前就被拒絕。這是刻意的。上游在提交階段幾乎不校驗參數,只在執行期才失敗——一個非法的 resolution 照樣會回傳任務 ID,約十分鐘後才報錯。Essevin 會直接以 400 當場拒絕。

模型

模型 ID時長解析度輸入
wan3.0-video2-30 秒整數(預設 5),或 -1 表示自動480P / 720P / 1080P首幀 / 尾幀,或最多 10 張參考圖、5 段參考影片、5 段參考音訊、1 個文件、1 個網頁連結
happyhorse-1.1-t2v3-15 秒整數(預設 5)480P / 720P / 1080P僅提示詞
happyhorse-1.1-i2v3-15 秒整數(預設 5)480P / 720P / 1080P恰好 1 張 first_frame 圖片
happyhorse-1.1-r2v3-15 秒整數(預設 5)480P / 720P / 1080P1-9 張 reference_image 圖片

請使用上表中的精確 ID。未登記任何別名,未知模型名會被拒絕。wan3.0-video-primehappyhorse-1.1-video-edit 以及快樂馬 1.0 系列均未上架。

請求契約

{
  "model": "wan3.0-video",
  "input": { "prompt": "...", "media": [{ "type": "first_frame", "url": "..." }] },
  "parameters": { "resolution": "1080P", "duration": 5 }
}

input

prompt 是否必填逐模型不同,與阿里自身契約一致:

模型prompt
wan3.0-video條件必選 —— promptmedia 必填其一
happyhorse-1.1-t2v必選
happyhorse-1.1-i2v選填 —— 純首幀圖即可驅動
happyhorse-1.1-r2v必選

長度:萬相 3.0 最多 20,000 字元;快樂馬最多 5,000 個非中文字元(中文實際被上游限到 2,500)。阿里對超長是靜默截斷;Essevin 對超過該模型官方上限的 prompt 直接回傳 400,而不是放行一個會被悄悄改寫的請求。

media 每一項都帶 typeurl:

type萬相 3.0快樂馬
first_frame1-i2v,必填
last_frame1不接受
reference_image最多 10-r2v,必填 1-9
reference_video最多 5,合計 ≤15 秒不接受
reference_audio最多 5,合計 ≤15 秒不接受
file1 個文件(docx / doc / xlsx / xls / pptx / ppt / pdf / txt / key / pages / numbers / md;≤100 MB、≤50 頁)不接受
link1 個公開網頁不接受

對萬相 3.0,首尾幀輸入與參考組(reference_*filelink)在同一次請求中互斥,且 filelink 彼此也互斥。有參考影片時,阿里還要求輸入影片總時長 + 輸出時長 ≤ 30 秒;閘道量不到你的輸入片長,這條由上游判定。

url 接受絕對的公網 http(s) 位址或 data: 內嵌(base64)。oss:// 會被拒絕——該物件歸屬你自己的阿里雲帳號,閘道無法代取。link 必須是真實網頁位址,不能是 data: 內嵌。

parameters

欄位萬相 3.0快樂馬 1.1
resolution480P / 720P / 1080P(預設 1080P)同左
duration選填;2-30,預設 5,或 -1 表示自動選填;3-15,預設 5
ratioadaptive / 16:9 / 4:3 / 1:1 / 3:4 / 9:1616:9 / 9:16 / 1:1 / 4:3 / 3:4 / 4:5 / 5:4 / 9:21 / 21:9;-i2v 不接受,成片比例隨輸入圖
audio布林,上游預設 true(開關聲音價格相同)不接受
prompt_extend布林,上游預設 true不接受
watermark布林,上游預設 false布林,上游預設 true
seed整數 0-2147483647同左

模型不支援的參數會被拒絕而不是靜默丟棄,避免出現「以為生效了其實沒有」的情況。你沒傳的欄位完全不會送往上游——阿里自己的預設值原樣生效。

快樂馬預設帶浮水印

阿里對快樂馬 watermark 的預設值是 true,會在成片上打「Happy Horse」標記。Essevin 不覆蓋上游預設值。需要乾淨輸出請顯式傳 "watermark": false

範例 —— 文生影片

curl https://api.essevin.com/api/v1/services/aigc/video-generation/video-synthesis \
  -H "Authorization: Bearer sk-your-key" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "wan3.0-video",
    "input": { "prompt": "日出時分航拍雲海之上的雪山" },
    "parameters": { "resolution": "1080P", "duration": 5, "ratio": "16:9" }
  }'

提交回傳阿里回應結構中的 Essevin 任務 ID:

{ "output": { "task_id": "blt60x4115010d-d361-4bfc-b131-a382f1c400a5", "task_status": "PENDING" }, "request_id": "..." }

範例 —— 圖生影片

{
  "model": "happyhorse-1.1-i2v",
  "input": {
    "prompt": "鏡頭緩緩推進,光影在場景中流動",
    "media": [{ "type": "first_frame", "url": "data:image/jpeg;base64,..." }]
  },
  "parameters": { "resolution": "720P", "duration": 5, "watermark": false }
}

用穩定的圖床或 data: 內嵌

參考素材由上游下載,而不是 Essevin 下載。屏蔽機房 IP 的圖床(很多免費圖床都會)會讓任務在提交幾分鐘後失敗。建議用 data: 內嵌或你自己的 OSS / CDN。

任務生命週期

輪詢 GET /api/v1/tasks/{task_id}output.task_statusPENDING → RUNNING → SUCCEEDED | FAILED。一條片子通常 1-5 分鐘完成,萬相 3.0 的長片更久。建議約 15 秒輪詢一次。

成功時回應攜帶穩定的 Essevin 中繼位址(上游下載連結 24 小時過期,中繼會透明刷新):

{
  "output": {
    "task_id": "blt60x4115010d-d361-4bfc-b131-a382f1c400a5",
    "task_status": "SUCCEEDED",
    "video_url": "https://api.essevin.com/relay/...",
    "orig_prompt": "..."
  },
  "usage": { "video_count": 1, "duration": 5, "SR": 1080, "output_video_duration": 5, "input_video_duration": 0, "ratio": "16:9", "billed_seconds": 5, "billing_bucket": "1080p" }
}

usage.SR 是輸出短邊像素,決定計費檔;usage.ratio 回報的是成片實際比例,可能是原始尺寸(如 1632:937)而不是請求裡的列舉值。

失敗任務在 output.message 裡給出原因:

{ "output": { "task_id": "blt60x...", "task_status": "FAILED", "code": "TaskFailed", "message": "..." } }

計費

只有任務成功才計費,依據上游回報的用量:

  • 輸出秒數按上游實際產出的檔位(usage.SR)計價,而不是按你請求的檔位。
  • 萬相 3.0 還會計參考影片的輸入秒數,與輸出同檔價——阿里價目表把它列為「輸入和輸出單價」。快樂馬只計輸出秒數。
  • 生成失敗或命中安全審核不計費,也不會產生用量記錄。

官方牌價見價格頁;你的實際費率以登入後的模型目錄為準。

本頁目錄