Todos los productos
Search
Centro de documentos

Alibaba Cloud Model Studio:Qwen-Image-Edit

Última actualización: Oct 12, 2026

Qwen-Image-Edit admite entrada y salida de múltiples imágenes. Puede modificar texto en imágenes, agregar/eliminar/mover objetos, cambiar acciones del sujeto, transferir estilos y mejorar detalles.

Introducción

Antes de realizar una llamada, obtenga una clave de API y expórtela como variable de entorno.

Para llamar a la API mediante el SDK, instale el SDK de DashScope. El SDK está disponible para Python y 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

El siguiente comando utiliza la URL para la región de Singapore. Si utiliza un modelo en la región de China (Pekín), reemplace la URL con: 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
    }
}'

Ejemplo de respuesta

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

Descargar imágenes a su dispositivo 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);
    }
}

Recomendaciones de modelos

  • qwen-image-3.0-pro (Calidad insignia): El modelo insignia de Qwen Image 3.0 con capacidades de generación y edición de imágenes integralmente mejoradas, ofreciendo renderizado de texto mejorado, texturas realistas, adherencia semántica y reescritura inteligente de prompts.
  • qwen-image-2.1-pro (Mejor equilibrio de velocidad, calidad y costo): Admite hasta 10 imágenes de referencia para tareas de imagen a imagen y puede generar automáticamente imágenes con canales transparentes basándose en el prompt. No admite negative_prompt.
  • qwen-image-2.1-turbo (Mejor relación costo-beneficio): El modelo más rentable de la serie Qwen-Image. Admite hasta 10 imágenes de referencia para tareas de imagen a imagen y puede generar automáticamente imágenes con canales transparentes basándose en el prompt. No admite negative_prompt.
  • qwen-image-3.0: El modelo estándar de Qwen Image 3.0 que equilibra calidad y velocidad.

Para ver los modelos admitidos en cada región, consulte la Lista de modelos.

Instrucciones de entrada

Imágenes de entrada (messages)

El parámetro messages es un arreglo que debe contener un único objeto. Este objeto debe incluir las propiedades role y content. La propiedad role debe establecerse en user. La propiedad content debe incluir tanto image como text (una instrucción de edición). La serie qwen-image-3.0 admite de una a tres imágenes, y la serie qwen-image-2.1 admite de una a diez imágenes.

Las imágenes de entrada deben cumplir con los siguientes requisitos:

  • Los formatos de imagen admitidos son JPG, JPEG, PNG, BMP, TIFF, WEBP y GIF.

    La imagen de salida está en formato PNG. Para los GIF animados, solo se procesa el primer fotograma.

  • Para obtener mejores resultados, la resolución de la imagen debe estar entre 384 y 3072 píxeles tanto para el ancho como para la altura. Una resolución baja puede resultar en una salida borrosa, mientras que una resolución alta aumenta el tiempo de procesamiento.

  • El tamaño de un solo archivo de imagen no puede exceder 10 MB.

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

Orden de entrada de imágenes

Los números de imagen en los prompts corresponden a la posición en el arreglo: la primera imagen es "imagen 1", la segunda es "imagen 2". También puede usar marcadores como "[imagen 1]" y "[imagen 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"}
    ]
}

Imagen de entrada

Imagen de salida

imagen (19)-convertida-desde-png

Imagen 1

imagen (20)-convertida-desde-png

Imagen 2

04e0fc39-7ad6-41e0-9df9-1f69ac3ce825-convertida-desde-png

Prompt: Mover la imagen 1 sobre la imagen 2

36ed450d-bd54-4169-b13f-3d0f26d9d360-convertida-desde-png

Prompt: Mover la imagen 2 sobre la imagen 1

Métodos de entrada de imágenes

URL pública
  • Puede proporcionar una URL de imagen accesible públicamente que admita el protocolo HTTP o HTTPS.
  • Valor de ejemplo: https://xxxx/img.png.

Codificación Base64

Convierta el archivo de imagen en una cadena codificada en Base64 y concaténela en el siguiente formato: data:{mime_type};base64,{base64_data}.

  • {mime_type}: El tipo de medio de la imagen, que debe corresponder al formato del archivo.
  • {base64_data}: La cadena codificada en Base64 del archivo.
  • Valor de ejemplo: data:image/jpeg;base64,GDU7MtCZz... (El ejemplo está truncado con fines demostrativos).

Para ejemplos de código completos, consulte Llamada al SDK de Python y Llamada mediante el SDK de Java.

Más parámetros

