Tous les produits
Search
Centre de documentation

Alibaba Cloud Model Studio:Wan2.1 - Référence de l'API d'édition d'image générale

Dernière mise à jour :Oct 11, 2026

Cette rubrique décrit les paramètres d'entrée et de sortie du modèle Wan d'édition d'image générale.

ImportantCe document concerne uniquement la région China (Beijing). Pour utiliser le modèle, servez-vous d'une clé API de la région China(Beijing).

Ce modèle utilise des instructions simples pour réaliser diverses tâches d'édition d'image (expansion d'image, suppression de filigrane, transfert de style, inpainting et amélioration d'image). Les fonctionnalités suivantes sont actuellement prises en charge :

  • Stylisation d'image : Stylisation globale et locale.
  • Édition du contenu de l'image : Édition basée sur des instructions (ajout ou modification du contenu de l'image via des instructions sans spécifier de zone), inpainting (ajout, suppression ou modification de contenu dans une zone définie) et suppression de filigranes textuels (chinois et anglais).
  • Optimisation de la taille et de la résolution de l'image : Expansion d'image (agrandissement proportionnel) et super résolution (amélioration vers la haute définition).
  • Traitement des couleurs de l'image : Colorisation (conversion d'images en noir et blanc ou en niveaux de gris vers la couleur).
  • Génération basée sur une image de référence : Génération d'image à partir d'un croquis (extraction d'un croquis depuis l'image d'entrée puis génération d'une nouvelle image basée sur ce croquis) et génération par référence de personnage de dessin animé.

Guide associé : Édition d'image - Wan2.1

Présentation du modèle

Modèle

Prix

Limite de taux (partagée entre les comptes racines et les utilisateurs RAM)

RPS de soumission de tâche

Tâches simultanées

wanx2.1-imageedit

0,020070 $/image

2

2

Effets du modèle

Fonctionnalité

Image d'entrée

Invite d'entrée

Image de sortie

Stylisation globale

image

Convertir en style livre d'images français

image

Stylisation locale

image

Changer la maison en style bois.

image

Édition basée sur des instructions

image

Changer ses cheveux en rouge.

image

Inpainting

Image d'entrée

image

Image de masque d'entrée (le blanc correspond à la zone masquée)

image

Un lapin en céramique tenant une fleur en céramique.

Image de sortie

image

Suppression de filigrane textuel

image

Supprimer le texte de l'image.

image

Expansion d'image

20250319105917

Une fée verte.

image

Super résolution

Image floue

image

Super résolution.

Image nette

image

Colorisation

image

Fond bleu, feuilles jaunes.

image

Génération d'image à partir d'un croquis

Image d'entrée

image

Un salon dans un style nordique minimaliste.

Extraire le croquis de l'image originale et générer une nouvelle image

image

Génération par référence de personnage de dessin animé

Image de référence d'entrée (personnage de dessin animé)

image

Le personnage de dessin animé jette un coup d'œil prudent, observant un joyau bleu étincelant dans la pièce.

Image de sortie

image

Prérequis

Appelez l'API Wan d'édition d'image générale via HTTP ou le SDK DashScope.

Avant tout appel, obtenez une clé API et exportez-la en tant que variable d'environnement.

Pour appeler l'API avec le SDK, installez le SDK DashScope. Le SDK est disponible pour Python et Java.

HTTP

Les modèles d'image nécessitent un temps de traitement important. Afin d'éviter les délais d'expiration, les appels HTTP prennent uniquement en charge la récupération asynchrone des résultats. Deux requêtes sont nécessaires :

  1. Créer une tâche pour obtenir un ID de tâche : Envoyez une requête de création de tâche. La réponse renvoie un ID de tâche (task_id).
  2. Interroger le résultat à l'aide de l'ID de tâche : Utilisez l'ID de tâche obtenu à l'étape précédente pour interroger l'état et le résultat de la tâche. En cas de succès, la réponse renvoie une URL d'image valide pendant 24 heures.

RemarqueAprès sa création, la tâche entre dans une file d'attente pour planification. Appelez l'API d'interrogation pour récupérer l'état et le résultat de la tâche.

Le modèle d'édition d'image générale traite une requête en 5 à 15 secondes environ. Le délai réel dépend du nombre de tâches en attente et des conditions réseau. Veuillez patienter jusqu'à l'obtention du résultat.

Étape 1 : Créer une tâche pour obtenir un ID de tâche

POST https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1/services/aigc/image2image/image-synthesis

Remplacez {WorkspaceId} par votre véritable ID d'espace de travail.

Paramètres de requête

Stylisation globale

curl --location 'https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1/services/aigc/image2image/image-synthesis' \
--header 'X-DashScope-Async: enable' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
  "model": "wanx2.1-imageedit",
  "input": {
    "function": "stylization_all",
    "prompt": "Convert to French picture book style",
    "base_image_url": "http://wanx.alicdn.com/material/20250318/stylization_all_1.jpeg"
  },
  "parameters": {
    "n": 1
  }
}'

Transmettre un fichier local (Base64)

L'exemple suivant montre comment transmettre un paramètre encodé en Base64 pour la stylisation globale.

La chaîne encodée en Base64 étant longue, téléchargez image_base64 et copiez l'intégralité de son contenu dans le paramètre base_image_url.

Pour plus d'informations sur le format des données, consultez Formats pris en charge.

curl --location 'https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1/services/aigc/image2image/image-synthesis' \
--header 'X-DashScope-Async: enable' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
  "model": "wanx2.1-imageedit",
  "input": {
    "function": "stylization_all",
    "prompt": "Convert to French picture book style",
    "base_image_url": "data:image/jpeg;base64,/9j/4AAQSkZJR......"
  },
  "parameters": {
    "n": 1
  }
}'

Stylisation locale

curl --location 'https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1/services/aigc/image2image/image-synthesis' \
--header 'X-DashScope-Async: enable' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
  "model": "wanx2.1-imageedit",
  "input": {
    "function": "stylization_local",
    "prompt": "Change the house to a wooden style.",
    "base_image_url": "http://wanx.alicdn.com/material/20250318/stylization_local_1.png"
  },
  "parameters": {
    "n": 1
  }
}'

Édition basée sur des instructions

Description de la fonctionnalité : Ajouter ou modifier le contenu de l'image en utilisant uniquement des instructions, sans spécifier de zone.

