Este tema describe los parámetros de entrada y salida para el modelo de edición general de imágenes Wan.
ImportanteEste documento es solo para la región China (Beijing). Para usar el modelo, utilice una clave API de la región China (Beijing).
Este modelo utiliza instrucciones simples para realizar diversas tareas de edición de imágenes (expansión de imagen, eliminación de marca de agua, transferencia de estilo, inpainting de imagen y mejora de imagen). Actualmente se admiten las siguientes funciones:
- Estilización de imagen: Estilización global y local.
- Edición de contenido de imagen: Edición basada en instrucciones (agregar o modificar contenido de imagen usando instrucciones sin especificar una región), inpainting (agregar, eliminar o modificar contenido en un área específica) y eliminación de marca de agua de texto (chino e inglés).
- Optimización de tamaño y resolución de imagen: Expansión de imagen (expandir por proporción) y superresolución (mejorar a alta definición).
- Procesamiento de color de imagen: Colorización (convierte imágenes en blanco y negro o en escala de grises a color).
- Generación basada en una imagen de referencia: Generación de boceto a imagen (extraer un boceto de la imagen de entrada y luego generar una imagen basada en el boceto) y generación de referencia de personaje de dibujos animados.
Guía relacionada: Edición de imágenes - Wan2.1
Resumen de modelos
Modelo | Precio | Límite de velocidad (compartido por cuentas raíz y usuarios RAM) | |
|---|---|---|---|
RPS de envío de tareas | Tareas simultáneas | ||
wanx2.1-imageedit | $0.020070/imagen | 2 | 2 |
Efectos del modelo
Función | Imagen de entrada | Prompt de entrada | Imagen de salida |
|---|---|---|---|
Estilización global |
| Convertir al estilo de libro ilustrado francés |
|
Estilización local |
| Cambiar la casa a un estilo de madera. |
|
Edición basada en instrucciones |
| Cambiar su cabello a rojo. |
|
Inpainting | Imagen de entrada
Imagen de máscara de entrada (el blanco es el área enmascarada)
| Un conejo de cerámica sosteniendo una flor de cerámica. | Imagen de salida
|
Eliminación de marca de agua de texto |
| Eliminar el texto de la imagen. |
|
Expansión de imagen |
| Un hada verde. |
|
Superresolución | Imagen borrosa
| Superresolución. | Imagen nítida
|
Colorización |
| Fondo azul, hojas amarillas. |
|
Generación de boceto a imagen | Imagen de entrada
| Una sala de estar en un estilo nórdico minimalista. | Extraer el boceto de la imagen original y generar una nueva imagen
|
Generación de referencia de personaje de dibujos animados | Imagen de referencia de entrada (personaje de dibujos animados)
| El personaje de dibujos animados asoma con cautela, mirando una gema azul brillante en la habitación. | Imagen de salida
|
Requisitos previos
Llame a la API de edición general de imágenes de Wan mediante HTTP o el SDK de DashScope.
Antes de realizar una llamada, obtenga una clave de API y exporte la clave de API 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.
HTTP
Los modelos de imagen tardan mucho en procesarse. Para evitar tiempos de espera, las llamadas HTTP solo admiten la recuperación asíncrona de resultados. Se requieren dos solicitudes:
- Crear una tarea para obtener un ID de tarea: Envíe una solicitud para crear una tarea. La respuesta devuelve un ID de tarea (
task_id). - Consultar el resultado usando el ID de tarea: Use el ID de tarea del paso anterior para consultar el estado y el resultado de la tarea. Si la tarea es exitosa, la respuesta devuelve una URL de imagen válida por 24 horas.
NotaDespués de la creación, la tarea entra en una cola para su programación. Llame a la API de consulta para recuperar el estado y el resultado de la tarea.
El modelo general de edición de imágenes tarda aproximadamente de 5 a 15 segundos en procesar una solicitud. El tiempo real depende del número de tareas en la cola y de las condiciones de la red. Por favor, espere pacientemente el resultado.
Paso 1: Crear una tarea para obtener el ID de tarea
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.
Parámetros de solicitudEncabezados de solicitudContent-Type El tipo de contenido de la solicitud. Debe ser Authorization Autentica la solicitud con una clave API de Model Studio. Ejemplo: Bearer sk-xxxx. X-DashScope-Async Habilita el procesamiento asíncrono. Las solicitudes HTTP solo admiten llamadas asíncronas. Debe ser ImportanteSi falta este encabezado de solicitud, se devuelve el error "current user api does not support synchronous calls". Cuerpo de la solicitudmodel El nombre del modelo, por ejemplo, wanx2.1-imageedit. input La información básica de entrada (prompt). parameters Los parámetros de procesamiento de imagen. | Estilización globalPasar un archivo local (Base64)El siguiente ejemplo muestra cómo pasar un parámetro codificado en Base64 para la estilización global. Debido a que la cadena codificada en Base64 es larga, descargue image_base64 y copie todo su contenido al parámetro Para más información sobre el formato de datos, consulte Formatos admitidos. Estilización localEdición basada en instruccionesDescripción de la función: Agrega o modifica contenido de imagen utilizando solo instrucciones, sin especificar una región. InpaintingDescripción de la función: Añadir, eliminar o modificar contenido en un área especificada. Eliminación de marca de agua de textoDescripción de la función: Admite la eliminación de marcas de agua de texto en chino e inglés. Expansión de imagenDescripción de la función: Admite expandir la imagen proporcionalmente hacia arriba, abajo, izquierda y derecha. SuperresoluciónDescripción de la función: Admite mejorar una imagen borrosa a alta definición. ColorizaciónDescripción de la función: Convierte una imagen en blanco y negro o en escala de grises a una imagen a color. Generación de boceto a imagenDescripción de la función: Extrae un boceto de la imagen de entrada y luego genera una imagen basada en el boceto. Generación de referencia de personaje de dibujos animadosDescripción de la función: Admite generar una imagen basada en un personaje de dibujos animados de referencia. |
Parámetros de respuestaoutput La información de salida de la tarea. request_id Identificador único de solicitud para rastreo y solución de problemas. code Código de error. Se devuelve solo para solicitudes fallidas. Consulte Códigos de error. message Mensaje de error detallado. Se devuelve solo para solicitudes fallidas. Consulte Códigos de error. | Respuesta exitosaGuarde el Respuesta de errorError en la creación de la tarea. Consulte Códigos de error. |
Paso 2: Consultar resultado por ID de tarea
GET https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1/tasks/{task_id}
Reemplace {WorkspaceId} con su ID de espacio de trabajo real.
Parámetros de solicitudEncabezados de solicitudAuthorization Autentica la solicitud con una clave API de Model Studio. Ejemplo: Bearer sk-xxxx. Parámetros de rutatask_id El ID de la tarea. | Consultar resultado de la tareaReemplace |
Parámetros de respuestaoutput La información de salida de la tarea. usage Las estadísticas de información de salida. Solo se cuentan los resultados exitosos. request_id Identificador único de solicitud para rastreo y solución de problemas. | Tarea exitosaLos datos de la tarea (estado de la tarea y URL de imágenes) se conservan solo durante 24 horas y luego se eliminan automáticamente. Guarde las imágenes generadas con prontitud. Tarea fallidaCuando una tarea falla, Tarea parcialmente fallidaEl modelo puede generar múltiples imágenes por tarea. Si al menos una tiene éxito, el estado de la tarea es |
SDK de DashScope
Primero, asegúrese de haber instalado la versión más reciente del SDK de DashScope. De lo contrario, podría producirse un error de tiempo de ejecución.
El SDK de DashScope actualmente admite Python y Java.
Los nombres de los parámetros en el SDK son mayormente consistentes con los de la API HTTP. La estructura de los parámetros depende de la encapsulación del SDK para los diferentes lenguajes. Para descripciones de los parámetros, consulte Llamada HTTP.
El procesamiento del modelo de video tarda mucho tiempo, por lo que el servicio utiliza un enfoque asíncrono. El SDK proporciona un contenedor que admite llamadas síncronas y asíncronas.
El modelo general de edición de imágenes tarda aproximadamente de 5 a 15 segundos en procesar una solicitud. El tiempo real depende del número de tareas en la cola y de las condiciones de la red. Por favor, espere pacientemente el resultado.
SDK de Python
Al utilizar el SDK de Python para procesar archivos de imagen, ingrese una imagen mediante uno de los siguientes tres métodos. Elija el método que mejor se adapte a su escenario.
- URL pública: Una URL de imagen accesible públicamente que utiliza el protocolo HTTP o HTTPS.
- Codificación Base64: Pase la cadena del archivo codificado en Base64 en el formato
data:{MIME_type};base64,{base64_data}. - Ruta de archivo local: Admite tanto rutas absolutas como relativas. Consulte la siguiente tabla para ver los formatos de ruta de archivo válidos.
System | Ruta de archivo a pasar | Ejemplo (ruta absoluta) | Ejemplo (ruta relativa) |
|---|---|---|---|
Linux o macOS | file://{ruta absoluta o relativa del archivo} | file:///home/images/test.png | file://./images/test.png |
Windows | file://D:/images/test.png | file://./images/test.png |
Código de ejemplo
NotaAntes de llamar al código, instale o actualice el SDK de Python de DashScope a la versión más reciente: pip install -U dashscope. Consulte Instalar el SDK.
Llamada síncrona
Este ejemplo muestra una llamada síncrona y admite tres métodos de entrada de imagen: URL pública, codificación Base64 y ruta de archivo local.
Ejemplo de solicitud
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()
Ejemplo de respuesta
La URL es válida durante 24 horas. Descargue la imagen oportunamente.
{
"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
}
}
Llamada asíncrona
Este ejemplo muestra únicamente el método de llamada asíncrona.
Ejemplo de solicitud
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()
Ejemplo de respuesta
- Ejemplo de respuesta para crear una tarea
{
"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
}
- Ejemplo de respuesta para consultar el resultado de una tarea
La URL es válida durante 24 horas. Descargue la imagen oportunamente.
{
"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 de Java
Al utilizar el SDK de Java para procesar archivos de imagen, ingrese una imagen mediante uno de los siguientes tres métodos. Elija el método que mejor se adapte a su escenario.
- URL pública: Una URL de imagen accesible públicamente que utiliza el protocolo HTTP o HTTPS.
- Codificación Base64: Pase la cadena del archivo codificado en Base64 en el formato
data:{MIME_type};base64,{base64_data}. - Ruta de archivo local: Solo se admiten rutas absolutas. Consulte la siguiente tabla para ver los formatos de ruta de archivo válidos.
System | Ruta de archivo a pasar | Ejemplo |
|---|---|---|
Linux o macOS | file://{ruta absoluta del archivo} | file:///home/images/test.png |
Windows | file:///{ruta absoluta del archivo} | file:///D:/images/test.png |
Código de ejemplo
NotaAntes de llamar al código, instale o actualice el SDK de Java de DashScope a la versión más reciente. Consulte Instalar el SDK.
Llamada síncrona
Este ejemplo muestra una llamada síncrona y admite tres métodos de entrada de imagen: URL pública, codificación Base64 y ruta de archivo local.
Ejemplo de solicitud
// 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();
}
}
Ejemplo de respuesta
La URL es válida durante 24 horas. Descargue la imagen oportunamente.
{
"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
}
}
Llamada asíncrona
Este ejemplo muestra únicamente el método de llamada asíncrona.
Ejemplo de solicitud
// 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();
}
}
Ejemplo de respuesta
- Ejemplo de respuesta para crear una tarea
{
"request_id": "5dbf9dc5-4f4c-9605-85ea-xxxxxxxx",
"output": {
"task_id": "7277e20e-aa01-4709-xxxxxxxx",
"task_status": "PENDING"
}
}
- Ejemplo de respuesta para consultar el resultado de una tarea
La URL es válida durante 24 horas. Descargue la imagen oportunamente.
{
"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
}
}
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.
Esta API también tiene códigos de estado específicos, como se muestra en la siguiente tabla.
Código de estado HTTP | Código de error de API (code) | Mensaje de error de API (message) | Descripción |
|---|---|---|---|
400 | InvalidParameter | InvalidParameter | Los parámetros de la solicitud no son válidos. |
400 | IPInfringementSuspect | Se sospecha que los datos de entrada están involucrados en una infracción de propiedad intelectual. | Se sospecha que los datos de entrada (como el prompt o la imagen) infringen derechos de propiedad intelectual. Verifique la entrada para asegurarse de que no contenga contenido que represente un riesgo de infracción. |
400 | DataInspectionFailed | Los datos de entrada pueden contener contenido inapropiado. | Los datos de entrada (como el prompt o la imagen) pueden contener contenido inapropiado. Modifique la entrada e inténtelo de nuevo. |
500 | InternalError | InternalError | El servicio presenta anomalías. Inténtelo de nuevo para descartar un problema ocasional. |
Formatos de imagen de entrada
Formatos admitidos
Las imágenes de entrada admiten múltiples formatos de cadena, como se muestra en la siguiente tabla.
Método de invocación | HTTP | SDK de Python | SDK de Java |
|---|---|---|---|
Métodos de entrada de imagen admitidos |
|
|
|
- Proporcione una dirección de imagen accesible públicamente. Se admiten los protocolos HTTP o HTTPS.
- Ejemplo:
https://xxxx/img.png
Convierta un archivo de imagen local a una cadena Base64 y concaténela en el formato data:{MIME_type};base64,{base64_data}.
-
Para el código de conversión, consulte Código de ejemplo
-
{MIME_type}: El tipo de medio de la imagen, que debe coincidir con el formato de archivo
-
{base64_data}: La cadena codificada en Base64 del archivo de imagen
-
Referencia de tipos MIME:
Formato de imagen
Tipo MIME
JPEG
image/jpeg
JPG
image/jpeg
PNG
image/png
BMP
image/bmp
TIFF
image/tiff
WEBP
image/webp
-
Ejemplo:
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABDg......Nota: La cadena Base64 anterior está truncada con fines demostrativos. En el uso real, pase la cadena codificada completa.
- HTTP no admite rutas de archivos locales. Solo el SDK de Python y el SDK de Java admiten este método.
- Para las reglas de ruta de archivo local, consulte SDK de Python y SDK de Java.
FAQ
Para preguntas frecuentes sobre modelos de imagen (facturación de modelos, reglas de limitación de tasa y errores frecuentes de API), consulte Preguntas frecuentes sobre la API de imágenes.




