Ajuste los resultados de generación utilizando los siguientes parámetros opcionales:

  • n: Número de imágenes de salida (predeterminado: 1, máximo: 6). El valor de n afecta directamente el costo.
  • negative_prompt: Describe contenido a excluir de la imagen (como "desenfoque" o "dedos extra") para optimizar la calidad. La serie qwen-image-2.1 no admite este parámetro; describa los elementos no deseados en el prompt en su lugar.
  • size: Resolución de salida en formato width*height. Las series qwen-image-3.0 y qwen-image-2.1 admiten de 512*512 a 2048*2048 (relación de aspecto de 1:8 a 8:1). Si no se especifica, el modelo recomienda automáticamente una resolución.
  • prompt_extend: Reescritura de prompts (habilitada por defecto). Habilítela para prompts breves; deshabilítela para prompts detallados o escenarios sensibles a la latencia.
  • seed: Semilla aleatoria. Usar el mismo valor produce resultados relativamente estables.
  • watermark: Si se debe agregar una marca de agua (deshabilitado de forma predeterminada).

Para obtener una lista completa de parámetros, consulte la referencia de API de Qwen-Image-Edit.

Visión general

Fusión de múltiples imágenes

Imagen de entrada 1

Imagen de entrada 2

Imagen de entrada 3

Imagen de salida

imagen83

imagen103

1

2

La chica en la Imagen 1 lleva el collar de la Imagen 2 y carga la bolsa de la Imagen 3 en su hombro izquierdo.

Consistencia del sujeto

Imagen de entrada

Imagen de salida 1

Imagen de salida 2

Imagen de salida 3

imagen5

imagen4

Cambie la imagen a una foto de identificación con fondo azul. La persona viste una camisa blanca, un traje negro y una corbata de rayas.

imagen6

La persona viste una camisa blanca, un traje gris y una corbata de rayas. Una mano descansa sobre la corbata. El fondo es de color claro.

imagen7

La persona lleva una sudadera negra con capucha que dice "Qwen Image" en una fuente de pincelada gruesa. Está apoyada en una barandilla con luz solar en su cabello. Un puente y el mar están en el fondo.

imagen12

imagen13

El aire acondicionado está colocado en una sala de estar junto a un sofá.

imagen14

Se añade neblina desde la rejilla del aire acondicionado, extendiéndose sobre el sofá. También se agregan hojas verdes.

imagen15

El texto manuscrito blanco "Natural Fresh Air Enjoy Breathing" se agrega en la parte superior.

Creación de bocetos

Imagen de entrada

Imagen de salida

imagen42

imagen43

Genere una imagen que coincida con la forma detallada delineada en la Imagen 1 y siga esta descripción: Una mujer joven sonríe en un día soleado. Lleva gafas de sol redondas marrones con montura de estampado de leopardo. Su cabello está recogido pulcramente, lleva aretes de perlas, una bufanda azul oscuro con patrones de estrellas moradas y una chaqueta de cuero negro.

imagen44

Genere una imagen que coincida con la forma detallada delineada en la Imagen 1 y siga esta descripción: Un hombre mayor sonríe a la cámara. Su rostro tiene arrugas, su cabello está despeinado por el viento y lleva gafas de lectura de montura redonda. Tiene una bufanda roja desgastada con patrones de estrellas alrededor del cuello y lleva una chaqueta acolchada de algodón.

Generación creativa de productos

Imagen de entrada

Imagen de salida

imagen 1

imagen23

Haga que este oso se siente bajo la luna (representada por un contorno de media luna gris claro sobre fondo blanco), sosteniendo una guitarra, con pequeñas estrellas y globos de diálogo con frases como "Be Kind" flotando alrededor.

imagen22

Imprima este diseño en una camiseta y una bolsa de papel. Una modelo femenina muestra estos artículos. La mujer también lleva una gorra de béisbol con la frase "Be kind" escrita en ella.

imagen21

Un modelo de personaje hiperrealista a escala 1/7, diseñado como un producto comercial terminado, se coloca sobre un escritorio junto a un iMac con teclado blanco. El modelo se sostiene sobre una base acrílica transparente, redonda y limpia, sin etiquetas ni texto. La iluminación profesional de estudio resalta los detalles esculpidos. En la pantalla del iMac al fondo, se muestra el proceso de modelado en ZBrush del mismo modelo. Junto al modelo, coloque una caja de embalaje con una ventana transparente en el frente, mostrando solo la carcasa de plástico transparente en el interior. La caja es ligeramente más alta que el modelo y tiene un tamaño razonable para contenerlo.

imagen

Este oso lleva puesto un traje de astronauta y señala hacia la distancia.

imagen

Este oso lleva puesto un hermoso vestido de gala, con los brazos extendidos en una elegante pose de baile.

imagen

Este oso lleva ropa deportiva, sostiene un balón de baloncesto y tiene una pierna doblada.

Generar imagen a partir de mapa de profundidad

Imagen de entrada

Imagen de salida

