Skip to main content

Wanxiang – Edición general de imágenes 2.5

El modelo Wanxiang Edición general de imágenes wan2.5 edita y fusiona imágenes únicamente a partir de instrucciones de texto, manteniendo la coherencia del sujeto en todas las ediciones.

Inicio rápido: Guía del usuario
Alibaba Cloud Model Studio ha lanzado dominios específicos de espacio de trabajo para las regiones de China (Beijing) y Singapur. Los nuevos dominios dedicados ofrecen un rendimiento superior y una mayor estabilidad para las solicitudes de inferencia. Recomendamos migrar a los nuevos dominios:
  • China (Pekín): de https://dashscope.aliyuncs.com a https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com
  • Singapur: de https://dashscope-intl.aliyuncs.com a https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com
{WorkspaceId} es su ID de espacio de trabajo, que se encuentra en la página Workspace Details de la consola de Alibaba Cloud Model Studio. El dominio existente permanece totalmente funcional.

Resumen de modelos

Capacidades del modelo

Ejemplo de entrada

Imagen de salida

Edición de imagen única

damotest2023 Fotografía de retrato al aire libre belleza a la moda

a26b226d-f044-4e95-a41c-d1c0d301c30b

Reemplace el vestido floral por un vestido de encaje de estilo vintage con bordados delicados en el cuello y los puños.

Fusión de múltiples imágenes

imagen

p1028883

Coloque el despertador de la imagen 1 junto al florero sobre la mesa del comedor en la imagen 2.

Nombre del modelo

Descripción del modelo

Especificaciones de la imagen de salida

wan2.5-i2i-preview

Vista previa de Wanxiang 2.5

Admite edición de imagen única y fusión de múltiples imágenes

Formato de imagen: PNG.

Resolución de imagen:

  • Utilice el parámetro parameters.size para especificar la resolución de la imagen de salida en el formato width*height (en píxeles).

  • Si no se especifica ninguna resolución, el valor predeterminado es 1280×1280 píxeles totales. Reglas de relación de aspecto aproximadas:

    • Para entrada de imagen única: coincide con la relación de aspecto de la imagen de entrada.

    • Para entrada de múltiples imágenes: coincide con la relación de aspecto de la última imagen de entrada.

Antes de llamar a la API, revise los modelos compatibles y los precios para su región.

Requisitos previos

Antes de realizar una llamada, obtenga una clave de API y expórtela como variable de entorno. Para realizar llamadas mediante el SDK, instale el SDK de DashScope.
Las regiones de China (Pekín) y Singapur tienen claves de API y endpoints de solicitud separados. No pueden utilizarse indistintamente. Las llamadas entre regiones provocan fallos de autenticación o errores de servicio.

Llamada a la API HTTP

La edición de imágenes tarda 1–2 minutos, por lo que la API utiliza invocación asíncrona: Crear tarea → Sondear resultado.
El tiempo de ejecución real varía según la longitud de la cola y la carga del servicio.

Paso 1: Crear una tarea y obtener el ID de tarea

Región de Singapur: POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/image2image/image-synthesis Región de Pekín: POST https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1/services/aigc/image2image/image-synthesis Reemplace {WorkspaceId} con su ID de espacio de trabajo real.
  • Después de crear la tarea, utilice el task_id devuelto para consultar el resultado. El task_id es válido durante 24 horas. No cree tareas duplicadas. En su lugar, utilice el sondeo para recuperar el resultado.
  • Para obtener orientación para principiantes, consulte Llamar a APIs con Postman o cURL.

Parámetros de solicitud

Encabezados de solicitud
Content-Type string (Requerido)El tipo de contenido de la solicitud. Debe ser application/json.Authorization string (Requerido)Autentica la solicitud con una clave API de Model Studio. Ejemplo: Bearer sk-xxxx.X-DashScope-Async string (Requerido)Habilita el procesamiento asíncrono. Las solicitudes HTTP solo admiten llamadas asíncronas. Debe ser enable.
Si falta este encabezado de solicitud, se devuelve el error "current user api does not support synchronous calls".
Cuerpo de la solicitud
model string (obligatorio)Nombre del modelo. Modelos admitidos y precios.Valor de ejemplo: wan2.5-i2i-preview.input object (requerido)Campos de entrada como el prompt y las imágenes.

