Skip to main content
Wan

Wan2.1 - referência da API de edição geral de imagens

Este tópico descreve os parâmetros de entrada e saída do modelo Wan para edição geral de imagens.

Este documento destina-se apenas à região China (Beijing). Para utilizar o modelo, obtenha uma chave de API da região China(Beijing).
Este modelo utiliza instruções simples para executar diversas tarefas de edição de imagem (expansão de imagem, remoção de marca d'água, transferência de estilo, inpainting e aprimoramento de imagem). Os seguintes recursos são suportados atualmente:
  • Estilização de imagem: Estilização global e local.
  • Edição de conteúdo de imagem: Edição baseada em instruções (adicionar ou modificar conteúdo da imagem usando instruções sem especificar uma região), inpainting (adicionar, excluir ou modificar conteúdo em uma área especificada) e remoção de marca d'água de texto (chinês e inglês).
  • Otimização de tamanho e resolução de imagem: Expansão de imagem (expandir por proporção) e super resolução (aprimorar para alta definição).
  • Processamento de cores de imagem: Colorização (converter imagens em preto e branco ou em escala de cinza para coloridas).
  • Geração baseada em imagem de referência: Geração de esboço para imagem (extrair um esboço da imagem de entrada e gerar uma imagem com base no esboço) e geração por referência de personagem de desenho animado.
Guia relacionado: Edição de imagens - Wan2.1

Visão geral do modelo

Modelo

Preço

Limite de taxa (compartilhado por contas raiz e usuários RAM)

RPS de envio de tarefas

Tarefas simultâneas

wanx2.1-imageedit

$0,020070/imagem

2

2

Efeitos do modelo

Recurso

Imagem de entrada

Prompt de entrada

Imagem de saída

Estilização global

image

Converter para o estilo de livro ilustrado francês

image

Estilização local

image

Mudar a casa para um estilo de madeira.

image

Edição baseada em instruções

image

Mudar o cabelo dela para vermelho.

image

Inpainting

Imagem de entrada

image

Imagem de máscara de entrada (branco é a área mascarada)

image

Um coelho de cerâmica segurando uma flor de cerâmica.

Imagem de saída

image

Remoção de marca d'água de texto

image

Remover o texto da imagem.

image

Expansão de imagem

20250319105917

Uma fada verde.

image

Super resolução

Imagem desfocada

image

Super resolução.

Imagem nítida

image

Colorização

image

Fundo azul, folhas amarelas.

image

Geração de esboço para imagem

Imagem de entrada

image

Uma sala de estar em estilo nórdico minimalista.

Extrair o esboço da imagem original e gerar uma nova imagem

image

Geração por referência de personagem de desenho animado

Imagem de referência de entrada (personagem de desenho animado)

image

O personagem de desenho animado espia cautelosamente, olhando para uma gema azul brilhante na sala.

Imagem de saída

image

Pré-requisitos

Chame a API de edição geral de imagens Wan usando HTTP ou o DashScope SDK. Antes de fazer uma chamada, obtenha uma chave de API e exporte a chave de API como uma variável de ambiente. Para chamar a API usando o SDK, instale o DashScope SDK. O SDK está disponível para Python e Java.

HTTP

Os modelos de imagem levam muito tempo para processar. Para evitar tempos limite, as chamadas HTTP suportam apenas recuperação assíncrona de resultados. Duas solicitações são necessárias:
  1. Crie uma tarefa para obter um ID de tarefa: Envie uma solicitação para criar uma tarefa. A resposta retorna um ID de tarefa (task_id).
  2. Consulte o resultado usando o ID da tarefa: Use o ID da tarefa da etapa anterior para consultar o status e o resultado da tarefa. Se a tarefa for bem-sucedida, a resposta retorna uma URL de imagem válida por 24 horas.
Após a criação, a tarefa entra em uma fila para agendamento. Chame a API de consulta para recuperar o status e o resultado da tarefa.
O modelo de edição geral de imagens leva cerca de 5 a 15 segundos para processar uma solicitação. O tempo real depende do número de tarefas na fila e das condições da rede. Aguarde pacientemente pelo resultado.

Etapa 1: Criar uma tarefa para obter o ID da tarefa

POST https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1/services/aigc/image2image/image-synthesis Substitua {WorkspaceId} pelo seu ID do workspace real.

Parâmetros da solicitação

  • Estilização global
  • Passar um arquivo local (Base64)
  • Estilização local
  • Edição baseada em instruções
  • Inpainting
  • Remoção de marca d'água de texto
  • Expansão de imagem
  • Super resolução
  • Colorização
  • Geração de esboço para imagem
  • Geração por referência de personagem de desenho animado
curl --location 'https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1/services/aigc/image2image/image-synthesis' \
--header 'X-DashScope-Async: enable' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
  "model": "wanx2.1-imageedit",
  "input": {
    "function": "stylization_all",
    "prompt": "Convert to French picture book style",
    "base_image_url": "http://wanx.alicdn.com/material/20250318/stylization_all_1.jpeg"
  },
  "parameters": {
    "n": 1
  }
}'
Cabeçalhos da solicitação
Content-Type string (Obrigatório)O tipo de conteúdo da solicitação. Deve ser application/json.
Authorization string (Obrigatório)Autentica a solicitação com uma chave de API do Model Studio. Exemplo: Bearer sk-xxxx.
X-DashScope-Async string (Obrigatório)Ativa o processamento assíncrono. As solicitações HTTP suportam apenas chamadas assíncronas. Deve ser enable.
Se este cabeçalho de solicitação estiver ausente, o erro "current user api does not support synchronous calls" será retornado.
Corpo da solicitação
model string (Obrigatório)O nome do modelo, por exemplo, wanx2.1-imageedit.
input object (Obrigatório)As informações básicas de entrada (prompt).