imagen36

imagen37

Genere una imagen que coincida con el mapa de profundidad delineado en la Imagen 1 y siga esta descripción: Una bicicleta azul está estacionada en un callejón lateral, con algunas hierbas creciendo de las grietas en la piedra en el fondo.

imagen38

Genere una imagen que coincida con el mapa de profundidad delineado en la Imagen 1 y siga esta descripción: Una bicicleta roja desgastada está estacionada en un camino fangoso, con un denso bosque primitivo en el fondo.

Generar imagen a partir de puntos clave

Imagen de entrada

Imagen de salida

imagen40

imagen41

Genere una imagen que coincida con la pose humana delineada en la Imagen 1 y siga esta descripción: Una mujer china con Hanfu sostiene un paraguas de papel de aceite bajo la lluvia, con un jardín de Suzhou en el fondo.

imagen39

Genere una imagen que coincida con la pose humana delineada en la Imagen 1 y siga esta descripción: Un hombre joven está de pie en el andén del metro. Lleva una gorra de béisbol, una camiseta y jeans. Un tren pasa a gran velocidad detrás de él.

Edición de texto

Imagen de entrada

Imagen de salida

Imagen de entrada

Imagen de salida

imagen

imagen

Reemplazar 'HEALTH INSURANCE' en las fichas de Scrabble por 'Tomorrow Will Be Better'.

imagen

imagen

Cambiar la frase "Take a Breather" en la nota por "Relax and Recharge".

Imagen de entrada

Imagen de salida

imagen53

imagen45

Cambiar "Qwen-Image" a una fuente de goteo de tinta negra.

imagen46

Cambiar "Qwen-Image" a una fuente manuscrita negra.

imagen49

Cambiar "Qwen-Image" a una fuente de píxeles negra.

imagen54

Cambiar "Qwen-Image" a rojo.

imagen57

Cambiar "Qwen-Image" a un degradado azul-violeta.

imagen59

Cambiar "Qwen-Image" a colores pastel.

imagen63

Cambiar el material de "Qwen-Image" a metal.

imagen64

Cambiar el material de "Qwen-Image" a nubes.

imagen67

Cambiar el material de "Qwen-Image" a vidrio.

Agregar y eliminar

Capacidad

Imagen de entrada

Imagen de salida

Agregar elemento

imagen

imagen

Agregar un pequeño letrero de madera frente al pingüino que diga "Welcome to Penguin Beach".

Eliminar elemento

imagen

imagen

Quitar el pelo del plato.

Transformación de punto de vista

Imagen de entrada

Imagen de salida

Imagen de entrada

Imagen de salida

imagen

imagen

Obtener una vista frontal.

imagen

imagen

Mirar hacia la izquierda.

imagen

imagen

Obtener una vista trasera.

imagen

imagen

Mirar hacia la derecha.

Procesamiento de fotos antiguas

Capacidad

Imagen de entrada

Imagen de salida

Restauración y colorización de fotos antiguas

imagen

imagen

Restaure la foto antigua, elimine arañazos, reduzca el ruido, mejore los detalles, alta resolución, imagen realista, tono de piel natural, rasgos faciales claros, sin distorsión.

imagen31

imagen32

Colorear inteligentemente la imagen basándose en su contenido para hacerla más vívida.

Referencia de API

Consulte Edición de Qwen-Image para los parámetros de la API.

Códigos de error

Si la llamada al modelo falla y devuelve un mensaje de error, consulte Códigos de error para su resolución.

FAQ

P: ¿Qué idiomas admite el modelo de edición de imágenes Qwen?

R: El modelo actualmente admite chino simplificado e inglés. Puede probar otros idiomas, pero no se garantiza el rendimiento.

P: ¿Cómo puedo ver las métricas de invocación del modelo?

R: Una hora después de que finalice la invocación de un modelo, vaya a la página de Monitoreo (Singapore) o Monitoreo (China (Pekín)) para ver métricas como el recuento de invocaciones y la tasa de éxito. Para obtener más información, consulte Facturación y gestión de costos.

P: ¿Cómo obtengo la lista blanca de nombres de dominio para el almacenamiento de imágenes?

R: Las imágenes generadas por los modelos se almacenan en OSS. La API devuelve una URL pública temporal. Para configurar una lista blanca de firewall para esta URL de descarga, tenga en cuenta lo siguiente: El almacenamiento subyacente puede cambiar dinámicamente. Este tema no proporciona una lista blanca fija de dominios de OSS para evitar problemas de acceso causados por información obsoleta. Si tiene requisitos de control de seguridad, póngase en contacto con su gestor de cuenta para obtener la lista más reciente de nombres de dominio de OSS.

Consulte las Preguntas frecuentes sobre generación de imágenes.