Wan 動画生成 API
LMU AI 経由で Wan(Alibaba DashScope)の動画生成をネイティブ非同期プロトコルで呼び出す方法:タスクの作成、結果のポーリング、デフォルト値、完全なポーリング例。
Wan(Alibaba Cloud Model Studio、DashScope)の動画生成は、ベンダーのネイティブ非同期プロトコルを使用しており、DashScope 公式プロトコルと同一です。公式 SDK または curl コマンドのアドレスを LMU AI のアドレスに、キーを LMU AI の API キーに置き換えるだけで、リクエストボディは変更不要です。認証、課金と透かし、同時実行数の制限、エラーコードに関する共通ルールについては、動画生成 API の概要を参照してください。
Base URL
https://api.lmuai.ai| 操作 | エンドポイント |
|---|---|
| タスクの作成 | POST /api/v1/services/aigc/video-generation/video-synthesis |
| タスクの照会 | GET /api/v1/tasks/{task_id} |
グループで動画生成を有効にする必要があります
API キーが属するグループで「動画生成」が有効になっている必要があります。有効でない場合、呼び出しは 403 を返します。モデル名はグループで有効化された名前と完全に一致している必要があります(大文字と小文字を区別)。利用可能なモデルは GET /v1/models で確認してください。
1. タスクの作成
POST /api/v1/services/aigc/video-generation/video-synthesis
非同期ヘッダー X-DashScope-Async: enable は任意です。プラットフォームが自動的に付加します。
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
model | string | はい | 例:wan3.0-video |
input.prompt | string | はい | プロンプト |
input.media | array | いいえ | 参照メディア。例:[{"type":"first_frame","url":"…"}]。type には first_frame または reference_image を指定できます |
parameters.resolution | string | いいえ | 解像度ティア:480P / 720P / 1080P、デフォルトは 1080P |
parameters.duration | integer | いいえ | 長さ(秒)、デフォルトは 5 |
parameters.watermark | boolean | いいえ | グループのポリシーに従いプラットフォームが一律に設定します。クライアントが指定した値は上書きされる場合があります |
curl https://api.lmuai.ai/api/v1/services/aigc/video-generation/video-synthesis \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "wan3.0-video",
"input": {"prompt": "A Shiba Inu running across a sunny meadow"},
"parameters": {"resolution": "720P", "duration": 5}
}'import requests
BASE = "https://api.lmuai.ai"
HEADERS = {"Authorization": "Bearer YOUR_API_KEY"}
resp = requests.post(f"{BASE}/api/v1/services/aigc/video-generation/video-synthesis", headers=HEADERS, json={
"model": "wan3.0-video",
"input": {"prompt": "A Shiba Inu running across a sunny meadow"},
"parameters": {"resolution": "720P", "duration": 5},
})
resp.raise_for_status()
task_id = resp.json()["output"]["task_id"]
print(task_id)const BASE = "https://api.lmuai.ai";
const headers = {
Authorization: "Bearer YOUR_API_KEY",
"Content-Type": "application/json",
};
const resp = await fetch(`${BASE}/api/v1/services/aigc/video-generation/video-synthesis`, {
method: "POST",
headers,
body: JSON.stringify({
model: "wan3.0-video",
input: { prompt: "A Shiba Inu running across a sunny meadow" },
parameters: { resolution: "720P", duration: 5 },
}),
});
const data = await resp.json();
console.log(data.output.task_id);レスポンス:
{
"request_id": "4909100c-…",
"output": {
"task_id": "c65c77fe-323b-4140-8de6-5a7241d9ec44",
"task_status": "PENDING"
}
}2. タスクの照会
GET /api/v1/tasks/{task_id}
output.task_status の値:PENDING → RUNNING → SUCCEEDED / FAILED / CANCELED。成功時、動画の URL は output.video_url に、課金対象の秒数は usage.duration に含まれます。
curl https://api.lmuai.ai/api/v1/tasks/TASK_ID \
-H "Authorization: Bearer YOUR_API_KEY"レスポンス(成功):
{
"request_id": "…",
"output": {
"task_id": "c65c77fe-323b-4140-8de6-5a7241d9ec44",
"task_status": "SUCCEEDED",
"video_url": "https://…/output.mp4"
},
"usage": {
"duration": 2.0,
"video_count": 1
}
}キャンセル用エンドポイントはありません
Wan にはキャンセル用のエンドポイントがありません。送信されたタスクは必ず完了まで実行されます。失敗したタスクには課金されません。
3. 完全な例:作成とポーリング
import time, requests
BASE = "https://api.lmuai.ai"
HEADERS = {"Authorization": "Bearer YOUR_API_KEY"}
# 1. Create the task
resp = requests.post(f"{BASE}/api/v1/services/aigc/video-generation/video-synthesis", headers=HEADERS, json={
"model": "wan3.0-video",
"input": {"prompt": "A Shiba Inu running across a sunny meadow"},
"parameters": {"resolution": "720P", "duration": 5},
})
resp.raise_for_status()
task_id = resp.json()["output"]["task_id"]
# 2. Poll until a final state (every 10 seconds)
while True:
task = requests.get(f"{BASE}/api/v1/tasks/{task_id}", headers=HEADERS).json()
status = task["output"]["task_status"]
if status in ("SUCCEEDED", "FAILED", "CANCELED", "CANCELLED", "UNKNOWN"):
break
time.sleep(10)
# 3. Download (the link is valid for 24 hours)
if status == "SUCCEEDED":
url = task["output"]["video_url"]
with open(f"{task_id}.mp4", "wb") as f:
f.write(requests.get(url).content)
else:
print("Generation failed:", task)4. 課金とエラーコード
Wan は「実際の秒数 × 解像度ティアの単価」で課金され、課金対象の秒数は照会結果の usage.duration に含まれます。タスク作成時に見積額が凍結され、残高が不足している場合は 402 が返されます。成功時には実際の使用量で精算され、失敗したタスクは全額返金されます。ユーザーごと、および API キーごとに同時に生成できるタスクは最大 5 件までで、これを超えるリクエストは 429 を返します。
詳細なルールについては、概要の課金と透かし、同時実行数の制限、エラーコードを参照してください。もう一方のプロバイダーについては、Seedance 動画生成 APIを参照してください。
最終更新:
まだ解決しない場合は、LMU AI コミュニティ(中国語)で質問できます。コンソールのアカウントでそのままログインできます。
LMU AI の API キーを取得して、Claude や Codex をすぐに使う
登録は無料、プランは柔軟。1 つの API キーで Claude Code、Codex CLI、Cursor、VS Code 拡張、OpenCode、Cherry Studio などの AI ツールに接続できます。
登録する