Propiedades

prompt string (obligatorio)Un prompt positivo que describe los elementos y las características visuales que se incluirán en la imagen generada.Admite chino e inglés. Máximo: 2000 caracteres (cada carácter cuenta como uno); el exceso se trunca.Para obtener consejos sobre la redacción de prompts, consulte la Guía de prompts de texto a imagen.Valor de ejemplo: Un gato naranja alegre sentado, realista y detallado.images array of string (requerido)Una matriz de URLs de imágenes.
  • Longitud máxima de la matriz: 3 (hasta tres imágenes).
  • Para entrada de múltiples imágenes, el orden es importante. Las imágenes siguen la secuencia de la matriz.
Requisitos de imagen:
  • Formatos: JPEG, JPG, PNG (sin canal alfa), BMP, WEBP.
  • Resolución: El ancho y el alto deben estar entre 384 y 5000 píxeles.
  • Tamaño de archivo: Hasta 10 MB.
Formatos de entrada admitidos:
  1. URL de acceso público
    • Protocolos: HTTP o HTTPS.
    • Valor de ejemplo: http://wanx.alicdn.com/material/20250318/stylization_all_1.jpeg.
  2. Cadena de imagen codificada en Base64
    • Formato: data:{MIME_type};base64,{base64_data}
    • Ejemplo: data:image/jpeg;base64,GDU7MtCZzEbTbmRZ... (solo ejemplo; utilice la cadena completa).
    • Detalles de la codificación Base64: Métodos de entrada de imagen.
negative_prompt string (opcional)Un prompt negativo que describe elementos a excluir de la imagen.Admite chino e inglés. Máximo: 500 caracteres; el exceso se trunca.Valor de ejemplo: baja resolución, errores, peor calidad, baja calidad, incompleto, dedos adicionales, proporciones deficientes.
parameters object (opcional)Controla la resolución, la reescritura de prompts y la marca de agua.

Propiedades

size string (opcional)Establezca la resolución de la imagen de salida en formato width×height. Predeterminado: 1280×1280.
  • Rango de resolución: Píxeles totales entre 768×768 y 1280×1280. Rango de relación de aspecto: 1:4 a 4:1.
  • Valor de ejemplo: 1280×1280.

Resoluciones y relaciones de aspecto recomendadas

  • 1280×1280: 1:1
  • 1024×1024: 1:1
  • 800×1200: 2:3
  • 1200×800: 3:2
  • 960×1280: 3:4
  • 1280×960: 4:3
  • 720×1280: 9:16
  • 1280×720: 16:9
  • 1344×576: 21:9
Si se omite size, el valor predeterminado es 1280×1280 píxeles con una relación de aspecto aproximada:
  • Entrada de imagen única: coincide con la relación de aspecto de la imagen de entrada.
  • Entrada de múltiples imágenes: coincide con la relación de aspecto de la última imagen de entrada.
n integer (opcional)
El valor de n afecta directamente al costo. Los valores más altos cuestan más. Confirme los precios en Precios de modelos antes de realizar la llamada.
Número de imágenes a generar. Rango: 1–4. Valor predeterminado: 4. Establezca este valor en 1 durante las pruebas para controlar los costos.watermark boolean (opcional)Añade una marca de agua "AI Generated" en la esquina inferior derecha.
  • false: predeterminado. Sin marca de agua.
  • true: Añadir marca de agua.
prompt_extend boolean (opcional)Habilita la reescritura de prompts basada en LLM para mejorar la calidad de la imagen. Añade latencia.
  • true: predeterminado. Habilitar la reescritura.
  • false: Deshabilitar la reescritura.
Valor de ejemplo: true.seed integer (opcional)Semilla de número aleatorio. Rango válido: [0, 2147483647].Si se omite, se genera una semilla aleatoria. Si se especifica, se asignan semillas secuenciales a cada una de las n imágenes basándose en n. Por ejemplo, si n=4, las semillas son: seed, seed+1, seed+2, seed+3.Para mejorar la reproducibilidad, fije el valor de la semilla.Las semillas idénticas no garantizan resultados idénticos debido a la generación probabilística.
 curl --location 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/image2image/image-synthesis' \
    -H 'X-DashScope-Async: enable' \
    -H "Authorization: Bearer $DASHSCOPE_API_KEY" \
    -H 'Content-Type: application/json' \
    -d '{
    "model": "wan2.5-i2i-preview",
    "input": {
        "prompt": "Replace the floral dress with a vintage-style lace gown featuring delicate embroidery on the collar and cuffs.",
        "images": [
            "https://img.alicdn.com/imgextra/i2/O1CN01vHOj4h28jOxUJPwY8_!!6000000007968-49-tps-1344-896.webp"
        ]
    },
    "parameters": {
        "prompt_extend": true,
        "n": 1
    }
}'

