Tous les produits
Search
Centre de documentation

Alibaba Cloud Model Studio:Qwen-Image-Edit

Dernière mise à jour :Oct 11, 2026

Qwen-Image-Edit prend en charge l'entrée et la sortie de plusieurs images. Ce modèle permet de modifier du texte dans des images, d'ajouter, supprimer ou déplacer des objets, de changer les actions du sujet, de transférer des styles et d'améliorer les détails.

Prise en main

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

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

Python

import os
import base64
import mimetypes
import dashscope
from dashscope import MultiModalConversation

dashscope.base_http_api_url = 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1'

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}"

# [Method 1] Use a public image URL
image_url = "https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/res/yBRq1ZPYEaXdyOdv/img/33a80a19-7ac7-4c64-b0fa-7d685b7046a0.png"

# [Method 2] Use a Base64-encoded image
# image_url = encode_file("./your_image.png")

response = MultiModalConversation.call(
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    model="qwen-image-3.0-pro",
    messages=[{
        "role": "user",
        "content": [
            {"image": image_url},
            {"text": "Generate a sophisticated urban-style female portrait. Perfectly preserve the facial features and smooth black long hair of the young woman in the input image. Change her outfit to an elegant urban professional look. Set the scene in a modern minimalist upscale coffee shop."}
        ]
    }],
    prompt_extend=True
)

print(response)
if response.status_code == 200:
    url = response.output.choices[0].message.content[0]["image"]
    print(f"Generated image URL: {url}")
else:
    print(f"Error: {response.code} - {response.message}")

Java

import java.util.Arrays;
import java.util.Base64;
import java.util.Collections;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversation;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversationParam;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversationResult;
import com.alibaba.dashscope.common.MultiModalMessage;
import com.alibaba.dashscope.common.Role;
import com.alibaba.dashscope.utils.Constants;

public class ImageEditExample {
    public static void main(String[] args) {
        Constants.baseHttpApiUrl = "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1";

        // [Method 1] Use a public image URL
        String imageUrl = "https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/res/yBRq1ZPYEaXdyOdv/img/33a80a19-7ac7-4c64-b0fa-7d685b7046a0.png";

        // [Method 2] Use a Base64-encoded image
        // String imageUrl = encodeFile("/path/to/your/image.png");

        MultiModalConversation conv = new MultiModalConversation();
        MultiModalMessage userMessage = MultiModalMessage.builder()
            .role(Role.USER.getValue())
            .content(Arrays.asList(
                Collections.singletonMap("image", imageUrl),
                Collections.singletonMap("text", "Generate a sophisticated urban-style female portrait. Perfectly preserve the facial features and smooth black long hair of the young woman in the input image. Change her outfit to an elegant urban professional look. Set the scene in a modern minimalist upscale coffee shop.")
            ))
            .build();
        MultiModalConversationParam param = MultiModalConversationParam.builder()
            .apiKey(System.getenv("DASHSCOPE_API_KEY"))
            .model("qwen-image-3.0-pro")
            .messages(Arrays.asList(userMessage))
            .parameter("prompt_extend", true)
            .build();
        try {
            MultiModalConversationResult result = conv.call(param);
            System.out.println(result);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public static String encodeFile(String filePath) {
        Path path = Paths.get(filePath);
        if (!Files.exists(path)) {
            throw new IllegalArgumentException("File does not exist: " + filePath);
        }
        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");
        }
        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;
    }
}

curl

La commande suivante utilise l'URL de la région de Singapour. Si vous utilisez un modèle dans la région Chine (Pékin), remplacez l'URL par : https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation

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": "qwen-image-3.0-pro",
    "input": {
        "messages": [
            {
                "role": "user",
                "content": [
                    {
                        "image": "https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/res/yBRq1ZPYEaXdyOdv/img/33a80a19-7ac7-4c64-b0fa-7d685b7046a0.png"
                    },
                    {
                        "text": "Generate a sophisticated urban-style female portrait. Perfectly preserve the facial features and smooth black long hair of the young woman in the input image. She changes from her beige knit top into an elegant urban professional outfit: a champagne silk blouse with a well-tailored dark grey casual blazer and matching high-waisted wide-leg trousers. The scene is in a modern minimalist upscale coffee shop with floor-to-ceiling windows showing a bustling city view. Dark wood tables and leather chairs furnish the interior, with a silver laptop, documents, and a steaming Americano on the table. She sits relaxed, leaning slightly back with one arm on the armrest and the other holding a coffee cup, gazing at the camera with calm, slightly languid eyes and an elegant smile. Polished formal makeup with clean base, defined brows, and mauve lipstick. Soft afternoon light enters from the side through the windows, creating delicate light transitions on her face and clothing. Natural bokeh background in earth tones, greys and warm whites, creating a serene, sophisticated urban office atmosphere."
                    }
                ]
            }
        ]
    },
    "parameters": {
        "prompt_extend": true
    }
}'