curl --location 'https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1/services/aigc/image2image/image-synthesis' \
--header 'X-DashScope-Async: enable' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
  "model": "wanx2.1-imageedit",
  "input": {
    "function": "description_edit",
    "prompt": "Change her hair to red.",
    "base_image_url": "http://wanx.alicdn.com/material/20250318/description_edit_2.png"
  },
  "parameters": {
    "n": 1
  }
}'

Inpainting

Description de la fonctionnalité : Ajouter, supprimer ou modifier du contenu dans une zone spécifiée.

curl --location 'https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1/services/aigc/image2image/image-synthesis' \
--header 'X-DashScope-Async: enable' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
  "model": "wanx2.1-imageedit",
  "input": {
    "function": "description_edit_with_mask",
    "prompt": "A ceramic rabbit holding a ceramic flower.",
    "base_image_url": "http://wanx.alicdn.com/material/20250318/description_edit_with_mask_3.jpeg",
    "mask_image_url": "http://wanx.alicdn.com/material/20250318/description_edit_with_mask_3_mask.png"
  },
  "parameters": {
    "n": 1
  }
}'

Suppression de filigrane textuel

Description de la fonctionnalité : Prend en charge la suppression de filigranes textuels en chinois et en anglais.

curl --location 'https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1/services/aigc/image2image/image-synthesis' \
--header 'X-DashScope-Async: enable' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
  "model": "wanx2.1-imageedit",
  "input": {
    "function": "remove_watermark",
    "prompt": "Remove the text from the image",
    "base_image_url": "http://wanx.alicdn.com/material/20250318/remove_watermark_1.png"
  },
  "parameters": {
    "n": 1
  }
}'

Expansion d'image

Description de la fonctionnalité : Prend en charge l'expansion proportionnelle de l'image vers le haut, le bas, la gauche et la droite.

curl --location 'https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1/services/aigc/image2image/image-synthesis' \
--header 'X-DashScope-Async: enable' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
  "model": "wanx2.1-imageedit",
  "input": {
    "function": "expand",
    "prompt": "A green fairy",
    "base_image_url": "http://wanx.alicdn.com/material/20250318/expand_2.jpg"
  },
  "parameters": {
    "top_scale": 1.5,
    "bottom_scale": 1.5,
    "left_scale": 1.5,
    "right_scale": 1.5,
    "n": 1
  }
}'

Super résolution

Description de la fonctionnalité : Prend en charge l'amélioration d'une image floue vers la haute définition.

curl --location 'https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1/services/aigc/image2image/image-synthesis' \
--header 'X-DashScope-Async: enable' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
  "model": "wanx2.1-imageedit",
  "input": {
    "function": "super_resolution",
    "prompt": "Super resolution.",
    "base_image_url": "http://wanx.alicdn.com/material/20250318/super_resolution_1.jpeg"
  },
  "parameters": {
    "upscale_factor": 2,
    "n": 1
  }
}'

Colorisation

Description de la fonctionnalité : Convertit une image en noir et blanc ou en niveaux de gris en image couleur.

curl --location 'https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1/services/aigc/image2image/image-synthesis' \
--header 'X-DashScope-Async: enable' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
  "model": "wanx2.1-imageedit",
  "input": {
    "function": "colorization",
    "prompt": "Blue background, yellow leaves.",
    "base_image_url": "http://wanx.alicdn.com/material/20250318/colorization_1.jpeg"
  },
  "parameters": {
    "n": 1
  }
}'

Génération d'image à partir d'un croquis

Description de la fonctionnalité : Extrait un croquis de l'image d'entrée, puis génère une image basée sur ce croquis.

curl --location 'https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1/services/aigc/image2image/image-synthesis' \
--header 'X-DashScope-Async: enable' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
  "model": "wanx2.1-imageedit",
  "input": {
    "function": "doodle",
    "prompt": "A living room in a minimalist Nordic style.",
    "base_image_url": "http://wanx.alicdn.com/material/20250318/doodle_1.png"
  },
  "parameters": {
    "n": 1
  }
}'

Génération par référence de personnage de dessin animé

Description de la fonctionnalité : Prend en charge la génération d'une image basée sur un personnage de dessin animé de référence.

curl --location 'https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1/services/aigc/image2image/image-synthesis' \
--header 'X-DashScope-Async: enable' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
  "model": "wanx2.1-imageedit",
  "input": {
    "function": "control_cartoon_feature",
    "prompt": "The cartoon character cautiously peeks out, looking at a sparkling blue gem in the room.",
    "base_image_url": "http://wanx.alicdn.com/material/20250318/control_cartoon_feature_1.png"
  },
  "parameters": {
    "n": 1
  }
}'
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-Async string (Obligatoire)

Active le traitement asynchrone. Les requêtes HTTP ne prennent en charge que les appels asynchrones. La valeur doit être enable.

ImportantSi cet en-tête de requête est absent, l'erreur « current user api does not support synchronous calls » est renvoyée.

Corps de la requête

model string (Obligatoire)

Nom du modèle, par exemple wanx2.1-imageedit.

input object (Obligatoire)

Informations d'entrée de base (invite).

Propriétés

promptstring(Obligatoire)

Invite utilisée pour décrire les éléments souhaités et les caractéristiques visuelles de l'image générée.

Prend en charge le chinois et l'anglais. Longueur maximale : 800 caractères. Chaque caractère chinois ou lettre compte pour un caractère. Les caractères excédentaires sont automatiquement tronqués.

Les invites varient selon les fonctionnalités. Nous vous recommandons de consulter les conseils de rédaction d'invites correspondants pour chaque fonctionnalité.

functionstring(Obligatoire)

Fonctionnalité d'édition d'image. Les fonctionnalités suivantes sont actuellement prises en charge :

base_image_url string (Obligatoire)

URL ou données encodées en Base64 de l'image d'entrée.

Exigences relatives à l'image :

  • Format de fichier : JPG, JPEG, PNG, BMP, TIFF ou WEBP
  • Résolution : La largeur et la hauteur doivent être comprises entre 512 et 4 096 pixels
  • Taille du fichier : Maximum 10 Mo
  • L'URL ne peut pas contenir de caractères chinois