Parámetros de respuesta

output objectInformación de salida de la tarea.

Propiedades

task_id stringEl ID de la tarea. Válido para consultas durante 24 horas.task_status stringEl estado de la tarea.

Valores de enumeración

  • PENDING
  • RUNNING
  • SUCCEEDED
  • FAILED
  • CANCELED
  • UNKNOWN: La tarea no existe o se desconoce su estado.
request_id stringIdentificador único de solicitud para rastreo y solución de problemas.code stringCódigo de error. Se devuelve solo para solicitudes fallidas. Consulte Códigos de error.message stringMensaje de error detallado. Se devuelve solo para solicitudes fallidas. Consulte Códigos de error.
  • Respuesta exitosa
  • Respuesta de error
Guarde el task_id para consultar el estado y el resultado de la tarea.
{
    "output": {
        "task_status": "PENDING",
        "task_id": "0385dc79-5ff8-4d82-bcb6-xxxxxx"
    },
    "request_id": "4909100c-7b5a-9f92-bfe5-xxxxxx"
}

Paso 2: Consulte los resultados mediante el ID de tarea

  • Singapore
  • China (Beijing)
GET https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/tasks/{task_id}Al realizar la llamada, reemplace {WorkspaceId} con su ID de espacio de trabajo real.
  • Recomendación de sondeo: La generación de imágenes requiere mucho tiempo. Utilice un mecanismo de sondeo con un intervalo razonable, como 10 segundos.
  • Transición de estado de la tarea: PENDING → RUNNING → SUCCEEDED o FAILED.
  • Enlace de resultado: Una vez que una tarea se completa correctamente, se devuelve una URL de imagen válida durante 24 horas. Descargue y guarde la imagen en un almacenamiento permanente, como OSS.

Parámetros de solicitud

Encabezados de solicitud
Authorization string (Requerido)Autentica la solicitud con una clave API de Model Studio. Ejemplo: Bearer sk-xxxx.
Parámetro de ruta de URL
task_id string (Obligatorio)El ID de la tarea.
  • Consultar resultado de la tarea
Reemplace 86ecf553-d340-4e21-xxxxxxxxx con su task_id real.
Las claves de API son diferentes para cada región. Para más información, consulte Obtener una clave de API.
Si utiliza un modelo en la región de China (Pekín), reemplace base_url con https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1/tasks/86ecf553-d340-4e21-xxxxxxxxx, donde {WorkspaceId} es su ID de espacio de trabajo real.
curl -X GET https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/tasks/86ecf553-d340-4e21-xxxxxxxxx \
--header "Authorization: Bearer $DASHSCOPE_API_KEY"

Parámetros de respuesta

output objectInformación de salida de la tarea.

Propiedades

task_id stringEl ID de la tarea. Válido para consultas durante 24 horas.task_status stringEl estado de la tarea.

Valores de enumeración

  • PENDING
  • RUNNING
  • SUCCEEDED
  • FAILED
  • CANCELED
  • UNKNOWN: La tarea no existe o se desconoce su estado.
submit_time stringLa hora en que se envió la tarea. La hora está en UTC+8 y el formato es YYYY-MM-DD HH:mm:ss.SSS.scheduled_time stringLa hora en que se ejecutó la tarea. La hora está en UTC+8 y el formato es YYYY-MM-DD HH:mm:ss.SSS.end_time stringLa hora en que se completó la tarea. La hora está en UTC+8 y el formato es YYYY-MM-DD HH:mm:ss.SSS.results array of objectLista de resultados de la tarea, que incluye URL de imágenes, prompts y detalles de errores para fallos parciales.

Propiedades