Propriedades

promptstring(Obrigatório)O prompt usado para descrever os elementos desejados e as características visuais na imagem gerada.Suporta chinês e inglês. Comprimento máximo: 800 caracteres. Cada caractere chinês ou letra conta como um caractere. Caracteres excedentes são truncados automaticamente.
Os prompts variam para diferentes recursos. Recomendamos que você revise as dicas de prompt correspondentes para cada recurso.
functionstring(Obrigatório)O recurso de edição de imagem. Os seguintes recursos são suportados atualmente:
  • stylization_all: Estilização global. Dois estilos são suportados atualmente. Estilos e dicas de prompt
  • stylization_local: Estilização local. Oito estilos são suportados atualmente. Estilos e dicas de prompt
  • description_edit: Edição baseada em instruções. Use instruções para editar imagens. Recomendado para tarefas de edição simples. Dicas de prompt
  • description_edit_with_mask: Inpainting. Especifique a área de edição. Adequado para cenários que exigem controle preciso sobre o escopo da edição. Dicas de prompt
  • remove_watermark: Remoção de marca d'água de texto. Dicas de prompt
  • expand: Expansão de imagem. Dicas de prompt
  • super_resolution: Super resolução. Dicas de prompt
  • colorization: Colorização. Dicas de prompt
  • doodle: Geração de esboço para imagem. Dicas de prompt
  • control_cartoon_feature: Geração por referência de personagem de desenho animado. Dicas de prompt
base_image_url string (Obrigatório)A URL ou dados codificados em Base64 da imagem de entrada.Requisitos da imagem:
  • Formato de arquivo: JPG, JPEG, PNG, BMP, TIFF ou WEBP
  • Resolução: Largura e altura devem estar entre 512 e 4.096 pixels
  • Tamanho do arquivo: Máximo de 10 MB
  • A URL não pode conter caracteres chineses
Formatos de imagem de entrada:
  1. Usar uma URL pública
    • Os protocolos HTTP ou HTTPS são suportados.
    • Exemplo: http://wanx.alicdn.com/material/20250318/stylization_all_1.jpeg
  2. Passar string de imagem codificada em Base64
    • Formato de dados: data:{MIME_type};base64,{base64_data}
    • Exemplo: data:image/jpeg;base64,GDU7MtCZzEbTbmRZ......
    • A string codificada no exemplo está incompleta e serve apenas para demonstração. Para mais informações, consulte Formatos suportados.
