Le modèle de génération vidéo Wan produit des vidéos fluides à partir d' invites textuelles .
Références : Guide utilisateur
Disponibilité
La région du modèle, l'URL de l'endpoint et la clé API doivent correspondre. Les appels interrégionaux échouent systématiquement.
- Sélectionner un modèle : Vérifiez la disponibilité du modèle dans votre région cible.
- Choisir une URL : Utilisez l'URL d'endpoint correspondant à la région concernée. Les protocoles HTTP et HTTPS sont tous deux pris en charge.
- Configurer une clé API : Sélectionnez une région, obtenez une clé API, puis configurez-la dans les variables d'environnement.
- Installer le SDK : Pour appeler l'API via un SDK, installez le SDK DashScope.
RemarqueLes exemples de code de cette rubrique utilisent la région Singapour.
ImportantAlibaba Cloud Model Studio a publié des domaines spécifiques aux espaces de travail pour les régions Chine (Pékin) et Singapour. Ces nouveaux domaines dédiés offrent des performances supérieures et une stabilité accrue pour les requêtes d'inférence. Nous vous recommandons de migrer vers ces nouveaux domaines :
- Chine (Pékin) : de
https://dashscope.aliyuncs.comvershttps://{WorkspaceId}.cn-beijing.maas.aliyuncs.com - Singapour : de
https://dashscope-intl.aliyuncs.comvershttps://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com
{WorkspaceId} correspond à l'ID de votre espace de travail, disponible sur la page Workspace Details de la console Alibaba Cloud Model Studio. Le domaine existant reste pleinement fonctionnel.
Instructions
HTTP (wan2.7)
ImportantCette interface utilise le nouveau protocole et prend uniquement en charge wan2.7.
Les tâches de génération vidéo à partir de texte nécessitent entre 1 et 5 minutes. L'API fonctionne de manière asynchrone : Créez une tâche → Interrogez régulièrement pour obtenir le résultat.
Étape 1 : Créer une tâche
Beijing
POST https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1/services/aigc/video-generation/video-synthesis
Singapore
POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/video-generation/video-synthesis
Singapore
POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/video-generation/video-synthesis
Beijing
POST https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1/services/aigc/video-generation/video-synthesis
Remplacez {WorkspaceId} par votre véritable ID d'espace de travail.
Remarque
- Une fois la tâche créée, utilisez le
task_idretourné pour interroger le résultat. Cetask_idreste valide pendant 24 heures. Ne créez pas de tâches en double. Privilégiez l'interrogation régulière pour récupérer le résultat. - Pour un guide destiné aux débutants, consultez Appeler des API avec Postman ou cURL.
Paramètres de requête | Narration multi-plansContrôlez la structure des plans en langage naturel dans le
Fournir un fichier audioSpécifiez l'URL d'un fichier audio personnalisé dans le paramètre Doublage automatiqueEn l'absence de Utiliser un prompt négatifUtilisez negative_prompt pour exclure l'élément « flower » et empêcher son apparition dans la vidéo. |
En-têtes | |
Content-Type Type de contenu de la requête. Doit être | |
Authorization Authentifie la requête avec une clé API Model Studio. Exemple : Bearer sk-xxxx. | |
X-DashScope-Async Active le traitement asynchrone. Les requêtes HTTP ne prennent en charge que les appels asynchrones. La valeur doit être ImportantSi cet en-tête de requête est absent, l'erreur « current user api does not support synchronous calls » est retournée. | |
Corps de la requête | |
model Nom du modèle. Pour la liste des modèles et les tarifs, consultez Tarification des modèles. Exemple : wan2.7-t2v, wan2.7-t2v-2026-06-12. | |
input Données d'entrée, incluant le prompt. | |
parameters Paramètres de génération vidéo : résolution, réécriture du prompt et filigrane. |
Paramètres de réponse | Réponse réussieConservez le Réponse d'erreurLa création de la tâche a échoué. Consultez Codes d'erreur. |
output Sortie de la tâche. | |
request_id Identifiant unique de requête pour le suivi et le dépannage. | |
code Code d'erreur. Retourné uniquement pour les requêtes ayant échoué. Consultez Codes d'erreur. | |
message Message d'erreur détaillé. Retourné uniquement pour les requêtes ayant échoué. Consultez Codes d'erreur. |
Étape 2 : Interroger le résultat
Beijing
GET https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1/tasks/{task_id}
Singapore
GET https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/tasks/{task_id}
Singapore
GET https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/tasks/{task_id}
Beijing
GET https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1/tasks/{task_id}
Remplacez {WorkspaceId} par votre véritable ID d'espace de travail.
Remarque
- Recommandation d'interrogation : La génération vidéo prend plusieurs minutes. Mettez en place un mécanisme d'interrogation avec un intervalle raisonnable, par exemple 15 secondes.
- Transition d'état de la tâche : PENDING → RUNNING → SUCCEEDED ou FAILED.
- Lien du résultat : Une fois la tâche terminée avec succès, une URL vidéo valide pendant 24 heures est retournée. Téléchargez et enregistrez la vidéo dans un stockage permanent, tel qu'OSS.
- Validité du task_id : 24 heures. Passé ce délai, les requêtes retournent l'état
UNKNOWNpour la tâche.
Paramètres de requête | Interroger le résultat de la tâcheRemplacez |
En-têtes | |
Authorization Authentifie la requête avec une clé API Model Studio. Exemple : Bearer sk-xxxx. | |
Paramètres de chemin | |
task_id Identifiant de la tâche. |
Paramètres de réponse | Tâche exécutée avec succèsLes URL vidéo ne sont valides que pendant 24 heures, puis sont automatiquement supprimées. Enregistrez rapidement les vidéos générées. Échec de l'exécution de la tâcheLorsqu'une tâche échoue, Requête de tâche expiréeLe |
output Sortie de la tâche. | |
usage Statistiques de sortie. Retournées uniquement pour les tâches réussies. | |
request_id Identifiant unique de requête pour le suivi et le dépannage. |
HTTP (wan2.6 et versions antérieures)
ImportantCette interface utilise le protocole hérité et prend en charge les versions wan2.6 et antérieures (wan2.5/wan2.2/wan2.1).
Les tâches de génération vidéo à partir de texte nécessitent entre 1 et 5 minutes. L'API fonctionne donc de manière asynchrone : Créer une tâche → Interroger le résultat.
Étape 1 : Créer une tâche
Singapore
POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/video-generation/video-synthesis
Virginia
POST https://dashscope-us.aliyuncs.com/api/v1/services/aigc/video-generation/video-synthesis
Beijing
POST https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1/services/aigc/video-generation/video-synthesis
Frankfurt
POST https://{WorkspaceId}.eu-central-1.maas.aliyuncs.com/api/v1/services/aigc/video-generation/video-synthesis
Remplacez {WorkspaceId} par votre véritable ID d'espace de travail.
Remarque
- Une fois la tâche créée, utilisez l'identifiant
task_idretourné pour interroger le résultat. Cetask_idreste valide pendant 24 heures. Ne créez pas de tâches en double. Privilégiez plutôt l'interrogation régulière pour obtenir le résultat. - Pour un guide destiné aux débutants, consultez la rubrique Appeler des API avec Postman ou cURL.
Paramètres de requête | Narration multi-plans
Fournir un fichier audioModèles pris en charge : séries wan2.6 et wan2.5. Définissez le paramètre Doublage automatiqueModèles pris en charge : séries wan2.6 et wan2.5. En l'absence du paramètre Générer une vidéo muetteSeuls les modèles des séries wan2.2 et wan2.1 permettent la génération de vidéos muettes. Ces modèles produisent des vidéos sans son par défaut, sans configuration supplémentaire.
Utiliser un prompt négatifModèles pris en charge : tous les modèles. Le champ negative_prompt permet d'exclure certains éléments (comme « fleurs ») de la vidéo générée. |
En-têtes de requête | |
Content-Type Type de contenu de la requête. Doit être | |
Authorization Authentifie la requête à l'aide d'une clé API Model Studio. Exemple : Bearer sk-xxxx. | |
X-DashScope-Async Active le traitement asynchrone. Les requêtes HTTP ne prennent en charge que les appels asynchrones. La valeur doit être ImportantSi cet en-tête est absent, l'erreur « current user api does not support synchronous calls » est renvoyée. | |
Corps de la requête | |
model Nom du modèle. Pour la liste des modèles et leurs tarifs, consultez la rubrique Tarification des modèles. Exemple : wan2.6-t2v. | |
input Données d'entrée, incluant le prompt. | |
parameters Paramètres de génération vidéo : résolution, réécriture du prompt et filigrane. |
Paramètres de réponse | Réponse réussieConservez le Réponse d'erreurÉchec de la création de la tâche. Consultez la rubrique Codes d'erreur. |
output Sortie de la tâche. | |
request_id Identifiant unique de la requête, utilisé pour le suivi et le dépannage. | |
code Code d'erreur. Renvoyé uniquement en cas d'échec de la requête. Consultez la rubrique Codes d'erreur. | |
message Message d'erreur détaillé. Renvoyé uniquement en cas d'échec de la requête. Consultez la rubrique Codes d'erreur. |
Étape 2 : Interroger le résultat
Singapore
GET https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/tasks/{task_id}
Virginia
GET https://dashscope-us.aliyuncs.com/api/v1/tasks/{task_id}
Beijing
GET https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1/tasks/{task_id}
Frankfurt
GET https://{WorkspaceId}.eu-central-1.maas.aliyuncs.com/api/v1/tasks/{task_id}
Remplacez {WorkspaceId} par votre véritable ID d'espace de travail.
Remarque
- Recommandation de polling : La génération vidéo prend plusieurs minutes. Mettez en place un mécanisme de polling avec un intervalle raisonnable, par exemple 15 secondes.
- Transition des états de tâche : PENDING → RUNNING → SUCCEEDED ou FAILED.
- Lien du résultat : Une fois la tâche terminée avec succès, une URL vidéo valide pendant 24 heures est renvoyée. Téléchargez et enregistrez la vidéo dans un stockage permanent, tel que OSS.
- Validité dutask_id:24 heures**. Passé ce délai, les requêtes renvoient le statut de la tâche comme
UNKNOWN.
Paramètres de la requête | Interroger le résultat de la tâcheRemplacez |
Headers | |
Authorization Authentifie la requête à l'aide d'une clé API Model Studio. Exemple : Bearer sk-xxxx. | |
Path parameters | |
task_id Identifiant de la tâche. |
Paramètres de la réponse | Tâche exécutée avec succèsLes URL vidéo ne sont valides que pendant 24 heures, puis automatiquement supprimées. Enregistrez rapidement les vidéos générées. Échec de l'exécution de la tâcheEn cas d'échec d'une tâche, Requête de tâche expiréeLe |
output Sortie de la tâche. | |
usage Statistiques de sortie. Renvoyées uniquement pour les tâches réussies. | |
request_id Identifiant unique de la requête pour le suivi et le dépannage. |
DashScope SDK
Les noms de paramètres du SDK correspondent en grande partie à ceux de l'API HTTP, tandis que les structures suivent les conventions spécifiques à chaque langage.
Les tâches de conversion texte-en-vidéo prennent entre 1 et 5 minutes. Le SDK encapsule le flux d'appels HTTP asynchrones et prend en charge l'invocation synchrone et asynchrone.
Le temps de traitement réel dépend de la profondeur de la file d'attente et de la charge du service.
Python SDK
Important
-
Ce SDK prend en charge wan2.6 et les versions antérieures. wan2.7 n'est pas pris en charge.
-
La version 1.25.8 ou ultérieure du DashScope Python SDK est requise.
Les versions plus anciennes peuvent renvoyer « url error, please check url! ». Pour effectuer la mise à jour, consultez Installer le SDK.
Définissez dashscope.base_http_api_url sur l'endpoint de la région :
Beijing
dashscope.base_http_api_url = 'https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1'
Singapore
dashscope.base_http_api_url = 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1'
Virginia
dashscope.base_http_api_url = 'https://dashscope-us.aliyuncs.com/api/v1'
Remplacez {WorkspaceId} par votre véritable ID d'espace de travail.
Invocation synchrone
Exemple de requête
from http import HTTPStatus
from dashscope import VideoSynthesis
import dashscope
import os
# URL for the Singapore region. URLs vary by region. For more information, see https://www.alibabacloud.com/help/en/model-studio/text-to-video-api-reference.
dashscope.base_http_api_url = 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1'
# If no environment variable is configured, replace with your Model Studio API key: api_key="sk-xxx".
# API keys vary by region. For more information, see https://www.alibabacloud.com/help/en/model-studio/get-api-key.
api_key = os.getenv("DASHSCOPE_API_KEY")
def sample_sync_call_t2v():
# Call the sync API and return the result.
print('Please wait...')
rsp = VideoSynthesis.call(api_key=api_key,
model='wan2.6-t2v',
prompt="Shot from a low angle, in a medium close-up, with warm tones, mixed lighting (the practical light from the desk lamp blends with the overcast light from the window), side lighting, and a central composition. In a classic detective office, wooden bookshelves are filled with old case files and ashtrays. A green desk lamp illuminates a case file spread out in the center of the desk. A fox, wearing a dark brown trench coat and a light gray fedora, sits in a leather chair, its fur crimson, its tail resting lightly on the edge, its fingers slowly turning yellowed pages. Outside, a steady drizzle falls beneath a blue sky, streaking the glass with meandering streaks. It slowly raises its head, its ears twitching slightly, its amber eyes gazing directly at the camera, its mouth clearly moving as it speaks in a smooth, cynical voice: 'The case was cold, colder than a fish in winter. But every chicken has its secrets, and I, for one, intended to find them.'",
audio_url='https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250929/stjqnq/%E7%8B%90%E7%8B%B8.mp3',
size='1280*720',
duration=10,
negative_prompt="",
prompt_extend=True,
watermark=False,
seed=12345)
print(rsp)
if rsp.status_code == HTTPStatus.OK:
print(rsp.output.video_url)
else:
print('Failed. Status code: %s, code: %s, message: %s' %
(rsp.status_code, rsp.code, rsp.message))
if __name__ == '__main__':
sample_sync_call_t2v()
Exemple de réponse
L'URL video_url expire après 24 heures. Téléchargez-la rapidement.
{
"status_code": 200,
"request_id": "167f3beb-3dd0-47fe-a83c-xxxxxx",
"code": null,
"message": "",
"output": {
"task_id": "5b65411f-d946-4e29-859e-xxxxxx",
"task_status": "SUCCEEDED",
"video_url": "https://dashscope-result-bj.oss-accelerate.aliyuncs.com/xxx.mp4?Expires=xxx",
"submit_time": "2025-10-23 11:47:23.879",
"scheduled_time": "2025-10-23 11:47:34.351",
"end_time": "2025-10-23 11:52:35.323",
"orig_prompt": "Shot from a low angle, in a medium close-up, with warm tones, mixed lighting (the practical light from the desk lamp blends with the overcast light from the window), side lighting, and a central composition. In a classic detective's office, wooden bookshelves are filled with old case files and ashtrays. A green desk lamp illuminates a case file spread out in the center of the desk. A fox, wearing a dark brown trench coat and a light gray fedora, sits in a leather chair, its fur crimson, its tail resting lightly on the edge, its fingers slowly turning yellowed pages. Outside, a steady drizzle falls beneath a blue sky, streaking the glass with meandering streaks. It slowly raises its head, its ears twitching slightly, its amber eyes gazing directly at the camera, its mouth clearly moving as it speaks in a smooth, cynical voice: 'The case was cold, colder than a fish in winter. But every chicken has its secrets, and I, for one, intended to find them '."
},
"usage": {
"video_count": 1,
"video_duration": 0,
"video_ratio": "",
"duration": 10,
"size": "1280*720",
"input_video_duration": 0,
"output_video_duration": 10,
"SR": 720
}
}
Invocation asynchrone
Exemple de requête
from http import HTTPStatus
from dashscope import VideoSynthesis
import dashscope
import os
# This is the Singapore region URL. URLs vary by region. For more information, see: https://www.alibabacloud.com/help/en/model-studio/text-to-video-api-reference
dashscope.base_http_api_url = 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1'
# If an environment variable is not configured, replace this with your Model Studio API key: api_key="sk-xxx"
# API keys vary by region. For more information, see: https://www.alibabacloud.com/help/en/model-studio/get-api-key
api_key = os.getenv("DASHSCOPE_API_KEY")
def sample_async_call_t2v():
# Call the asynchronous API and return the task information.
# Use the task ID to check the status.
rsp = VideoSynthesis.async_call(api_key=api_key,
model='wan2.6-t2v',
prompt="Shot from a low angle, in a medium close-up, with warm tones, mixed lighting (the practical light from the desk lamp blends with the overcast light from the window), side lighting, and a central composition. In a classic detective office, wooden bookshelves are filled with old case files and ashtrays. A green desk lamp illuminates a case file spread out in the center of the desk. A fox, wearing a dark brown trench coat and a light gray fedora, sits in a leather chair, its fur crimson, its tail resting lightly on the edge, its fingers slowly turning yellowed pages. Outside, a steady drizzle falls beneath a blue sky, streaking the glass with meandering streaks. It slowly raises its head, its ears twitching slightly, its amber eyes gazing directly at the camera, its mouth clearly moving as it speaks in a smooth, cynical voice: 'The case was cold, colder than a fish in winter. But every chicken has its secrets, and I, for one, intended to find them '.",
audio_url='https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250929/stjqnq/%E7%8B%90%E7%8B%B8.mp3',
size='1280*720',
duration=10,
negative_prompt="",
prompt_extend=True,
watermark=False,
seed=12345)
print(rsp)
if rsp.status_code == HTTPStatus.OK:
print("task_id: %s" % rsp.output.task_id)
else:
print('Failed. Status code: %s, code: %s, message: %s' %
(rsp.status_code, rsp.code, rsp.message))
# Retrieve the task information, including the task status.
status = VideoSynthesis.fetch(task=rsp, api_key=api_key)
if status.status_code == HTTPStatus.OK:
print(status.output.task_status) # Check the task status.
else:
print('Failed. Status code: %s, code: %s, message: %s' %
(status.status_code, status.code, status.message))
# Wait for the task to complete. This method calls fetch at intervals and checks if the task is in a finished state.
rsp = VideoSynthesis.wait(task=rsp, api_key=api_key)
print(rsp)
if rsp.status_code == HTTPStatus.OK:
print(rsp.output.video_url)
else:
print('Failed. Status code: %s, code: %s, message: %s' %
(rsp.status_code, rsp.code, rsp.message))
if __name__ == '__main__':
sample_async_call_t2v()
Exemple de réponse
-
Exemple de réponse de création de tâche
{ "status_code": 200, "request_id": "c86ff7ba-8377-917a-90ed-xxxxxx", "code": "", "message": "", "output": { "task_id": "721164c6-8619-4a35-a6d9-xxxxxx", "task_status": "PENDING", "video_url": "" }, "usage": null } -
Exemple de réponse de requête de tâche
L'URL video_url expire après 24 heures. Téléchargez-la rapidement.
{ "status_code": 200, "request_id": "167f3beb-3dd0-47fe-a83c-xxxxxx", "code": null, "message": "", "output": { "task_id": "5b65411f-d946-4e29-859e-xxxxxx", "task_status": "SUCCEEDED", "video_url": "https://dashscope-result-bj.oss-accelerate.aliyuncs.com/xxx.mp4?Expires=xxx", "submit_time": "2025-10-23 11:47:23.879", "scheduled_time": "2025-10-23 11:47:34.351", "end_time": "2025-10-23 11:52:35.323", "orig_prompt": "Shot from a low angle, in a medium close-up, with warm tones, mixed lighting (the practical light from the desk lamp blends with the overcast light from the window), side lighting, and a central composition. In a classic detective's office, wooden bookshelves are filled with old case files and ashtrays. A green desk lamp illuminates a case file spread out in the center of the desk. A fox, wearing a dark brown trench coat and a light gray fedora, sits in a leather chair, its fur crimson, its tail resting lightly on the edge, its fingers slowly turning yellowed pages. Outside, a steady drizzle falls beneath a blue sky, streaking the glass with meandering streaks. It slowly raises its head, its ears twitching slightly, its amber eyes gazing directly at the camera, its mouth clearly moving as it speaks in a smooth, cynical voice: 'The case was cold, colder than a fish in winter. But every chicken has its secrets, and I, for one, intended to find them '." }, "usage": { "video_count": 1, "video_duration": 0, "video_ratio": "", "duration": 10, "size": "1280*720", "input_video_duration": 0, "output_video_duration": 10, "SR": 720 } }
Java SDK
Important
-
Ce SDK prend en charge wan2.6 et les versions antérieures. wan2.7 n'est pas pris en charge.
-
La version 2.22.6 ou ultérieure du DashScope Java SDK est requise.
Les versions plus anciennes peuvent renvoyer « url error, please check url! ». Pour effectuer la mise à jour, consultez Installer le SDK.
Définissez Constants.baseHttpApiUrl sur l'endpoint de la région :
Singapore
Constants.baseHttpApiUrl = "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1";
Virginia
Constants.baseHttpApiUrl = "https://dashscope-us.aliyuncs.com/api/v1";
Beijing
Constants.baseHttpApiUrl = "https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1";
Remplacez {WorkspaceId} par votre véritable ID d'espace de travail.
Invocation synchrone
Exemple de requête
// Copyright (c) Alibaba, Inc. and its affiliates.
// dashscope SDK version 2.18.2 or later
import com.alibaba.dashscope.aigc.videosynthesis.VideoSynthesis;
import com.alibaba.dashscope.aigc.videosynthesis.VideoSynthesisParam;
import com.alibaba.dashscope.aigc.videosynthesis.VideoSynthesisResult;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.InputRequiredException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.utils.JsonUtils;
import com.alibaba.dashscope.utils.Constants;
import java.util.HashMap;
import java.util.Map;
public class Text2Video {
static {
// Singapore region URL. URLs vary by region. For more information, see https://www.alibabacloud.com/help/en/model-studio/text-to-video-api-reference.
Constants.baseHttpApiUrl = "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1";
}
// If no environment variable is configured, replace the value with your Model Studio API key: apiKey = "sk-xxx".
// API keys vary by region. For more information, see https://www.alibabacloud.com/help/en/model-studio/get-api-key.
public static String apiKey = System.getenv("DASHSCOPE_API_KEY");
public static void text2Video() throws ApiException, NoApiKeyException, InputRequiredException {
VideoSynthesis vs = new VideoSynthesis();
Map<String, Object> parameters = new HashMap<>();
parameters.put("prompt_extend", true);
parameters.put("watermark", false);
parameters.put("seed", 12345);
VideoSynthesisParam param =
VideoSynthesisParam.builder()
.apiKey(apiKey)
.model("wan2.6-t2v")
.prompt("Shot from a low angle, in a medium close-up, with warm tones, mixed lighting (the practical light from the desk lamp blends with the overcast light from the window), side lighting, and a central composition. In a classic detective office, wooden bookshelves are filled with old case files and ashtrays. A green desk lamp illuminates a case file spread out in the center of the desk. A fox, wearing a dark brown trench coat and a light gray fedora, sits in a leather chair, its fur crimson, its tail resting lightly on the edge, its fingers slowly turning yellowed pages. Outside, a steady drizzle falls beneath a blue sky, streaking the glass with meandering streaks. It slowly raises its head, its ears twitching slightly, its amber eyes gazing directly at the camera, its mouth clearly moving as it speaks in a smooth, cynical voice: 'The case was cold, colder than a fish in winter. But every chicken has its secrets, and I, for one, intended to find them'.")
.audioUrl("https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250929/stjqnq/%E7%8B%90%E7%8B%B8.mp3")
.negativePrompt("")
.size("1280*720")
.duration(10)
.parameters(parameters)
.build();
System.out.println("Please wait...");
VideoSynthesisResult result = vs.call(param);
System.out.println(JsonUtils.toJson(result));
}
public static void main(String[] args) {
try {
text2Video();
} catch (ApiException | NoApiKeyException | InputRequiredException e) {
System.out.println(e.getMessage());
}
System.exit(0);
}
}
Exemple de réponse
L'URL vidéo (
video_url) expire au bout de 24 heures. Téléchargez-la rapidement.
{
"request_id": "c1209113-8437-424f-a386-xxxxxx",
"output": {
"task_id": "966cebcd-dedc-4962-af88-xxxxxx",
"task_status": "SUCCEEDED",
"video_url": "https://dashscope-result-sh.oss-accelerate.aliyuncs.com/xxx.mp4?Expires=xxx",
"orig_prompt": "Shot from a low angle, in a medium close-up, with warm tones, mixed lighting (the practical light from the desk lamp blends with the overcast light from the window), side lighting, and a central composition. In a classic detective office, wooden bookshelves are filled with old case files and ashtrays. A green desk lamp illuminates a case file spread out in the center of the desk. A fox, wearing a dark brown trench coat and a light gray fedora, sits in a leather chair, its fur crimson, its tail resting lightly on the edge, its fingers slowly turning yellowed pages. Outside, a steady drizzle falls beneath a blue sky, streaking the glass with meandering streaks. It slowly raises its head, its ears twitching slightly, its amber eyes gazing directly at the camera, its mouth clearly moving as it speaks in a smooth, cynical voice: 'The case was cold, colder than a fish in winter. But every chicken has its secrets, and I, for one, intended to find them '",
"submit_time": "2026-01-22 23:13:40.553",
"scheduled_time": "2026-01-22 23:13:49.415",
"end_time": "2026-01-22 23:17:56.380"
},
"usage": {
"video_count": 1,
"duration": 10.0,
"size": "1280*720",
"input_video_duration": 0.0,
"output_video_duration": 10.0,
"SR": "720"
},
"status_code": 200,
"code": "",
"message": ""
}
Invocation asynchrone
Exemple de requête
// Copyright (c) Alibaba, Inc. and its affiliates.
import com.alibaba.dashscope.aigc.videosynthesis.VideoSynthesis;
import com.alibaba.dashscope.aigc.videosynthesis.VideoSynthesisListResult;
import com.alibaba.dashscope.aigc.videosynthesis.VideoSynthesisParam;
import com.alibaba.dashscope.aigc.videosynthesis.VideoSynthesisResult;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.InputRequiredException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.task.AsyncTaskListParam;
import com.alibaba.dashscope.utils.JsonUtils;
import com.alibaba.dashscope.utils.Constants;
import java.util.HashMap;
import java.util.Map;
public class Text2Video {
static {
// The URL for the Singapore region. URLs vary by region. For more information, see https://www.alibabacloud.com/help/en/model-studio/text-to-video-api-reference
Constants.baseHttpApiUrl="https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1";
}
// If an environment variable is not set, replace the placeholder with your Model Studio API key, for example: apiKey="sk-xxx"
// API keys vary by region. For more information, see https://www.alibabacloud.com/help/en/model-studio/get-api-key
public static String apiKey = System.getenv("DASHSCOPE_API_KEY");
public static void text2Video() throws ApiException, NoApiKeyException, InputRequiredException {
VideoSynthesis vs = new VideoSynthesis();
Map<String, Object> parameters = new HashMap<>();
parameters.put("prompt_extend", true);
parameters.put("watermark", false);
parameters.put("seed", 12345);
VideoSynthesisParam param =
VideoSynthesisParam.builder()
.apiKey(apiKey)
.model("wan2.6-t2v")
.prompt("Shot from a low angle, in a medium close-up, with warm tones, mixed lighting (the practical light from the desk lamp blends with the overcast light from the window), side lighting, and a central composition. In a classic detective office, wooden bookshelves are filled with old case files and ashtrays. A green desk lamp illuminates a case file spread out in the center of the desk. A fox, wearing a dark brown trench coat and a light gray fedora, sits in a leather chair, its fur crimson, its tail resting lightly on the edge, its fingers slowly turning yellowed pages. Outside, a steady drizzle falls beneath a blue sky, streaking the glass with meandering streaks. It slowly raises its head, its ears twitching slightly, its amber eyes gazing directly at the camera, its mouth clearly moving as it speaks in a smooth, cynical voice: 'The case was cold, colder than a fish in winter. But every chicken has its secrets, and I, for one, intended to find them '.")
.audioUrl("https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250929/stjqnq/%E7%8B%90%E7%8B%B8.mp3")
.negativePrompt("")
.size("1280*720")
.duration(10)
.parameters(parameters)
.build();
// Make an asynchronous call.
VideoSynthesisResult task = vs.asyncCall(param);
System.out.println(JsonUtils.toJson(task));
System.out.println("please wait...");
// Retrieve the result.
VideoSynthesisResult result = vs.wait(task, apiKey);
System.out.println(JsonUtils.toJson(result));
}
// Retrieve the task list.
public static void listTask() throws ApiException, NoApiKeyException {
VideoSynthesis is = new VideoSynthesis();
AsyncTaskListParam param = AsyncTaskListParam.builder().build();
param.setApiKey(apiKey);
VideoSynthesisListResult result = is.list(param);
System.out.println(result);
}
// Retrieve the result of a single task.
public static void fetchTask(String taskId) throws ApiException, NoApiKeyException {
VideoSynthesis is = new VideoSynthesis();
// If you set the DASHSCOPE_API_KEY environment variable, you can set apiKey to null.
VideoSynthesisResult result = is.fetch(taskId, apiKey);
System.out.println(result.getOutput());
System.out.println(result.getUsage());
}
public static void main(String[] args) {
try {
text2Video();
} catch (ApiException | NoApiKeyException | InputRequiredException e) {
System.out.println(e.getMessage());
}
System.exit(0);
}
}
Exemple de réponse
-
Exemple de réponse lors de la création d'une tâche.
{ "request_id": "5dbf9dc5-4f4c-9605-85ea-xxxxxxxx", "output": { "task_id": "7277e20e-aa01-4709-xxxxxxxx", "task_status": "PENDING" } } -
Exemple de réponse lors de l'interrogation d'une tâche
L'URL vidéo (
video_url) expire au bout de 24 heures. Téléchargez-la rapidement.{ "request_id": "c1209113-8437-424f-a386-xxxxxx", "output": { "task_id": "966cebcd-dedc-4962-af88-xxxxxx", "task_status": "SUCCEEDED", "video_url": "https://dashscope-result-sh.oss-accelerate.aliyuncs.com/xxx.mp4?Expires=xxx", "orig_prompt": "Shot from a low angle, in a medium close-up, with warm tones, mixed lighting (the practical light from the desk lamp blends with the overcast light from the window), side lighting, and a central composition. In a classic detective office, wooden bookshelves are filled with old case files and ashtrays. A green desk lamp illuminates a case file spread out in the center of the desk. A fox, wearing a dark brown trench coat and a light gray fedora, sits in a leather chair, its fur crimson, its tail resting lightly on the edge, its fingers slowly turning yellowed pages. Outside, a steady drizzle falls beneath a blue sky, streaking the glass with meandering streaks. It slowly raises its head, its ears twitching slightly, its amber eyes gazing directly at the camera, its mouth clearly moving as it speaks in a smooth, cynical voice: 'The case was cold, colder than a fish in winter. But every chicken has its secrets, and I, for one, intended to find them '", "submit_time": "2026-01-22 23:13:40.553", "scheduled_time": "2026-01-22 23:13:49.415", "end_time": "2026-01-22 23:17:56.380" }, "usage": { "video_count": 1, "duration": 10.0, "size": "1280*720", "input_video_duration": 0.0, "output_video_duration": 10.0, "SR": "720" }, "status_code": 200, "code": "", "message": "" }
Limites
- Rétention des données : l'ID de tâche (
task_id) et l'URL vidéo (video_url) expirent après 24 heures. Une fois ce délai écoulé, il n'est plus possible de les interroger ni de les télécharger. - Modération du contenu : les entrées et sorties font l'objet d'une modération automatique. Tout contenu prohibé déclenche une erreur de type « IPInfringementSuspect » ou « DataInspectionFailed ». Consultez la rubrique Codes d'erreur.
Codes d'erreur
Si l'appel au modèle échoue et renvoie un message d'erreur, reportez-vous à la rubrique Codes d'erreur pour obtenir des instructions de résolution.
FAQ
Q : Quelles modifications de code sont nécessaires pour passer de wan2.6 à wan2.7 ?
R : Deux changements s'imposent :
- Contrôle de la résolution : wan2.7 remplace le champ
size. Il utilise désormais une combinaison deresolution(niveau de résolution) et deratio(format d'image) pour définir la résolution de sortie, là où les modèles précédents recouraient au champsize. - Suppression du type de plan : le champ
shot_typedisparaît dans wan2.7. Décrivez plutôt la structure du plan directement dans le prompt.
Q : Comment convertir un lien vidéo temporaire en lien permanent ?
R : La conversion directe est impossible. Téléchargez la vidéo depuis l'URL fournie, puis importez-la vers un stockage persistant (tel qu'Alibaba Cloud OSS) afin de générer un lien permanent.
Exemple de code : Télécharger une vidéo sur un appareil local
import requests
def download_and_save_video(video_url, save_path):
try:
response = requests.get(video_url, stream=True, timeout=300)
response.raise_for_status()
with open(save_path, 'wb') as f:
for chunk in response.iter_content(chunk_size=8192):
f.write(chunk)
print(f"Video successfully downloaded to: {save_path}")
# You can add logic to upload the video to permanent storage here
except requests.exceptions.RequestException as e:
print(f"Failed to download video: {e}")
if __name__ == '__main__':
video_url = "http://dashscope-result-sh.oss-cn-shanghai.aliyuncs.com/xxxx"
save_path = "video.mp4"
download_and_save_video(video_url, save_path)
Q : Le lien vidéo retourné est-il directement lisible dans un navigateur ?
R : Non. Ce lien expire au bout de 24 heures. Téléchargez la vidéo, conservez-la dans un stockage persistant, puis utilisez un lien permanent pour la lecture.