orig_prompt stringEl prompt de entrada original, correspondiente al parámetro de solicitud prompt.actual_prompt stringEl prompt optimizado utilizado cuando la reescritura de prompts está habilitada. No se devuelve cuando está deshabilitada.url stringURL de la imagen generada.code stringCódigo de error para imágenes fallidas. Se devuelve solo para fallos parciales.message stringMensaje de error para imágenes fallidas. Se devuelve solo para fallos parciales.
task_metrics objectEstadísticas del resultado de la tarea.

Propiedades

TOTAL integerEl número total de tareas.SUCCEEDED integerEl número de tareas exitosas.FAILED integerEl número de tareas fallidas.
code stringCódigo de error. Se devuelve solo para solicitudes fallidas. Consulte Códigos de error.message stringMensaje de error detallado. Se devuelve solo para solicitudes fallidas. Consulte Códigos de error.
usage objectEstadísticas de uso. Cuenta solo los resultados exitosos.

Propiedades

image_count integerNúmero de imágenes generadas exitosamente. Facturación: Costo = Número de imágenes × Precio unitario.
request_id stringIdentificador único de solicitud para rastreo y solución de problemas.
  • Tarea exitosa
  • Tarea fallida
  • Fallo parcial
  • Consulta de tarea caducada
Las URL de las imágenes son válidas solo durante 24 horas y luego se eliminan automáticamente. Guarde las imágenes generadas con prontitud.
{
    "request_id": "d1f2a1be-9c58-48af-b43f-xxxxxx",
    "output": {
        "task_id": "7f4836cd-1c47-41b3-b3a4-xxxxxx",
        "task_status": "SUCCEEDED",
        "submit_time": "2025-09-23 22:14:10.800",
        "scheduled_time": "2025-09-23 22:14:10.825",
        "end_time": "2025-09-23 22:15:23.456",
        "results": [
            {
                "orig_prompt": "Replace the floral dress with a vintage-style lace gown featuring delicate embroidery on the collar and cuffs.",
                "actual_prompt": "Replace the pink pleated dress with a vintage-style lace gown featuring delicate embroidery on the collar and cuffs. Keep the person’s hairstyle, makeup, and pose unchanged. Match the original image’s soft tones and classical atmosphere.",
                "url": "https://dashscope-result-sh.oss-cn-shanghai.aliyuncs.com/xxx.png?Expires=xxx"
            }
        ],
        "task_metrics": {
            "TOTAL": 1,
            "FAILED": 0,
            "SUCCEEDED": 1
        }
    },
    "usage": {
        "image_count": 1
    }
}

Llamada al SDK de DashScope

Los parámetros del SDK coinciden con la llamada a la API HTTP, adaptados para cada lenguaje. La edición de imágenes tarda 30–60 segundos. El SDK encapsula el flujo HTTP asíncrono y admite llamadas síncronas y asíncronas.
El tiempo de ejecución real varía según la longitud de la cola y la carga del servicio.

Llamada con el SDK de Python

Asegúrese de que su versión del SDK de Python de DashScope sea al menos1.25.2.Las versiones anteriores pueden provocar errores como “url error, please check url!”. Actualice mediante Instalar o actualizar SDK.
  • Llamada síncrona
  • Llamada asíncrona
Ejemplo de solicitud
Este ejemplo admite tres métodos de entrada de imagen: URL pública, codificación Base64 y ruta de archivo local.
import base64
import mimetypes
from urllib.parse import urlparse, unquote
from pathlib import PurePosixPath

import dashscope
import requests
import os

# La siguiente configuración corresponde a la región de Singapur. Sustituya {WorkspaceId} por el ID real de su espacio de trabajo. El valor de region varía según la región.
# Si no se ha configurado la variable de entorno, sustituya la siguiente línea por: api_key="sk-xxx"
# Las claves de API difieren entre Singapur y Pekín. Obtenga una clave de API: https://www.alibabacloud.com/help/model-studio/get-api-key
client = dashscope.Client(
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    workspace="{WorkspaceId}",
    region="ap-southeast-1",
)

# --- Imagen de entrada: codificación Base64 ---
# El formato Base64 es 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}"

"""
Métodos de entrada de imagen:
Elija uno de los siguientes:

1. URL pública — ideal para imágenes accesibles públicamente
2. Archivo local — ideal para desarrollo y pruebas locales
3. Codificación Base64 — ideal para imágenes privadas o transmisión segura
"""