mask_image_url string (Opcional)Este parâmetro é necessário apenas quando function está definido como description_edit_with_mask (inpainting). Não é necessário para outros recursos.A URL ou dados codificados em Base64 da imagem de máscara.Você pode passar uma URL acessível publicamente (HTTP/HTTPS) ou uma string codificada em Base64. Para mais informações, consulte Formatos suportados.Requisitos da imagem de máscara:
  • Resolução: Deve corresponder à resolução da imagem especificada por base_image_url. Largura e altura devem estar entre 512 e 4.096 pixels
  • Formato de arquivo: JPG, JPEG, PNG, BMP, TIFF ou WEBP
  • Tamanho do arquivo: Máximo de 10 MB
  • A URL não pode conter caracteres chineses
Requisitos de cor da área de máscara:
  • Área branca: Indica a parte a ser editada. Deve ser branco puro (valor RGB [255.255.255]). Caso contrário, pode não ser identificada corretamente.
  • Área preta: Indica a parte que não precisa ser alterada. Deve ser preto puro (valor RGB [0.0.0]). Caso contrário, pode não ser identificada corretamente.
Para obter uma imagem de máscara, use o Photoshop ou outra ferramenta.
parameters object (Opcional)Os parâmetros de processamento de imagem.

Propriedades

  • Geral
  • Estilização global
  • Edição baseada em instruções
  • Expansão de imagem
  • Super resolução
  • Geração de esboço para imagem
n integer (Opcional)O número de imagens a serem geradas. Faixa de valores: 1 a 4. Padrão: 1.seedinteger(Opcional)A semente de número aleatório, usada para controlar a aleatoriedade do conteúdo gerado pelo modelo. Faixa de valores: [0, 2147483647].Se não fornecido, o algoritmo gera automaticamente um número aleatório como semente. Para manter o conteúdo gerado relativamente estável, use o mesmo valor de parâmetro de semente.watermark bool (Opcional)Especifica se deve adicionar uma marca d'água. A marca d'água fica no canto inferior direito da imagem e exibe "Generated by AI".
  • false (padrão)
  • true

Parâmetros da resposta

  • Resposta bem-sucedida
  • Resposta de erro
Salve o task_id para consultar o status e o resultado da tarefa.
{
        "output": {
            "task_status": "PENDING",
            "task_id": "0385dc79-5ff8-4d82-bcb6-xxxxxx"
        },
        "request_id": "4909100c-7b5a-9f92-bfe5-xxxxxx"
    }
output objectAs informações de saída da tarefa.

Propriedades

task_id stringO ID da tarefa. Válido para consultas por 24 horas.task_status stringO status da tarefa.

Valores de enumeração

  • PENDING
  • RUNNING
  • SUCCEEDED
  • FAILED
  • CANCELED
  • UNKNOWN: A tarefa não existe ou seu status é desconhecido.
request_id stringIdentificador único da solicitação para rastreamento e solução de problemas.
code stringCódigo de erro. Retornado apenas para solicitações com falha. Consulte Códigos de erro.
message stringMensagem de erro detalhada. Retornada apenas para solicitações com falha. Consulte Códigos de erro.

Etapa 2: Consultar resultado pelo ID da tarefa

GET https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1/tasks/{task_id} Substitua {WorkspaceId} pelo seu ID do workspace real.

Parâmetros da solicitação

  • Consultar resultado da tarefa
Substitua 86ecf553-d340-4e21-xxxxxxxxx pelo seu task_id real.
curl -X GET https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1/tasks/86ecf553-d340-4e21-xxxxxxxxx \
    --header "Authorization: Bearer $DASHSCOPE_API_KEY"
Cabeçalhos da solicitação
Authorization string (Obrigatório)Autentica a solicitação com uma chave de API do Model Studio. Exemplo: Bearer sk-xxxx.
Parâmetros de caminho
task_id string (Obrigatório)O ID da tarefa.

Parâmetros da resposta

  • Tarefa bem-sucedida
  • Tarefa falhou
  • Tarefa parcialmente falhou
Os dados da tarefa (status da tarefa e URLs de imagem) são retidos por apenas 24 horas e depois removidos automaticamente. Salve as imagens geradas prontamente.
{
    "request_id": "eeef0935-02e9-9742-bb55-xxxxxx",
    "output": {
        "task_id": "a425c46f-dc0a-400f-879e-xxxxxx",
        "task_status": "SUCCEEDED",
        "submit_time": "2025-02-21 17:56:31.786",
        "scheduled_time": "2025-02-21 17:56:31.821",
        "end_time": "2025-02-21 17:56:42.530",
        "results": [
            {
                "url": "https://dashscope-result-sh.oss-cn-shanghai.aliyuncs.com/aaa.png"
            }
        ],
        "task_metrics": {
            "TOTAL": 1,
            "SUCCEEDED": 1,
            "FAILED": 0
        }
    },
    "usage": {
        "image_count": 1
    }
}
outputobjectAs informações de saída da tarefa.

