88API88API
User GuideAI ApplicationsAPI ReferenceHelp & Support
Video

API vidéo Wan

Spécification d’appel de wan3.0-video et wan3.0-video-prime.

Cette page décrit l’appel des modèles vidéo Wan d’Alibaba, wan3.0-video et wan3.0-video-prime. Comme les autres modèles vidéo, ils se créent avec POST /v1/videos et s’interrogent avec GET /v1/videos/{id} ; l’authentification, le téléversement des médias, les états d’interrogation, le téléchargement des résultats et la gestion des erreurs sont décrits dans la spécification complète de l’API vidéo. Cette page ne présente que les champs et règles propres à Wan. Wan peut aussi être appelé avec POST /v1/responses ; voir « Appel via l’API Responses » ci-dessous.

Mis à jour le 2026-10-12. Les anciens wan3.0-video-480p, wan3.0-video-720p et wan3.0-video-1080p sont regroupés dans wan3.0-video, la résolution se choisissant avec resolution. Il est recommandé d’envoyer les images de début et de fin et les médias de référence dans le tableau media au niveau racine (first_frame, last_frame, reference_image, etc.). metadata.firstFrame, metadata.lastFrame, metadata.referenceImages, metadata.referenceVideos et metadata.referenceAudios (ainsi que les formes snake_case comme metadata.first_frame) et firstFrame / first_frame ou lastFrame / last_frame au niveau racine sont aussi acceptés et convertis en media, sans pouvoir être combinés avec media. Un champ de média non reconnu renvoie directement une erreur 400. Wan prend en charge uniquement l’interrogation : ne définissez pas callback_url.

Modèles

ModèleRésolutionDuréeFormat d’imageLimites des médias de référence
wan3.0-video480P / 720P / 1080P, 1080P par défaut-1 ou 2–30 s, 5 s par défautadaptive 16:9 9:16 1:1 4:3 3:4 21:9, adaptive par défaut10 images / 5 vidéos / 5 audios
wan3.0-video-primeIdemIdemIdemIdem

Les deux modèles offrent les mêmes capacités : les règles de résolution, de durée, de format, d’images de début et de fin et de références multiples sont identiques, les paramètres de requête sont les mêmes et il suffit de changer model pour passer de l’un à l’autre. La différence porte sur la vitesse de génération : wan3.0-video-prime est la version rapide, nettement plus rapide de bout en bout, adaptée lorsque vous avez besoin de la vidéo au plus vite ; wan3.0-video est la version standard, à choisir lorsque le délai n’est pas critique.

Règles communes

  • Résolution : resolution au niveau racine accepte 480p, 720p ou 1080p (insensible à la casse) ; 1080P par défaut. Vous pouvez aussi indiquer des dimensions en pixels avec size (par exemple 1280x720 ou 1920x1080), qui fixent à la fois la résolution et le format d’image ; size accepte aussi un format d’image (par exemple "size": "9:16"), et une valeur différente de ratio/aspect_ratio renvoie 400.
  • Durée : nombre entier de secondes dans duration (ou seconds) ; -1 laisse le modèle déterminer intelligemment la durée.
  • Format d’image : utilisez ratio (ou son équivalent aspect_ratio) ; si les deux diffèrent, la requête renvoie 400. adaptive adapte le format aux médias d’entrée.
  • Prompt : prompt peut être omis en présence d’une image de début ou de médias de référence, mais il est conseillé de décrire le mouvement et la caméra ; une requête sans aucun des deux renvoie 400.
  • Champs facultatifs :
    • negative_prompt : prompt négatif ;
    • prompt_extend : réécriture automatique du prompt, booléen, true par défaut ;
    • watermark : ajout d’un filigrane, booléen ;
    • seed : entier de -1 à 2147483647.
{
  "model": "wan3.0-video",
  "prompt": "Voiture de sport argentée dans une ville pluvieuse la nuit, travelling en contre-plongée, reflets de néons, rendu cinématographique",
  "duration": 10,
  "resolution": "1080p",
  "ratio": "16:9"
}

Image de début et images de début et de fin

Placez les images de début et de fin dans le tableau media : first_frame pour l’image de début, last_frame pour l’image de fin (une image de fin exige une image de début). Les images de référence passent aussi par media (reference_image), voir la section suivante.

{
  "model": "wan3.0-video-prime",
  "prompt": "Transition fluide d’une place vide à l’aube vers le même cadrage la nuit, lumières allumées",
  "duration": 8,
  "resolution": "720p",
  "media": [
    { "type": "first_frame", "url": "https://cdn.example.com/start.jpg" },
    { "type": "last_frame", "url": "https://cdn.example.com/end.jpg" }
  ]
}

Comment envoyer les champs de média

Utilisez media (recommandé). images / image au niveau racine (1re = image de début, 2e = image de fin), metadata.firstFrame (ou metadata.first_frame) et firstFrame / first_frame au niveau racine fonctionnent aussi. Un champ de média illisible (par exemple metadata.image ou metadata.images) renvoie 400 avec une invitation à utiliser media ; le même média envoyé sous plusieurs noms avec des URL différentes renvoie aussi 400.

Références multimédias : le tableau media

Les images, vidéos et audios de référence se placent tous dans le tableau media au niveau racine ; chaque élément a la forme { "type": "...", "url": "..." } :

