Wan2.6 prend en charge l'entrée multi-images, l'édition d'images et la sortie texte-image entrelacée.
Présentation du modèle
Modèle | Description | Spécifications des images de sortie |
|---|---|---|
wan2.6-image | Édite des images et génère une sortie texte-image entrelacée. | Format d'image : PNG La résolution et les dimensions de l'image se configurent via le paramètre size. |
RemarqueAvant d'appeler l'API, consultez la liste des modèles et les tarifs disponibles dans chaque région.
Prérequis
Obtenez une clé API et exportez la clé API en tant que variable d'environnement.
ImportantLes régions Singapour, États-Unis (Virginie) et Chine (Pékin) 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 du service.
HTTP synchrone
Renvoie les résultats en une seule requête. Recommandé pour la plupart des scénarios.
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 Francfort) prend uniquement en charge les appels asynchrones .
Paramètres de requête | Édition d'imageSortie texte-image entrelacée (streaming uniquement)Pour utiliser la sortie texte-image entrelacée (
|
En-têtes de requête | |
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-SSE Active la sortie en streaming.
| |
Corps de la requête | |
model Nom du modèle. Définissez cette valeur sur wan2.6-image. | |
input Configuration d'entrée. | |
parameters Paramètres de génération. |
Paramètres de réponse | Exécution réussie de la tâcheLes données de la tâche (statut et URL des images) ne sont conservées que pendant 24 heures avant d'être automatiquement supprimées. Enregistrez les images générées sans tarder. Exécution réussie de la tâche (sortie en streaming)Les données de la tâche (statut et URL des images) ne sont conservées que pendant 24 heures avant d'être automatiquement supprimées. Enregistrez les images générées sans tarder. Échec de l'exécution de la tâcheEn cas d'échec de la tâche, des informations d'erreur sont renvoyées. Utilisez les champs code et message pour identifier la cause. Consultez la rubrique Codes d'erreur pour le dépannage. |
output Sortie de la tâche. | |
usage Statistiques de sortie. Comptabilise uniquement les résultats réussis. | |
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 rubrique Codes d'erreur. | |
message Message d'erreur détaillé. Renvoyé uniquement pour les requêtes ayant échoué. Consultez la rubrique Codes d'erreur. |
HTTP asynchrone
Processus : Créer une tâche → Interroger les résultats
Étape 1 : Créer une tâche et obtenir son ID
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_idrenvoyé pour interroger le résultat. Letask_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 Appeler des API avec Postman ou cURL.
Paramètres de requête | |
En-têtes de requête | |
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 Commutateur de mode asynchrone. Doit être défini à ImportantL'omission de cet en-tête renvoie l'erreur : « current user api does not support synchronous calls ». | |
Corps de la requête | |
model Nom du modèle. Exemple : wan2.6-image | |
input Configuration d'entrée. | |
parameters Paramètres de génération. |
Paramètres de réponse | Réponse réussieConservez le Réponse d'erreurLa création de la tâche a échoué. Consultez la section 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 section Codes d'erreur. | |
message Message d'erreur détaillé. Renvoyé uniquement en cas d'échec de la requête. Consultez la section Codes d'erreur. |
Étape 2 : Interroger les résultats à l'aide de l'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 workspace ID.
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 workspace ID.
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 Workspace ID.
Remarque
- Recommandation d'interrogation : La génération d'images 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 terminée avec succès, une URL d'image valide pendant 24 heures est renvoyée. Téléchargez et enregistrez l'image dans un stockage permanent, tel que OSS.
Paramètres de requête | Interroger les résultats 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 Identifiant de la tâche. |
Paramètres de réponse | Exécution réussie de la tâcheLes données de la tâche (état et URL des images) ne sont conservées que pendant 24 heures avant d'être automatiquement supprimées. Pensez à enregistrer rapidement les images générées. Échec de l'exécution de la tâcheEn cas d'échec de la tâche, des informations d'erreur sont renvoyées. Utilisez les champs code et message pour identifier la cause. Consultez la section Codes d'erreur pour le dépannage. |
output Informations de sortie de la tâche. | |
usage Statistiques de sortie. Comptabilise uniquement les résultats réussis. | |
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 section Codes d'erreur. | |
message Message d'erreur détaillé. Renvoyé uniquement en cas d'échec de la requête. Consultez la section Codes d'erreur. |
DashScope Python SDK
Les paramètres du SDK correspondent à ceux de l'interface HTTP, adaptés aux conventions de chaque langage.
Le SDK gère les appels asynchrones en interne et prend en charge les invocations synchrones et asynchrones.
La durée réelle varie selon la longueur de la file d'attente et la charge du service.
ImportantNécessite le DashScope Python SDK version 1.25.8 ou ultérieure. Installer le SDK.
Le paramètre base_url et la clé API dépendent de la région. Exemple d'appel depuis 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 workspace ID.
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 workspace ID.
Germany (Frankfurt)
https://{WorkspaceId}.eu-central-1.maas.aliyuncs.com/api/v1
Remplacez {WorkspaceId} par votre véritable Workspace ID.
Le périmètre de déploiement mondial (région Francfort) ne prend en charge que les appels asynchrones.
Modification d'images
Synchronous
Exemple de requête
import os
import dashscope
from dashscope.aigc.image_generation import ImageGeneration
from dashscope.api_entities.dashscope_response import Message
# Singapore region base_url. Base URLs differ by region.
dashscope.base_http_api_url = 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1'
# If environment variable is not configured, replace the next line with: api_key="sk-xxx"
# API keys differ by region. Get API key: https://www.alibabacloud.com/help/en/model-studio/get-api-key
api_key = os.getenv("DASHSCOPE_API_KEY")
message = Message(
role="user",
# Supports local files, e.g., "image": "file://umbrella1.png"
content=[
{
"text": "Generate a tomato and egg stir-fry based on the style of image 1 and the background of image 2"
},
{
"image": "https://cdn.wanx.aliyuncs.com/tmp/pressure/umbrella1.png"
},
{
"image": "https://img.alicdn.com/imgextra/i3/O1CN01SfG4J41UYn9WNt4X1_!!6000000002530-49-tps-1696-960.webp"
}
]
)
print("----sync call, wait a moment----")
rsp = ImageGeneration.call(
model='wan2.6-image',
api_key=api_key,
messages=[message],
negative_prompt="",
prompt_extend=True,
watermark=False,
n=1,
enable_interleave=False,
size="1K"
)
print(rsp)
Exemple de réponse
L'URL expire après 24 heures. Téléchargez les images sans tarder.
{
"status_code": 200,
"request_id": "b6a4c68d-3a91-4018-ae96-3cf373xxxxxx",
"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": "1376*768",
"total_tokens": 0
}
}
Asynchronous
Exemple de requête
import os
import dashscope
from dashscope.aigc.image_generation import ImageGeneration
from dashscope.api_entities.dashscope_response import Message
from http import HTTPStatus
# Singapore region base_url. Base URLs differ by region.
dashscope.base_http_api_url = 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1'
# If environment variable is not configured, replace the next line with: api_key="sk-xxx"
# API keys differ by region. Get API key: https://www.alibabacloud.com/help/en/model-studio/get-api-key
api_key = os.getenv("DASHSCOPE_API_KEY")
# Create asynchronous task
def create_async_task():
print("Creating async task...")
message = Message(
role="user",
content=[
{'text': 'Generate a tomato and egg stir-fry based on the style of image 1 and the background of image 2'},
{'image': 'https://cdn.wanx.aliyuncs.com/tmp/pressure/umbrella1.png'},
{'image': 'https://img.alicdn.com/imgextra/i3/O1CN01SfG4J41UYn9WNt4X1_!!6000000002530-49-tps-1696-960.webp'}
]
)
response = ImageGeneration.async_call(
model="wan2.6-image",
api_key=api_key,
messages=[message],
negative_prompt="",
prompt_extend=True,
watermark=False,
n=1,
enable_interleave=False,
size="1K"
)
if response.status_code == 200:
print("Task created successfully:", response)
return response # Return task ID
else:
raise Exception(f"Failed to create task: {response.code} - {response.message}")
# Wait for task completion
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 info
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 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 de création de tâche
{ "status_code": 200, "request_id": "4fb3050f-de57-4a24-84ff-e37ee5xxxxxx", "code": "", "message": "", "output": { "text": null, "finish_reason": null, "choices": null, "audio": null, "task_id": "127ec645-118f-4884-955d-0eba8dxxxxxx", "task_status": "PENDING" }, "usage": { "input_tokens": 0, "output_tokens": 0, "characters": 0 } } -
Exemple de réponse d'interrogation du résultat de la tâche
L'URL expire après 24 heures. Téléchargez les images sans tarder.
{ "status_code": 200, "request_id": "b2a7fab4-5e00-4b0a-86fe-8b9964xxxxxx", "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": "127ec645-118f-4884-955d-0eba8xxxxxx", "task_status": "SUCCEEDED", "submit_time": "2026-01-09 17:52:04.136", "scheduled_time": "2026-01-09 17:52:04.164", "end_time": "2026-01-09 17:52:25.408", "finished": true }, "usage": { "input_tokens": 0, "output_tokens": 0, "characters": 0, "size": "1376*768", "total_tokens": 0, "image_count": 1 } }
Sortie texte-image entrelacée
Synchrone (streaming uniquement)
Exemple de requête
import os
import dashscope
from dashscope.aigc.image_generation import ImageGeneration
from dashscope.api_entities.dashscope_response import Message
# Singapore region URL. Base URLs differ by region.
dashscope.base_http_api_url = 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1'
# If environment variable is not configured, replace the next line with: api_key="sk-xxx"
# API keys differ by region. Get API key: https://www.alibabacloud.com/help/en/model-studio/get-api-key
api_key = os.getenv("DASHSCOPE_API_KEY")
def sync_call_with_stream():
print("\n========== Synchronous call - Streaming text-image output ==========")
image_message = Message(
role="user",
content=[
{
"text": "Give me a three-image tutorial for stir-fried pork with chili peppers"
}
]
)
image_stream_res = ImageGeneration.call(
model="wan2.6-image",
api_key=api_key,
messages=[image_message],
stream=True, # Streaming only
negative_prompt="",
enable_interleave=True,
max_images=3,
size="1280*1280"
)
print("Streaming output results:")
for stream_res in image_stream_res:
print(stream_res)
if __name__ == "__main__":
sync_call_with_stream()
Exemple de réponse
L'URL expire après 24 heures. Téléchargez les images sans tarder.
{"status_code": 200, "request_id": "5b98e8f3-aeff-4c20-a26c-499a7525axxx", "code": "", "message": "", "output": {"text": null, "finish_reason": null, "choices": [{"finish_reason": "null", "message": {"role": "assistant", "content": [{"type": "text", "text": "Chili"}]}}], "audio": null, "finished": false}, "usage": {"input_tokens": 28, "output_tokens": 0, "characters": 0, "total_tokens": 28, "image_count": 0, "size": "0*0"}}
{"status_code": 200, "request_id": "5b98e8f3-aeff-4c20-a26c-499a7525axxx", "code": "", "message": "", "output": {"text": null, "finish_reason": null, "choices": [{"finish_reason": "null", "message": {"role": "assistant", "content": [{"type": "text", "text": "Stir-fry"}]}}], "audio": null, "finished": false}, "usage": {"input_tokens": 28, "output_tokens": 1, "characters": 0, "total_tokens": 29, "image_count": 0, "size": "0*0"}}
{"status_code": 200, "request_id": "5b98e8f3-aeff-4c20-a26c-499a7525axxx", "code": "", "message": "", "output": {"text": null, "finish_reason": null, "choices": [{"finish_reason": "null", "message": {"role": "assistant", "content": [{"type": "text", "text": "Pork"}]}}], "audio": null, "finished": false}, "usage": {"input_tokens": 28, "output_tokens": 2, "characters": 0, "total_tokens": 30, "image_count": 0, "size": "0*0"}}
......
{"status_code": 200, "request_id": "5b98e8f3-aeff-4c20-a26c-499a7525axxx", "code": "", "message": "", "output": {"text": null, "finish_reason": null, "choices": [{"finish_reason": "null", "message": {"role": "assistant", "content": [{"type": "text", "text": "."}]}}], "audio": null, "finished": false}, "usage": {"input_tokens": 28, "output_tokens": 398, "characters": 0, "total_tokens": 426, "image_count": 2, "size": "1280*1280"}}
{"status_code": 200, "request_id": "5b98e8f3-aeff-4c20-a26c-499a7525axxx", "code": "", "message": "", "output": {"text": null, "finish_reason": "stop", "choices": [{"finish_reason": "stop", "message": {"role": "assistant", "content": [{"type": "image", "image": "https://dashscope-result-sh.oss-cn-shanghai.aliyuncs.com/xxx.png?Expires=xxx"}]}}], "audio": null, "finished": true}, "usage": {"input_tokens": 28, "output_tokens": 523, "characters": 0, "total_tokens": 551, "image_count": 3, "size": "1280*1280"}}
Asynchrone
Exemple de requête
Remarque : Les appels asynchrones ne nécessitent pas le paramètre stream.
import os
import dashscope
from dashscope.aigc.image_generation import ImageGeneration
from dashscope.api_entities.dashscope_response import Message
from http import HTTPStatus
# Singapore region URL. Base URLs differ by region.
dashscope.base_http_api_url = 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1'
# If environment variable is not configured, replace the next line with: api_key="sk-xxx"
# API keys differ by region. Get API key: https://www.alibabacloud.com/help/en/model-studio/get-api-key
api_key = os.getenv("DASHSCOPE_API_KEY")
def main():
"""Asynchronous call - Text-image output"""
print("========== wan2.6-image Asynchronous call - Text-image output ==========")
image_message = Message(
role="user",
content=[
{
"text": "Give me a three-image tutorial for stir-fried pork with chili peppers"
}
]
)
# Create asynchronous task
print("---async call, creating task----")
response = ImageGeneration.async_call(
model="wan2.6-image",
api_key=api_key,
messages=[image_message],
# Asynchronous calls do not require stream parameter
negative_prompt="",
enable_interleave=True,
max_images=3,
size="1280*1280"
)
if response.status_code == HTTPStatus.OK:
print(f"Task created successfully:")
print(response)
# Wait for task completion
print("\n---waiting for task completion----")
status = ImageGeneration.wait(task=response, api_key=api_key)
if status.output.task_status == "SUCCEEDED":
print("Task completed!")
print(f"Results:")
print(status)
else:
print(f"Task failed, status: {status.output.task_status}")
else:
print(f"Task creation failed: {response.code} - {response.message}")
if __name__ == "__main__":
try:
main()
except Exception as e:
print(f"Execution error: {str(e)}")
import traceback
traceback.print_exc()
Exemple de réponse
-
Exemple de réponse lors de la création de la tâche
{ "status_code": 200, "request_id": "4fb3050f-de57-4a24-84ff-e37ee5xxxxxx", "code": "", "message": "", "output": { "text": null, "finish_reason": null, "choices": null, "audio": null, "task_id": "5c67585e-a3be-4943-b04d-c3fbb2xxxxxx", "task_status": "PENDING" }, "usage": { "input_tokens": 0, "output_tokens": 0, "characters": 0 } } -
Exemple de réponse lors de l'interrogation du résultat de la tâche
L'URL expire après 24 heures. Téléchargez les images sans tarder.
{ "status_code": 200, "request_id": "997a759b-fbb9-4b35-9a4d-6dab1xxxxxx", "code": null, "message": "", "output": { "text": null, "finish_reason": null, "choices": [ { "finish_reason": "stop", "message": { "role": "assistant", "content": [ { "text": "Stir-fried pork with chili peppers is a classic Hunan dish and a beloved home-cooked favorite for many. Known for its fresh spiciness and tender meat, it's simple to prepare yet delivers an exceptional flavor experience. Today, we'll learn how to make this dish.\n\nFirst, preparing all ingredients is the key to success. Fresh pork, red and green chili peppers, garlic cloves, and ginger slices are essential. Slice the pork thinly, cut the chilies into segments, and mince the garlic and ginger.", "type": "text" }, { "image": "https://dashscope-result-sh.oss-cn-shanghai.aliyuncs.com/xxx.png?Expires=xxx", "type": "image" }, { "text": "Next comes the crucial stir-frying step. Heat oil in a wok over high heat. Add minced garlic and ginger to release their aroma, then add the sliced pork. Quickly stir-fry until the pork changes color. Once fragrant, add the chili segments and continue stir-frying to fully release the chili aroma, perfectly blending with the pork's tenderness.", "type": "text" }, { "image": "https://dashscope-result-sh.oss-cn-shanghai.aliyuncs.com/xxx.png?Expires=xxx", "type": "image" }, { "text": "Finally, season with light soy sauce, dark soy sauce, oyster sauce, and a pinch of sugar. Stir-fry quickly until evenly coated. Cook until the sauce thickens slightly, then turn off the heat and serve. Your delicious, aromatic stir-fried pork with chili peppers is ready!", "type": "text" }, { "image": "https://dashscope-result-sh.oss-cn-shanghai.aliyuncs.com/xxx.png?Expires=xxx", "type": "image" } ] } } ], "audio": null, "task_id": "5c67585e-a3be-4943-b04d-c3fbb2xxxxxx", "task_status": "SUCCEEDED", "submit_time": "2026-01-16 17:47:39.469", "scheduled_time": "2026-01-16 17:47:39.804", "end_time": "2026-01-16 17:49:46.736", "finished": true }, "usage": { "input_tokens": 29, "output_tokens": 477, "characters": 0, "size": "1280*1280", "total_tokens": 506, "image_count": 3 } }
DashScope Java SDK
Les paramètres du SDK correspondent à ceux de l'interface HTTP et sont encapsulés selon les conventions de chaque langage.
Le SDK gère les appels asynchrones en interne et prend en charge les invocations synchrones et asynchrones.
La durée réelle dépend de la longueur de la file d'attente et de la charge du service.
ImportantNécessite DashScope Java SDK version 2.22.6 ou ultérieure.
La base_url et la clé API ne sont pas interchangeables entre les régions. Exemples pour la région Singapour :
Singapour
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.
États-Unis (Virginie)
https://dashscope-us.aliyuncs.com/api/v1
Chine (Pékin)
https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1
Lors de l'appel, remplacez {WorkspaceId} par votre véritable ID d'espace de travail.
Allemagne (Francfort)
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.
Modification d'image
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.Arrays;
import java.util.Collections;
/**
* wan2.6-image Image editing - Synchronous call example
*/
public class Main {
static {
// Singapore region URL. Base URLs differ by region.
Constants.baseHttpApiUrl = "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1";
}
// If environment variable is not configured, replace the next line with: apiKey="sk-xxx"
// API keys differ by region. Get 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 {
// Build multi-image input message
ImageGenerationMessage message = ImageGenerationMessage.builder()
.role("user")
.content(Arrays.asList(
// Supports multi-image input; provide multiple reference images
Collections.singletonMap("text", "Generate a tomato and egg stir-fry based on the style of image 1 and the background of image 2"),
Collections.singletonMap("image", "https://cdn.wanx.aliyuncs.com/tmp/pressure/umbrella1.png"),
Collections.singletonMap("image", "https://img.alicdn.com/imgextra/i3/O1CN01SfG4J41UYn9WNt4X1_!!6000000002530-49-tps-1696-960.webp")
)).build();
// Image editing uses standard synchronous call; no need to set stream or enable_interleave
ImageGenerationParam param = ImageGenerationParam.builder()
.apiKey(apiKey)
.model("wan2.6-image")
.messages(Collections.singletonList(message))
.n(1)
.size("1K")
.negativePrompt("")
.promptExtend(true)
.build();
ImageGeneration imageGeneration = new ImageGeneration();
ImageGenerationResult result = null;
try {
System.out.println("---sync call for image editing, 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 expire après 24 heures. Téléchargez les images sans tarder.
{
"requestId": "b148327e-830f-414c-a8df-724dec28exxx",
"usage": {
"input_tokens": 0,
"output_tokens": 0,
"total_tokens": 0,
"image_count": 1,
"size": "1376*768"
},
"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
},
"status_code": 200,
"code": "",
"message": ""
}
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.Arrays;
import java.util.Collections;
/**
* wan2.6-image Image editing - Asynchronous call example
*/
public class Main {
static {
// Singapore region URL. Base URLs differ by region.
Constants.baseHttpApiUrl = "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1";
}
// If environment variable is not configured, replace the next line with: apiKey="sk-xxx"
// API keys differ by region. Get 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 {
// Build multi-image input message
ImageGenerationMessage message = ImageGenerationMessage.builder()
.role("user")
.content(Arrays.asList(
// Supports multi-image input; provide multiple reference images
Collections.singletonMap("text", "Generate a tomato and egg stir-fry based on the style of image 1 and the background of image 2"),
Collections.singletonMap("image", "https://cdn.wanx.aliyuncs.com/tmp/pressure/umbrella1.png"),
Collections.singletonMap("image", "https://img.alicdn.com/imgextra/i3/O1CN01SfG4J41UYn9WNt4X1_!!6000000002530-49-tps-1696-960.webp")
)).build();
ImageGenerationParam param = ImageGenerationParam.builder()
.apiKey(apiKey)
.model("wan2.6-image")
.n(1)
.size("1K")
.negativePrompt("")
.promptExtend(true)
.messages(Arrays.asList(message))
.build();
ImageGeneration imageGeneration = new ImageGeneration();
ImageGenerationResult result = null;
try {
System.out.println("---async call for image editing, creating task----");
result = imageGeneration.asyncCall(param);
} catch (ApiException | NoApiKeyException | UploadFileException e) {
throw new RuntimeException(e.getMessage());
}
System.out.println("Task creation result:");
System.out.println(JsonUtils.toJson(result));
String taskId = result.getOutput().getTaskId();
// Wait for task completion
waitTask(taskId);
}
public static void waitTask(String taskId) throws ApiException, NoApiKeyException {
ImageGeneration imageGeneration = new ImageGeneration();
System.out.println("\n---waiting for task completion----");
ImageGenerationResult result = imageGeneration.wait(taskId, apiKey);
System.out.println("Task completion result:");
System.out.println(JsonUtils.toJson(result));
}
public static void main(String[] args) {
try {
asyncCall();
} catch (ApiException | NoApiKeyException | UploadFileException e) {
System.out.println(e.getMessage());
}
}
}
Exemple de réponse
-
Exemple de réponse lors de la création de la tâche
{ "status_code": 200, "request_id": "9cd85950-2e26-4b2c-b562-1694cf928xxx", "code": "", "message": "", "output": { "task_id": "4c861fbe-af89-4a2f-8fc5-4bb15c313xxx", "task_status": "PENDING" }, "usage": null } -
Exemple de réponse lors de l'interrogation du résultat de la tâche
L'URL expire après 24 heures. Téléchargez les images sans tarder.
{ "status_code": 200, "request_id": "cbdf1424-306e-4a52-82f3-8bf5d8a99xxx", "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": "1376*768", "total_tokens": 0, "image_count": 1 } }
Sortie texte-image entrelacée
Appel synchrone (streaming uniquement)
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 io.reactivex.Flowable;
import java.util.Collections;
/**
* wan2.6-image Text-image output - Streaming call example
*/
public class Main {
static {
// Singapore region URL. Base URLs differ by region.
Constants.baseHttpApiUrl = "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1";
}
// If environment variable is not configured, replace the next line with: apiKey="sk-xxx"
// API keys differ by region. Get API key: https://www.alibabacloud.com/help/en/model-studio/get-api-key
static String apiKey = System.getenv("DASHSCOPE_API_KEY");
public static void streamCall() throws ApiException, NoApiKeyException, UploadFileException {
ImageGenerationMessage message = ImageGenerationMessage.builder()
.role("user")
.content(Collections.singletonList(
Collections.singletonMap("text", "Give me a three-image tutorial for stir-fried pork with chili peppers")
)).build();
// Text-image output requires streaming call
ImageGenerationParam param = ImageGenerationParam.builder()
.apiKey(apiKey)
.model("wan2.6-image")
.messages(Collections.singletonList(message))
.stream(true) // Must enable streaming output
.enableInterleave(true)
.size("1280*1280")
.negativePrompt("")
.maxImages(3)
.build();
ImageGeneration imageGeneration = new ImageGeneration();
try {
System.out.println("---stream call for image interleave----");
Flowable<ImageGenerationResult> resultFlowable = imageGeneration.streamCall(param);
resultFlowable.blockingForEach(result -> {
System.out.println(JsonUtils.toJson(result));
});
} catch (ApiException | NoApiKeyException | UploadFileException e) {
throw new RuntimeException(e.getMessage());
}
}
public static void main(String[] args) {
try {
streamCall();
} catch (ApiException | NoApiKeyException | UploadFileException e) {
System.out.println(e.getMessage());
}
System.exit(0);
}
}
Exemple de réponse
L'URL expire après 24 heures. Téléchargez les images sans tarder.
{"requestId":"12c7432c-8028-4289-a97c-4e22df98bxxx","usage":{"input_tokens":28,"output_tokens":0,"total_tokens":28,"image_count":0,"size":"0*0"},"output":{"choices":[{"finish_reason":"null","message":{"role":"assistant","content":[{"type":"text","text":"Chili"}]}}],"finished":false},"status_code":200,"code":"","message":""}
{"requestId":"12c7432c-8028-4289-a97c-4e22df98bxxx","usage":{"input_tokens":28,"output_tokens":1,"total_tokens":29,"image_count":0,"size":"0*0"},"output":{"choices":[{"finish_reason":"null","message":{"role":"assistant","content":[{"type":"text","text":"stir-fry"}]}}],"finished":false},"status_code":200,"code":"","message":""}
{"requestId":"12c7432c-8028-4289-a97c-4e22df98bxxx","usage":{"input_tokens":28,"output_tokens":2,"total_tokens":30,"image_count":0,"size":"0*0"},"output":{"choices":[{"finish_reason":"null","message":{"role":"assistant","content":[{"type":"text","text":"pork"}]}}],"finished":false},"status_code":200,"code":"","message":""}
......
{"requestId":"12c7432c-8028-4289-a97c-4e22df98bxxx","usage":{"input_tokens":28,"output_tokens":73,"total_tokens":101,"image_count":0,"size":"0*0"},"output":{"choices":[{"finish_reason":"null","message":{"role":"assistant","content":[{"type":"text","text":"."}]}}],"finished":false},"status_code":200,"code":"","message":""}
{"requestId":"12c7432c-8028-4289-a97c-4e22df98bxxx","usage":{"input_tokens":28,"output_tokens":198,"total_tokens":226,"image_count":1,"size":"1280*1280"},"output":{"choices":[{"finish_reason":"null","message":{"role":"assistant","content":[{"type":"image","image":"https://dashscope-result-sh.oss-cn-shanghai.aliyuncs.com/xxx.png?Expires=xxx"}]}}],"finished":false},"status_code":200,"code":"","message":""}
{"requestId":"12c7432c-8028-4289-a97c-4e22df98bxxx","usage":{"input_tokens":28,"output_tokens":199,"total_tokens":227,"image_count":1,"size":"1280*1280"},"output":{"choices":[{"finish_reason":"null","message":{"role":"assistant","content":[{"type":"text","text":"Next"}]}}],"finished":false},"status_code":200,"code":"","message":""}
......
{"requestId":"12c7432c-8028-4289-a97c-4e22df98bxxx","usage":{"input_tokens":28,"output_tokens":245,"total_tokens":273,"image_count":1,"size":"1280*1280"},"output":{"choices":[{"finish_reason":"null","message":{"role":"assistant","content":[{"type":"text","text":"."}]}}],"finished":false},"status_code":200,"code":"","message":""}
{"requestId":"12c7432c-8028-4289-a97c-4e22df98bxxx","usage":{"input_tokens":28,"output_tokens":368,"total_tokens":396,"image_count":2,"size":"1280*1280"},"output":{"choices":[{"finish_reason":"null","message":{"role":"assistant","content":[{"type":"image","image":"https://dashscope-result-sh.oss-cn-shanghai.aliyuncs.com/xxx.png?Expires=xxx"}]}}],"finished":false},"status_code":200,"code":"","message":""}
{"requestId":"12c7432c-8028-4289-a97c-4e22df98bxxx","usage":{"input_tokens":28,"output_tokens":369,"total_tokens":397,"image_count":2,"size":"1280*1280"},"output":{"choices":[{"finish_reason":"null","message":{"role":"assistant","content":[{"type":"text","text":"Finally"}]}}],"finished":false},"status_code":200,"code":"","message":""}
......
{"requestId":"12c7432c-8028-4289-a97c-4e22df98bxxx","usage":{"input_tokens":28,"output_tokens":416,"total_tokens":444,"image_count":2,"size":"1280*1280"},"output":{"choices":[{"finish_reason":"null","message":{"role":"assistant","content":[{"type":"text","text":"pot"}]}}],"finished":false},"status_code":200,"code":"","message":""}
{"requestId":"12c7432c-8028-4289-a97c-4e22df98bxxx","usage":{"input_tokens":28,"output_tokens":417,"total_tokens":445,"image_count":2,"size":"1280*1280"},"output":{"choices":[{"finish_reason":"null","message":{"role":"assistant","content":[{"type":"text","text":"."}]}}],"finished":false},"status_code":200,"code":"","message":""}
{"requestId":"12c7432c-8028-4289-a97c-4e22df98bxxx","usage":{"input_tokens":28,"output_tokens":541,"total_tokens":569,"image_count":3,"size":"1280*1280"},"output":{"choices":[{"finish_reason":"stop","message":{"role":"assistant","content":[{"type":"image","image":"https://dashscope-result-sh.oss-cn-shanghai.aliyuncs.com/xxx.png?Expires=xxx"}]}}],"finished":true},"status_code":200,"code":"","message":""}
Appel asynchrone
Exemple de requête
Remarque : Les appels asynchrones ne nécessitent pas le paramètre stream.
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;
/**
* wan2.6-image Text-image output - Asynchronous call example
*/
public class Main {
static {
// Singapore region URL. Base URLs differ by region.
Constants.baseHttpApiUrl = "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1";
}
// If environment variable is not configured, replace the next line with: apiKey="sk-xxx"
// API keys differ by region. Get 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", "Give me a three-image tutorial for stir-fried pork with chili peppers")
)).build();
ImageGenerationParam param = ImageGenerationParam.builder()
.apiKey(apiKey)
.model("wan2.6-image")
.size("1280*1280")
.enableInterleave(true)
.maxImages(3)
.negativePrompt("")
.messages(Collections.singletonList(message))
.build();
ImageGeneration imageGeneration = new ImageGeneration();
ImageGenerationResult result = null;
try {
System.out.println("---async call for image interleave, creating task----");
result = imageGeneration.asyncCall(param);
} catch (ApiException | NoApiKeyException | UploadFileException e) {
throw new RuntimeException(e.getMessage());
}
System.out.println("Task creation result:");
System.out.println(JsonUtils.toJson(result));
String taskId = result.getOutput().getTaskId();
// Wait for task completion
waitTask(taskId);
}
public static void waitTask(String taskId) throws ApiException, NoApiKeyException {
ImageGeneration imageGeneration = new ImageGeneration();
System.out.println("\n---waiting for task completion----");
ImageGenerationResult result = imageGeneration.wait(taskId, apiKey);
System.out.println("Task completion result:");
System.out.println(JsonUtils.toJson(result));
}
public static void main(String[] args) {
try {
asyncCall();
} catch (ApiException | NoApiKeyException | UploadFileException e) {
System.out.println(e.getMessage());
}
}
}
Exemple de réponse
-
Exemple de réponse lors de la création d'une tâche
{ "requestId": "7d6c5760-334b-48c4-9b1e-08ee9c7fexxx", "output": { "task_id": "1bb9d9fa-bf1a-43dc-b5fe-366c1dc70xxx", "task_status": "PENDING" }, "status_code": 200, "code": "", "message": "" } -
Exemple de réponse lors de l'interrogation du résultat d'une tâche
L'URL expire après 24 heures. Téléchargez les images rapidement.
{ "requestId": "6ed62b00-2225-4fc3-8ee3-2aed0b484xxx", "usage": { "input_tokens": 29, "output_tokens": 471, "total_tokens": 500, "image_count": 3, "size": "1280*1280" }, "output": { "choices": [ { "finish_reason": "stop", "message": { "role": "assistant", "content": [ { "text": "Stir-fried pork with chili peppers is a classic Hunan dish and a beloved home-cooked favorite for many. Known for its fresh spiciness and tender meat, it's simple to prepare yet delivers an exceptional flavor experience. Today, we'll learn how to make this dish.\n\nFirst, preparing all ingredients is the key to success. Fresh pork, red and green chili peppers, garlic cloves, and ginger slices are essential. Slice the pork thinly, cut the chilies into segments, and mince the garlic and ginger.", "type": "text" }, { "image": "https://dashscope-result-sh.oss-cn-shanghai.aliyuncs.com/xxx.png?Expires=xxx", "type": "image" }, { "text": "Next, marinate the pork. Place the sliced pork in a bowl, add a little light soy sauce, cooking wine, starch, and cooking oil. Mix well by hand and marinate for 10 to 15 minutes. This treatment makes the pork slices more tender and flavorful.", "type": "text" }, { "image": "https://dashscope-result-sh.oss-cn-shanghai.aliyuncs.com/xxx.png?Expires=xxx", "type": "image" }, { "text": "Finally, heat oil in a wok over high heat. Add the marinated pork slices and quickly stir-fry until they change color, then remove and set aside. Leave some oil in the wok, add minced garlic and ginger to release their aroma, then add chili segments and stir-fry until fragrant. Add the pork back in, season with light soy sauce, dark soy sauce, a pinch of sugar, and oyster sauce. Stir-fry quickly until evenly coated, sprinkle with chopped scallions, and serve.", "type": "text" }, { "image": "https://dashscope-result-sh.oss-cn-shanghai.aliyuncs.com/xxx.png?Expires=xxx", "type": "image" } ] } } ], "task_id": "1bb9d9fa-bf1a-43dc-b5fe-366c1dc70836", "task_status": "SUCCEEDED", "finished": true, "submit_time": "2026-01-16 18:26:32.082", "scheduled_time": "2026-01-16 18:26:32.133", "end_time": "2026-01-16 18:28:41.748" }, "status_code": 200, "code": "", "message": "" }
Limites
- Validité des données : Le
task_idde la tâche et l'urlde l'image ne sont conservés que pendant 24 heures. Passé ce délai, il n'est plus possible de les interroger ni de les télécharger. - 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 limites de taux
- Pour les quotas gratuits et les tarifs, reportez-vous à la rubrique Tarification des modèles.
- Concernant les limites de taux applicables aux modèles, consultez la rubrique Wanxiang.
- La facturation s'applique uniquement par image générée avec succès. Les appels échoués ne sont pas facturés et ne consomment pas le quota gratuit.
Codes d'erreur
Si l'appel au modèle échoue et renvoie un message d'erreur, référez-vous à la rubrique Codes d'erreur pour obtenir une solution.
FAQ
Q : Comment consulter les coûts d'inférence et le volume d'appels d'un modèle ?R : Consultez la rubrique Consultation des factures et gestion des coûts.
Q : Pourquoi les exemples de code ne fonctionnent-ils pas ?R : Mettez à jour votre SDK vers la version la plus récente. Reportez-vous à la rubrique Installer le SDK.