Todos os produtos
Search
Central de documentação

Alibaba Cloud Model Studio:Wan2.1 - referência da API de edição geral de imagens

Última atualização: Jul 14, 2026

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

Importante

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.

Nota

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

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

Passar um arquivo local (Base64)

O exemplo a seguir mostra como passar um parâmetro codificado em Base64 para estilização global.

Como a string codificada em Base64 é longa, baixe image_base64 e copie todo o seu conteúdo para o parâmetro base_image_url.

Para mais informações sobre o formato de dados, consulte Formatos suportados.

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": "data:image/jpeg;base64,/9j/4AAQSkZJR......"
  },
  "parameters": {
    "n": 1
  }
}'

Estilização local

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_local",
    "prompt": "Change the house to a wooden style.",
    "base_image_url": "http://wanx.alicdn.com/material/20250318/stylization_local_1.png"
  },
  "parameters": {
    "n": 1
  }
}'

Edição baseada em instruções

Descrição do recurso: Adicionar ou modificar conteúdo da imagem usando apenas instruções, sem especificar uma região.

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": "description_edit",
    "prompt": "Change her hair to red.",
    "base_image_url": "http://wanx.alicdn.com/material/20250318/description_edit_2.png"
  },
  "parameters": {
    "n": 1
  }
}'

Inpainting

Descrição do recurso: Adicionar, excluir ou modificar conteúdo em uma área especificada.

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": "description_edit_with_mask",
    "prompt": "A ceramic rabbit holding a ceramic flower.",
    "base_image_url": "http://wanx.alicdn.com/material/20250318/description_edit_with_mask_3.jpeg",
    "mask_image_url": "http://wanx.alicdn.com/material/20250318/description_edit_with_mask_3_mask.png"
  },
  "parameters": {
    "n": 1
  }
}'

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

Descrição do recurso: Suporta a remoção de marcas d'água de texto em chinês e inglês.

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": "remove_watermark",
    "prompt": "Remove the text from the image",
    "base_image_url": "http://wanx.alicdn.com/material/20250318/remove_watermark_1.png"
  },
  "parameters": {
    "n": 1
  }
}'

Expansão de imagem

Descrição do recurso: Suporta a expansão da imagem proporcionalmente para cima, baixo, esquerda e direita.

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": "expand",
    "prompt": "A green fairy",
    "base_image_url": "http://wanx.alicdn.com/material/20250318/expand_2.jpg"
  },
  "parameters": {
    "top_scale": 1.5,
    "bottom_scale": 1.5,
    "left_scale": 1.5,
    "right_scale": 1.5,
    "n": 1
  }
}'

Super resolução

Descrição do recurso: Suporta o aumento de escala de uma imagem desfocada para alta definição.

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": "super_resolution",
    "prompt": "Super resolution.",
    "base_image_url": "http://wanx.alicdn.com/material/20250318/super_resolution_1.jpeg"  
  },
  "parameters": {
    "upscale_factor": 2,
    "n": 1
  }
}'

Colorização

Descrição do recurso: Converte uma imagem em preto e branco ou em escala de cinza para uma imagem colorida.

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": "colorization",
    "prompt": "Blue background, yellow leaves.",
    "base_image_url": "http://wanx.alicdn.com/material/20250318/colorization_1.jpeg"  
  },
  "parameters": {
    "n": 1
  }
}'

Geração de esboço para imagem

Descrição do recurso: Extrai um esboço da imagem de entrada e gera uma imagem com base no esboço.

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": "doodle",
    "prompt": "A living room in a minimalist Nordic style.",
    "base_image_url": "http://wanx.alicdn.com/material/20250318/doodle_1.png"
  },
  "parameters": {
    "n": 1
  }
}'

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

Descrição do recurso: Suporta a geração de uma imagem com base em um personagem de desenho animado de referência.

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": "control_cartoon_feature",
    "prompt": "The cartoon character cautiously peeks out, looking at a sparkling blue gem in the room.",
    "base_image_url": "http://wanx.alicdn.com/material/20250318/control_cartoon_feature_1.png"
  },
  "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.

Importante

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