Propriedades

task_id stringO ID da tarefa. Válido para consultas por 24 horas.task_status stringO status da tarefa.

Valores de enumeração

  • PENDING
  • RUNNING
  • SUCCEEDED
  • FAILED
  • CANCELED
  • UNKNOWN: A tarefa não existe ou seu status é desconhecido.
submit_time stringO horário em que a tarefa foi enviada. O horário está em UTC+8 e o formato é YYYY-MM-DD HH:mm:ss.SSS.scheduled_time stringO horário em que a tarefa foi executada. O horário está em UTC+8 e o formato é YYYY-MM-DD HH:mm:ss.SSS.end_time stringO horário em que a tarefa foi concluída. O horário está em UTC+8 e o formato é YYYY-MM-DD HH:mm:ss.SSS.results array objectUma lista de resultados da tarefa, incluindo URLs de imagem e mensagens de erro para tarefas parcialmente falhas.
{
    "results": [
        {
            "url": ""
        },
        {
            "code": "",
            "message": ""
        }
    ]
}
task_metrics objectEstatísticas do resultado da tarefa.

Propriedades

TOTAL integerO número total de tarefas.SUCCEEDED integerO número de tarefas bem-sucedidas.FAILED integerO número de tarefas com falha.
code stringCódigo de erro. Retornado apenas para solicitações com falha. Consulte Códigos de erro.message stringMensagem de erro detalhada. Retornada apenas para solicitações com falha. Consulte Códigos de erro.
usage objectAs estatísticas das informações de saída. Apenas resultados bem-sucedidos são contados.

Propriedades

image_count integerNúmero de imagens geradas com sucesso. Faturamento: Custo = Número de imagens × Preço unitário.
request_id stringIdentificador único da solicitação para rastreamento e solução de problemas.

DashScope SDK

Primeiro, certifique-se de ter instalado a versão mais recente do DashScope SDK. Caso contrário, pode ocorrer um erro de tempo de execução. O DashScope SDK suporta atualmente Python e Java. Os nomes dos parâmetros no SDK são majoritariamente consistentes com os da API HTTP. A estrutura dos parâmetros depende do encapsulamento do SDK para diferentes linguagens. Para descrições dos parâmetros, consulte 万相-图生视频-基于首帧(2.1-2.6). O processamento do modelo de vídeo leva muito tempo, portanto o service usa uma abordagem assíncrona. O SDK fornece um wrapper que suporta chamadas síncronas e assíncronas.
O modelo de edição geral de imagens leva cerca de 5 a 15 segundos para processar uma solicitação. O tempo real depende do número de tarefas na fila e das condições da rede. Aguarde pacientemente pelo resultado.

Python SDK

Ao usar o Python SDK para processar arquivos de imagem, insira uma imagem usando um dos três métodos a seguir. Escolha o método que melhor se adapta ao seu cenário.
  1. URL pública: Uma URL de imagem acessível publicamente que usa o protocolo HTTP ou HTTPS.
  2. Codificado em Base64: Passe a string do arquivo codificada em Base64 no formato data:{MIME_type};base64,{base64_data}.
  3. Caminho do arquivo local: Suporta caminhos absolutos e relativos. Consulte a tabela a seguir para formatos válidos de caminho de arquivo.

Sistema

Caminho do arquivo a ser passado

Exemplo (caminho absoluto)

Exemplo (caminho relativo)

Linux ou macOS

file://{caminho absoluto ou relativo do arquivo}

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

file://./images/test.png

Windows

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

file://./images/test.png

Código de exemplo

Antes de chamar o código, instale ou atualize o DashScope Python SDK para a versão mais recente: pip install -U dashscope. Consulte Instalar o SDK.
  • Chamada síncrona
  • Chamada assíncrona
Este exemplo mostra uma chamada síncrona e suporta três métodos de entrada de imagem: URL pública, codificação Base64 e caminho de arquivo local.
Exemplo de solicitação
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()
Exemplo de resposta
A URL é válida por 24 horas. Baixe a imagem prontamente.
{
    "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
    }
}