# [Método 1] URL pública de imagen
image_url_1 = "https://img.alicdn.com/imgextra/i3/O1CN0157XGE51l6iL9441yX_!!6000000004770-49-tps-1104-1472.webp"
image_url_2 = "https://img.alicdn.com/imgextra/i3/O1CN01SfG4J41UYn9WNt4X1_!!6000000002530-49-tps-1696-960.webp"

# [Método 2] Archivo local (admite rutas absolutas y relativas)
# Requisito de formato: file:// + ruta del archivo
# Ejemplo (ruta absoluta):
# image_url_1 = "file://" + "/path/to/your/image_1.png"     # Linux/macOS
# image_url_2 = "file://" + "C:/path/to/your/image_2.png"  # Windows
# Ejemplo (ruta relativa):
# image_url_1 = "file://" + "./image_1.png"                 # Ajuste a su ruta
# image_url_2 = "file://" + "./image_2.png"                # Ajuste a su ruta

# [Método 3] Imagen codificada en Base64
# image_url_1 = encode_file("./image_1.png")               # Ajuste a su ruta
# image_url_2 = encode_file("./image_2.png")              # Ajuste a su ruta

print('----sync call, please wait a moment----')
# generate es una llamada de un solo paso (envía la tarea y espera a que finalice) y devuelve directamente el resultado del Job completado
job = client.images.generate(model="wan2.5-i2i-preview",
                             prompt="Place the alarm clock from image 1 beside the vase on the dining table in image 2.",
                             extra_input={'images': [image_url_1, image_url_2]},
                             negative_prompt="",
                             n=1,
                             # size="1280*1280",
                             prompt_extend=True,
                             watermark=False,
                             seed=12345)
print('response: %s' % job)
# Guarda las imágenes en el directorio actual
for result in job.results:
    file_name = PurePosixPath(unquote(urlparse(result.url).path)).parts[-1]
    with open('./%s' % file_name, 'wb+') as f:
        f.write(requests.get(result.url).content)
Ejemplo de respuesta
Las URL de las imágenes caducan después de 24 horas. Descargue las imágenes oportunamente.
{
    "status_code": 200,
    "request_id": "8ad45834-4321-44ed-adf5-xxxxxx",
    "code": null,
    "message": "",
    "output": {
        "task_id": "3aff9ebd-35fc-4339-98a3-xxxxxx",
        "task_status": "SUCCEEDED",
        "results": [
            {
                "url": "https://dashscope-result-sh.oss-cn-shanghai.aliyuncs.com/xxx.png?Expires=xxx",
                "orig_prompt": "Place the alarm clock from image 1 beside the vase on the dining table in image 2.",
                "actual_prompt": "Place the blue alarm clock from image 1 to the right of the vase on the dining table in image 2, near the edge of the tablecloth. Keep the clock facing the camera and parallel to the tabletop, with natural shadow projection."
            }
        ],
        "submit_time": "2025-10-23 16:18:16.009",
        "scheduled_time": "2025-10-23 16:18:16.040",
        "end_time": "2025-10-23 16:19:09.591",
        "task_metrics": {
            "TOTAL": 1,
            "FAILED": 0,
            "SUCCEEDED": 1
        }
    },
    "usage": {
        "image_count": 1
    }
}

Llamada al SDK de Java

Asegúrese de que su versión del SDK de Java de DashScope sea al menos2.22.2.Las versiones anteriores pueden provocar errores como “url error, please check url!”. Actualice mediante Instalar o actualizar SDK.
  • Llamada síncrona
  • Llamada asíncrona
Ejemplo de solicitud
Este ejemplo admite tres métodos de entrada de imagen: URL pública, codificación Base64 y ruta de archivo local.
// 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.*;

public class Image2Image {

    static {
        // The following URL is for the Singapore region. Replace {WorkspaceId} with your actual workspace ID. URLs differ by region.
        Constants.baseHttpApiUrl = "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1";
    }

    // If you have not configured an environment variable, replace the next line with: apiKey="sk-xxx"
    // API keys differ between Singapore and Beijing. Get an API key: https://www.alibabacloud.com/help/model-studio/get-api-key
    static String apiKey = System.getenv("DASHSCOPE_API_KEY");

