API ouverte

API de génération vidéo Wan

Appelez la génération vidéo Wan (Alibaba DashScope) via LMU AI avec le protocole asynchrone natif : création de tâches, interrogation des résultats, valeurs par défaut et exemple complet d'interrogation.

La génération vidéo Wan (Alibaba Cloud Model Studio, DashScope) utilise le protocole asynchrone natif du fournisseur, identique au protocole officiel DashScope : remplacez l'adresse dans le SDK officiel ou la commande curl par l'adresse LMU AI et la clé par votre clé API LMU AI ; le corps de la requête reste inchangé. Pour les règles communes concernant l'authentification, la facturation et les filigranes, les limites de concurrence et les codes d'erreur, consultez la présentation de l'API de génération vidéo.

URL de base

https://api.lmuai.ai
OpérationEndpoint
Créer une tâchePOST /api/v1/services/aigc/video-generation/video-synthesis
Interroger une tâcheGET /api/v1/tasks/{task_id}

La génération vidéo doit être activée pour votre groupe

Le groupe de la clé API doit avoir la « Génération vidéo » activée ; sinon, les appels renvoient 403. Le nom du modèle doit correspondre exactement au nom activé pour votre groupe (sensible à la casse) ; consultez les modèles disponibles avec GET /v1/models.

1. Créer une tâche

POST /api/v1/services/aigc/video-generation/video-synthesis

L'en-tête asynchrone X-DashScope-Async: enable est facultatif ; la plateforme l'ajoute automatiquement.

ParamètreTypeRequisDescription
modelstringOuiPar exemple wan3.0-video
input.promptstringOuiPrompt
input.mediaarrayNonMédias de référence, par exemple [{"type":"first_frame","url":"…"}] ; type peut être first_frame ou reference_image
parameters.resolutionstringNonPalier de résolution : 480P / 720P / 1080P, par défaut 1080P
parameters.durationintegerNonDurée en secondes, par défaut 5
parameters.watermarkbooleanNonDéfini de manière uniforme par la plateforme selon la politique du groupe ; une valeur fournie par le client peut être remplacée
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);

Réponse :

{
  "request_id": "4909100c-…",
  "output": {
    "task_id": "c65c77fe-323b-4140-8de6-5a7241d9ec44",
    "task_status": "PENDING"
  }
}

2. Interroger une tâche

GET /api/v1/tasks/{task_id}

Valeurs de output.task_status : PENDING → RUNNING → SUCCEEDED / FAILED / CANCELED. En cas de succès, l'URL de la vidéo se trouve dans output.video_url, et les secondes facturées dans usage.duration.

curl https://api.lmuai.ai/api/v1/tasks/TASK_ID \
  -H "Authorization: Bearer YOUR_API_KEY"

Réponse (succès) :

{
  "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
  }
}

Aucun endpoint d'annulation

Wan ne dispose d'aucun endpoint d'annulation : une fois soumise, une tâche s'exécute toujours jusqu'à son terme. Les tâches échouées ne sont pas facturées.

3. Exemple complet : création et interrogation

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. Facturation et codes d'erreur

Wan est facturé selon « secondes réelles × prix unitaire du palier de résolution », et les secondes facturées figurent dans usage.duration du résultat de la requête. Un montant estimé est gelé à la création de la tâche, et un solde insuffisant renvoie 402 ; en cas de succès, la tâche est réglée selon l'utilisation réelle, et les tâches échouées sont intégralement remboursées. Chaque utilisateur et chaque clé API peut avoir au maximum 5 tâches en cours de génération simultanément ; au-delà, les requêtes renvoient 429.

Pour les règles complètes, consultez Facturation et filigranes, Limites de concurrence et Codes d'erreur dans la présentation. Pour l'autre fournisseur, consultez l'API de génération vidéo Seedance.

Dernière mise à jour :

Encore des questions ? Posez-les sur la communauté LMU AI (en chinois) ; connectez-vous avec votre compte de la console.

Sur cette page