Tous les produits
Search
Centre de documentation

Alibaba Cloud Model Studio:Wan2.6 - génération et édition d'images

Dernière mise à jour :Oct 11, 2026

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'image

curl --location 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation' \
        --header 'Content-Type: application/json' \
        --header "Authorization: Bearer $DASHSCOPE_API_KEY" \
        --data '{
            "model": "wan2.6-image",
            "input": {
                "messages": [
                    {
                        "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"
                            }
                        ]
                    }
                ]
            },
            "parameters": {
                "prompt_extend": true,
                "watermark": false,
                "n": 1,
                "enable_interleave": false,
                "size": "1K"
            }
        }'

Sortie texte-image entrelacée (streaming uniquement)

Pour utiliser la sortie texte-image entrelacée (parameters.enable_interleave = true) avec l'interface synchrone, le streaming est obligatoire. Définissez les deux conditions suivantes :

  • Définissez X-DashScope-SSE sur enable.
  • Définissez parameters.stream sur true.
curl --location 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation' \
        --header 'Content-Type: application/json' \
        --header "Authorization: Bearer $DASHSCOPE_API_KEY" \
        --header 'X-DashScope-SSE: enable' \
        --data '{
            "model": "wan2.6-image",
            "input": {
                "messages": [
                    {
                        "role": "user",
                        "content": [
                            {
                                "text": "Give me a three-image tutorial for stir-fried pork with chili peppers"
                            }
                        ]
                    }
                ]
            },
            "parameters": {
                "max_images": 3,
                "size": "1280*1280",
                "stream": true,
                "enable_interleave":true
            }
        }'
En-têtes de requête

Content-Type string (Obligatoire)

Type de contenu de la requête. Doit être application/json.

Authorization string (Obligatoire)

Authentifie la requête avec une clé API Model Studio. Exemple : Bearer sk-xxxx.

X-DashScope-SSEstring (Facultatif)

Active la sortie en streaming.

  • Si parameters.enable_interleave=true, définissez cette valeur sur enable.
  • Dans les autres cas, omettez cet en-tête.
Corps de la requête

model string (Obligatoire)

Nom du modèle. Définissez cette valeur sur wan2.6-image.

input object (Obligatoire)

Configuration d'entrée.

Propriétés

messages array (Obligatoire)

Tableau du contenu de la requête. Seules les conversations à tour unique sont prises en charge : fournissez une seule paire rôle-contenu.

Propriétés

rolestring (Obligatoire)

Rôle du message. Définissez cette valeur sur user.

contentarray (Obligatoire)

Tableau du contenu du message.

Propriétés

textstring(Obligatoire)

Prompt positif décrivant le contenu, le style et la composition souhaités pour l'image.

Prend en charge le chinois et l'anglais. Maximum de 2 000 caractères (chaque caractère chinois, lettre, chiffre ou symbole compte pour un). Tronqué automatiquement en cas de dépassement.

Exemple : Générer un sauté de tomates et d'œufs basé sur le style de cette image.

Remarque : Le tableau content doit contenir exactement un objet avec un champ text.

imagestring(Facultatif)

URL ou chaîne encodée en Base64 de l'image d'entrée.

Contraintes relatives aux images :

  • Formats d'image : JPEG, JPG, PNG (canal alpha non pris en charge), BMP, WebP.
  • Résolution d'image : la largeur et la hauteur doivent chacune être comprises entre 240 et 8 000 pixels.
  • Taille du fichier : ne doit pas dépasser 10 Mo.