Exemple de réponse

{
    "output": {
        "choices": [
            {
                "finish_reason": "stop",
                "message": {
                    "content": [
                        {
                            "image": "https://dashscope-result-sz.oss-cn-shenzhen.aliyuncs.com/xxx.png?Expires=xxx"
                        }
                    ],
                    "role": "assistant"
                }
            }
        ]
    },
    "usage": {
        "output_height": 1024,
        "output_width": 1024,
        "input_image_count": 1,
        "input_image_type": "qima_input_1k",
        "output_image_count": 1,
        "output_image_type": "qima_output_1k"
    },
    "request_id": "571ae02f-5c9d-436c-83c2-f221e6df0xxx"
}

Télécharger des images sur votre appareil local

# You need to install requests to download the image: pip install requests
import requests

def download_image(image_url, save_path='output.png'):
    try:
        response = requests.get(image_url, stream=True, timeout=300)  # Set a timeout.
        response.raise_for_status()  # Raise an exception if the HTTP status code is not 200.
        with open(save_path, 'wb') as f:
            for chunk in response.iter_content(chunk_size=8192):
                f.write(chunk)
        print(f"Image successfully downloaded to: {save_path}")

    except requests.exceptions.RequestException as e:
        print(f"Image download failed: {e}")

image_url = "https://dashscope-result-sz.oss-cn-shenzhen.aliyuncs.com/xxx.png?Expires=xxx"
download_image(image_url, save_path='output.png')
import java.io.FileOutputStream;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;

public class ImageDownloader {
    public static void downloadImage(String imageUrl, String savePath) {
        try {
            URL url = new URL(imageUrl);
            HttpURLConnection connection = (HttpURLConnection) url.openConnection();
            connection.setConnectTimeout(5000);
            connection.setReadTimeout(300000);
            connection.setRequestMethod("GET");
            InputStream inputStream = connection.getInputStream();
            FileOutputStream outputStream = new FileOutputStream(savePath);
            byte[] buffer = new byte[8192];
            int bytesRead;
            while ((bytesRead = inputStream.read(buffer)) != -1) {
                outputStream.write(buffer, 0, bytesRead);
            }
            inputStream.close();
            outputStream.close();

            System.out.println("Image downloaded successfully to: " + savePath);
        } catch (Exception e) {
            System.err.println("Image download failed: " + e.getMessage());
        }
    }

    public static void main(String[] args) {
        String imageUrl = "http://dashscope-result-bj.oss-cn-beijing.aliyuncs.com/xxx?Expires=xxx";
        String savePath = "output.png";
        downloadImage(imageUrl, savePath);
    }
}

Modèles recommandés

  • Série qwen-image-3.0-pro(Recommandée) : Modèle phare de Qwen Image 3,0 offrant des capacités de génération et de modification d'images entièrement améliorées. Il propose un rendu de texte optimisé, des textures réalistes, une meilleure adhérence sémantique et une réécriture intelligente des prompts.
  • Série qwen-image-3.0: Modèle standard Qwen Image 3,0 qui assure un équilibre entre qualité et rapidité.

Pour consulter les modèles pris en charge dans chaque région, reportez-vous à la Liste des modèles.

Instructions d'entrée

Images d'entrée (messages)

Le paramètre messages est un tableau contenant un objet unique. Cet objet doit inclure les propriétés role et content. La propriété role doit être définie sur user. La propriété content doit comporter à la fois image (une à trois images) et text (une instruction de modification).