Java SDK

Ao usar o Java SDK para processar arquivos de imagem, insira uma imagem usando um dos três métodos a seguir. Escolha o método que melhor se adapta ao seu cenário.
  1. URL pública: Uma URL de imagem acessível publicamente que usa o protocolo HTTP ou HTTPS.
  2. Codificado em Base64: Passe a string do arquivo codificada em Base64 no formato data:{MIME_type};base64,{base64_data}.
  3. Caminho do arquivo local: Apenas caminhos absolutos são suportados. Consulte a tabela a seguir para formatos válidos de caminho de arquivo.

Sistema

Caminho do arquivo a ser passado

Exemplo

Linux ou macOS

file://{caminho absoluto do arquivo}

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

Windows

file:///{caminho absoluto do arquivo}

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

Código de exemplo

Antes de chamar o código, instale ou atualize o DashScope Java SDK para a versão mais recente. Consulte Instalar o SDK.
  • Chamada síncrona
  • Chamada assíncrona
Este exemplo mostra uma chamada síncrona e suporta três métodos de entrada de imagem: URL pública, codificação Base64 e caminho de arquivo local.
Exemplo de solicitação
// 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();
    }
}
Exemplo de resposta
A URL é válida por 24 horas. Baixe a imagem prontamente.
{
    "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
    }
}

Códigos de erro

Se a chamada do modelo falhar e retornar uma mensagem de erro, consulte Códigos de erro para resolução. Esta API também possui códigos de status específicos, conforme mostrado na tabela a seguir.

Código de status HTTP

Código de erro da API (code)

Mensagem de erro da API (message)

Descrição

400

InvalidParameter

InvalidParameter

Os parâmetros da solicitação são inválidos.

400

IPInfringementSuspect

Input data is suspected of being involved in IP infringement.

Os dados de entrada (como o prompt ou imagem) são suspeitos de violação de propriedade intelectual. Verifique a entrada para garantir que não contenha conteúdo que represente risco de violação.

400

DataInspectionFailed

Input data may contain inappropriate content.

Os dados de entrada (como o prompt ou imagem) podem conter conteúdo inadequado. Modifique a entrada e tente novamente.

500

InternalError

InternalError

O service está anormal. Tente novamente para descartar um problema ocasional.

Formatos de imagem de entrada

Formatos suportados

As imagens de entrada suportam múltiplos formatos de string, conforme mostrado na tabela a seguir.

Método de invocação

HTTP

Python SDK

Java SDK

Métodos de imagem de entrada suportados

  • URL pública

  • Codificação Base64

  • URL pública

  • Codificação Base64

  • Caminho do arquivo local

  • URL pública

  • Codificação Base64

  • Caminho do arquivo local

Método 1: Usar URL pública
  • Forneça um endereço de imagem acessível publicamente. Os protocolos HTTP ou HTTPS são suportados.
  • Exemplo: https://xxxx/img.png
Método 2: Usar codificação Base64 Converta um arquivo de imagem local para uma string Base64 e concatene-a no formato data:{MIME_type};base64,{base64_data}.
  • Para o código de conversão, consulte Código de exemplo
  • {MIME_type}: O tipo de mídia da imagem, que deve corresponder ao formato do arquivo
  • {base64_data}: A string codificada em Base64 do arquivo de imagem
  • Referência de tipo MIME:

    Formato de imagem

    Tipo MIME

    JPEG

    image/jpeg

    JPG

    image/jpeg

    PNG

    image/png

    BMP

    image/bmp

    TIFF

    image/tiff

    WEBP

    image/webp

  • Exemplo: data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABDg...... Nota: A string Base64 acima está truncada para demonstração. No uso real, passe a string codificada completa.
Método 3: Usar caminho do arquivo local
  • O HTTP não suporta caminhos de arquivo locais. Apenas o Python SDK e o Java SDK suportam este método.
  • Para regras de caminho de arquivo local, consulte Python SDK e Java SDK.

FAQ

Para perguntas frequentes sobre modelos de imagem (faturamento de modelos, regras de limitação de taxa e erros frequentes de API), consulte FAQ da API de Imagem.
Referência da API de Geração de Texto
Geração de Vídeo
Áudio
API em tempo real
Incorporação de Texto
Produção de Modelos