Limites de quantité d'images :

  • Le nombre d'images d'entrée dépend du paramètre parameters.enable_interleave.

    • Si enable_interleave=true (sortie texte-image entrelacée), vous pouvez fournir 0 à 1 image.
    • Si enable_interleave=false (édition d'image), vous devez fournir 1 à 4 images.
  • Pour fournir plusieurs images, incluez plusieurs objets image dans le tableau content. L'ordre des images correspond à leur position dans le tableau.

Formats d'entrée pris en charge :

  1. Utiliser une URL accessible publiquement

    • Prend en charge les protocoles HTTP et HTTPS.
    • Exemple : http://wanx.alicdn.com/material/xxx.jpeg.
  2. Fournir une chaîne d'image encodée en Base64

    • Format : data:{MIME_type};base64,{base64_data}
    • Exemple : data:image/jpeg;base64,GDU7MtCZzEbTbmRZ... (à titre indicatif uniquement ; fournissez la chaîne complète en pratique)
    • Pour les directives d'encodage Base64, consultez Méthodes d'entrée d'image.

parameters object (Facultatif)

Paramètres de génération.

Propriétés

negative_prompt string (facultatif)

Prompt négatif décrivant les éléments à exclure de l'image.

Prend en charge le chinois et l'anglais. Longueur maximale de 500 caractères. Les caractères excédentaires sont tronqués automatiquement.

Exemple : Faible résolution, basse qualité, membres déformés, doigts mal formés, couleurs sursaturées, aspect cireux, absence de détails faciaux, surfaces trop lisses, apparence générée par IA. Composition chaotique. Texte flou ou déformé.

size string (Facultatif)

Résolution de l'image de sortie. Deux méthodes sont disponibles : référencer les proportions de l'image d'entrée ou spécifier directement les dimensions.

Si enable_interleave=false (mode édition d'image) :

  • Méthode 1 : Référencer les proportions de l'image d'entrée (recommandé)

    Options de résolution de sortie disponibles : 1K (par défaut), 2K.

    • 1K : Le nombre total de pixels de sortie avoisine 1280*1280, tout en conservant le rapport d'aspect de la dernière image d'entrée.
    • 2K : Le nombre total de pixels de sortie avoisine 2048*2048, tout en conservant le rapport d'aspect de la dernière image d'entrée.
  • Méthode 2 : Spécifier la largeur et la hauteur de l'image de sortie en pixels

    Le nombre total de pixels doit se situer entre [768768, 20482048], avec un rapport d'aspect compris entre [1:4, 4:1].

    Les valeurs de pixels réelles en sortie correspondent aux multiples de 16 les plus proches de la valeur spécifiée.

Si enable_interleave=true (mode sortie texte-image entrelacée) :

  • Méthode 1 : Référencer les proportions de l'image d'entrée (méthode par défaut)

    • Si le nombre total de pixels de l'image d'entrée est ≤ 1280*1280, la sortie conserve le même nombre total de pixels et le même rapport d'aspect que l'entrée.
    • Si le nombre total de pixels de l'image d'entrée est > 12801280, le nombre total de pixels de sortie avoisine 12801280, tout en conservant le rapport d'aspect de l'entrée.
    • En l'absence d'image d'entrée, la taille de sortie est de 1280*1280.
  • Méthode 2 : Spécifier la largeur et la hauteur de l'image de sortie en pixels

    Le nombre total de pixels doit se situer entre [768768, 12801280], avec un rapport d'aspect compris entre [1:4, 4:1].

    Les valeurs de pixels réelles en sortie correspondent aux multiples de 16 les plus proches de la valeur spécifiée.

Résolutions recommandées pour les rapports d'aspect courants

  • 1:1 : 1280*1280
  • 2:3 : 800*1200
  • 3:2 : 1200*800
  • 3:4 : 960*1280
  • 4:3 : 1280*960
  • 9:16 : 720*1280
  • 16:9 : 1280*720
  • 21:9 : 1344*576

enable_interleave bool (Facultatif)

Contrôle le mode de génération d'images :

  • false (par défaut) : Active le mode édition d'image (prend en charge l'entrée multi-images et la génération avec cohérence du sujet).

    • Cas d'utilisation : Éditer, appliquer un transfert de style ou générer des images avec cohérence du sujet à partir de 1 à 4 images d'entrée.
    • Entrée : Au moins une image de référence est requise.
    • Sortie : Peut générer 1 à 4 images résultantes.
  • true : Active le mode sortie texte-image entrelacée (prend en charge l'entrée d'une image ou d'aucune image).

    • Cas d'utilisation : Générer du contenu combinant texte et images à partir d'une description textuelle, ou effectuer une génération pure de type texte vers image.
    • Entrée : Possibilité de ne fournir aucune image (texte vers image) ou jusqu'à une image de référence.
    • Sortie : Génère un contenu mixte contenant à la fois du texte et des images.

n integer (Facultatif)

ImportantCe paramètre affecte le coût (facturé par image générée avec succès — voir tarifs).

Nombre d'images à générer. Le comportement dépend de enable_interleave :

  • Si enable_interleave=false (mode édition d'image) :

    • Contrôle directement le nombre d'images générées.
    • Plage : 1 à 4. La valeur par défaut est 4.
    • Lors des tests, définissez cette valeur sur 1 pour une validation à faible coût.
  • Si enable_interleave=true (mode texte-image entrelacé) :

    • La valeur par défaut est 1 et doit rester à 1. Toute autre valeur provoque une erreur.
    • Utilisez max_images pour contrôler le nombre d'images dans ce mode.

max_images integer (Facultatif)

ImportantCe paramètre affecte le coût (facturé par image générée avec succès — voir tarifs).

Uniquement effectif en mode texte-image entrelacé (enable_interleave=true).

  • Nombre maximal d'images que le modèle génère dans une seule réponse.
  • Plage : 1 à 5. La valeur par défaut est 5.
  • Définit la limite supérieure. Le modèle peut générer moins d'images que demandé.

prompt_extend bool (Facultatif)

Uniquement effectif en mode édition d'image (enable_interleave = false).

Active la réécriture intelligente du prompt. Optimise uniquement le prompt positif ; le prompt négatif reste inchangé.

  • true (par défaut)
  • false

stream bool (Facultatif)

Active la sortie en streaming. Obligatoire (définir sur true) lorsque enable_interleave=true.

  • false (par défaut)
  • true

watermark bool (Facultatif)

Ajoute un filigrane dans le coin inférieur droit de l'image avec le texte fixe « AI Generated ».

  • false (par défaut)
  • true

seed integer (facultatif)

Graine de nombre aléatoire. Plage valide : [0,2147483647].

L'utilisation de la même seed produit des sorties similaires. En cas d'omission, l'algorithme utilise une graine aléatoire.

Remarque : La génération d'images est probabiliste. Même avec la même seed, les résultats peuvent varier.

Paramètres de réponse

Exécution réussie de la tâche

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.

{
    "output": {
        "choices": [
            {
                "finish_reason": "stop",
                "message": {
                    "content": [
                        {
                            "image": "https://dashscope-result-bj.oss-cn-beijing.aliyuncs.com/xxx.png?Expires=xxx",
                            "type": "image"
                        }
                    ],
                    "role": "assistant"
                }
            }
        ],
        "finished": true
    },
    "usage": {
        "image_count": 1,
        "input_tokens": 0,
        "output_tokens": 0,
        "size": "1376*768",
        "total_tokens": 0
    },
    "request_id": "a3f4befe-cacd-49c9-8298-xxxxxx"
}

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.

{"output":{"choices":[{"message":{"content":[{"type":"text","text":"meat"}],"role":"assistant"},"finish_reason":"null"}],"finished":true},"usage":{"total_tokens":571,"image_count":3,"output_tokens":543,"size":"1280*1280","input_tokens":28},"request_id":"d2dcb952-bf91-4a6a-aad5-xxxxxx"}
{"output":{"choices":[{"message":{"content":[{"type":"text","text":"fragrant"}],"role":"assistant"},"finish_reason":"null"}],"finished":true},"usage":{"total_tokens":572,"image_count":3,"output_tokens":544,"size":"1280*1280","input_tokens":28},"request_id":"d2dcb952-bf91-4a6a-aad5-xxxxxx"}
{"output":{"choices":[{"message":{"content":[{"type":"text","text":"intertwine"}],"role":"assistant"},"finish_reason":"null"}],"finished":true},"usage":{"total_tokens":573,"image_count":3,"output_tokens":545,"size":"1280*1280","input_tokens":28},"request_id":"d2dcb952-bf91-4a6a-aad5-xxxxxx"}
......
{"output":{"choices":[{"message":{"content":[{"type":"image","image":"https://dashscope-result-bj.oss-cn-beijing.aliyuncs.com/xxx.png?Expires=xxxx"}],"role":"assistant"},"finish_reason":"null"}],"finished":true},"usage":{"total_tokens":557,"image_count":3,"output_tokens":529,"size":"1280*1280","input_tokens":28},"request_id":"d2dcb952-bf91-4a6a-aad5-xxxxxx"}
{"output":{"choices":[{"message":{"content":[{"type":"text","text":"while"}],"role":"assistant"},"finish_reason":"null"}],"finished":true},"usage":{"total_tokens":558,"image_count":3,"output_tokens":530,"size":"1280*1280","input_tokens":28},"request_id":"d2dcb952-bf91-4a6a-aad5-xxxxxx"}
{"output":{"choices":[{"message":{"content":[{"type":"text","text":"hot"}],"role":"assistant"},"finish_reason":"null"}],"finished":true},"usage":{"total_tokens":559,"image_count":3,"output_tokens":531,"size":"1280*1280","input_tokens":28},"request_id":"d2dcb952-bf91-4a6a-aad5-xxxxxx"}
{"output":{"choices":[{"message":{"content":[{"type":"text","text":"pinch"}],"role":"assistant"},"finish_reason":"null"}],"finished":true},"usage":{"total_tokens":560,"image_count":3,"output_tokens":532,"size":"1280*1280","input_tokens":28},"request_id":"d2dcb952-bf91-4a6a-aad5-xxxxxx"}
{"output":{"choices":[{"message":{"content":[{"type":"text","text":"up"}],"role":"assistant"},"finish_reason":"null"}],"finished":true},"usage":{"total_tokens":561,"image_count":3,"output_tokens":533,"size":"1280*1280","input_tokens":28},"request_id":"d2dcb952-bf91-4a6a-aad5-xxxxxx"}
{"output":{"choices":[{"message":{"content":[{"type":"text","text":"a piece of"}],"role":"assistant"},"finish_reason":"null"}],"finished":true},"usage":{"total_tokens":562,"image_count":3,"output_tokens":534,"size":"1280*1280","input_tokens":28},"request_id":"d2dcb952-bf91-4a6a-aad5-xxxxxx"}
{"output":{"choices":[{"message":{"content":[{"type":"text","text":"meat"}],"role":"assistant"},"finish_reason":"stop"}],"finished":true},"usage":{"total_tokens":563,"image_count":3,"output_tokens":535,"size":"1280*1280","input_tokens":28},"request_id":"d2dcb952-bf91-4a6a-aad5-xxxxxx"}

Échec de l'exécution de la tâche

En 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.

{
    "request_id": "a4d78a5f-655f-9639-8437-xxxxxx",
    "code": "InvalidParameter",
    "message": "num_images_per_prompt must be 1"
}

output object

Sortie de la tâche.

Propriétés

choices array of object

Contenu de sortie généré par le modèle.

Propriétés

finish_reason string

Raison de la fin de la tâche.

Scénario de sortie non-streaming : s'arrête naturellement avec stop.

Scénario de sortie en streaming : ce paramètre indique si le flux de données a terminé sa transmission.

  • Pendant la transmission : les paquets de données précédents renvoient continuellement "finish_reason": "null", indiquant que le contenu est toujours en cours de génération. Continuez la réception.
  • À la fin de la transmission : seule la dernière structure JSON renvoie "finish_reason":"stop", signalant que la requête en streaming est totalement terminée. Arrêtez la réception.

message object

Message renvoyé par le modèle.

Propriétés

rolestring

Rôle du message, fixé à assistant.

contentarray

Propriétés

type string

Type de sortie. Valeurs énumérées : text, image.

text string

Texte généré.

image string

URL de l'image générée au format PNG.

Le lien expire après 24 heures. Téléchargez et enregistrez l'image rapidement.

finished bool

Indicateur de fin de requête.

  • true
  • false

usage object

Statistiques de sortie. Comptabilise uniquement les résultats réussis.

Propriétés

image_count integer

Nombre d'images générées.

size string

Résolution des images générées. Exemple : 1376*768.

input_tokens integer

Facturation basée sur le nombre d'images.

  • En mode édition d'image, valeur fixée à 0.
  • En mode texte-image entrelacé, ce champ comptabilise les tokens du texte d'entrée (non facturés).

output_tokens integer

Facturation basée sur le nombre d'images.

  • En mode édition d'image, valeur fixée à 0.
  • En mode texte-image entrelacé, ce champ comptabilise les tokens du texte de sortie (non facturés).

total_tokensinteger

Facturation basée sur le nombre d'images.

  • En mode édition d'image, valeur fixée à 0.
  • En mode texte-image entrelacé, ce champ comptabilise le total des tokens (non facturés).

request_id string

Identifiant unique de la requête pour le suivi et le dépannage.

code string

Code d'erreur. Renvoyé uniquement pour les requêtes ayant échoué. Consultez la rubrique Codes d'erreur.

message string

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_id renvoyé pour interroger le résultat. Le task_id reste 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

curl --location 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/image-generation/generation' \
        --header 'Content-Type: application/json' \
        --header "Authorization: Bearer $DASHSCOPE_API_KEY" \
        --header 'X-DashScope-Async: enable' \
        --data '{
            "model": "wan2.6-image",
            "input": {
                "messages": [
                    {
                        "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"
                            }
                        ]
                    }
                ]
            },
            "parameters": {
                "prompt_extend": true,
                "watermark": false,
                "n": 1,
                "enable_interleave": false,
                "size": "1K"
            }
        }'
curl --location 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/image-generation/generation' \
        --header 'Content-Type: application/json' \
        --header "Authorization: Bearer $DASHSCOPE_API_KEY" \
        --header 'X-DashScope-Async: enable' \
        --data '{
            "model": "wan2.6-image",
            "input": {
                "messages": [
                    {
                        "role": "user",
                        "content": [
                            {
                                "text": "Give me a three-image tutorial for stir-fried pork with chili peppers"
                            }
                        ]
                    }
                ]
            },
            "parameters": {
                "max_images": 3,
                "size": "1280*1280",
                "enable_interleave":true
            }
        }'
En-têtes de requête

Content-Type string (Obligatoire)

Type de contenu de la requête. Doit être application/json.

Authorization string (Obligatoire)

Authentifie la requête avec une clé API Model Studio. Exemple : Bearer sk-xxxx.

X-DashScope-Asyncstring(Obligatoire)

Commutateur de mode asynchrone. Doit être défini à enable.

ImportantL'omission de cet en-tête renvoie l'erreur : « current user api does not support synchronous calls ».

Corps de la requête

model string (Obligatoire)

Nom du modèle.

Exemple : wan2.6-image

input object (Obligatoire)

Configuration d'entrée.

Propriétés

messages array (Obligatoire)

Tableau du contenu de la requête. Seules les conversations à tour unique sont prises en charge — fournissez une paire rôle-contenu. Les conversations multi-tours ne sont pas prises en charge.

Propriétés

rolestring (Obligatoire)

Rôle du message. Définissez-le à user.

contentarray (Obligatoire)

Tableau du contenu du message.

Propriétés

textstring(Obligatoire)

Prompt positif décrivant le contenu, le style et la composition souhaités pour l'image.

Prend en charge le chinois et l'anglais. Maximum de 2 000 caractères (chaque caractère chinois, lettre, chiffre ou symbole compte pour un). Tronqué automatiquement en cas de dépassement.

Exemple : Générer un sauté de tomates et d'œufs basé sur le style de cette image.

Remarque : Le tableau content doit contenir exactement un objet avec un champ text.

imagestring(Facultatif)

URL ou chaîne encodée en Base64 de l'image d'entrée.

Contraintes relatives à l'image :

  • Formats d'image : JPEG, JPG, PNG (canal alpha non pris en charge), BMP, WebP.
  • Résolution de l'image : la largeur et la hauteur doivent chacune être comprises entre 240 et 8 000 pixels.
  • Taille du fichier : ne doit pas dépasser 10 Mo.

Limites de quantité d'images :

  • Le nombre d'images d'entrée dépend du paramètre parameters.enable_interleave.

    • Lorsque enable_interleave=true (sortie texte-image entrelacée), vous pouvez entrer 0 à 1 image.
    • Lorsque enable_interleave=false (édition d'image), vous devez entrer 1 à 4 images.
  • Pour entrer plusieurs images, incluez plusieurs objets image dans le tableau content, en définissant l'ordre des images selon la séquence du tableau.

Formats d'entrée pris en charge :

  1. Utiliser une URL accessible publiquement

    • Prend en charge les protocoles HTTP ou HTTPS.
    • Exemple : http://wanx.alicdn.com/material/xxx.jpeg.
  2. Fournir une chaîne d'image encodée en Base64

    • Format : data:{MIME_type};base64,{base64_data}
    • Exemple : data:image/jpeg;base64,GDU7MtCZzEbTbmRZ... (à titre d'illustration uniquement ; fournissez la chaîne complète en pratique)
    • Pour les directives d'encodage Base64, consultez Méthodes d'entrée d'image.

parameters object (Facultatif)

Paramètres de génération.

Propriétés

negative_prompt string (facultatif)

Un prompt négatif décrivant ce que vous ne voulez pas voir apparaître dans l'image.

Prend en charge le chinois et l'anglais. La longueur maximale est de 500 caractères. Les caractères excédentaires sont tronqués automatiquement.

Exemple : Faible résolution, basse qualité, membres déformés, doigts malformés, couleurs trop saturées, aspect cireux, absence de détails faciaux, surfaces trop lisses, apparence générée par IA. Composition chaotique. Texte flou ou déformé.

size string (Facultatif)

Résolution de l'image de sortie. Prend en charge deux méthodes : référence aux proportions de l'image d'entrée ou spécification directe des dimensions.

Lorsque enable_interleave=false (mode édition d'image) :

  • Méthode 1 : Référence aux proportions de l'image d'entrée (recommandé)

    Options de résolution de sortie disponibles : 1K (par défaut), 2K.

    • 1K : Total de pixels de sortie proche de 1280*1280, en maintenant le rapport d'aspect de la dernière image d'entrée.
    • 2K : Total de pixels de sortie proche de 2048*2048, en maintenant le rapport d'aspect de la dernière image d'entrée.
  • Méthode 2 : Spécifier la largeur et la hauteur de l'image de sortie en pixels

    Le total de pixels doit être compris entre [768768, 20482048], avec un rapport d'aspect allant de [1:4, 4:1].

    Les valeurs réelles de pixels de sortie correspondent aux multiples de 16 les plus proches de la valeur spécifiée.

Lorsque enable_interleave=true (mode sortie texte-image entrelacée) :

  • Méthode 1 : Référence aux proportions de l'image d'entrée (méthode par défaut)

    • Si le total de pixels de l'image d'entrée ≤ 1280*1280, la sortie correspond au total de pixels et au rapport d'aspect de l'entrée.
    • Si le total de pixels de l'image d'entrée > 12801280, le total de pixels de sortie est proche de 12801280, tout en maintenant le rapport d'aspect de l'entrée.
    • Si aucune image d'entrée n'est fournie, la taille de sortie est de 1280*1280.
  • Méthode 2 : Spécifier la largeur et la hauteur de l'image de sortie en pixels

    Le total de pixels doit être compris entre [768768, 12801280], avec un rapport d'aspect allant de [1:4, 4:1].

    Les valeurs réelles de pixels de sortie correspondent aux multiples de 16 les plus proches de la valeur spécifiée.

Résolutions recommandées pour les rapports d'aspect courants

  • 1:1 : 1280*1280
  • 2:3 : 800*1200
  • 3:2 : 1200*800
  • 3:4 : 960*1280
  • 4:3 : 1280*960
  • 9:16 : 720*1280
  • 16:9 : 1280*720
  • 21:9 : 1344*576

enable_interleave bool (Facultatif)

Contrôle le mode de génération d'images :

  • false (par défaut) : Indique le mode édition d'image (prend en charge l'entrée multi-images et la génération avec cohérence du sujet).

    • Cas d'utilisation : Éditer, appliquer un transfert de style ou générer des images cohérentes avec le sujet à partir de 1 à 4 images d'entrée.
    • Entrée : Vous devez fournir au moins une image de référence.
    • Sortie : Peut générer de 1 à 4 images résultantes.
  • true : Active le mode de sortie texte-image entrelacée (prend en charge l'entrée d'une image ou d'aucune image).

    • Cas d'utilisation : Générer du contenu combinant texte et images à partir d'une description textuelle, ou effectuer une génération pure de texte vers image.
    • Entrée : Peut ne fournir aucune image (texte vers image) ou jusqu'à une image de référence.
    • Sortie : Génère un contenu mixte contenant à la fois du texte et des images.

n integer (Facultatif)

ImportantCe paramètre affecte le coût (facturé par image réussie -- voir tarification).

Nombre d'images à générer. Le comportement dépend de enable_interleave :

  • Lorsque enable_interleave=false (mode édition d'image) :

    • Contrôle directement le nombre d'images générées.
    • Plage : de 1 à 4. La valeur par défaut est 4.
    • Lors des tests, définissez cette valeur à 1 pour une validation à faible coût.
  • Lorsque enable_interleave=true (mode texte-image entrelacé) :

    • La valeur par défaut est 1 et doit rester à 1. Toute autre valeur provoque une erreur.
    • Utilisez max_images pour contrôler le nombre d'images dans ce mode.

max_images integer (Facultatif)

ImportantCe paramètre affecte le coût (facturé par image réussie -- voir tarification).

Effectif uniquement en mode texte-image entrelacé (enable_interleave=true).

  • Nombre maximal d'images que le modèle génère dans une seule réponse.
  • Plage : de 1 à 5. La valeur par défaut est 5.
  • Définit la limite supérieure. Le modèle peut générer moins d'images que demandé.

prompt_extend bool (Facultatif)

Effectif uniquement en mode édition d'image (enable_interleave = false).

Active la réécriture intelligente du prompt. Optimise uniquement le prompt positif ; le prompt négatif reste inchangé.

  • true (par défaut)
  • false

watermark bool (Facultatif)

Ajoute un filigrane dans le coin inférieur droit de l'image avec le texte fixe « AI Generated ».

  • false (par défaut)
  • true

seed integer (facultatif)

Graine de nombre aléatoire. Plage valide : [0,2147483647].

L'utilisation de la même seed produit des sorties similaires. Si omis, l'algorithme utilise une graine aléatoire.

Remarque : La génération d'images est probabiliste. Même avec la même seed, les résultats peuvent varier.

Paramètres de réponse

Réponse réussie

Conservez le task_id afin d'interroger ultérieurement l'état et le résultat de la tâche.

{
        "output": {
            "task_status": "PENDING",
            "task_id": "0385dc79-5ff8-4d82-bcb6-xxxxxx"
        },
        "request_id": "4909100c-7b5a-9f92-bfe5-xxxxxx"
    }

Réponse d'erreur

La création de la tâche a échoué. Consultez la section Codes d'erreur.

{
        "code": "InvalidApiKey",
        "message": "No API-key provided.",
        "request_id": "7438d53d-6eb8-4596-8835-xxxxxx"
    }

output object

Sortie de la tâche.

Propriétés

task_id string

Identifiant de la tâche. Valide pour les requêtes pendant 24 heures.

task_status string

État actuel de la tâche.

Valeurs d'énumération

  • PENDING
  • RUNNING
  • SUCCEEDED
  • FAILED
  • CANCELED
  • UNKNOWN : la tâche n'existe pas ou son état est inconnu.

request_id string

Identifiant unique de la requête, utilisé pour le suivi et le dépannage.

code string

Code d'erreur. Renvoyé uniquement en cas d'échec de la requête. Consultez la section Codes d'erreur.

message string

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âche

Remplacez {task_id} par la valeur task_id renvoyée lors de l'appel API précédent. Le task_id reste valide pour les requêtes pendant 24 heures. Remplacez {WorkspaceId} par votre véritable workspace ID.

curl -X GET https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/tasks/{task_id} \
    --header "Authorization: Bearer $DASHSCOPE_API_KEY"
En-têtes de requête

Authorization string (Obligatoire)

Authentifie la requête à l'aide d'une clé API Model Studio. Exemple : Bearer sk-xxxx.

Paramètres de chemin URL

task_id string (Obligatoire)

Identifiant de la tâche.

Paramètres de réponse

Exécution réussie de la tâche

Les 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.

{
    "request_id": "43d9e959-25bc-4dc7-9888-xxxxxx",
    "output": {
        "task_id": "858cad55-4bdc-4ba3-ae6c-xxxxxx",
        "task_status": "SUCCEEDED",
        "submit_time": "2025-12-16 04:21:02.275",
        "scheduled_time": "2025-12-16 04:21:02.304",
        "end_time": "2025-12-16 04:24:46.658",
        "finished": true,
        "choices": [
            {
                "finish_reason": "stop",
                "message": {
                    "role": "assistant",
                    "content": [
                        {
                            "image": "https://dashscope-result-bj.oss-cn-beijing.aliyuncs.com/1xxx.png?Expires=xxx",
                            "type": "image"
                        }
                    ]
                }
            },
            {
                "finish_reason": "stop",
                "message": {
                    "role": "assistant",
                    "content": [
                        {
                            "image": "https://dashscope-result-bj.oss-cn-beijing.aliyuncs.com/1xxx.png?Expires=xxx",
                            "type": "image"
                        }
                    ]
                }
            }
        ]
    },
    "usage": {
        "size": "1376*768",
        "total_tokens": 0,
        "image_count": 2,
        "output_tokens": 0,
        "input_tokens": 0
    }
}

Échec de l'exécution de la tâche

En 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.

{
    "request_id": "a4d78a5f-655f-9639-8437-xxxxxx",
    "code": "InvalidParameter",
    "message": "num_images_per_prompt must be 1"
}

output object

Informations de sortie de la tâche.

Propriétés

task_id string

Identifiant de la tâche. Valide pour les requêtes pendant 24 heures.

task_status string

État actuel de la tâche.

Valeurs d'énumération

  • PENDING
  • RUNNING
  • SUCCEEDED
  • FAILED
  • CANCELED
  • UNKNOWN : la tâche n'existe pas ou son état est inconnu.
Transitions d'état lors de l'interrogation :
  • PENDING → RUNNING → SUCCEEDED ou FAILED.
  • L'état initial de la requête est généralement PENDING ou RUNNING.
  • Lorsque l'état passe à SUCCEEDED, la réponse contient l'URL de l'image générée.
  • Si l'état est FAILED, vérifiez le message d'erreur et réessayez la tâche.

submit_time string

Heure de soumission de la tâche. L'heure est indiquée en UTC+8 et le format est AAAA-MM-JJ HH:mm:ss.SSS.

scheduled_time string

Heure d'exécution de la tâche. L'heure est indiquée en UTC+8 et le format est AAAA-MM-JJ HH:mm:ss.SSS.

end_time string

Heure de fin de la tâche. L'heure est indiquée en UTC+8 et le format est AAAA-MM-JJ HH:mm:ss.SSS.

finished bool

Indicateur de fin de requête.

  • true
  • false

choices array of object

Contenu de sortie généré par le modèle.

Propriétés

finish_reason string

Raison de la fin de la tâche. L'arrêt naturel se fait avec stop.

message object

Message renvoyé par le modèle.

Propriétés

rolestring

Rôle du message, fixé à assistant.

contentarray

Propriétés

type string

Type de sortie. Valeurs énumérées : text, image.

text string

Texte généré.

image string

URL de l'image générée au format PNG.

Le lien expire après 24 heures. Téléchargez et enregistrez l'image sans tarder.

usage object

Statistiques de sortie. Comptabilise uniquement les résultats réussis.

Propriétés

image_count integer

Nombre d'images générées.

size string

Résolution des images générées. Exemple : 1376*768.

input_tokens integer

Nombre de tokens en entrée. Facturé selon le nombre d'images. Actuellement fixé à 0.

output_tokens integer

Nombre de tokens en sortie. Facturé selon le nombre d'images. Actuellement fixé à 0.

total_tokensinteger

Nombre total de tokens. Facturé selon le nombre d'images. Actuellement fixé à 0.

request_id string

Identifiant unique de la requête, utilisé pour le suivi et le dépannage.

code string

Code d'erreur. Renvoyé uniquement en cas d'échec de la requête. Consultez la section Codes d'erreur.

message string

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
  1. 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
        }
    }
    
  2. 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
  1. 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
        }
    }
    
  2. 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
  1. 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
    }
    
  2. 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
  1. 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": ""
    }
    
  2. 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_id de la tâche et l'url de 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 prompt d'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 erreur IPInfringementSuspect ou DataInspectionFailed. 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.