typeUsageLimite
first_frameImage de début1
last_frameImage de fin, nécessite aussi first_frame1
reference_imageImage de référence10
reference_videoVidéo de référence5
reference_audioAudio de référence5
  • L’image de début et l’image de fin ne peuvent pas être combinées avec des images, vidéos ou audios de référence.
  • Lorsque media est envoyé, seul media est lu ; si images, image ou un champ similaire contient un média absent de media, la requête renvoie 400. Placez aussi les images de début et de fin dans media.
  • Les URL des médias doivent être accessibles anonymement ; voir Exigences relatives aux URL des médias. Pour un fichier local, obtenez d’abord une URL comme indiqué dans Téléverser un média local. Wan n’accepte pas le téléversement de fichiers en multipart/form-data.
{
  "model": "wan3.0-video",
  "prompt": "La personne de l’image danse sur le rythme de l’audio de référence, avec le style de mouvement de la vidéo de référence",
  "duration": 10,
  "resolution": "720p",
  "ratio": "9:16",
  "media": [
    { "type": "reference_image", "url": "https://cdn.example.com/dancer.jpg" },
    { "type": "reference_video", "url": "https://cdn.example.com/dance-motion.mp4" },
    { "type": "reference_audio", "url": "https://cdn.example.com/music.mp3" }
  ]
}

Appel via l’API Responses

Les deux modèles peuvent aussi être appelés avec POST /v1/responses, pratique pour les clients ou workflows qui ne savent appeler que l’API Responses. La tâche vidéo créée est la même qu’avec /v1/videos, avec les mêmes règles de paramètres et la même facturation.

  • Le prompt se place dans input : une chaîne ou un tableau de messages. Les parties input_text des messages forment le prompt et les parties input_image deviennent des images, selon la même règle que images au premier niveau (1re image = image de début, 2e image = image de fin).
  • Les autres paramètres (resolution, duration, ratio, media, negative_prompt, etc.) restent au premier niveau de la requête, écrits comme décrit plus haut.
  • Trois façons d’obtenir le résultat :
ModeÉcritureRemarques
Attente synchroneSans stream ni backgroundLa connexion reste ouverte jusqu’à ce que la vidéo soit prête, puis le résultat est renvoyé directement ; attente maximale d’environ 10 minutes. En cas de dépassement, la réponse a "status": "incomplete" ; la tâche continue, interrogez-la avec l’id renvoyé
Arrière-plan"background": trueRenvoie immédiatement un id (statut queued ou in_progress) ; interrogez ensuite GET /v1/responses/{id} jusqu’à ce que status vaille completed ou failed
Streaming"stream": trueÉvénements SSE response.created, response.in_progress (avec la progression), puis response.output_text.done et response.completed en cas de succès, ou response.failed en cas d’échec
{
  "model": "wan3.0-video-prime",
  "input": "Une voiture de sport argentée dans une ville pluvieuse la nuit, travelling en contre-plongée, reflets de néons, style cinéma",
  "duration": 5,
  "resolution": "720p",
  "ratio": "16:9",
  "background": true
}

Une fois la vidéo prête, son adresse se trouve dans output[0].content[0].text sous la forme <video controls src="adresse de la vidéo"></video> ; récupérez la valeur de src pour la télécharger :

{
  "id": "resp_BVQwZLWyXB2dEU99F7nrER7XNJdVh8RS",
  "object": "response",
  "model": "wan3.0-video-prime",
  "status": "completed",
  "output": [
    {
      "type": "message",
      "role": "assistant",
      "status": "completed",
      "content": [
        { "type": "output_text", "text": "<video controls src=\"https://...\"></video>" }
      ]
    }
  ],
  "metadata": {
    "task_id": "task_BVQwZLWyXB2dEU99F7nrER7XNJdVh8RS",
    "task_status": "completed"
  }
}

metadata.task_id est l’identifiant de la tâche vidéo correspondante ; vous pouvez aussi interroger la même tâche avec GET /v1/videos/{task_id}.

Les API de chat ne génèrent pas de vidéo

Seul Wan prend en charge /v1/responses. /v1/chat/completions, /v1/messages et les API d’images ne peuvent pas appeler les modèles vidéo et renvoient une erreur 400 video_model_wrong_endpoint.

Facturation

wan3.0-video et wan3.0-video-prime sont les versions officielles ; l’URL de résultat est officielle. La facturation suit la règle officielle :

Durée facturée = durée de la vidéo d’entrée + durée de la vidéo de sortie

  • Durée d’entrée : secondes réelles de la vidéo de référence ; 0 s’il n’y en a pas.
  • Durée de sortie : secondes de la vidéo générée avec succès.
  • Le prix à la seconde est celui de la résolution de sortie (480P / 720P / 1080P). L’entrée et la sortie utilisent le même palier.
  • Les images, audios, fichiers et pages de référence ne sont pas ajoutés à la durée facturée.
  • Avec une vidéo de référence, ou si duration vaut -1, 30 secondes sont réservées à la création ; après achèvement, le montant est régularisé sur les secondes entrée + sortie renvoyées par la plateforme du modèle, et le surplus est remboursé.

Les prix à la seconde sont ceux affichés sur la place des modèles. N’estimez pas une tâche avec vidéo de référence à partir des seules secondes de sortie.