prompt string (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.

function string (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

n integer (Opcional)

O número de imagens a serem geradas. Faixa de valores: 1 a 4. Padrão: 1.

seed integer (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

Estilização global

n integer (Opcional)

O número de imagens a serem geradas. O valor pode ser um inteiro de 1 a 4. O valor padrão é 1.

seed integer (Opcional)

A semente de número aleatório, usada para controlar a aleatoriedade do conteúdo gerado pelo modelo. O valor do parâmetro seed pode ser um inteiro de [0, 2147483647].

Se você não fornecer este parâmetro, o algoritmo gera automaticamente um número aleatório como semente. Se desejar que o conteúdo gerado seja 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 está localizada no canto inferior direito da imagem e exibe Generated by AI.

  • false: O valor padrão. Nenhuma marca d'água é adicionada.

  • true: Uma marca d'água é adicionada.

strength float (Opcional)

Especifique este parâmetro quando function estiver definido como stylization_all (estilização global).

O grau de modificação da imagem. Faixa de valores: 0,0 a 1,0. Padrão: 0,5.

Um valor mais próximo de 0 significa que o resultado é mais próximo da imagem original. Um valor mais próximo de 1 significa maior modificação na imagem original.

Edição baseada em instruções

n integer (Opcional)

O número de imagens a serem geradas. O valor pode ser um inteiro de 1 a 4. O valor padrão é 1.

seed integer (Opcional)

A semente de número aleatório, usada para controlar a aleatoriedade do conteúdo gerado pelo modelo. O valor do parâmetro seed pode ser um inteiro de [0, 2147483647].

Se você não fornecer este parâmetro, o algoritmo gera automaticamente um número aleatório como semente. Se desejar que o conteúdo gerado seja 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 está localizada no canto inferior direito da imagem e exibe Generated by AI.

  • false: O valor padrão. Nenhuma marca d'água é adicionada.

  • true: Uma marca d'água é adicionada.

strength float (Opcional)

Especifique este parâmetro quando function estiver definido como description_edit (edição baseada em instruções).

O grau de modificação da imagem. O valor pode ser um float de 0,0 a 1,0. O valor padrão é 0,5.

Um valor mais próximo de 0 significa que o resultado é mais próximo da imagem original. Um valor mais próximo de 1 significa um maior grau de modificação na imagem original.

Expansão de imagem

n integer (Opcional)

O número de imagens a serem geradas. O valor pode ser um inteiro de 1 a 4. O valor padrão é 1.

seed integer (Opcional)

A semente de número aleatório, usada para controlar a aleatoriedade do conteúdo gerado pelo modelo. O valor do parâmetro seed pode ser um inteiro de [0, 2147483647].

Se você não fornecer este parâmetro, o algoritmo gera automaticamente um número aleatório como semente. Se desejar que o conteúdo gerado seja 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 está localizada no canto inferior direito da imagem e exibe Generated by AI.

  • false: O valor padrão. Nenhuma marca d'água é adicionada.

  • true: Uma marca d'água é adicionada.

top_scale float (Opcional)

Especifique este parâmetro apenas quando function estiver definido como expand (expansão de imagem).

Expandir a imagem centralizada para cima por uma proporção especificada. Padrão: 1,0. Faixa de valores: 1,0 a 2,0.

bottom_scale float (Opcional)

Especifique este parâmetro apenas quando function estiver definido como expand (expansão de imagem).

Expandir a imagem centralizada para baixo por uma proporção especificada. Padrão: 1,0. Faixa de valores: 1,0 a 2,0.

left_scale float (Opcional)

Especifique este parâmetro apenas quando function estiver definido como expand (expansão de imagem).

Expandir a imagem centralizada para a esquerda por uma proporção especificada. Padrão: 1,0. Faixa de valores: 1,0 a 2,0.

right_scale float (Opcional)

Especifique este parâmetro apenas quando function estiver definido como expand (expansão de imagem).

Expandir a imagem centralizada para a direita por uma proporção especificada. Padrão: 1,0. Faixa de valores: 1,0 a 2,0.

Super resolução

n integer (Opcional)

O número de imagens a serem geradas. O valor pode ser um inteiro de 1 a 4. O valor padrão é 1.

seed integer (Opcional)

A semente de número aleatório, usada para controlar a aleatoriedade do conteúdo gerado pelo modelo. O valor do parâmetro seed pode ser um inteiro de [0, 2147483647].

Se você não fornecer este parâmetro, o algoritmo gera automaticamente um número aleatório como semente. Se desejar que o conteúdo gerado seja 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 está localizada no canto inferior direito da imagem e exibe Generated by AI.

  • false: O valor padrão. Nenhuma marca d'água é adicionada.

  • true: Uma marca d'água é adicionada.

upscale_factor integer (Opcional)

Especifique este parâmetro apenas quando function estiver definido como super_resolution (super resolução).

O fator de aumento de escala para super resolução, que aprimora detalhes enquanto amplia a imagem e melhora a resolução para processamento em alta definição.

Faixa de valores: 1 a 4. Padrão: 1. Quando upscale_factor está definido como 1, a imagem é processada para alta definição sem ser ampliada.

Geração de esboço para imagem

n integer (Opcional)

O número de imagens a serem geradas. O valor pode ser um inteiro de 1 a 4. O valor padrão é 1.

seed integer (Opcional)

A semente de número aleatório, usada para controlar a aleatoriedade do conteúdo gerado pelo modelo. O valor do parâmetro seed pode ser um inteiro de [0, 2147483647].

Se você não fornecer este parâmetro, o algoritmo gera automaticamente um número aleatório como semente. Se desejar que o conteúdo gerado seja 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 está localizada no canto inferior direito da imagem e exibe Generated by AI.

  • false: O valor padrão. Nenhuma marca d'água é adicionada.

  • true: Uma marca d'água é adicionada.

is_sketch bool (Opcional)

Especifique este parâmetro apenas quando function estiver definido como doodle (geração de esboço para imagem).

Especifica se a imagem de entrada é uma imagem de esboço.

  • false (padrão): A imagem de entrada não é um esboço. O modelo primeiro extrai um esboço da imagem de entrada e depois gera uma nova imagem com base no esboço.

  • true: A imagem de entrada é um esboço. O modelo gera uma imagem diretamente com base na imagem de entrada. Adequado para cenários de rabisco para pintura.

Parâmetros da resposta

Resposta bem-sucedida

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

Resposta de erro

Falha na criação da tarefa. Consulte Códigos de erro.

{
    "code": "InvalidApiKey",
    "message": "No API-key provided.",
    "request_id": "7438d53d-6eb8-4596-8835-xxxxxx"
}

output object

As informações de saída da tarefa.

Propriedades

task_id string

O ID da tarefa. Válido para consultas por 24 horas.

task_status string

O status da tarefa.

Valores de enumeração

  • PENDING

  • RUNNING

  • SUCCEEDED

  • FAILED

  • CANCELED

  • UNKNOWN: A tarefa não existe ou seu status é desconhecido.

request_id string

Identificador único da solicitação para rastreamento e solução de problemas.

code string

Código de erro. Retornado apenas para solicitações com falha. Consulte Códigos de erro.

message string

Mensagem 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

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

Tarefa falhou

Quando uma tarefa falha, task_status é FAILED com um código de erro e mensagem. Consulte Códigos de erro.

{
    "request_id": "e5d70b02-ebd3-98ce-9fe8-759d7d7b107d",
    "output": {
        "task_id": "86ecf553-d340-4e21-af6e-xxxxxx",
        "task_status": "FAILED",
        "code": "InvalidParameter",
        "message": "xxxxxx",
        "task_metrics": {
            "TOTAL": 4,
            "SUCCEEDED": 0,
            "FAILED": 4
        }
    }
}

Tarefa parcialmente falhou

O modelo pode gerar várias imagens por tarefa. Se pelo menos uma for bem-sucedida, o status da tarefa é SUCCEEDED e as URLs das imagens bem-sucedidas são retornadas. Imagens com falha incluem um motivo da falha. As estatísticas de uso contam apenas resultados bem-sucedidos. Consulte Códigos de erro.

{
    "request_id": "85eaba38-0185-99d7-8d16-xxxxxx",
    "output": {
        "task_id": "86ecf553-d340-4e21-af6e-xxxxxx",
        "task_status": "SUCCEEDED",
        "results": [
            {
                "url": "https://dashscope-result-bj.oss-cn-beijing.aliyuncs.com/123/a1.png"
            },
            {
                "code": "InternalError.Timeout",
                "message": "An internal timeout error has occured during execution, please try again later or contact service support."
            }
        ],
        "task_metrics": {
            "TOTAL": 2,
            "SUCCEEDED": 1,
            "FAILED": 1
        }
    },
    "usage": {
        "image_count": 1
    }
}

output object

As informações de saída da tarefa.

Propriedades

task_id string

O ID da tarefa. Válido para consultas por 24 horas.

task_status string

O status da tarefa.

Valores de enumeração

  • PENDING

  • RUNNING

  • SUCCEEDED

  • FAILED

  • CANCELED

  • UNKNOWN: A tarefa não existe ou seu status é desconhecido.

submit_time string

O 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 string

O 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 string

O 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 object

Uma lista de resultados da tarefa, incluindo URLs de imagem e mensagens de erro para tarefas parcialmente falhas.

Estrutura de dados

{
    "results": [
        {
            "url": ""
        },
        {
            "code": "",
            "message": ""
        }
    ]
}

task_metrics object

Estatísticas do resultado da tarefa.

Propriedades

TOTAL integer

O número total de tarefas.

SUCCEEDED integer

O número de tarefas bem-sucedidas.

FAILED integer

O número de tarefas com falha.

code string

Código de erro. Retornado apenas para solicitações com falha. Consulte Códigos de erro.

message string

Mensagem de erro detalhada. Retornada apenas para solicitações com falha. Consulte Códigos de erro.

usage object

As estatísticas das informações de saída. Apenas resultados bem-sucedidos são contados.

Propriedades

image_count integer

Número de imagens geradas com sucesso. Faturamento: Custo = Número de imagens × Preço unitário.

request_id string

Identificador ú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

Nota

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

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

Chamada assíncrona

Este exemplo mostra apenas o método de chamada assíncrona.

Exemplo de solicitação
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()
Exemplo de resposta
  1. Exemplo de resposta para criação de uma tarefa

    {
    	"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
    }
  2. Exemplo de resposta para consulta de resultado de tarefa

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

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

Nota

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

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

Chamada assíncrona

Este exemplo mostra apenas o método de chamada assíncrona.

Exemplo de solicitação
// 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();
    }
}
Exemplo de resposta
  1. Exemplo de resposta para criação de uma tarefa

    {
    	"request_id": "5dbf9dc5-4f4c-9605-85ea-xxxxxxxx",
    	"output": {
    		"task_id": "7277e20e-aa01-4709-xxxxxxxx",
    		"task_status": "PENDING"
    	}
    }
  2. Exemplo de resposta para consulta de resultado de tarefa

    A URL é válida por 24 horas. Baixe a imagem prontamente.
    {
    	"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 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.