Les images d'entrée doivent respecter les exigences suivantes :

  • Les formats d'image pris en charge sont JPG, JPEG, PNG, BMP, TIFF, WEBP et GIF.

    L'image de sortie est au format PNG. Pour les GIF animés, seule la première image est traitée.

  • Pour obtenir des résultats optimaux, la résolution de l'image doit se situer entre 384 et 3 072 pixels en largeur et en hauteur. Une résolution trop faible peut entraîner une sortie floue, tandis qu'une résolution élevée augmente le temps de traitement.

  • La taille d'un fichier image unique ne peut pas dépasser 10 Mo.

"messages": [
    {
        "role": "user",
        "content": [
            { "image": "Public URL or Base64 data of Image 1" },
            { "image": "Public URL or Base64 data of Image 2" },
            { "image": "Public URL or Base64 data of Image 3" },
            { "text": "Your editing instruction, for example: 'The girl in Image 1 wears the black dress from Image 2 and sits in the pose from Image 3'" }
        ]
    }
]

Ordre d'entrée des images

Les numéros d'image dans les prompts correspondent à la position dans le tableau : la première image est « image 1 », la seconde est « image 2 ». Vous pouvez également utiliser des marqueurs tels que « [image 1] » et « [image 2] ».

{
    "content": [
        {"text": "Editing instruction, for example: Place the alarm clock from image 1 next to the vase on the dining table in image 2"},
        {"image": "https://example.com/image1.png"},
        {"image": "https://example.com/image2.png"}
    ]
}

Image d'entrée

Image de sortie

image (19)-转换自-png

Image 1

image (20)-转换自-png

Image 2

04e0fc39-7ad6-41e0-9df9-1f69ac3ce825-转换自-png

Prompt : Déplacer l'image 1 sur l'image 2

36ed450d-bd54-4169-b13f-3d0f26d9d360-转换自-png

Prompt : Déplacer l'image 2 sur l'image 1

Méthodes d'entrée d'image

URL publique
  • Fournissez une URL d'image accessible publiquement prenant en charge le protocole HTTP ou HTTPS.
  • Exemple de valeur : https://xxxx/img.png.
Encodage Base64