Formats d'image d'entrée :

  1. Utiliser une URL publique

    • Les protocoles HTTP et HTTPS sont pris en charge.
    • Exemple : http://wanx.alicdn.com/material/20250318/stylization_all_1.jpeg
  2. Transmettre une chaîne d'image encodée en Base64

    • Format des données : data:{MIME_type};base64,{base64_data}
    • Exemple : data:image/jpeg;base64,GDU7MtCZzEbTbmRZ......
    • La chaîne encodée dans l'exemple est incomplète et fournie à titre indicatif uniquement. Pour plus d'informations, consultez Formats pris en charge.

mask_image_url string (Facultatif)

Ce paramètre est requis uniquement lorsque function est défini sur description_edit_with_mask (inpainting). Il n'est pas nécessaire pour les autres fonctionnalités.

URL ou données encodées en Base64 de l'image de masque.

Vous pouvez transmettre une URL accessible publiquement (HTTP/HTTPS) ou une chaîne encodée en Base64. Pour plus d'informations, consultez Formats pris en charge.

Exigences relatives à l'image de masque :

  • Résolution : Doit correspondre à la résolution de l'image spécifiée par base_image_url. La largeur et la hauteur doivent être comprises entre 512 et 4 096 pixels
  • Format de fichier : JPG, JPEG, PNG, BMP, TIFF ou WEBP
  • Taille du fichier : Maximum 10 Mo
  • L'URL ne peut pas contenir de caractères chinois

Exigences de couleur pour la zone de masque :

  • Zone blanche : Indique la partie à modifier. Elle doit être d'un blanc pur (valeur RVB [255,255,255]). Sinon, elle risque de ne pas être correctement identifiée.
  • Zone noire : Indique la partie qui ne doit pas être modifiée. Elle doit être d'un noir pur (valeur RVB [0,0,0]). Sinon, elle risque de ne pas être correctement identifiée.

Pour obtenir une image de masque, utilisez Photoshop ou un autre outil.

parameters object (Facultatif)

Paramètres de traitement de l'image.

Propriétés

Général

n integer (Facultatif)

Nombre d'images à générer. Plage de valeurs : 1 à 4. Valeur par défaut : 1.

seedinteger(Facultatif)

Graine aléatoire utilisée pour contrôler l'aléatoire du contenu généré par le modèle. Plage de valeurs : [0, 2147483647].

Si aucune valeur n'est fournie, l'algorithme génère automatiquement un nombre aléatoire comme graine. Pour maintenir une relative stabilité du contenu généré, utilisez la même valeur de graine.

watermark bool (Facultatif)

Indique s'il faut ajouter un filigrane. Le filigrane se trouve dans le coin inférieur droit de l'image et affiche « Generated by AI ».

  • false (par défaut)
  • true

Stylisation globale

n integer (Facultatif)

Nombre d'images à générer. Valeur entière comprise entre 1 et 4. Valeur par défaut : 1.

seedinteger(Facultatif)

Graine aléatoire utilisée pour contrôler l'aléatoire du contenu généré par le modèle. Valeur entière comprise dans l'intervalle [0, 2147483647].

Si vous ne fournissez pas ce paramètre, l'algorithme génère automatiquement un nombre aléatoire comme graine. Pour garantir une relative stabilité du contenu généré, utilisez la même valeur de graine.

watermark bool (Facultatif)

Indique s'il faut ajouter un filigrane. Le filigrane est situé dans le coin inférieur droit de l'image et affiche Generated by AI.

  • false : Valeur par défaut. Aucun filigrane n'est ajouté.
  • true : Un filigrane est ajouté.

strength float (Facultatif)

Spécifiez ce paramètre lorsque function est défini sur stylization_all (stylisation globale).

Degré de modification de l'image. Plage de valeurs : 0,0 à 1,0. Valeur par défaut : 0,5.

Une valeur proche de 0 signifie que le résultat est plus proche de l'image originale. Une valeur proche de 1 indique une modification plus importante de l'image originale.

Édition basée sur des instructions

n integer (Facultatif)

Nombre d'images à générer. Valeur entière comprise entre 1 et 4. Valeur par défaut : 1.

seedinteger(Facultatif)

Graine aléatoire utilisée pour contrôler l'aléatoire du contenu généré par le modèle. Valeur entière comprise dans l'intervalle [0, 2147483647].

Si vous ne fournissez pas ce paramètre, l'algorithme génère automatiquement un nombre aléatoire comme graine. Pour garantir une relative stabilité du contenu généré, utilisez la même valeur de graine.

watermark bool (Facultatif)

Indique s'il faut ajouter un filigrane. Le filigrane est situé dans le coin inférieur droit de l'image et affiche Generated by AI.

  • false : Valeur par défaut. Aucun filigrane n'est ajouté.
  • true : Un filigrane est ajouté.

strength float (Facultatif)

Spécifiez ce paramètre lorsque function est défini sur description_edit (édition basée sur des instructions).

Degré de modification de l'image. Valeur décimale comprise entre 0,0 et 1,0. Valeur par défaut : 0,5.

Une valeur proche de 0 signifie que le résultat est plus proche de l'image originale. Une valeur proche de 1 indique un degré de modification plus élevé de l'image originale.

Expansion d'image

n integer (Facultatif)

Nombre d'images à générer. Valeur entière comprise entre 1 et 4. Valeur par défaut : 1.

seedinteger(Facultatif)

Graine aléatoire utilisée pour contrôler l'aléatoire du contenu généré par le modèle. Valeur entière comprise dans l'intervalle [0, 2147483647].

Si vous ne fournissez pas ce paramètre, l'algorithme génère automatiquement un nombre aléatoire comme graine. Pour garantir une relative stabilité du contenu généré, utilisez la même valeur de graine.

watermark bool(Facultatif)

Indique s'il faut ajouter un filigrane. Le filigrane est situé dans le coin inférieur droit de l'image et affiche Generated by AI.

  • false : Valeur par défaut. Aucun filigrane n'est ajouté.
  • true : Un filigrane est ajouté.

top_scale float(Facultatif)

