Le modèle Wan text-to-image génère des images à partir de requêtes textuelles et prend en charge les styles artistiques ainsi que les effets photographiques réalistes.
Liens rapides : Essayer en ligne (Singapore | Virginia | Beijing) | Site officiel de Wan
RemarqueLes fonctionnalités du site web Wan peuvent différer des capacités de l'API. Ce document couvre l'API et est mis à jour au fil des évolutions.
Prérequis
Avant d'effectuer un appel, obtenez une clé API et exportez la clé API en tant que variable d'environnement. Pour effectuer des appels à l'aide du SDK, installez le SDK DashScope.
ImportantLes régions Singapour, États-Unis (Virginia) et Chine (Beijing) disposent de clés API et d'endpoints de requête distincts. Elles ne sont pas interchangeables. Les appels interrégionaux entraînent des échecs d'authentification ou des erreurs de service. Pour plus d'informations, consultez Sélectionner une région et un périmètre de déploiement de service.
Appel synchrone HTTP (wan2.6)
ImportantL'API décrite dans cette section utilise le nouveau protocole et prend uniquement en charge le modèle wan2.6.
Récupérez le résultat en une seule requête. Cette méthode est recommandée pour la plupart des cas d'usage.
Singapore
POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation
Lors de l'appel, remplacez {WorkspaceId} par votre véritable ID d'espace de travail.
US (Virginia)
POST https://dashscope-us.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation
China (Beijing)
POST https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation
Lors de l'appel, remplacez {WorkspaceId} par votre véritable ID d'espace de travail.
Le périmètre de déploiement mondial (région de Francfort) prend uniquement en charge les appels asynchrones .
Paramètres de la requête | Text-to-image |
En-têtes de la requête | |
Content-Type Type de contenu de la requête. Doit être défini à | |
Authorization Authentifie la requête avec une clé API Model Studio. Exemple : Bearer sk-xxxx. | |
Corps de la requête | |
model Nom du modèle. Exemple : wan2.6-t2i. RemarquePour les modèles wan2.5 et antérieurs, consultez la section Appel asynchrone HTTP pour les appels HTTP. | |
input Objet d'entrée. | |
parameters Paramètres de génération d'image. |
Paramètres de la réponse | Exécution réussie de la tâcheLes données de la tâche (statut de la tâche et URL des images) ne sont conservées que pendant 24 heures, puis automatiquement purgées. Enregistrez rapidement les images générées. Échec de l'exécution de la tâcheSi la tâche échoue, l'API renvoie des informations d'erreur. Identifiez la cause à partir des champs code et message. Consultez la section Codes d'erreur. |
output Objet de sortie. | |
usage Statistiques d'utilisation pour la requête. Seuls les résultats réussis sont comptabilisés. | |
request_id Identifiant unique de la requête pour le suivi et le dépannage. | |
code Code d'erreur. Renvoyé uniquement pour les requêtes ayant échoué. Consultez la section Codes d'erreur. | |
message Message d'erreur détaillé. Renvoyé uniquement pour les requêtes ayant échoué. Consultez la section Codes d'erreur. |
HTTP asynchrone (wan2.6)
ImportantL'API décrite dans cette section utilise le nouveau protocole et prend uniquement en charge le modèle wan2.6.
Le flux de tâche comprend deux étapes principales : Créer la tâche -> Interroger le résultat. Le processus est le suivant :
Étape 1 : Créer une tâche et obtenir l'ID de tâche
Singapore
POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/image-generation/generation
Lors de l'appel, remplacez {WorkspaceId} par votre véritable ID d'espace de travail.
US (Virginia)
POST https://dashscope-us.aliyuncs.com/api/v1/services/aigc/image-generation/generation
China (Beijing)
POST https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1/services/aigc/image-generation/generation
Lors de l'appel, remplacez {WorkspaceId} par votre véritable ID d'espace de travail.
Germany (Frankfurt)
POST https://<u>{WorkspaceId}.eu-central-1.maas.aliyuncs.com</u>/api/v1/services/aigc/image-generation/generation
Lors de l'appel, remplacez {WorkspaceId} par votre 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. Utilisez plutôt l'interrogation pour récupérer 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 | Text-to-image |
En-têtes de requête | |
Content-Type Type de contenu de la requête. Doit être défini à | |
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 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. Exemple : wan2.6-t2i. RemarquePour les modèles wan2.5 et antérieurs, consultez la rubrique Appel HTTP asynchrone. | |
input Objet d'entrée. | |
parameters Paramètres de génération d'image. |
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 Objet de sortie. | |
request_id Identifiant unique de la requête pour le suivi et le dépannage. | |
code Code d'erreur. Retourné uniquement en cas d'échec de la requête. Consultez la rubrique Codes d'erreur. | |
message Message d'erreur détaillé. Retourné uniquement en cas d'échec de la requête. Consultez la rubrique Codes d'erreur. |
Étape 2 : Interroger le résultat par ID de tâche
Singapore
GET https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/tasks/{task_id}
Lors de l'appel, remplacez {WorkspaceId} par votre véritable ID d'espace de travail.
US (Virginia)
GET https://dashscope-us.aliyuncs.com/api/v1/tasks/{task_id}
China (Beijing)
GET https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1/tasks/{task_id}
Lors de l'appel, remplacez {WorkspaceId} par votre véritable ID d'espace de travail.
Germany (Frankfurt)
GET https://{WorkspaceId}.eu-central-1.maas.aliyuncs.com/api/v1/tasks/{task_id}
Lors de l'appel, remplacez {WorkspaceId} par votre véritable ID d'espace de travail.
Remarque
- Recommandation d'interrogation : La génération d'image prend du temps. Mettez en place un mécanisme d'interrogation avec un intervalle raisonnable, par exemple 10 secondes.
- Transition d'état de la tâche : PENDING → RUNNING → SUCCEEDED ou FAILED.
- Lien du résultat : Après le succès d'une tâche, une URL d'image valide pendant 24 heures est retournée. Téléchargez et enregistrez l'image dans un stockage permanent, tel que OSS.
Paramètres de requête | Interroger le résultat de la tâcheRemplacez |
En-têtes de requête | |
Authorization Authentifie la requête à l'aide d'une clé API Model Studio. Exemple : Bearer sk-xxxx. | |
Paramètres de chemin URL | |
task_id ID de la tâche. |
Paramètres de réponse | Exécution de tâche réussieLes données de la tâche (état et URL des images) ne sont conservées que pendant 24 heures avant d'être automatiquement purgées. Enregistrez rapidement les images générées. Échec de l'exécution de la tâcheSi la tâche échoue, l'API retourne des informations d'erreur. Identifiez la cause à partir des champs code et message. Consultez la rubrique Codes d'erreur. |
output Informations de sortie de la tâche. | |
usage Statistiques d'utilisation pour la requête. Seuls les résultats réussis sont comptabilisés. | |
request_id Identifiant unique de la requête pour le suivi et le dépannage. | |
code Code d'erreur. Retourné uniquement en cas d'échec de la requête. Consultez la rubrique Codes d'erreur. | |
message Message d'erreur détaillé. Retourné uniquement en cas d'échec de la requête. Consultez la rubrique Codes d'erreur. |
HTTP asynchrone (modèles wan2.5 et antérieurs)
ImportantCette API utilise l'ancien protocole et prend uniquement en charge les modèles wan2.5 et antérieurs.
Les tâches de génération d'image à partir de texte nécessitant un temps de traitement important (généralement 1 à 2 minutes), cette API fonctionne de manière asynchrone. Le flux comprend deux étapes principales : Créer la tâche -> Interroger le résultat. Le processus est le suivant :
La durée de traitement dépend de la file d'attente des tâches et de l'état du service.
Étape 1 : Créer une tâche et obtenir l'ID de tâche
Singapore
POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/text2image/image-synthesis
Beijing
POST https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1/services/aigc/text2image/image-synthesis
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 plutôt l'interrogation périodique 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 | Text-to-image
Remplacez Text-to-image (avec prompt négatif)Utilisez negative_prompt pour empêcher l'apparition de « personnes » dans l'image générée.
Remplacez |
En-têtes de requête | |
Content-Type Type de contenu de la requête. Doit être défini à | |
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 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 les modèles de génération d'image à partir de texte, consultez la Liste des modèles. Exemple : wan2.5-t2i-preview. RemarquePour les appels HTTP vers le modèle wan2.6, reportez-vous à Appel synchrone HTTP et Appel asynchrone HTTP. | |
input Objet d'entrée contenant le prompt. | |
parameters Paramètres de génération d'image. |
Paramètres de réponse | Réponse réussieConservez le Réponse d'erreurÉchec de la création de la tâche. Consultez les Codes d'erreur. |
output Informations de sortie de la tâche. | |
request_id Identifiant unique de la requête pour le suivi et le dépannage. | |
code Code d'erreur. Retourné uniquement en cas d'échec de la requête. Consultez les Codes d'erreur. | |
message Message d'erreur détaillé. Retourné uniquement en cas d'échec de la requête. Consultez les Codes d'erreur. |
Étape 2 : Interroger le résultat par ID de tâche
China (Beijing)
GET https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1/tasks/{task_id}
Lors de l'appel, remplacez {WorkspaceId} par votre véritable ID d'espace de travail.
Singapore
GET https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/tasks/{task_id}
Lors de l'appel, remplacez {WorkspaceId} par votre véritable ID d'espace de travail.
Singapore
GET https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/tasks/{task_id}
Lors de l'appel, remplacez {WorkspaceId} par votre véritable ID d'espace de travail.
China (Beijing)
GET https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1/tasks/{task_id}
Lors de l'appel, remplacez {WorkspaceId} par votre véritable ID d'espace de travail.
Remarque
- Recommandation d'interrogation : La génération d'image prend du temps. Mettez en place un mécanisme d'interrogation avec un intervalle raisonnable, par exemple 10 secondes.
- Transition d'état de la tâche : PENDING → RUNNING → SUCCEEDED ou FAILED.
- Lien du résultat : Une fois la tâche réussie, une URL d'image valide pendant 24 heures est retournée. Téléchargez et enregistrez l'image dans un stockage permanent, tel qu'OSS.
Paramètres de requête | Interroger le résultat de la tâcheRemplacez
|
En-têtes de requête | |
Authorization Authentifie la requête à l'aide d'une clé API Model Studio. Exemple : Bearer sk-xxxx. | |
Paramètres de chemin d'URL | |
task_id ID de la tâche. |
Paramètres de réponse | Exécution réussie de la tâcheLes URL des images ne sont valides que pendant 24 heures, puis elles sont automatiquement purgées. Enregistrez les images générées sans tarder. Échec de la tâcheLorsqu'une tâche échoue, Échec partiel de la tâcheLe modèle peut générer plusieurs images par tâche. Si au moins une image est générée avec succès, le statut de la tâche passe à Expiration de la requête de tâcheLe |
output Informations de sortie de la tâche. | |
usage Statistiques d'utilisation de la requête. Seuls les résultats réussis sont comptabilisés. | |
request_id Identifiant unique de la requête pour le suivi et le dépannage. |
SDK Python DashScope
Les noms des paramètres du SDK correspondent à ceux de l'API HTTP, avec des structures adaptées à Python.
Les tâches de génération d'image à partir de texte pouvant prendre un temps significatif, le SDK encapsule le processus d'appel asynchrone HTTP et prend en charge les appels synchrones et asynchrones.
Le temps de traitement dépend de la file d'attente des tâches et de l'état du service.
wan2.6
Important
- Le code suivant s'applique uniquement au modèle wan2.6.
- Assurez-vous que votre version du SDK Python DashScope est au moins 1.25.7 avant d'exécuter le code ci-dessous. Pour effectuer la mise à jour, consultez Installer le SDK.
Le base_url et la clé API sont spécifiques à chaque région. L'exemple suivant illustre un appel dans la région Singapour :
Singapore
https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1
Lors de l'appel, remplacez {WorkspaceId} par votre véritable ID d'espace de travail.
US (Virginia)
https://dashscope-us.aliyuncs.com/api/v1
China (Beijing)
https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1
Lors de l'appel, remplacez {WorkspaceId} par votre véritable ID d'espace de travail.
Germany (Frankfurt)
https://{WorkspaceId}.eu-central-1.maas.aliyuncs.com/api/v1
Remplacez {WorkspaceId} par votre véritable ID d'espace de travail.
Le périmètre de déploiement mondial (région Francfort) ne prend en charge que les appels asynchrones.
Appel synchrone
Exemple de requête
import os
import dashscope
from dashscope.aigc.image_generation import ImageGeneration
from dashscope.api_entities.dashscope_response import Message
# The following URL is for the Singapore region. When calling, replace {WorkspaceId} with your actual workspace ID. URLs vary by region.
dashscope.base_http_api_url = 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1'
# If you have not configured an environment variable, replace the following line with your Model Studio API key: api_key="sk-xxx"
# The API key is region-specific. To obtain an API key: https://www.alibabacloud.com/help/en/model-studio/get-api-key
api_key = os.getenv("DASHSCOPE_API_KEY")
message = Message(
role="user",
content=[
{
'text': 'A flower shop with exquisite windows, a beautiful wooden door, and flowers on display'
}
]
)
print("----Sync call, please wait a moment----")
rsp = ImageGeneration.call(
model="wan2.6-t2i",
api_key=api_key,
messages=[message],
negative_prompt="",
prompt_extend=True,
watermark=False,
n=1,
size="1280*1280"
)
print(rsp)
Exemple de réponse
L'URL est valide pendant 24 heures. Vous devez télécharger l'image sans tarder.
{
"status_code": 200,
"request_id": "820dd0db-eb42-4e05-8d6a-1ddb4axxxxxx",
"code": "",
"message": "",
"output": {
"text": null,
"finish_reason": null,
"choices": [
{
"finish_reason": "stop",
"message": {
"role": "assistant",
"content": [
{
"image": "https://dashscope-result-bj.oss-cn-beijing.aliyuncs.com/xxxxxx.png?Expires=xxxxxx",
"type": "image"
}
]
}
}
],
"audio": null,
"finished": true
},
"usage": {
"input_tokens": 0,
"output_tokens": 0,
"characters": 0,
"image_count": 1,
"size": "1280*1280",
"total_tokens": 0
}
}
Appel asynchrone
Exemple de requête
import os
import dashscope
from dashscope.aigc.image_generation import ImageGeneration
from dashscope.api_entities.dashscope_response import Role, Message
from http import HTTPStatus
# The following URL is for the Singapore region. When calling, replace {WorkspaceId} with your actual workspace ID. URLs vary by region.
dashscope.base_http_api_url = 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1'
# If you have not configured an environment variable, replace the following line with your Model Studio API key: api_key="sk-xxx"
# The API key is region-specific. To obtain an API key: https://www.alibabacloud.com/help/en/model-studio/get-api-key
api_key = os.getenv("DASHSCOPE_API_KEY")
# Create an asynchronous task
def create_async_task():
print("Creating async task...")
message = Message(
role="user",
content=[{'text': 'A flower shop with exquisite windows, a beautiful wooden door, and flowers on display'}]
)
response = ImageGeneration.async_call(
model="wan2.6-t2i",
api_key=api_key,
messages=[message],
negative_prompt="",
prompt_extend=True,
watermark=False,
n=1,
size="1280*1280"
)
if response.status_code == 200:
print("Task created successfully:", response)
return response
else:
raise Exception(f"Failed to create task: {response.code} - {response.message}")
# Wait for the task to complete
def wait_for_completion(task_response):
print("Waiting for task completion...")
status = ImageGeneration.wait(task=task_response, api_key=api_key)
if status.output.task_status == "SUCCEEDED":
print("Task succeeded!")
print("Response:", status)
else:
raise Exception(f"Task failed with status: {status.output.task_status}")
# Fetch asynchronous task information
def fetch_task_status(task):
print("Fetching task status...")
status = ImageGeneration.fetch(task=task, api_key=api_key)
if status.status_code == HTTPStatus.OK:
print("Task status:", status.output.task_status)
print("Response details:", status)
else:
print(f"Failed to fetch status: {status.code} - {status.message}")
# Cancel the asynchronous task
def cancel_task(task):
print("Canceling task...")
response = ImageGeneration.cancel(task=task, api_key=api_key)
if response.status_code == HTTPStatus.OK:
print("Task canceled successfully:", response.output.task_status)
else:
print(f"Failed to cancel task: {response.code} - {response.message}")
# Main execution flow
if __name__ == "__main__":
task = create_async_task()
wait_for_completion(task)
Exemple de réponse
-
Exemple de réponse pour la création d'une tâche
{ "status_code": 200, "request_id": "c4f11410-ea42-4996-957d-9c82f9xxxxxx", "code": "", "message": "", "output": { "text": null, "finish_reason": null, "choices": null, "audio": null, "task_id": "f470bbfd-d955-4165-935b-d35b8eexxxxxx", "task_status": "PENDING" }, "usage": { "input_tokens": 0, "output_tokens": 0, "characters": 0 } } -
Exemple de réponse pour l'interrogation du résultat d'une tâche
L'URL est valide pendant 24 heures. Vous devez télécharger l'image sans tarder.
{ "status_code": 200, "request_id": "7e57e7e8-00b0-4534-9aff-fe31e0xxxxxx", "code": null, "message": "", "output": { "text": null, "finish_reason": null, "choices": [ { "finish_reason": "stop", "message": { "role": "assistant", "content": [ { "image": "https://dashscope-result-bj.oss-cn-beijing.aliyuncs.com/xxxxxx.png?Expires=xxxxxx", "type": "image" } ] } } ], "audio": null, "task_id": "f470bbfd-d955-4165-935b-d35b8exxxxxx", "task_status": "SUCCEEDED", "submit_time": "2026-01-09 17:18:17.901", "scheduled_time": "2026-01-09 17:18:17.941", "end_time": "2026-01-09 17:18:45.544", "finished": true }, "usage": { "input_tokens": 0, "output_tokens": 0, "characters": 0, "size": "1280*1280", "total_tokens": 0, "image_count": 1 } }
Modèles wan2.5 et antérieurs
Important
-
Le code suivant s'applique uniquement aux modèles wan2.5 et antérieurs.
-
Assurez-vous que votre version du SDK Python DashScope est au moins 1.25.2 avant d'exécuter le code ci-dessous.
Si la version est trop ancienne, des erreurs telles que « url error, please check url! » peuvent survenir. Pour effectuer la mise à jour, consultez Installer le SDK.
Le base_url et la clé API sont spécifiques à chaque région. L'exemple suivant illustre un appel dans la région Singapour :
China (Beijing)
https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1
Lors de l'appel, remplacez {WorkspaceId} par votre véritable ID d'espace de travail.
Singapore
https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1
Lors de l'appel, remplacez {WorkspaceId} par votre véritable ID d'espace de travail.
Singapore
https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1
Lors de l'appel, remplacez {WorkspaceId} par votre véritable ID d'espace de travail.
China (Beijing)
https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1
Lors de l'appel, remplacez {WorkspaceId} par votre véritable ID d'espace de travail.
Appel synchrone
Exemple de requête
from http import HTTPStatus
from urllib.parse import urlparse, unquote
from pathlib import PurePosixPath
import requests
from dashscope import ImageSynthesis
import os
import dashscope
# The following URL is for the Singapore region. When calling, replace {WorkspaceId} with your actual workspace ID. URLs vary by region.
dashscope.base_http_api_url = 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1'
# If you have not configured an environment variable, replace the following line with your Model Studio API key: api_key="sk-xxx"
# The API keys for the Singapore and Beijing regions are different. To obtain an API key: https://www.alibabacloud.com/help/en/model-studio/get-api-key
api_key = os.getenv("DASHSCOPE_API_KEY")
print('----Sync call, please wait a moment----')
rsp = ImageSynthesis.call(api_key=api_key,
model="wan2.5-t2i-preview",
prompt="A flower shop with exquisite windows, a beautiful wooden door, and flowers on display",
negative_prompt="",
n=1,
size='1280*1280',
prompt_extend=True,
watermark=False,
seed=12345)
print('response: %s' % rsp)
if rsp.status_code == HTTPStatus.OK:
# Save the image in the current directory
for result in rsp.output.results:
file_name = PurePosixPath(unquote(urlparse(result.url).path)).parts[-1]
with open('./%s' % file_name, 'wb+') as f:
f.write(requests.get(result.url).content)
else:
print('sync_call Failed, status_code: %s, code: %s, message: %s' %
(rsp.status_code, rsp.code, rsp.message))
Exemple de réponse
L'URL est valide pendant 24 heures. Vous devez télécharger l'image sans tarder.
{
"status_code": 200,
"request_id": "9d634fda-5fe9-9968-a908-xxxxxx",
"code": null,
"message": "",
"output": {
"task_id": "d35658e4-483f-453b-b8dc-xxxxxx",
"task_status": "SUCCEEDED",
"results": [{
"url": "https://dashscope-result-wlcb.oss-cn-wulanchabu.aliyuncs.com/1.png",
"orig_prompt": "A flower shop with exquisite windows, a beautiful wooden door, and flowers on display",
"actual_prompt": "An exquisite flower shop, with elegant carvings on the windows and a beautiful wooden door with a brass handle. Inside, a variety of colorful flowers such as roses, tulips, and lilies are displayed. The background is a warm indoor scene with soft light, creating a peaceful and comfortable atmosphere. High-definition realistic photography, close-up center composition."
}],
"submit_time": "2025-01-08 19:36:01.521",
"scheduled_time": "2025-01-08 19:36:01.542",
"end_time": "2025-01-08 19:36:13.270",
"task_metrics": {
"TOTAL": 1,
"SUCCEEDED": 1,
"FAILED": 0
}
},
"usage": {
"image_count": 1
}
}
Appel asynchrone
Exemple de requête
from http import HTTPStatus
from urllib.parse import urlparse, unquote
from pathlib import PurePosixPath
import requests
from dashscope import ImageSynthesis
import os
import dashscope
# The following URL is for the Singapore region. When calling, replace {WorkspaceId} with your actual workspace ID. URLs vary by region.
dashscope.base_http_api_url = 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1'
# If you have not configured an environment variable, replace the following line with your Model Studio API key: api_key="sk-xxx"
# The API keys for the Singapore and Beijing regions are different. To obtain an API key: https://www.alibabacloud.com/help/en/model-studio/get-api-key
api_key = os.getenv("DASHSCOPE_API_KEY")
def async_call():
print('----Create task----')
task_info = create_async_task()
print('----Wait for task to complete, then save image----')
wait_async_task(task_info)
# Create an asynchronous task
def create_async_task():
rsp = ImageSynthesis.async_call(api_key=api_key,
model="wan2.5-t2i-preview",
prompt="A flower shop with exquisite windows, a beautiful wooden door, and flowers on display",
negative_prompt="",
n=1,
size='1280*1280',
prompt_extend=True,
watermark=False,
seed=12345)
print(rsp)
if rsp.status_code == HTTPStatus.OK:
print(rsp.output)
else:
print('Failed, status_code: %s, code: %s, message: %s' %
(rsp.status_code, rsp.code, rsp.message))
return rsp
# Wait for the asynchronous task to finish
def wait_async_task(task):
rsp = ImageSynthesis.wait(task=task, api_key=api_key)
print(rsp)
if rsp.status_code == HTTPStatus.OK:
print(rsp.output)
# save file to current directory
for result in rsp.output.results:
file_name = PurePosixPath(unquote(urlparse(result.url).path)).parts[-1]
with open('./%s' % file_name, 'wb+') as f:
f.write(requests.get(result.url).content)
else:
print('Failed, status_code: %s, code: %s, message: %s' %
(rsp.status_code, rsp.code, rsp.message))
# Fetch asynchronous task information
def fetch_task_status(task):
status = ImageSynthesis.fetch(task=task, api_key=api_key)
print(status)
if status.status_code == HTTPStatus.OK:
print(status.output.task_status)
else:
print('Failed, status_code: %s, code: %s, message: %s' %
(status.status_code, status.code, status.message))
# Cancel the asynchronous task. Only tasks in the PENDING state can be canceled.
def cancel_task(task):
rsp = ImageSynthesis.cancel(task=task, api_key=api_key)
print(rsp)
if rsp.status_code == HTTPStatus.OK:
print(rsp.output.task_status)
else:
print('Failed, status_code: %s, code: %s, message: %s' %
(rsp.status_code, rsp.code, rsp.message))
if __name__ == '__main__':
async_call()
Exemple de réponse
-
Exemple de réponse lors de la création d'une tâche
{ "status_code": 200, "request_id": "31b04171-011c-96bd-ac00-f0383b669cc7", "code": "", "message": "", "output": { "task_id": "4f90cf14-a34e-4eae-xxxxxxxx", "task_status": "PENDING", "results": [] }, "usage": null } -
Exemple de réponse lors de l'interrogation du résultat d'une tâche
L'URL reste valide pendant 24 heures. Téléchargez l'image sans tarder.
{ "status_code": 200, "request_id": "9d634fda-5fe9-9968-a908-xxxxxx", "code": null, "message": "", "output": { "task_id": "d35658e4-483f-453b-b8dc-xxxxxx", "task_status": "SUCCEEDED", "results": [{ "url": "https://dashscope-result-wlcb.oss-cn-wulanchabu.aliyuncs.com/xxx.png", "orig_prompt": "A flower shop with exquisite windows, a beautiful wooden door, and flowers on display", "actual_prompt": "An exquisite flower shop, with elegant carvings on the windows and a beautiful wooden door with a brass handle. Inside, a variety of colorful flowers such as roses, tulips, and lilies are displayed. The background is a warm indoor scene with soft light, creating a peaceful and comfortable atmosphere. High-definition realistic photography, close-up center composition." }], "submit_time": "2025-01-08 19:36:01.521", "scheduled_time": "2025-01-08 19:36:01.542", "end_time": "2025-01-08 19:36:13.270", "task_metrics": { "TOTAL": 1, "SUCCEEDED": 1, "FAILED": 0 } }, "usage": { "image_count": 1 } }
DashScope Java SDK
Les noms des paramètres du SDK correspondent à ceux de l'API HTTP, avec des structures adaptées pour Java.
Les tâches de génération d'image à partir de texte peuvent nécessiter un temps de traitement important. Le SDK encapsule le flux d'appel asynchrone HTTP et prend en charge les appels synchrones et asynchrones.
La durée de traitement dépend de la file d'attente des tâches et de l'état du service.
wan2.6
Important
- Le code suivant s'applique uniquement au modèle wan2.6-t2i.
- Avant d'exécuter ce code, assurez-vous que votre version du DashScope Java SDK est 2.22.6 ou ultérieure.
L'base_url et la clé API sont spécifiques à chaque région et ne sont pas interchangeables. Les exemples suivants montrent comment effectuer un appel dans la région de Singapour :
Singapore
https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1
Lors de l'appel, remplacez {WorkspaceId} par votre véritable ID d'espace de travail.
US (Virginia)
https://dashscope-us.aliyuncs.com/api/v1
China (Beijing)
https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1
Lors de l'appel, remplacez {WorkspaceId} par votre véritable ID d'espace de travail.
Germany (Frankfurt)
https://{WorkspaceId}.eu-central-1.maas.aliyuncs.com/api/v1
Remplacez {WorkspaceId} par votre véritable ID d'espace de travail.
Le périmètre de déploiement mondial (région de Francfort) prend uniquement en charge les appels asynchrones.
Appel synchrone
Exemple de requête
import com.alibaba.dashscope.aigc.imagegeneration.*;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.exception.UploadFileException;
import com.alibaba.dashscope.utils.Constants;
import com.alibaba.dashscope.utils.JsonUtils;
import java.util.Collections;
public class Main {
static {
// The following URL is for the Singapore region. When calling, replace {WorkspaceId} with your actual workspace ID. URLs vary by region.
Constants.baseHttpApiUrl = "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1";
}
// If you have not configured the environment variable, replace the following line with your Model Studio API key: apiKey="sk-xxx"
// The API key is different for each region. To get an API key: https://www.alibabacloud.com/help/en/model-studio/get-api-key
static String apiKey = System.getenv("DASHSCOPE_API_KEY");
public static void basicCall() throws ApiException, NoApiKeyException, UploadFileException {
ImageGenerationMessage message = ImageGenerationMessage.builder()
.role("user")
.content(Collections.singletonList(
Collections.singletonMap("text", "A flower shop with exquisite windows, a beautiful wooden door, and flowers on display")
)).build();
ImageGenerationParam param = ImageGenerationParam.builder()
.apiKey(apiKey)
.model("wan2.6-t2i")
.n(1)
.size("1280*1280")
.negativePrompt("")
.promptExtend(true)
.watermark(false)
.messages(Collections.singletonList(message))
.build();
ImageGeneration imageGeneration = new ImageGeneration();
ImageGenerationResult result = null;
try {
System.out.println("---sync call, please wait a moment----");
result = imageGeneration.call(param);
} catch (ApiException | NoApiKeyException | UploadFileException e) {
throw new RuntimeException(e.getMessage());
}
System.out.println(JsonUtils.toJson(result));
}
public static void main(String[] args) {
try {
basicCall();
} catch (ApiException | NoApiKeyException | UploadFileException e) {
System.out.println(e.getMessage());
}
}
}
Exemple de réponse
L'URL reste valide pendant 24 heures. Téléchargez l'image sans tarder.
{
"status_code": 200,
"request_id": "50b57166-eaaa-4f17-b1e0-35a5ca88672c",
"code": "",
"message": "",
"output": {
"choices": [
{
"finish_reason": "stop",
"message": {
"role": "assistant",
"content": [
{
"image": "https://dashscope-result-sh.oss-cn-shanghai.aliyuncs.com/xxx.png?Expires=xxx",
"type": "image"
}
]
}
}
],
"finished": true
},
"usage": {
"input_tokens": 0,
"output_tokens": 0,
"image_count": 1,
"size": "1280*1280",
"total_tokens": 0
}
}
Appel asynchrone
Exemple de requête
import com.alibaba.dashscope.aigc.imagegeneration.*;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.exception.UploadFileException;
import com.alibaba.dashscope.utils.Constants;
import com.alibaba.dashscope.utils.JsonUtils;
import java.util.Collections;
public class Main {
static {
// The following URL is for the Singapore region. When calling, replace {WorkspaceId} with your actual workspace ID. URLs vary by region.
Constants.baseHttpApiUrl = "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1";
}
// If you have not configured the environment variable, replace the following line with your Model Studio API key: apiKey="sk-xxx"
// The API key is different for each region. To get an API key: https://www.alibabacloud.com/help/en/model-studio/get-api-key
static String apiKey = System.getenv("DASHSCOPE_API_KEY");
public static void asyncCall() throws ApiException, NoApiKeyException, UploadFileException {
ImageGenerationMessage message = ImageGenerationMessage.builder()
.role("user")
.content(Collections.singletonList(
Collections.singletonMap("text", "A flower shop with exquisite windows, a beautiful wooden door, and flowers on display")
)).build();
ImageGenerationParam param = ImageGenerationParam.builder()
.apiKey(apiKey)
.model("wan2.6-t2i")
.n(1)
.size("1280*1280")
.negativePrompt("")
.promptExtend(true)
.watermark(false)
.messages(Collections.singletonList(message))
.build();
ImageGeneration imageGeneration = new ImageGeneration();
ImageGenerationResult result = null;
try {
System.out.println("---async call, creating task----");
result = imageGeneration.asyncCall(param);
} catch (ApiException | NoApiKeyException | UploadFileException e) {
throw new RuntimeException(e.getMessage());
}
System.out.println(JsonUtils.toJson(result));
String taskId = result.getOutput().getTaskId();
// Wait for the task to complete
waitTask(taskId);
}
public static void waitTask(String taskId) throws ApiException, NoApiKeyException {
ImageGeneration imageGeneration = new ImageGeneration();
ImageGenerationResult result = imageGeneration.wait(taskId, apiKey);
System.out.println(JsonUtils.toJson(result));
}
public static void main(String[] args) {
try {
asyncCall();
} catch (ApiException | NoApiKeyException | UploadFileException e) {
System.out.println(e.getMessage());
}
}
}
Exemples de réponses
-
Exemple de réponse lors de la création d'une tâche
{ "status_code": 200, "request_id": "9cd85950-2e26-4b2c-b562-1694cf9288e5", "code": "", "message": "", "output": { "task_id": "4c861fbe-af89-4a2f-8fc5-4bb15c3139ba", "task_status": "PENDING" }, "usage": null } -
Exemple de réponse lors de l'interrogation du résultat de la tâche
L'URL reste valide pendant 24 heures. Téléchargez l'image sans tarder.
{ "status_code": 200, "request_id": "cbdf1424-306e-4a52-82f3-8bf5d8a99103", "code": "", "message": "", "output": { "choices": [ { "finish_reason": "stop", "message": { "role": "assistant", "content": [ { "image": "https://dashscope-result-sh.oss-cn-shanghai.aliyuncs.com/xxx.png?Expires=xxx", "type": "image" } ] } } ], "task_id": "4c861fbe-af89-4a2f-8fc5-4bb15c3139ba", "task_status": "SUCCEEDED", "submit_time": "2026-01-16 16:36:06.556", "scheduled_time": "2026-01-16 16:36:06.591", "end_time": "2026-01-16 16:36:25.190", "finished": true }, "usage": { "input_tokens": 0, "output_tokens": 0, "size": "1280*1280", "total_tokens": 0, "image_count": 1 } }
Modèles wan2.5 et antérieurs
Important
-
Le code ci-dessous concerne exclusivement les modèles wan2.5 et versions précédentes.
-
Vérifiez que votre version du DashScope Java SDK est 2.22.2 ou ultérieure avant d'exécuter ce code.
Une version trop ancienne peut provoquer des erreurs telles que « url error, please check url! ». Consultez la rubrique Installer le SDK pour procéder à la mise à jour.
L'base_url et la clé API sont propres à chaque région et ne peuvent pas être interchangées. Les exemples suivants illustrent un appel dans la région de Singapour :
China (Beijing)
https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1
Lors de l'appel, remplacez {WorkspaceId} par votre véritable ID d'espace de travail.
Singapore
https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1
Lors de l'appel, remplacez {WorkspaceId} par votre véritable ID d'espace de travail.
Singapore
https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1
Lors de l'appel, remplacez {WorkspaceId} par votre véritable ID d'espace de travail.
China (Beijing)
https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1
Lors de l'appel, remplacez {WorkspaceId} par votre véritable ID d'espace de travail.
Appel synchrone
Exemple de requête
// Copyright (c) Alibaba, Inc. and its affiliates.
import com.alibaba.dashscope.aigc.imagesynthesis.ImageSynthesis;
import com.alibaba.dashscope.aigc.imagesynthesis.ImageSynthesisListResult;
import com.alibaba.dashscope.aigc.imagesynthesis.ImageSynthesisParam;
import com.alibaba.dashscope.aigc.imagesynthesis.ImageSynthesisResult;
import com.alibaba.dashscope.task.AsyncTaskListParam;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.utils.Constants;
import com.alibaba.dashscope.utils.JsonUtils;
import java.util.HashMap;
import java.util.Map;
public class Main {
static {
// The following URL is for the Singapore region. When calling, replace {WorkspaceId} with your actual workspace ID. URLs vary by region.
Constants.baseHttpApiUrl = "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1";
}
// If you have not configured the environment variable, replace the following line with your Model Studio API key: apiKey="sk-xxx"
// The API keys for the Singapore and Beijing regions are different. To get an API key: https://www.alibabacloud.com/help/en/model-studio/get-api-key
static String apiKey = System.getenv("DASHSCOPE_API_KEY");
public static void basicCall() throws ApiException, NoApiKeyException {
// Set the parameters
Map<String, Object> parameters = new HashMap<>();
parameters.put("prompt_extend", true);
parameters.put("watermark", false);
parameters.put("seed", 12345);
ImageSynthesisParam param =
ImageSynthesisParam.builder()
.apiKey(apiKey)
.model("wan2.5-t2i-preview")
.prompt("A flower shop with exquisite windows, a beautiful wooden door, and flowers on display")
.n(1)
.size("1280*1280")
.negativePrompt("")
.parameters(parameters)
.build();
ImageSynthesis imageSynthesis = new ImageSynthesis();
ImageSynthesisResult result = null;
try {
System.out.println("---sync call, please wait a moment----");
result = imageSynthesis.call(param);
} catch (ApiException | NoApiKeyException e){
throw new RuntimeException(e.getMessage());
}
System.out.println(JsonUtils.toJson(result));
}
public static void listTask() throws ApiException, NoApiKeyException {
ImageSynthesis is = new ImageSynthesis();
AsyncTaskListParam param = AsyncTaskListParam.builder().build();
param.setApiKey(apiKey);
ImageSynthesisListResult result = is.list(param);
System.out.println(result);
}
public static void fetchTask(String taskId) throws ApiException, NoApiKeyException {
ImageSynthesis is = new ImageSynthesis();
// If the DASHSCOPE_API_KEY environment variable is set, you can set apiKey to null.
ImageSynthesisResult result = is.fetch(taskId, apiKey);
System.out.println(result.getOutput());
System.out.println(result.getUsage());
}
public static void main(String[] args){
try{
basicCall();
//listTask();
}catch(ApiException|NoApiKeyException e){
System.out.println(e.getMessage());
}
}
}
Exemple de réponse
L'URL reste valide pendant 24 heures. Téléchargez l'image sans tarder.
{
"request_id": "22f9c744-206c-9a78-899a-xxxxxx",
"output": {
"task_id": "4a0f8fc6-03fb-4c44-a13a-xxxxxx",
"task_status": "SUCCEEDED",
"results": [{
"orig_prompt": "A flower shop with exquisite windows, a beautiful wooden door, and flowers on display",
"actual_prompt": "A flower shop with exquisitely carved windows and a beautiful dark wooden door slightly ajar. A variety of fresh flowers, including roses, lilies, and sunflowers, are on display inside, vibrant in color and fragrant. The background is a cozy indoor scene with soft light streaming through the windows onto the flowers. High-definition realistic photography, medium shot composition.",
"url": "https://dashscope-result-wlcb.oss-cn-wulanchabu.aliyuncs.com/1.png"
}],
"task_metrics": {
"TOTAL": 1,
"SUCCEEDED": 1,
"FAILED": 0
}
},
"usage": {
"image_count": 1
}
}
Appel asynchrone
Exemple de requête
// Copyright (c) Alibaba, Inc. and its affiliates.
import com.alibaba.dashscope.aigc.imagesynthesis.ImageSynthesis;
import com.alibaba.dashscope.aigc.imagesynthesis.ImageSynthesisParam;
import com.alibaba.dashscope.aigc.imagesynthesis.ImageSynthesisResult;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.utils.Constants;
import com.alibaba.dashscope.utils.JsonUtils;
import java.util.HashMap;
import java.util.Map;
public class Main {
static {
// The following URL is for the Singapore region. When calling, replace {WorkspaceId} with your actual workspace ID. URLs vary by region.
Constants.baseHttpApiUrl = "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1";
}
// If you have not configured the environment variable, replace the following line with your Model Studio API key: apiKey="sk-xxx"
// The API keys for the Singapore and Beijing regions are different. To get an API key: https://www.alibabacloud.com/help/en/model-studio/get-api-key
static String apiKey = System.getenv("DASHSCOPE_API_KEY");
public void asyncCall() {
System.out.println("---create task----");
String taskId = this.createAsyncTask();
System.out.println("---wait task done then return image url----");
this.waitAsyncTask(taskId);
}
/**
* Create an asynchronous task
* @return taskId
*/
public String createAsyncTask() {
// Set the parameters
Map<String, Object> parameters = new HashMap<>();
parameters.put("prompt_extend", true);
parameters.put("watermark", false);
parameters.put("seed", 12345);
ImageSynthesisParam param =
ImageSynthesisParam.builder()
.apiKey(apiKey)
.model("wan2.5-t2i-preview")
.prompt("A flower shop with exquisite windows, a beautiful wooden door, and flowers on display")
.n(1)
.size("1280*1280)
.negativePrompt("")
.parameters(parameters)
.build();
ImageSynthesis imageSynthesis = new ImageSynthesis();
ImageSynthesisResult result = null;
try {
result = imageSynthesis.asyncCall(param);
} catch (Exception e){
throw new RuntimeException(e.getMessage());
}
System.out.println(JsonUtils.toJson(result));
String taskId = result.getOutput().getTaskId();
System.out.println("taskId=" + taskId);
return taskId;
}
/**
* Wait for the asynchronous task to finish
* @param taskId The task ID
* */
public void waitAsyncTask(String taskId) {
ImageSynthesis imageSynthesis = new ImageSynthesis();
ImageSynthesisResult result = null;
try {
// After configuring the environment variable, you can set apiKey to null here
result = imageSynthesis.wait(taskId, apiKey);
} catch (ApiException | NoApiKeyException e){
throw new RuntimeException(e.getMessage());
}
System.out.println(JsonUtils.toJson(result));
System.out.println(JsonUtils.toJson(result.getOutput()));
}
public static void main(String[] args){
Main main = new Main();
main.asyncCall();
}
}
Exemples de réponse
-
Réponse type lors de la création d'une tâche
{ "request_id": "5dbf9dc5-4f4c-9605-85ea-542f97709ba8", "output": { "task_id": "7277e20e-aa01-4709-xxxxxxxx", "task_status": "PENDING" } } -
Réponse type lors de l'interrogation du résultat de la tâche
{ "request_id": "22f9c744-206c-9a78-899a-xxxxxx", "output": { "task_id": "4a0f8fc6-03fb-4c44-a13a-xxxxxx", "task_status": "SUCCEEDED", "results": [{ "orig_prompt": "A flower shop with exquisite windows, a beautiful wooden door, and flowers on display", "actual_prompt": "A flower shop with exquisitely carved windows and a beautiful dark wooden door slightly ajar. A variety of fresh flowers, including roses, lilies, and sunflowers, are on display inside, vibrant in color and fragrant. The background is a cozy indoor scene with soft light streaming through the windows onto the flowers. High-definition realistic photography, medium shot composition.", "url": "https://dashscope-result-wlcb.oss-cn-wulanchabu.aliyuncs.com/1.png" }], "task_metrics": { "TOTAL": 1, "SUCCEEDED": 1, "FAILED": 0 } }, "usage": { "image_count": 1 } }
Limites
- Validité des données : L'identifiant de tâche
task_idet l'urlde l'image ne sont conservés que pendant 24 heures. Passé ce délai, toute interrogation ou tout téléchargement devient impossible. - Modération du contenu : Le
promptd'entrée et l'image générée font tous deux l'objet d'une modération. Tout contenu non conforme déclenche une erreurIPInfringementSuspectouDataInspectionFailed. Consultez la rubrique Codes d'erreur.
Facturation et limitation du débit
- Vérifiez les quotas gratuits et les tarifs directement dans la console.
- Concernant les limites de débit du modèle, reportez-vous à la section Série Wan.
- La facturation repose sur le nombre d'images générées avec succès. Les appels échoués n'entraînent aucun frais et n'entament pas le quota gratuit pour nouveaux utilisateurs.
Codes d'erreur
Si l'appel au modèle échoue et renvoie un message d'erreur, consultez la rubrique Codes d'erreur pour obtenir la procédure de résolution.
FAQ
Q : Comment consulter les coûts d'inférence et le volume d'appels d'un modèle ?R : Reportez-vous à la rubrique Consultation des factures et gestion des coûts.