Convertissez le fichier image en chaîne encodée en Base64 et concaténez-la selon le format suivant : data:{mime_type};base64,{base64_data}.

  • {mime_type} : Type MIME de l'image, qui doit correspondre au format du fichier.
  • {base64_data} : Chaîne encodée en Base64 du fichier.
  • Exemple de valeur : data:image/jpeg;base64,GDU7MtCZz... (L'exemple est tronqué à des fins de démonstration.)

Pour des exemples de code complets, consultez Appel avec le SDK Python et Appel avec le SDK Java.

Paramètres supplémentaires

Ajustez les résultats de génération à l'aide des paramètres facultatifs suivants :

  • n : Nombre d'images à générer. La valeur par défaut est 1. Les séries de modèles qwen-image-3.0, qwen-image-2.0 permettent de générer une à six images.
  • negative_prompt : Décrit le contenu à exclure de l'image, comme « flou » ou « doigts supplémentaires ». Ce paramètre contribue à optimiser la qualité de l'image générée.
  • watermark : Indique s'il faut ajouter un filigrane « Qwen-Image » dans le coin inférieur droit de l'image. La valeur par défaut est false.
  • seed : Graine aléatoire. La valeur doit être un entier compris dans l'intervalle [0, 2147483647]. Si ce paramètre n'est pas spécifié, l'algorithme génère un nombre aléatoire utilisé comme graine. L'utilisation de la même valeur de graine aide à garantir la cohérence des résultats de génération.

Les paramètres facultatifs suivants sont disponibles uniquement pour les séries de modèles qwen-image-3.0, qwen-image-2.0 :

  • size : Résolution de l'image de sortie. Le format est width*height, par exemple "1024*2048". Pour les modèles de la série qwen-image-3.0, la surface totale en pixels doit être comprise entre 512×512 et 2048×2048, et le rapport d'aspect entre 1:8 et 8:1. En l'absence de spécification, le modèle recommande automatiquement une résolution basée sur le prompt. Pour les modèles de la série qwen-image-2.0, vous pouvez définir librement la largeur et la hauteur. Le nombre total de pixels de l'image de sortie doit être compris entre 512 × 512 et 2048 × 2048. Par défaut, la résolution est identique à celle de l'image d'entrée (la dernière image si plusieurs sont fournies).
  • prompt_extend : Active ou désactive la fonctionnalité de réécriture de prompt. La valeur par défaut est true. Lorsqu'elle est activée, le modèle optimise le prompt. Cette fonctionnalité peut améliorer considérablement les résultats pour les prompts simples ou peu descriptifs.

Pour une liste complète des paramètres, consultez la Référence de l'API Qwen-Image-Edit.

Vue d'ensemble

Fusion multi-images

Image d'entrée 1

Image d'entrée 2

Image d'entrée 3

Image de sortie

image83

image103

1

2

La jeune fille de l'image 1 porte le collier de l'image 2 et tient le sac de l'image 3 sur son épaule gauche.

Cohérence du sujet

Image d'entrée

Image de sortie 1

Image de sortie 2

Image de sortie 3

image5

image4

Transformer l'image en photo d'identité sur fond bleu. La personne porte une chemise blanche, un costume noir et une cravate rayée.

image6

La personne porte une chemise blanche, un costume gris et une cravate rayée. Une main repose sur la cravate. L'arrière-plan est clair.

image7

La personne porte un sweat à capuche noir avec l'inscription « Qwen Image » dans une police épaisse type coup de pinceau. Elle s'appuie sur une balustrade avec la lumière du soleil dans ses cheveux. Un pont et la mer apparaissent en arrière-plan.

image12

image13

Le climatiseur est placé dans un salon à côté d'un canapé.

image14

De la brume sort de la bouche d'aération du climatiseur et s'étend au-dessus du canapé. Des feuilles vertes sont également ajoutées.

image15

Le texte manuscrit blanc « Natural Fresh Air Enjoy Breathing » est ajouté en haut.

Création à partir d'esquisses

Image d'entrée

Image de sortie

image42

image43

Générer une image correspondant à la forme détaillée esquissée dans l'image 1 et respectant cette description : Une jeune femme sourit lors d'une journée ensoleillée. Elle porte des lunettes de soleil rondes marron à monture léopard. Ses cheveux sont soigneusement attachés, elle porte des boucles d'oreilles en perles, une écharpe bleu foncé à motifs d'étoiles violettes et une veste en cuir noir.

image44

Générer une image correspondant à la forme détaillée esquissée dans l'image 1 et respectant cette description : Un homme âgé sourit à l'objectif. Son visage est ridé, ses cheveux sont ébouriffés par le vent, et il porte des lunettes de lecture à monture ronde. Il a une vieille écharpe rouge à motifs d'étoiles autour du cou et porte une veste matelassée.

Génération créative de produits

Image d'entrée

Image de sortie

image 1

image23

Faire asseoir cet ours sous la lune (représentée par un contour de croissant gris clair sur fond blanc), tenant une guitare, avec de petites étoiles et des bulles de dialogue contenant des phrases telles que « Be Kind » flottant autour.

image22

Imprimer ce design sur un T-shirt et un sac fourre-tout en papier. Un mannequin féminin présente ces articles. La femme porte également une casquette de baseball avec l'inscription « Be kind ».

image21

Une figurine hyper-réaliste à l'échelle 1/7, conçue comme un produit fini commercial, est placée sur un bureau avec un iMac doté d'un clavier blanc. La figurine repose sur une base acrylique transparente, ronde et propre, sans étiquettes ni texte. Un éclairage professionnel de studio met en valeur les détails sculptés. Sur l'écran de l'iMac en arrière-plan, le processus de modélisation ZBrush de la même figurine est affiché. À côté de la figurine, placer une boîte d'emballage avec une fenêtre transparente sur le devant, laissant voir uniquement la coque plastique transparente à l'intérieur. La boîte est légèrement plus haute que la figurine et dimensionnée de manière appropriée pour la contenir.

image

Cet ours porte une combinaison d'astronaute et pointe vers l'horizon.

image

Cet ours porte une magnifique robe de bal, les bras écartés dans une pose de danse élégante.

image

Cet ours porte une tenue de sport, tient un ballon de basket, avec une jambe pliée.

Générer une image à partir d'une carte de profondeur

Image d'entrée

Image de sortie

image36

image37

Générer une image correspondant à la carte de profondeur esquissée dans l'image 1 et respectant cette description : Un vélo bleu est garé dans une ruelle latérale, avec quelques mauvaises herbes poussant dans les fissures de la pierre en arrière-plan.

image38

Générer une image correspondant à la carte de profondeur esquissée dans l'image 1 et respectant cette description : Un vieux vélo rouge est garé sur un chemin boueux, avec une forêt primitive dense en arrière-plan.

Générer une image à partir de points clés

Image d'entrée

Image de sortie

image40

image41

Générer une image correspondant à la pose humaine esquissée dans l'image 1 et respectant cette description : Une femme chinoise en Hanfu tient une ombrelle en papier huilé sous la pluie, avec un jardin de Suzhou en arrière-plan.

image39

Générer une image correspondant à la pose humaine esquissée dans l'image 1 et respectant cette description : Un jeune homme se tient sur un quai de métro. Il porte une casquette de baseball, un T-shirt et un jean. Un train passe à grande vitesse derrière lui.

Modification de texte

Image d'entrée

Image de sortie

Image d'entrée

Image de sortie

image

image

Remplacer « HEALTH INSURANCE » sur les tuiles de Scrabble par « Tomorrow Will Be Better ».

image

image

Changer la phrase « Take a Breather » sur le mot en « Relax and Recharge ».

Image d'entrée

Image de sortie

image53

image45

Changer « Qwen-Image » pour une police noire effet goutte d'encre.

image46

Changer « Qwen-Image » pour une police noire manuscrite.

image49

Changer « Qwen-Image » pour une police noire pixelisée.

image54

Changer « Qwen-Image » en rouge.

image57

Changer « Qwen-Image » pour un dégradé bleu-violet.

image59

Changer « Qwen-Image » pour des couleurs bonbon.

image63

Changer la matière de « Qwen-Image » en métal.

image64

Changer la matière de « Qwen-Image » en nuages.

image67

Changer la matière de « Qwen-Image » en verre.

Ajout et suppression

Capacité

Image d'entrée

Image de sortie

Ajouter un élément

image

image

Ajouter une petite pancarte en bois devant le pingouin indiquant « Welcome to Penguin Beach ».

Supprimer un élément

image

image

Retirer le cheveu de l'assiette.

Transformation de point de vue

Image d'entrée

Image de sortie

Image d'entrée

Image de sortie

image

image

Obtenir une vue de face.

image

image

Tourner vers la gauche.

image

image

Obtenir une vue de dos.

image

image

Tourner vers la droite.

Traitement de photos anciennes

Capacité

Image d'entrée

Image de sortie

Restauration et colorisation de photos anciennes

image

image

Restaurer la vieille photo, supprimer les rayures, réduire le bruit, améliorer les détails, haute résolution, image réaliste, teint naturel, traits du visage nets, aucune distorsion.

image31

image32

Coloriser intelligemment l'image en fonction de son contenu pour la rendre plus vivante.

Référence de l'API

Consultez Qwen-Image Edit pour les paramètres de l'API.

Codes d'erreur

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

FAQ

Q : Quelles langues le modèle de modification d'images Qwen prend-il en charge ?

R : Le modèle prend actuellement en charge le chinois simplifié et l'anglais. Vous pouvez essayer d'autres langues, mais les performances ne sont pas garanties.

Q : Comment consulter les métriques d'invocation du modèle ?

R : Une heure après la fin d'une invocation de modèle, accédez à la page Monitoring (Singapore) ou Monitoring (China (Beijing)) pour consulter des métriques telles que le nombre d'invocations et le taux de réussite. Pour plus d'informations, consultez Facturation et gestion des coûts.

Q : Comment obtenir la liste d'autorisation de noms de domaine pour le stockage d'images ?

R : Les images générées par les modèles sont stockées dans OSS. L'API renvoie une URL publique temporaire. Pour configurer une liste d'autorisation de pare-feu pour cette URL de téléchargement, notez ce qui suit : Le stockage sous-jacent peut changer dynamiquement. Cette rubrique ne fournit pas de liste d'autorisation fixe de noms de domaine OSS afin d'éviter les problèmes d'accès causés par des informations obsolètes. Si vous avez des exigences en matière de contrôle de sécurité, contactez votre responsable de compte pour obtenir la dernière liste de noms de domaine OSS.

Consultez la FAQ sur la génération d'images.