> ## Documentation Index
> Fetch the complete documentation index at: https://docs.xhuoapi.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Wan Videos Generation API Documentation

> Tongyi Wansiang Video Generation 集成指南 - XHuoAPI

Cet article présentera une documentation sur l'intégration de l'API Wan Videos Generation, qui permet de générer des vidéos officielles de Wan Xiang en entrant des paramètres personnalisés.

## Processus de demande

Pour utiliser l'API, vous devez d'abord vous rendre sur la page correspondante de [Wan Videos Generation API](https://api.xhuoapi.ai/documents/52b0f490-1bbf-4fe5-b60e-96626d333d2c) pour demander le service correspondant. Une fois sur la page, cliquez sur le bouton « Acquire », comme indiqué dans l'image ci-dessous :

![](https://cdn.xhuoapi.ai/q6ytrc.png)

Si vous n'êtes pas encore connecté ou inscrit, vous serez automatiquement redirigé vers la page de connexion pour vous inviter à vous inscrire et à vous connecter. Après vous être connecté ou inscrit, vous serez automatiquement renvoyé à la page actuelle.

Lors de la première demande, un quota gratuit sera offert, vous permettant d'utiliser l'API gratuitement.

## Utilisation de base

Tout d'abord, comprenons la méthode d'utilisation de base, qui consiste à entrer le mot-clé `prompt`, l'action de génération `action`, l'image de référence de la première image `image_url` ainsi que le modèle `model`, afin d'obtenir le résultat traité. Il est d'abord nécessaire de transmettre un champ `action`, dont la valeur est `text2video`. Cela comprend principalement deux types d'actions : vidéo générée par texte (`text2video`), vidéo générée par image (`image2video`). Ensuite, nous devons également entrer le modèle `model`, qui comprend principalement les modèles `wan2.6-i2v`, `wan2.6-r2v`, `wan2.6-i2v-flash`, `wan2.6-t2v`, dont le contenu est le suivant :

<p>
  <img src="https://cdn.xhuoapi.ai/03gqdz.png" width="500" className="m-auto" />
</p>

Nous pouvons voir ici que nous avons configuré les en-têtes de requête, y compris :

* `accept` : le format de réponse souhaité, ici rempli avec `application/json`, c'est-à-dire au format JSON.
* `authorization` : la clé d'API pour appeler l'API, que vous pouvez sélectionner directement après la demande.

De plus, nous avons configuré le corps de la requête, y compris :

* `model` : le modèle de génération de vidéo, principalement `wan2.6-i2v`, `wan2.6-r2v`, `wan2.6-i2v-flash`, `wan2.6-t2v`.
* `action` : l'action de génération de vidéo, qui comprend principalement trois types d'actions : vidéo générée par texte (`text2video`), vidéo générée par image (`image2video`). Pour la vidéo générée par texte, seul le modèle `wan2.6-t2v` est actuellement pris en charge. Pour la vidéo générée par image, seuls les modèles `wan2.6-i2v`, `wan2.6-r2v`, `wan2.6-i2v-flash` sont actuellement pris en charge.
* `image_url` : lorsque l'action de génération de vidéo par image `image2video` est choisie, il est nécessaire de télécharger le lien de l'image de référence de la première image. Actuellement, seuls les modèles `wan2.6-i2v`, `wan2.6-i2v-flash` sont pris en charge.
* `reference_video_urls` : optionnel lors de la génération de vidéo par image, spécifie les liens vidéo de référence pour la génération. Actuellement, seul le modèle `wan2.6-r2v` est pris en charge.
* `size` : spécifie la résolution de la vidéo générée, au format largeur\*hauteur. La valeur par défaut de ce paramètre et les valeurs énumérées disponibles dépendent du paramètre model, les règles spécifiques peuvent être consultées dans la [documentation officielle](https://modelstudio.console.alibabacloud.com/ap-southeast-1/?tab=api#/api/?type=model\&url=2865250) :
* `duration` : la durée de la vidéo générée, principalement prise en charge pour 5, 10, 15.
* `shot_type` : optionnel, spécifie le type de plan de la vidéo générée, c'est-à-dire si la vidéo est composée d'un plan continu ou de plusieurs plans alternés. Conditions d'application : ne s'applique que lorsque "prompt\_extend": true. Priorité des paramètres : shot\_type > prompt. Par exemple, si shot\_type est défini sur "single", même si le prompt contient "générer une vidéo à plusieurs plans", le modèle produira toujours une vidéo à plan unique, les règles spécifiques peuvent être consultées dans la [documentation officielle](https://modelstudio.console.alibabacloud.com/ap-southeast-1/?tab=api#/api/?type=model\&url=2865250).
* `negative_prompt` : optionnel, mot-clé inverse, utilisé pour décrire ce que vous ne souhaitez pas voir dans l'image vidéo, pouvant limiter le contenu de l'image vidéo. Prend en charge le chinois et l'anglais, longueur ne dépassant pas 500 caractères, les parties excédentaires seront automatiquement tronquées. Exemples : basse résolution, erreurs, qualité la plus basse, mauvaise qualité, défauts, doigts en trop, proportions incorrectes, etc.
* `resolution` : spécifie le niveau de résolution de la vidéo générée, utilisé pour ajuster la clarté de la vidéo (nombre total de pixels). Le modèle redimensionnera automatiquement en fonction du niveau de résolution choisi, le rapport hauteur/largeur de la vidéo sera maintenu aussi proche que possible de celui de l'image d'entrée img\_url, plus d'explications peuvent être trouvées dans la [documentation officielle](https://modelstudio.console.alibabacloud.com/ap-southeast-1/?tab=api#/api/?type=model\&url=2867393).
* `audio_url` : URL du fichier audio, le modèle utilisera cet audio pour générer la vidéo. Méthode d'utilisation à consulter dans la [documentation officielle](https://modelstudio.console.alibabacloud.com/ap-southeast-1/?tab=api#/api/?type=model\&url=2867393).
* `audio` : si la vidéo générée doit être sonore. Priorité des paramètres : audio > audio\_url. Lorsque audio=false, même si audio\_url est fourni, la sortie sera toujours une vidéo muette, et la facturation sera calculée comme une vidéo muette, la valeur par défaut est true.
* `prompt_extend` : si l'intelligent réécriture de prompt est activée. Lorsqu'elle est activée, un grand modèle réécrit intelligemment le prompt d'entrée. Pour les prompts plus courts, l'effet de génération est considérablement amélioré, mais cela augmentera le temps de traitement, la valeur par défaut est true.
* `prompt` : mot-clé.
* `callback_url` : URL pour recevoir les résultats.

Après avoir fait votre sélection, vous pouvez voir que le code correspondant a également été généré à droite, comme indiqué dans l'image ci-dessous :

<p>
  <img src="https://cdn.xhuoapi.ai/03gqdz.png" width="500" className="m-auto" />
</p>

Cliquez sur le bouton « Try » pour effectuer un test, comme indiqué ci-dessus, et nous avons obtenu le résultat suivant :

```json theme={null}
{
  "success": true,
  "video_url": "https://dashscope-result-sh.oss-accelerate.aliyuncs.com/1d/db/20260124/da477ba2/0d2042f9-ba8d-496d-8ab5-182617e28f9e.mp4?Expires=1769349278&OSSAccessKeyId=LTAI5tKPD3TMqf2Lna1fASuh&Signature=SjBa4wRcDVx3SSYu/x7BYCFQk0s=",
  "state": "completed",
  "task_id": "a4bca552-d964-46a1-8ff7-fd922f916582"
}
```

Le résultat de retour contient plusieurs champs, décrits comme suit :

* `success`, l'état de la tâche de génération de vidéo à ce moment.
* `task_id`, l'ID de la tâche de génération de vidéo à ce moment.
* `video_url`, le lien vidéo de la tâche de génération de vidéo à ce moment.
* `state`, l'état de la tâche de génération de vidéo à ce moment.

Nous pouvons voir que nous avons obtenu des informations vidéo satisfaisantes, il nous suffit d'accéder à la vidéo générée via l'adresse du lien vidéo `video_url` dans le résultat.

De plus, si vous souhaitez générer le code d'intégration correspondant, vous pouvez le copier directement, par exemple, le code CURL est le suivant :

```shell theme={null}
curl -X POST 'https://api.xhuoapi.ai/v1/wan/videos' \
-H 'accept: application/json' \
-H 'authorization: Bearer {token}' \
-H 'content-type: application/json' \
-d '{
  "action": "text2video",
  "model": "wan2.6-t2v",
  "prompt": "Astronauts shuttle from space to volcano",
  "duration": 5
}'
```

## Fonctionnalité de vidéo générée par image

Si vous souhaitez générer une vidéo à partir d'une image de référence ou d'une vidéo de référence, vous pouvez définir le paramètre `action` sur `image2video`, et entrer le lien de l'image de référence ou de la vidéo de référence. Ensuite, nous devons remplir les mots-clés d'invite à étendre pour personnaliser la génération de la vidéo, ce qui permet de spécifier le contenu suivant :

* `model` : le modèle de génération de vidéo, principalement `wan2.6-i2v`, `wan2.6-r2v`, `wan2.6-i2v-flash`, `wan2.6-t2v`.
* `image_url` : lorsque l'on choisit l'action de génération de vidéo à partir d'une image `image2video`, il est nécessaire de télécharger le lien de l'image de référence pour la première image, actuellement pris en charge uniquement par les modèles `wan2.6-i2v`, `wan2.6-i2v-flash`.
* `reference_video_urls` : optionnel lors de la génération de vidéo à partir d'une image, spécifie le lien de la vidéo de référence pour la génération, actuellement pris en charge uniquement par le modèle `wan2.6-r2v`.
* `prompt` : mot-clé d'invite.

Exemple de remplissage :

<p>
  <img src="https://cdn.xhuoapi.ai/94l0kk.png" width="500" className="m-auto" />
</p>

Une fois rempli, le code généré automatiquement est le suivant :

<p>
  <img src="https://cdn.xhuoapi.ai/b5q8tt.png" width="500" className="m-auto" />
</p>

Le code Python correspondant :

```python theme={null}
import requests

url = "https://api.xhuoapi.ai/v1/wan/videos"

headers = {
    "accept": "application/json",
    "authorization": "Bearer {token}",
    "content-type": "application/json"
}

payload = {
    "action": "image2video",
    "model": "wan2.6-i2v",
    "prompt": "Astronauts shuttle from space to volcano",
    "duration": 5,
    "image_url": "https://cdn.xhuoapi.ai/r9vsv9.png",
    "callback_url": "https://www.baidu.com/"
}

response = requests.post(url, json=payload, headers=headers)
print(response.text)
```

En cliquant sur exécuter, vous pouvez constater que vous obtiendrez un résultat, comme suit :

```json theme={null}
{
  "success": true,
  "video_url": "https://dashscope-result-sh.oss-accelerate.aliyuncs.com/1d/db/20260124/da477ba2/0d2042f9-ba8d-496d-8ab5-182617e28f9e.mp4?Expires=1769349278&OSSAccessKeyId=LTAI5tKPD3TMqf2Lna1fASuh&Signature=SjBa4wRcDVx3SSYu/x7BYCFQk0s=",
  "state": "completed",
  "task_id": "a4bca552-d964-46a1-8ff7-fd922f916582"
}
```

On peut voir que le contenu du résultat est cohérent avec ce qui précède, ce qui permet de réaliser la fonction d'extension de vidéo.

## Rappel asynchrone

Étant donné que le temps de génération de l'API Wan Videos Generation est relativement long, environ 1 à 2 minutes, si l'API ne répond pas pendant longtemps, la requête HTTP maintiendra la connexion, entraînant une consommation supplémentaire de ressources système. Par conséquent, cette API propose également un support de rappel asynchrone.

Le processus global est le suivant : lorsque le client initie une requête, il spécifie un champ `callback_url` supplémentaire. Après que le client ait lancé la requête API, l'API renverra immédiatement un résultat contenant un champ d'information `task_id`, représentant l'ID de la tâche actuelle. Lorsque la tâche est terminée, le résultat de la vidéo générée sera envoyé au `callback_url` spécifié par le client sous forme de POST JSON, incluant également le champ `task_id`, permettant ainsi de lier le résultat de la tâche par ID.

Voyons comment procéder à travers un exemple.

Tout d'abord, le rappel Webhook est un service capable de recevoir des requêtes HTTP, les développeurs doivent le remplacer par l'URL de leur propre serveur HTTP. Pour des raisons de démonstration, nous utilisons un site Web de Webhook public [https://webhook.site/](https://webhook.site/), en ouvrant ce site, vous obtiendrez une URL Webhook, comme illustré :

![](https://cdn.xhuoapi.ai/tbcnai.png)

Copiez cette URL, qui peut être utilisée comme Webhook, l'exemple ici est `https://webhook.site/624b2c78-6dbd-4618-9d2b-b32eade6d8c3`.

Ensuite, nous pouvons définir le champ `callback_url` sur l'URL Webhook ci-dessus, tout en remplissant les paramètres correspondants, le contenu spécifique est illustré comme suit :

<p>
  <img src="https://cdn.xhuoapi.ai/vdx12s.png" width="500" className="m-auto" />
</p>

En cliquant sur exécuter, vous pouvez constater que vous obtiendrez immédiatement un résultat, comme suit :

```
{
  "task_id": "20068983-0cc9-4c6a-aeb6-9c6a3c668be0"
}
```

Après un moment, vous pouvez observer le résultat de la vidéo générée sur `https://webhook.site/624b2c78-6dbd-4618-9d2b-b32eade6d8c3`, comme illustré :

![](https://cdn.xhuoapi.ai/zv5u2q.png)

Le contenu est le suivant :

```json theme={null}
{
  "success": true,
  "video_url": "https://dashscope-result-sh.oss-accelerate.aliyuncs.com/1d/db/20260124/da477ba2/0d2042f9-ba8d-496d-8ab5-182617e28f9e.mp4?Expires=1769349278&OSSAccessKeyId=LTAI5tKPD3TMqf2Lna1fASuh&Signature=SjBa4wRcDVx3SSYu/x7BYCFQk0s=",
  "state": "completed",
  "task_id": "a4bca552-d964-46a1-8ff7-fd922f916582"
}
```

On peut voir qu'il y a un champ `task_id` dans le résultat, les autres champs sont similaires à ceux mentionnés précédemment, permettant ainsi de lier la tâche par ce champ.

## Gestion des erreurs

Lors de l'appel de l'API, si une erreur se produit, l'API renverra le code d'erreur et les informations correspondantes. Par exemple :

* `400 token_mismatched` : Mauvaise requête, probablement en raison de paramètres manquants ou invalides.
* `400 api_not_implemented` : Mauvaise requête, probablement en raison de paramètres manquants ou invalides.
* `401 invalid_token` : Non autorisé, jeton d'autorisation invalide ou manquant.
* `429 too_many_requests` : Trop de requêtes, vous avez dépassé la limite de taux.
* `500 api_error` : Erreur interne du serveur, quelque chose s'est mal passé sur le serveur.

### Exemple de réponse d'erreur

```json theme={null}
{
  "success": false,
  "error": {
    "code": "api_error",
    "message": "fetch failed"
  },
  "trace_id": "2cf86e86-22a4-46e1-ac2f-032c0f2a4e89"
}
```

## Conclusion

Grâce à ce document, vous avez compris comment utiliser l'API Wan Videos Generation pour générer des vidéos en entrant des mots-clés d'invite et une image de référence pour la première image. Nous espérons que ce document vous aidera à mieux intégrer et utiliser cette API. Si vous avez des questions, n'hésitez pas à contacter notre équipe de support technique.