Spécifiez ce paramètre uniquement lorsque function est défini sur expand (expansion d'image).

Étend l'image centrée vers le haut selon un ratio spécifié. Valeur par défaut : 1,0. Plage de valeurs : 1,0 à 2,0.

bottom_scale float(Facultatif)

Spécifiez ce paramètre uniquement lorsque function est défini sur expand (expansion d'image).

Étend l'image centrée vers le bas selon un ratio spécifié. Valeur par défaut : 1,0. Plage de valeurs : 1,0 à 2,0.

left_scale float(Facultatif)

Spécifiez ce paramètre uniquement lorsque function est défini sur expand (expansion d'image).

Étend l'image centrée vers la gauche selon un ratio spécifié. Valeur par défaut : 1,0. Plage de valeurs : 1,0 à 2,0.

right_scale float(Facultatif)

Spécifiez ce paramètre uniquement lorsque function est défini sur expand (expansion d'image).

Étend l'image centrée vers la droite selon un ratio spécifié. Valeur par défaut : 1,0. Plage de valeurs : 1,0 à 2,0.

Super résolution

n integer (Facultatif)

Nombre d'images à générer. Valeur entière comprise entre 1 et 4. Valeur par défaut : 1.

seedinteger(Facultatif)

Graine aléatoire utilisée pour contrôler l'aléatoire du contenu généré par le modèle. Valeur entière comprise dans l'intervalle [0, 2147483647].

Si vous ne fournissez pas ce paramètre, l'algorithme génère automatiquement un nombre aléatoire comme graine. Pour garantir une relative stabilité du contenu généré, utilisez la même valeur de graine.

watermark bool(Facultatif)

Indique s'il faut ajouter un filigrane. Le filigrane est situé dans le coin inférieur droit de l'image et affiche Generated by AI.

  • false : Valeur par défaut. Aucun filigrane n'est ajouté.
  • true : Un filigrane est ajouté.

upscale_factor integer(Facultatif)

Spécifiez ce paramètre uniquement lorsque function est défini sur super_resolution (super résolution).

Facteur de mise à l'échelle pour la super résolution, qui améliore les détails tout en agrandissant l'image et augmente la résolution pour un traitement haute définition.

Plage de valeurs : 1 à 4. Valeur par défaut : 1. Lorsque upscale_factor est défini sur 1, l'image est traitée en haute définition sans être agrandie.

Génération d'image à partir d'un croquis

n integer (Facultatif)

Nombre d'images à générer. Valeur entière comprise entre 1 et 4. Valeur par défaut : 1.

seedinteger(Facultatif)

Graine aléatoire utilisée pour contrôler l'aléatoire du contenu généré par le modèle. Valeur entière comprise dans l'intervalle [0, 2147483647].

Si vous ne fournissez pas ce paramètre, l'algorithme génère automatiquement un nombre aléatoire comme graine. Pour garantir une relative stabilité du contenu généré, utilisez la même valeur de graine.

watermark bool (Facultatif)

Indique s'il faut ajouter un filigrane. Le filigrane est situé dans le coin inférieur droit de l'image et affiche Generated by AI.

  • false : Valeur par défaut. Aucun filigrane n'est ajouté.
  • true : Un filigrane est ajouté.

is_sketch bool (Facultatif)

Spécifiez ce paramètre uniquement lorsque function est défini sur doodle (génération d'image à partir d'un croquis).

Indique si l'image d'entrée est une image de type croquis.

  • false (par défaut) : L'image d'entrée n'est pas un croquis. Le modèle extrait d'abord un croquis de l'image d'entrée, puis génère une nouvelle image basée sur ce croquis.
  • true : L'image d'entrée est un croquis. Le modèle génère une image directement à partir de l'image d'entrée. Adapté aux scénarios de transformation de gribouillis en peinture.

Paramètres de réponse

Réponse réussie

Enregistrez le task_id pour interroger 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

Échec de la création de la tâche. Consultez Codes d'erreur.

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

output object

Informations de sortie de la tâche.

Propriétés

task_id string

ID de la tâche. Valide pour les interrogations pendant 24 heures.

task_status string

État 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 pour le suivi et le dépannage.

code string

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

message string

Message d'erreur détaillé. Renvoyé uniquement pour les requêtes ayant échoué. Consultez Codes d'erreur.

Étape 2 : Interroger le résultat par ID de tâche

GET https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1/tasks/{task_id}

Remplacez {WorkspaceId} par votre véritable ID d'espace de travail.

Paramètres de requête

Interroger le résultat de la tâche

Remplacez 86ecf553-d340-4e21-xxxxxxxxx par votre véritable task_id.

curl -X GET https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1/tasks/86ecf553-d340-4e21-xxxxxxxxx \
    --header "Authorization: Bearer $DASHSCOPE_API_KEY"
En-têtes de requête

Authorization string (Obligatoire)

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

Paramètres de chemin

task_id string (Obligatoire)

ID de la tâche.

Paramètres de réponse

Tâche réussie

Les données de la tâche (état de la tâche et URL des images) ne sont conservées que pendant 24 heures, puis automatiquement supprimées. Enregistrez rapidement les images générées.

{
    "request_id": "eeef0935-02e9-9742-bb55-xxxxxx",
    "output": {
        "task_id": "a425c46f-dc0a-400f-879e-xxxxxx",
        "task_status": "SUCCEEDED",
        "submit_time": "2025-02-21 17:56:31.786",
        "scheduled_time": "2025-02-21 17:56:31.821",
        "end_time": "2025-02-21 17:56:42.530",
        "results": [
            {
                "url": "https://dashscope-result-sh.oss-cn-shanghai.aliyuncs.com/aaa.png"
            }
        ],
        "task_metrics": {
            "TOTAL": 1,
            "SUCCEEDED": 1,
            "FAILED": 0
        }
    },
    "usage": {
        "image_count": 1
    }
}

Échec de la tâche

Lorsqu'une tâche échoue, task_status est FAILED avec un code et un message d'erreur. Consultez Codes d'erreur.

{
        "request_id": "e5d70b02-ebd3-98ce-9fe8-759d7d7b107d",
        "output": {
            "task_id": "86ecf553-d340-4e21-af6e-xxxxxx",
            "task_status": "FAILED",
            "code": "InvalidParameter",
            "message": "xxxxxx",
            "task_metrics": {
                "TOTAL": 4,
                "SUCCEEDED": 0,
                "FAILED": 4
            }
        }
    }

Échec partiel de la tâche

Le modèle peut générer plusieurs images par tâche. Si au moins une image est générée avec succès, l'état de la tâche est SUCCEEDED et les URL des images réussies sont renvoyées. Les images ayant échoué incluent une raison d'échec. Les statistiques d'utilisation ne comptabilisent que les résultats réussis. Consultez Codes d'erreur.

{
        "request_id": "85eaba38-0185-99d7-8d16-xxxxxx",
        "output": {
            "task_id": "86ecf553-d340-4e21-af6e-xxxxxx",
            "task_status": "SUCCEEDED",
            "results": [
                {
                    "url": "https://dashscope-result-bj.oss-cn-beijing.aliyuncs.com/123/a1.png"
                },
                {
                    "code": "InternalError.Timeout",
                    "message": "An internal timeout error has occured during execution, please try again later or contact service support."
                }
            ],
            "task_metrics": {
                "TOTAL": 2,
                "SUCCEEDED": 1,
                "FAILED": 1
            }
        },
        "usage": {
            "image_count": 1
        }
    }

outputobject

Informations de sortie de la tâche.

Propriétés

task_id string

ID de la tâche. Valide pour les interrogations pendant 24 heures.

task_status string

État 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.

submit_time string

Heure de soumission de la tâche. L'heure est au format 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 au format 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 au format UTC+8 et le format est AAAA-MM-JJ HH:mm:ss.SSS.

results array object

Liste des résultats de la tâche, comprenant les URL des images et les messages d'erreur pour les tâches ayant partiellement échoué.

Structure des données

{
    "results": [
        {
            "url": ""
        },
        {
            "code": "",
            "message": ""
        }
    ]
}

task_metrics object

Statistiques du résultat de la tâche.

Propriétés

TOTAL integer

Nombre total de tâches.

SUCCEEDED integer

Nombre de tâches réussies.

FAILED integer

Nombre de tâches ayant échoué.

code string

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

message string

Message d'erreur détaillé. Renvoyé uniquement pour les requêtes ayant échoué. Consultez Codes d'erreur.

usage object

Statistiques des informations de sortie. Seuls les résultats réussis sont comptabilisés.

Propriétés

image_count integer

Nombre d'images générées avec succès. Facturation : Coût = Nombre d'images × Prix unitaire.

request_id string

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

SDK DashScope

Assurez-vous d'avoir installé la dernière version du SDK DashScope. Dans le cas contraire, une erreur d'exécution pourrait survenir.

Le SDK DashScope prend actuellement en charge Python et Java.

Les noms des paramètres dans le SDK sont globalement cohérents avec ceux de l'API HTTP. La structure des paramètres dépend de l'encapsulation du SDK pour les différents langages. Pour la description des paramètres, consultez Appel HTTP.

Le traitement des modèles vidéo prenant beaucoup de temps, le service utilise une approche asynchrone. Le SDK fournit une enveloppe prenant en charge à la fois les appels synchrones et asynchrones.

Le modèle d'édition d'image générale traite une requête en 5 à 15 secondes environ. Le délai réel dépend du nombre de tâches en attente et des conditions réseau. Veuillez patienter jusqu'à l'obtention du résultat.

SDK Python

Lors de l'utilisation du SDK Python pour traiter des fichiers image, fournissez une image en entrée selon l'une des trois méthodes suivantes. Choisissez la méthode la mieux adaptée à votre scénario.

  1. URL publique : Une URL d'image accessible publiquement utilisant le protocole HTTP ou HTTPS.
  2. Encodage Base64 : Transmettez la chaîne de fichier encodée en Base64 au format data:{MIME_type};base64,{base64_data}.
  3. Chemin de fichier local : Prend en charge les chemins absolus et relatifs. Consultez le tableau suivant pour les formats de chemin de fichier valides.

Système

Chemin de fichier à transmettre

Exemple (chemin absolu)

Exemple (chemin relatif)

Linux ou macOS

file://{chemin absolu ou relatif du fichier}

file:///home/images/test.png

file://./images/test.png

Windows

file://D:/images/test.png

file://./images/test.png

Exemple de code

RemarqueAvant d'appeler le code, installez ou mettez à niveau le SDK Python DashScope vers la dernière version : pip install -U dashscope. Consultez Installer le SDK.

Appel synchrone

Cet exemple illustre un appel synchrone et prend en charge trois méthodes d'entrée d'image : URL publique, encodage Base64 et chemin de fichier local.

Exemple de requête
import base64
import os
from http import HTTPStatus
from dashscope import ImageSynthesis
import dashscope
import mimetypes

"""
Environment requirements:
    dashscope python SDK >= 1.23.8
Install/Upgrade SDK:
    pip install -U dashscope
"""

dashscope.base_http_api_url = "https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1"

# If the environment variable is not configured, replace the following line with: api_key="sk-xxx"
api_key = os.getenv("DASHSCOPE_API_KEY")

# --- Helper function: for Base64 encoding ---
# Format is data:{MIME_type};base64,{base64_data}
def encode_file(file_path):
    mime_type, _ = mimetypes.guess_type(file_path)
    if not mime_type or not mime_type.startswith("image/"):
        raise ValueError("Unsupported or unrecognized image format")
    with open(file_path, "rb") as image_file:
        encoded_string = base64.b64encode(image_file.read()).decode('utf-8')
    return f"data:{mime_type};base64,{encoded_string}"

"""
Image input methods:
Choose one of the following three methods.

1. Use a public URL - suitable for publicly accessible images.
2. Use a local file - suitable for local development and testing.
3. Use Base64 encoding - suitable for private images or scenarios requiring encrypted transmission.
"""

# [Method 1] Use a public image URL
mask_image_url = "http://wanx.alicdn.com/material/20250318/description_edit_with_mask_3_mask.png"
base_image_url = "http://wanx.alicdn.com/material/20250318/description_edit_with_mask_3.jpeg"

# [Method 2] Use a local file (supports absolute and relative paths)
# Format requirement: file:// + file path
# Example (absolute path):
# mask_image_url = "file://" + "/path/to/your/mask_image.png"     # Linux/macOS
# base_image_url = "file://" + "C:/path/to/your/base_image.jpeg"  # Windows
# Example (relative path):
# mask_image_url = "file://" + "./mask_image.png"                 # Based on the actual path
# base_image_url = "file://" + "./base_image.jpeg"                # Based on the actual path

# [Method 3] Use a Base64-encoded image
# mask_image_url = encode_file("./mask_image.png")               # Based on the actual path
# base_image_url = encode_file("./base_image.jpeg")              # Based on the actual path

def sample_sync_call_imageedit():
    print('please wait...')
    rsp = ImageSynthesis.call(api_key=api_key,
                              model="wanx2.1-imageedit",
                              function="description_edit_with_mask",
                              prompt="A ceramic rabbit holding a ceramic flower",
                              mask_image_url=mask_image_url,
                              base_image_url=base_image_url,
                              n=1)
    assert rsp.status_code == HTTPStatus.OK

    print('response: %s' % rsp)
    if rsp.status_code == HTTPStatus.OK:
        for result in rsp.output.results:
            print("---------------------------")
            print(result.url)
    else:
        print('sync_call Failed, status_code: %s, code: %s, message: %s' %
              (rsp.status_code, rsp.code, rsp.message))

if __name__ == '__main__':
    sample_sync_call_imageedit()
Exemple de réponse

L'URL est valide pendant 24 heures. Téléchargez l'image rapidement.

{
    "status_code": 200,
    "request_id": "dc41682c-4e4a-9010-bc6f-xxxxxx",
    "code": null,
    "message": "",
    "output": {
        "task_id": "6e319d88-a07a-420c-9493-xxxxxx",
        "task_status": "SUCCEEDED",
        "results": [
            {
                "url": "https://dashscope-result-wlcb-acdr-1.oss-cn-wulanchabu-acdr-1.aliyuncs.com/xxx.png?xxxxxx"
            }
        ],
        "submit_time": "2025-05-26 14:58:27.320",
        "scheduled_time": "2025-05-26 14:58:27.339",
        "end_time": "2025-05-26 14:58:39.170",
        "task_metrics": {
            "TOTAL": 1,
            "SUCCEEDED": 1,
            "FAILED": 0
        }
    },
    "usage": {
        "image_count": 1
    }
}

Appel asynchrone

Cet exemple montre uniquement la méthode d'appel asynchrone.

Exemple de requête
import os
from http import HTTPStatus
from dashscope import ImageSynthesis
import dashscope

"""
Environment requirements:
    dashscope python SDK >= 1.23.4
Install/Upgrade SDK:
    pip install -U dashscope
"""

dashscope.base_http_api_url = "https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1"

# If the environment variable is not configured, replace the following line with: api_key="sk-xxx"
api_key = os.getenv("DASHSCOPE_API_KEY")

# Use a public image URL
mask_image_url = "http://wanx.alicdn.com/material/20250318/description_edit_with_mask_3_mask.png"
base_image_url = "http://wanx.alicdn.com/material/20250318/description_edit_with_mask_3.jpeg"

def sample_async_call_imageedit():
    # Asynchronous call, returns a task_id
    rsp = ImageSynthesis.async_call(api_key=api_key,
                                    model="wanx2.1-imageedit",
                                    function="description_edit_with_mask",
                                    prompt="A ceramic rabbit holding a ceramic flower",
                                    mask_image_url=mask_image_url,
                                    base_image_url=base_image_url,
                                    n=1)
    print(rsp)
    if rsp.status_code == HTTPStatus.OK:
        print("task_id: %s" % rsp.output.task_id)
    else:
        print('Failed, status_code: %s, code: %s, message: %s' %
              (rsp.status_code, rsp.code, rsp.message))

    # Get asynchronous task information
    status = ImageSynthesis.fetch(task=rsp, api_key=api_key)
    if status.status_code == HTTPStatus.OK:
        print(status.output.task_status)  # check the task status
    else:
        print('Failed, status_code: %s, code: %s, message: %s' %
              (status.status_code, status.code, status.message))

    # Wait for the asynchronous task to finish
    rsp = ImageSynthesis.wait(rsp)
    print(rsp)
    if rsp.status_code == HTTPStatus.OK:
        print(rsp.output)
        for result in rsp.output.results:
            print("---------------------------")
            print(result.url)
    else:
        print('Failed, status_code: %s, code: %s, message: %s' %
              (rsp.status_code, rsp.code, rsp.message))

if __name__ == '__main__':
    sample_async_call_imageedit()
Exemple de réponse
  1. Exemple de réponse pour la création d'une tâche
{
	"status_code": 200,
	"request_id": "6dc3bf6c-be18-9268-9c27-xxxxxx",
	"code": "",
	"message": "",
	"output": {
		"task_id": "686391d9-7ecf-4290-a8e9-xxxxxx",
		"task_status": "PENDING",
		"video_url": ""
	},
	"usage": null
}
  1. Exemple de réponse pour l'interrogation du résultat d'une tâche

L'URL est valide pendant 24 heures. Téléchargez l'image rapidement.

{
    "status_code": 200,
    "request_id": "dc41682c-4e4a-9010-bc6f-xxxxxx",
    "code": null,
    "message": "",
    "output": {
        "task_id": "6e319d88-a07a-420c-9493-xxxxxx",
        "task_status": "SUCCEEDED",
        "results": [
            {
                "url": "https://dashscope-result-wlcb-acdr-1.oss-cn-wulanchabu-acdr-1.aliyuncs.com/xxx.png?Expires=17xxxxxx"
            }
        ],
        "submit_time": "2025-05-26 14:58:27.320",
        "scheduled_time": "2025-05-26 14:58:27.339",
        "end_time": "2025-05-26 14:58:39.170",
        "task_metrics": {
            "TOTAL": 1,
            "SUCCEEDED": 1,
            "FAILED": 0
        }
    },
    "usage": {
        "image_count": 1
    }
}

SDK Java

Lors de l'utilisation du SDK Java pour traiter des fichiers image, fournissez une image en entrée selon l'une des trois méthodes suivantes. Choisissez la méthode la mieux adaptée à votre scénario.

  1. URL publique : Une URL d'image accessible publiquement utilisant le protocole HTTP ou HTTPS.
  2. Encodage Base64 : Transmettez la chaîne de fichier encodée en Base64 au format data:{MIME_type};base64,{base64_data}.
  3. Chemin de fichier local : Seuls les chemins absolus sont pris en charge. Consultez le tableau suivant pour les formats de chemin de fichier valides.

Système

Chemin de fichier à transmettre

Exemple

Linux ou macOS

file://{chemin absolu du fichier}

file:///home/images/test.png

Windows

file:///{chemin absolu du fichier}

file:///D:/images/test.png

Exemple de code

RemarqueAvant d'appeler le code, installez ou mettez à niveau le SDK Java DashScope vers la dernière version. Consultez Installer le SDK.

Appel synchrone

Cet exemple illustre un appel synchrone et prend en charge trois méthodes d'entrée d'image : URL publique, encodage Base64 et chemin de fichier local.

Exemple de requête
// Copyright (c) Alibaba, Inc. and its affiliates.

import com.alibaba.dashscope.aigc.imagesynthesis.ImageSynthesis;
import com.alibaba.dashscope.aigc.imagesynthesis.ImageSynthesisParam;
import com.alibaba.dashscope.aigc.imagesynthesis.ImageSynthesisResult;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.utils.Constants;
import com.alibaba.dashscope.utils.JsonUtils;

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.Base64;
import java.util.HashMap;
import java.util.Map;

/**
 * Environment requirements
 *      dashscope java SDK >=2.20.9
 * Update Maven dependency:
 *      https://mvnrepository.com/artifact/com.alibaba/dashscope-sdk-java
 */

public class ImageEditSync {
    static {Constants.baseHttpApiUrl="https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1";}

    // If the environment variable is not configured, replace the following line with: apiKey="sk-xxx"
    static String apiKey = System.getenv("DASHSCOPE_API_KEY");

    /**
     * Image input methods: Choose one of the following three.
     *
     * 1. Use a public URL - suitable for publicly accessible images.
     * 2. Use a local file - suitable for local development and testing.
     * 3. Use Base64 encoding - suitable for private images or scenarios requiring encrypted transmission.
     */

    //[Method 1] Public URL
    static String maskImageUrl = "http://wanx.alicdn.com/material/20250318/description_edit_with_mask_3_mask.png";
    static String baseImageUrl = "http://wanx.alicdn.com/material/20250318/description_edit_with_mask_3.jpeg";

    //[Method 2] Local file path (file://+absolute path or file:///+absolute path)
    // static String maskImageUrl = "file://" + "/your/path/to/mask_image.png";    // Linux/macOS
    // static String baseImageUrl = "file:///" + "C:/your/path/to/base_image.png";  // Windows

    //[Method 3] Base64 encoding
    // static String maskImageUrl = encodeFile("/your/path/to/mask_image.png");
    // static String baseImageUrl = encodeFile("/your/path/to/base_image.png");

    public static void syncCall() {
        // Set the parameters parameter
        Map<String, Object> parameters = new HashMap<>();
        parameters.put("prompt_extend", true);

        ImageSynthesisParam param =
                ImageSynthesisParam.builder()
                        .apiKey(apiKey)
                        .model("wanx2.1-imageedit")
                        .function(ImageSynthesis.ImageEditFunction.DESCRIPTION_EDIT_WITH_MASK)
                        .prompt("A ceramic rabbit holding a ceramic flower")
                        .maskImageUrl(maskImageUrl)
                        .baseImageUrl(baseImageUrl)
                        .n(1)
                        .size("1024*1024")
                        .parameters(parameters)
                        .build();

        ImageSynthesis imageSynthesis = new ImageSynthesis();
        ImageSynthesisResult result = null;
        try {
            System.out.println("---sync call, please wait a moment----");
            result = imageSynthesis.call(param);
        } catch (ApiException | NoApiKeyException e){
            throw new RuntimeException(e.getMessage());
        }
        System.out.println(JsonUtils.toJson(result));
    }

    /**
     * Encodes a file into a Base64 string
     * @param filePath The file path
     * @return A Base64 string in the format data:{MIME_type};base64,{base64_data}
     */
    public static String encodeFile(String filePath) {
        Path path = Paths.get(filePath);
        if (!Files.exists(path)) {
            throw new IllegalArgumentException("File does not exist: " + filePath);
        }
        // Detect the MIME type
        String mimeType = null;
        try {
            mimeType = Files.probeContentType(path);
        } catch (IOException e) {
            throw new IllegalArgumentException("Cannot detect file type: " + filePath);
        }
        if (mimeType == null || !mimeType.startsWith("image/")) {
            throw new IllegalArgumentException("Unsupported or unrecognized image format");
        }
        // Read the file content and encode it
        byte[] fileBytes = null;
        try{
            fileBytes = Files.readAllBytes(path);
        } catch (IOException e) {
            throw new IllegalArgumentException("Cannot read file content: " + filePath);
        }

        String encodedString = Base64.getEncoder().encodeToString(fileBytes);
        return "data:" + mimeType + ";base64," + encodedString;
    }

    public static void main(String[] args) {
        syncCall();
    }
}
Exemple de réponse

L'URL est valide pendant 24 heures. Téléchargez l'image rapidement.

{
    "request_id": "bf6c6361-f0fc-949c-9d60-xxxxxx",
    "output": {
        "task_id": "958db858-153b-4c81-b243-xxxxxx",
        "task_status": "SUCCEEDED",
        "results": [
            {
                "url": "https://dashscope-result-wlcb-acdr-1.oss-cn-wulanchabu-acdr-1.aliyuncs.com/xxx.png?xxxxxx"
            }
        ],
        "task_metrics": {
            "TOTAL": 1,
            "SUCCEEDED": 1,
            "FAILED": 0
        }
    },
    "usage": {
        "image_count": 1
    }
}

Appel asynchrone

Cet exemple montre uniquement la méthode d'appel asynchrone.

Exemple de requête
// Copyright (c) Alibaba, Inc. and its affiliates.

import com.alibaba.dashscope.aigc.imagesynthesis.ImageSynthesis;
import com.alibaba.dashscope.aigc.imagesynthesis.ImageSynthesisListResult;
import com.alibaba.dashscope.aigc.imagesynthesis.ImageSynthesisParam;
import com.alibaba.dashscope.aigc.imagesynthesis.ImageSynthesisResult;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.task.AsyncTaskListParam;
import com.alibaba.dashscope.utils.Constants;
import com.alibaba.dashscope.utils.JsonUtils;

import java.util.HashMap;
import java.util.Map;

/**
 * Environment requirements
 *      dashscope java SDK >= 2.20.1
 * Update Maven dependency:
 *      https://mvnrepository.com/artifact/com.alibaba/dashscope-sdk-java
 */

public class ImageEditAsync {
    static {Constants.baseHttpApiUrl="https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1";}

    // If the environment variable is not configured, replace the following line with: apiKey="sk-xxx"
    static String apiKey = System.getenv("DASHSCOPE_API_KEY");

    //[Method 1] Public URL
    static String maskImageUrl = "http://wanx.alicdn.com/material/20250318/description_edit_with_mask_3_mask.png";
    static String baseImageUrl = "http://wanx.alicdn.com/material/20250318/description_edit_with_mask_3.jpeg";

    public static void asyncCall() {
        // Set the parameters parameter
        Map<String, Object> parameters = new HashMap<>();
        parameters.put("prompt_extend", true);

        ImageSynthesisParam param =
                ImageSynthesisParam.builder()
                        .apiKey(apiKey)
                        .model("wanx2.1-imageedit")
                        .function(ImageSynthesis.ImageEditFunction.DESCRIPTION_EDIT_WITH_MASK)
                        .prompt("A ceramic rabbit holding a ceramic flower")
                        .maskImageUrl(maskImageUrl)
                        .baseImageUrl(baseImageUrl)
                        .n(1)
                        .size("1024*1024")
                        .parameters(parameters)
                        .build();
        ImageSynthesis imageSynthesis = new ImageSynthesis();
        ImageSynthesisResult result = null;
        try {
            System.out.println("---async call, please wait a moment----");
            result = imageSynthesis.asyncCall(param);
        } catch (ApiException | NoApiKeyException e){
            throw new RuntimeException(e.getMessage());
        }

        System.out.println(JsonUtils.toJson(result));

        String taskId = result.getOutput().getTaskId();

        System.out.println("taskId=" + taskId);

        try {
            result = imageSynthesis.wait(taskId, apiKey);
        } catch (ApiException | NoApiKeyException e){
            throw new RuntimeException(e.getMessage());
        }
        System.out.println(JsonUtils.toJson(result));
        System.out.println(JsonUtils.toJson(result.getOutput()));
    }

    public static void listTask() throws ApiException, NoApiKeyException {
        ImageSynthesis is = new ImageSynthesis();
        AsyncTaskListParam param = AsyncTaskListParam.builder().build();
        param.setApiKey(apiKey);
        ImageSynthesisListResult result = is.list(param);
        System.out.println(result);
    }

    public void fetchTask(String taskId) throws ApiException, NoApiKeyException {
        ImageSynthesis is = new ImageSynthesis();
        // If DASHSCOPE_API_KEY is set as an environment variable, apiKey can be empty.
        ImageSynthesisResult result = is.fetch(taskId, apiKey);
        System.out.println(result.getOutput());
        System.out.println(result.getUsage());
    }

    public static void main(String[] args) {
        asyncCall();
    }
}
Exemple de réponse
  1. Exemple de réponse pour la création d'une tâche
{
	"request_id": "5dbf9dc5-4f4c-9605-85ea-xxxxxxxx",
	"output": {
		"task_id": "7277e20e-aa01-4709-xxxxxxxx",
		"task_status": "PENDING"
	}
}
  1. Exemple de réponse pour l'interrogation du résultat d'une tâche

L'URL est valide pendant 24 heures. Téléchargez l'image rapidement.

{
	"request_id": "3d740fc4-a968-9c36-b0e7-xxxxxxxx",
	"output": {
		"task_id": "34dcf4b0-ed84-441e-91cb-xxxxxxxx",
		"task_status": "SUCCEEDED",
		"results": [
			{
				"url": "https://dashscope-result-hz.oss-cn-hangzhou.aliyuncs.com/xxx.png"
			}
		],
		"submit_time": "2025-02-21 17:56:31.786",
		"scheduled_time": "2025-02-21 17:56:31.821",
		"end_time": "2025-02-21 17:56:42.530",
		"task_metrics": {
			"TOTAL": 1,
			"SUCCEEDED": 1,
			"FAILED": 0
		}
	},
	"usage": {
		"image_count": 1
	}
}

Codes d'erreur

Si l'appel du modèle échoue et renvoie un message d'erreur, consultez Codes d'erreur pour résoudre le problème.

Cette API possède également des codes d'état spécifiques, comme indiqué dans le tableau suivant.

Code d'état HTTP

Code d'erreur API (code)

Message d'erreur API (message)

Description

400

InvalidParameter

InvalidParameter

Les paramètres de la requête sont invalides.

400

IPInfringementSuspect

Input data is suspected of being involved in IP infringement.

Les données d'entrée (telles que l'invite ou l'image) sont soupçonnées de porter atteinte à la propriété intellectuelle. Vérifiez les entrées pour vous assurer qu'elles ne contiennent pas de contenu présentant un risque d'infraction.

400

DataInspectionFailed

Input data may contain inappropriate content.

Les données d'entrée (telles que l'invite ou l'image) peuvent contenir du contenu inapproprié. Modifiez les entrées et réessayez.

500

InternalError

InternalError

Le service présente une anomalie. Réessayez afin d'écarter un problème ponctuel.

Formats d'image d'entrée

Formats pris en charge

Les images d'entrée prennent en charge plusieurs formats de chaîne, comme indiqué dans le tableau suivant.

Méthode d'appelHTTPSDK PythonSDK Java

Méthodes d'entrée d'image prises en charge

  • URL publique
  • Encodage Base64
  • URL publique
  • Encodage Base64
  • Chemin de fichier local
  • URL publique
  • Encodage Base64
  • Chemin de fichier local
Méthode 1 : Utiliser une URL publique
  • Fournissez une adresse d'image accessible publiquement. Les protocoles HTTP et HTTPS sont pris en charge.
  • Exemple : https://xxxx/img.png
Méthode 2 : Utiliser l'encodage Base64

Convertissez un fichier image local en chaîne Base64 et concaténez-la au format data:{MIME_type};base64,{base64_data}.

  • Pour le code de conversion, consultez Exemple de code

  • {MIME_type} : Type de média de l'image, qui doit correspondre au format du fichier

  • {base64_data} : Chaîne encodée en Base64 du fichier image

  • Référence des types MIME :

    Format d'image

    Type MIME

    JPEG

    image/jpeg

    JPG

    image/jpeg

    PNG

    image/png

    BMP

    image/bmp

    TIFF

    image/tiff

    WEBP

    image/webp

  • Exemple : data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABDg......

    Remarque : La chaîne Base64 ci-dessus est tronquée à titre d'exemple. Dans la pratique, transmettez la chaîne encodée complète.

Méthode 3 : Utiliser un chemin de fichier local
  • HTTP ne prend pas en charge les chemins de fichiers locaux. Seuls le SDK Python et le SDK Java permettent cette méthode.
  • Pour les règles relatives aux chemins de fichiers locaux, consultez SDK Python et SDK Java.

FAQ

Pour les questions fréquentes concernant les modèles d'image (facturation des modèles, règles de limitation de taux et erreurs d'API courantes), consultez FAQ sur l'API Image.