    /**
     * Image input methods: choose one
     *
     * 1. Public URL — best for publicly accessible images
     * 2. Local file — best for local development and testing
     * 3. Base64 encoding — best for private images or secure transmission
     */

    // [Method 1] Public URL
    static String imageUrl_1 = "https://img.alicdn.com/imgextra/i3/O1CN0157XGE51l6iL9441yX_!!6000000004770-49-tps-1104-1472.webp";
    static String imageUrl_2 = "https://img.alicdn.com/imgextra/i3/O1CN01SfG4J41UYn9WNt4X1_!!6000000002530-49-tps-1696-960.webp";

    // [Method 2] Local file path (file://+absolute path or file:///+absolute path)
    // static String imageUrl_1 = "file://" + "/your/path/to/image_1.png";    // Linux/macOS
    // static String imageUrl_2 = "file:///" + "C:/your/path/to/image_2.png";  // Windows

    // [Method 3] Base64 encoding
    // static String imageUrl_1 = encodeFile("/your/path/to/image_1.png");
    // static String imageUrl_2 = encodeFile("/your/path/to/image_2.png");

    // List of images to edit
    static List<String> imageUrls = new ArrayList<>();
    static {
        imageUrls.add(imageUrl_1);
        imageUrls.add(imageUrl_2);
    }

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

        ImageSynthesisParam param =
                ImageSynthesisParam.builder()
                        .apiKey(apiKey)
                        .model("wan2.5-i2i-preview")
                        .prompt("Place the alarm clock from image 1 beside the vase on the dining table in image 2.")
                        .images(imageUrls)
                        .n(1)
                         //.size("1280*1280")
                        .negativePrompt("")
                        .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));
    }

    /**
     * Encode a file as a Base64 string
     * @param filePath File path
     * @return Base64 string in 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 not found: " + filePath);
        }
        // Detect 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 file and encode
        byte[] fileBytes = null;
        try{
            fileBytes = Files.readAllBytes(path);
        } catch (IOException e) {
            throw new IllegalArgumentException("Cannot read file: " + filePath);
        }

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

    public static void main(String[] args) {
        syncCall();
    }
}
Ejemplo de respuesta
Las URL de las imágenes caducan después de 24 horas. Descargue las imágenes oportunamente.
{
    "request_id": "d362685b-757f-4eac-bab5-xxxxxx",
    "output": {
        "task_id": "bfa7fc39-3d87-4fa7-b1e6-xxxxxx",
        "task_status": "SUCCEEDED",
        "results": [
            {
                "orig_prompt": "Place the alarm clock from image 1 beside the vase on the dining table in image 2.",
                "actual_prompt": "Place the blue alarm clock from image 1 to the right of the vase on the dining table in image 2, near the edge of the tablecloth. Keep the clock facing the camera and parallel to the vase.",
                "url": "https://dashscope-result-sh.oss-cn-shanghai.aliyuncs.com/xxx.png?Expires=xxx"
            }
        ],
        "task_metrics": {
            "TOTAL": 1,
            "SUCCEEDED": 1,
            "FAILED": 0
        }
    },
    "usage": {
        "image_count": 1
    }
}

Límites

  • Retención de datos: Tanto los ID de tarea como las URL de imágenes caducan después de 24 horas. No puede consultarlos ni descargarlos después de la caducidad.
  • Moderación de contenido: Todos los prompts, las imágenes de entrada y las imágenes de salida pasan por moderación de contenido. Las solicitudes que contienen contenido prohibido devuelven errores como “IPInfringementSuspect” o “DataInspectionFailed”. Consulte Información de errores para obtener más detalles.

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: He utilizado Edición general de imágenes 2.1 anteriormente. ¿Necesito cambiar mis llamadas al SDK para usar wan2.5?
R: Sí — el diseño de parámetros difiere entre versiones:
P: ¿Cómo puedo ver las métricas de uso del modelo?
R: Una hora después de que finalice una llamada al modelo, vaya a la página Telemetría de modelos (Singapore)Telemetría de modelos (Pekín) para ver métricas como el recuento de llamadas y la tasa de éxito. Para obtener una guía paso a paso, consulte ¿Cómo ver el historial de llamadas al modelo?.