Skip to main content
Wan

Wan2.6 - geração e edição de imagens

O Wan2.6 oferece suporte a entrada de múltiplas imagens, edição de imagens e saída intercalada de texto e imagem.

Visão geral do modelo

Modelo

Descrição

Especificações da imagem de saída

wan2.6-image

Edita imagens e gera saída intercalada de texto e imagem.

Formato da imagem: PNG

A resolução e as dimensões da imagem são configuradas por meio do parâmetro size.

Antes de chamar a API, verifique a lista de modelos e preços compatíveis em cada região.

Pré-requisitos

Obtenha uma chave de API e exporte a chave de API como uma variável de ambiente.
As regiões Singapore, US (Virginia) e China (Beijing) possuem chaves de API e endpoints de solicitação separados. Eles não podem ser usados de forma intercambiável. Chamadas entre regiões resultam em falhas de autenticação ou erros de service. Para mais informações, consulte Selecione uma região e escopo de implantação do service.

HTTP síncrono

Retorna resultados em uma única solicitação. Recomendado para a maioria dos cenários.
  • Singapore
  • US (Virginia)
  • China (Beijing)
POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generationAo fazer a chamada, substitua {WorkspaceId} pelo seu ID do workspace real.
O escopo de implantação global (região de Frankfurt) suporta apenas chamadas assíncronas .

Parâmetros da solicitação

  • Edição de imagem
  • Saída intercalada de texto e imagem (apenas streaming)
curl --location 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation' \
        --header 'Content-Type: application/json' \
        --header "Authorization: Bearer $DASHSCOPE_API_KEY" \
        --data '{
            "model": "wan2.6-image",
            "input": {
                "messages": [
                    {
                        "role": "user",
                        "content": [
                            {
                                "text": "Generate a tomato and egg stir-fry based on the style of image 1 and the background of image 2"
                            },
                            {
                                "image": "https://cdn.wanx.aliyuncs.com/tmp/pressure/umbrella1.png"
                            },
                            {
                                "image": "https://img.alicdn.com/imgextra/i3/O1CN01SfG4J41UYn9WNt4X1_!!6000000002530-49-tps-1696-960.webp"
                            }
                        ]
                    }
                ]
            },
            "parameters": {
                "prompt_extend": true,
                "watermark": false,
                "n": 1,
                "enable_interleave": false,
                "size": "1K"
            }
        }'
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-SSEstring (Opcional)Ativa a saída em streaming.
  • Quando parameters.enable_interleave=true, defina como enable.
  • Nos demais casos, omita este cabeçalho.
Corpo da solicitação
model string (Obrigatório)Nome do modelo. Defina como wan2.6-image.
input object (Obrigatório)Configuração de entrada.

Propriedades

messages array (Obrigatório)Array de conteúdo da solicitação. Apenas conversas de turno único são suportadas -- forneça um par role-content.

Propriedades

rolestring (Obrigatório)Função da mensagem. Defina como user.contentarray (Obrigatório)Array de conteúdo da mensagem.

Propriedades

textstring(Obrigatório)Prompt positivo que descreve o conteúdo, estilo e composição desejados para a imagem.Suporta chinês e inglês. Máximo de 2.000 caracteres (cada caractere chinês, letra, dígito ou símbolo conta como um). Truncado automaticamente se excedido.Exemplo: Gere um refogado de tomate com ovos baseado no estilo desta imagem.Nota: O array content deve conter exatamente um objeto com um campo text.imagestring(Opcional)URL ou string codificada em Base64 da imagem de entrada.Restrições da imagem:
  • Formatos de imagem: JPEG, JPG, PNG (canal alfa não suportado), BMP, WebP.
  • Resolução da imagem: Largura e altura devem estar entre 240 e 8.000 pixels cada.
  • Tamanho do arquivo: Não deve exceder 10 MB.
Limites de quantidade de imagens:
  • A quantidade de imagens de entrada depende do parâmetro parameters.enable_interleave.
    • Quando enable_interleave=true (saída intercalada de texto e imagem), você pode inserir de 0 a 1 imagens.
    • Quando enable_interleave=false (edição de imagem), você deve inserir de 1 a 4 imagens.
  • Ao inserir múltiplas imagens, inclua vários objetos image no array content, definindo a ordem das imagens pela sequência do array.
Formatos de entrada suportados:
  1. Use uma URL publicamente acessível
    • Suporta protocolos HTTP ou HTTPS.
    • Exemplo: http://wanx.alicdn.com/material/xxx.jpeg.
  2. Forneça uma string de imagem codificada em Base64
    • Formato: data:{MIME_type};base64,{base64_data}
    • Exemplo: data:image/jpeg;base64,GDU7MtCZzEbTbmRZ... (apenas para ilustração; forneça a string completa na prática)
    • Para diretrizes de codificação Base64, consulte Métodos de entrada de imagem.
parameters object (Opcional)Parâmetros de geração.

Propriedades

negative_prompt string (opcional)Um prompt negativo que descreve o que você não deseja na imagem.Suporta chinês e inglês. O comprimento máximo é de 500 caracteres. Caracteres excedentes são truncados automaticamente.Exemplo: Baixa resolução, baixa qualidade, membros distorcidos, dedos malformados, cores supersaturadas, aparência de cera, sem detalhes faciais, superfícies excessivamente lisas, aparência gerada por IA. Composição caótica. Texto desfocado ou distorcido.size string (Opcional)Resolução da imagem de saída. Suporta dois métodos: referenciar as proporções da imagem de entrada ou especificar diretamente as dimensões.Quando enable_interleave=false (modo de edição de imagem):
  • Método 1: Referenciar proporções da imagem de entrada (recomendado) Opções de resolução de saída disponíveis: 1K (padrão), 2K.
    • 1K: Total de pixels de saída próximo a 1280*1280, mantendo a proporção da última imagem de entrada.
    • 2K: Total de pixels de saída próximo a 2048*2048, mantendo a proporção da última imagem de entrada.
  • Método 2: Especificar largura e altura da imagem de saída em pixels O total de pixels deve estar entre [768768, 20482048], com uma faixa de proporção de [1:4, 4:1].
    Os valores reais de pixels de saída são múltiplos de 16 mais próximos do valor especificado.
Quando enable_interleave=true (modo de saída intercalada de texto e imagem):
  • Método 1: Referenciar proporções da imagem de entrada (método padrão)
    • Se o total de pixels da imagem de entrada for ≤ 1280*1280, a saída corresponde ao total de pixels e à proporção da entrada.
    • Se o total de pixels da imagem de entrada for > 12801280, o total de pixels de saída será próximo a 12801280, mantendo a proporção da entrada.
    • Se nenhuma imagem de entrada for fornecida, o tamanho de saída será 1280*1280.
  • Método 2: Especificar largura e altura da imagem de saída em pixels O total de pixels deve estar entre [768768, 12801280], com uma faixa de proporção de [1:4, 4:1].
    Os valores reais de pixels de saída são múltiplos de 16 mais próximos do valor especificado.

Resoluções recomendadas para proporções comuns

  • 1:1: 1280*1280
  • 2:3: 800*1200
  • 3:2: 1200*800
  • 3:4: 960*1280
  • 4:3: 1280*960
  • 9:16: 720*1280
  • 16:9: 1280*720
  • 21:9: 1344*576
enable_interleave bool (Opcional)Controla o modo de geração de imagem:
  • false (padrão): Indica o modo de edição de imagem (suporta entrada de múltiplas imagens e geração com consistência de assunto).
    • Caso de uso: Editar, aplicar transferência de estilo ou gerar imagens consistentes com o assunto com base em 1 a 4 imagens de entrada.
    • Entrada: Deve fornecer pelo menos uma imagem de referência.
    • Saída: Pode gerar de 1 a 4 imagens de resultado.
  • true: Ativa o modo de saída intercalada de texto e imagem (suporta entrada de uma imagem ou nenhuma imagem).
    • Caso de uso: Gerar conteúdo combinando texto e imagens com base em uma descrição textual ou realizar geração pura de texto para imagem.
    • Entrada: Pode não fornecer imagem (texto para imagem) ou fornecer até uma imagem de referência.
    • Saída: Gera conteúdo misto contendo tanto texto quanto imagens.
n integer (Opcional)
Este parâmetro afeta o custo (cobrado por imagem gerada com sucesso -- consulte preços).
Número de imagens a serem geradas. O comportamento depende de enable_interleave:
  • Quando enable_interleave=false (modo de edição de imagem):
    • Controla diretamente o número de imagens geradas.
    • Faixa: 1 a 4. O valor padrão é 4.
    • Durante testes, defina este valor como 1 para validação de baixo custo.
  • Quando enable_interleave=true (modo intercalado de texto e imagem):
    • O padrão é 1 e deve permanecer 1. Qualquer outro valor causa um erro.
    • Use max_images para controlar a contagem de imagens neste modo.
max_images integer (Opcional)
Este parâmetro afeta o custo (cobrado por imagem gerada com sucesso -- consulte preços).
Efetivo apenas no modo intercalado de texto e imagem (enable_interleave=true).
  • Número máximo de imagens que o modelo gera em uma única resposta.
  • Faixa: 1 a 5. O valor padrão é 5.
  • Define o limite superior. O modelo pode gerar menos imagens do que o solicitado.
prompt_extend bool (Opcional)Efetivo apenas no modo de edição de imagem (enable_interleave = false).Ativa a reescrita inteligente de prompts. Otimiza apenas o prompt positivo; o prompt negativo permanece inalterado.
  • true (padrão)
  • false
stream bool (Opcional)Ativa a saída em streaming. Obrigatório (definir como true) quando enable_interleave=true.
  • false (padrão)
  • true
watermark bool (Opcional)Adiciona um rótulo de marca d'água no canto inferior direito da imagem com o texto fixo "AI Generated".
  • false (padrão)
  • true
seed integer (opcional)Semente de número aleatório. Faixa válida: [0,2147483647].Usar a mesma seed produz saídas semelhantes. Se omitido, o algoritmo usa uma semente aleatória.Nota: A geração de imagens é probabilística. Mesmo com a mesma seed, os resultados podem variar.

Parâmetros da resposta

  • Execução bem-sucedida da tarefa
  • Execução bem-sucedida da tarefa (saída em streaming)
  • Falha na execução da tarefa
Os dados da tarefa (status da tarefa e URLs das imagens) são retidos por apenas 24 horas e depois removidos automaticamente. Salve as imagens geradas prontamente.
{
    "output": {
        "choices": [
            {
                "finish_reason": "stop",
                "message": {
                    "content": [
                        {
                            "image": "https://dashscope-result-bj.oss-cn-beijing.aliyuncs.com/xxx.png?Expires=xxx",
                            "type": "image"
                        }
                    ],
                    "role": "assistant"
                }
            }
        ],
        "finished": true
    },
    "usage": {
        "image_count": 1,
        "input_tokens": 0,
        "output_tokens": 0,
        "size": "1376*768",
        "total_tokens": 0
    },
    "request_id": "a3f4befe-cacd-49c9-8298-xxxxxx"
}
output objectSaída da tarefa.

Propriedades

choices array of objectConteúdo de saída gerado pelo modelo.

Propriedades

finish_reason stringMotivo do término da tarefa.Cenário de saída sem streaming: Para naturalmente com stop.Cenário de saída em streaming: Este parâmetro indica se o fluxo de dados terminou a transmissão.
  • Durante a transmissão: Pacotes de dados anteriores retornam continuamente "finish_reason": "null", indicando que o conteúdo ainda está sendo gerado. Continue recebendo.
  • No fim da transmissão: Apenas a última estrutura JSON retorna "finish_reason":"stop", indicando que a solicitação de streaming foi totalmente concluída. Pare de receber.
message objectMensagem retornada pelo modelo.

Propriedades

rolestringFunção da mensagem, fixa como assistant.contentarray

Propriedades

type stringTipo de saída. Valores enumerados: text, image.text stringTexto gerado.image stringURL da imagem gerada no formato PNG.O link expira após 24 horas. Baixe e salve a imagem prontamente.
finished boolSinalizador de conclusão da solicitação.
  • true
  • false
usage objectEstatísticas de saída. Conta apenas resultados bem-sucedidos.

Propriedades

image_count integerNúmero de imagens geradas.size stringResolução das imagens geradas. Exemplo: 1376*768.input_tokens integerFaturado por contagem de imagens.
  • No modo de edição de imagem, fixo em 0.
  • No modo intercalado de texto e imagem, este campo conta tokens de texto de entrada (não faturado).
output_tokens integerFaturado por contagem de imagens.
  • No modo de edição de imagem, fixo em 0.
  • No modo intercalado de texto e imagem, este campo conta tokens de texto de saída (não faturado).
total_tokensintegerFaturado por contagem de imagens.
  • No modo de edição de imagem, fixo em 0.
  • No modo intercalado de texto e imagem, este campo conta o total de tokens (não faturado).
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.

HTTP assíncrono

Fluxo: Criar tarefa → Consultar resultados

Etapa 1: Criar a tarefa e obter o ID da tarefa

  • Singapore
  • US (Virginia)
  • China (Beijing)
  • Germany (Frankfurt)
POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/image-generation/generationAo fazer a chamada, substitua {WorkspaceId} pelo seu ID do workspace real.
  • Após criar a tarefa, utilize o task_id retornado para consultar o resultado. O task_id permanece válido por 24 horas. Não crie tarefas duplicadas. Em vez disso, use consultas periódicas (polling) para recuperar o resultado.
  • Para orientações destinadas a iniciantes, consulte Chamar APIs com Postman ou cURL.

Parâmetros da requisição

curl --location 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/image-generation/generation' \
        --header 'Content-Type: application/json' \
        --header "Authorization: Bearer $DASHSCOPE_API_KEY" \
        --header 'X-DashScope-Async: enable' \
        --data '{
            "model": "wan2.6-image",
            "input": {
                "messages": [
                    {
                        "role": "user",
                        "content": [
                            {
                                "text": "Generate a tomato and egg stir-fry based on the style of image 1 and the background of image 2"
                            },
                            {
                                "image": "https://cdn.wanx.aliyuncs.com/tmp/pressure/umbrella1.png"
                            },
                            {
                                "image": "https://img.alicdn.com/imgextra/i3/O1CN01SfG4J41UYn9WNt4X1_!!6000000002530-49-tps-1696-960.webp"
                            }
                        ]
                    }
                ]
            },
            "parameters": {
                "prompt_extend": true,
                "watermark": false,
                "n": 1,
                "enable_interleave": false,
                "size": "1K"
            }
        }'
Cabeçalhos da requisição
Content-Type string (Obrigatório)Tipo de conteúdo da requisição. Deve ser application/json.
Authorization string (Obrigatório)Autentica a requisição com uma chave de API do Model Studio. Exemplo: Bearer sk-xxxx.
X-DashScope-Asyncstring(Obrigatório)Alternador do modo assíncrono. Deve ser definido como enable.
A omissão deste cabeçalho retorna o erro: “current user api does not support synchronous calls”.
Corpo da requisição
model string (Obrigatório)Nome do modelo.Exemplo: wan2.6-image
input object (Obrigatório)Configuração de entrada.

Propriedades

messages array (Obrigatório)Array de conteúdo da requisição. Apenas conversas de turno único são suportadas — forneça um par role-content. Conversas de múltiplos turnos não são suportadas.

Propriedades

rolestring (Obrigatório)Função da mensagem. Defina como user.contentarray (Obrigatório)Array de conteúdo da mensagem.

Propriedades

textstring(Obrigatório)Prompt positivo descrevendo o conteúdo, estilo e composição desejados para a imagem.Suporta chinês e inglês. Máximo de 2.000 caracteres (cada caractere chinês, letra, dígito ou símbolo conta como um). Truncado automaticamente se excedido.Exemplo: Gere um refogado de tomate com ovos baseado no estilo desta imagem.Nota: O array content deve conter exatamente um objeto com um campo text.imagestring(Opcional)URL ou string codificada em Base64 da imagem de entrada.Restrições de imagem:
  • Formatos de imagem: JPEG, JPG, PNG (canal alfa não suportado), BMP, WebP.
  • Resolução da imagem: Largura e altura devem estar entre 240 e 8.000 pixels cada.
  • Tamanho do arquivo: Não deve exceder 10 MB.
Limites de quantidade de imagens:
  • O número de imagens de entrada depende do parâmetro parameters.enable_interleave.
    • Quando enable_interleave=true (saída intercalada de texto e imagem), você pode inserir de 0 a 1 imagens.
    • Quando enable_interleave=false (edição de imagem), você deve inserir de 1 a 4 imagens.
  • Ao inserir múltiplas imagens, inclua vários objetos image no array content, definindo a ordem das imagens pela sequência do array.
Formatos de entrada suportados:
  1. Use uma URL publicamente acessível
    • Suporta protocolos HTTP ou HTTPS.
    • Exemplo: http://wanx.alicdn.com/material/xxx.jpeg.
  2. Forneça uma string de imagem codificada em Base64
    • Formato: data:{MIME_type};base64,{base64_data}
    • Exemplo: data:image/jpeg;base64,GDU7MtCZzEbTbmRZ... (apenas para ilustração; forneça a string completa na prática)
    • Para diretrizes de codificação Base64, consulte Métodos de entrada de imagem.
parameters object (Opcional)Parâmetros de geração.

Propriedades

negative_prompt string (opcional)Um prompt negativo descrevendo o que você não deseja na imagem.Suporta chinês e inglês. O comprimento máximo é de 500 caracteres. Caracteres excedentes são truncados automaticamente.Exemplo: Baixa resolução, baixa qualidade, membros distorcidos, dedos malformados, cores supersaturadas, aparência de cera, sem detalhes faciais, superfícies excessivamente lisas, aparência gerada por IA. Composição caótica. Texto borrado ou distorcido.size string (Opcional)Resolução da imagem de saída. Suporta dois métodos: referenciar as proporções da imagem de entrada ou especificar diretamente as dimensões.Quando enable_interleave=false (modo de edição de imagem):
  • Método 1: Referenciar proporções da imagem de entrada (recomendado) Opções de resolução de saída disponíveis: 1K (padrão), 2K.
    • 1K: Total de pixels de saída próximo a 1280*1280, mantendo a proporção da última imagem de entrada.
    • 2K: Total de pixels de saída próximo a 2048*2048, mantendo a proporção da última imagem de entrada.
  • Método 2: Especificar largura e altura da imagem de saída em pixels O total de pixels deve estar entre [768768, 20482048], com uma faixa de proporção de [1:4, 4:1].
    Os valores reais de pixels de saída são múltiplos de 16 mais próximos do valor especificado.
Quando enable_interleave=true (modo de saída intercalada de texto e imagem):
  • Método 1: Referenciar proporções da imagem de entrada (método padrão)
    • Se o total de pixels da imagem de entrada for ≤ 1280*1280, a saída corresponde ao total de pixels e à proporção da entrada.
    • Se o total de pixels da imagem de entrada for > 12801280, o total de pixels de saída será próximo a 12801280, mantendo a proporção da entrada.
    • Se nenhuma imagem de entrada for fornecida, o tamanho de saída será 1280*1280.
  • Método 2: Especificar largura e altura da imagem de saída em pixels O total de pixels deve estar entre [768768, 12801280], com uma faixa de proporção de [1:4, 4:1].
    Os valores reais de pixels de saída são múltiplos de 16 mais próximos do valor especificado.

Resoluções recomendadas para proporções comuns

  • 1:1: 1280*1280
  • 2:3: 800*1200
  • 3:2: 1200*800
  • 3:4: 960*1280
  • 4:3: 1280*960
  • 9:16: 720*1280
  • 16:9: 1280*720
  • 21:9: 1344*576
enable_interleave bool (Opcional)Controla o modo de geração de imagem:
  • false (padrão): Indica o modo de edição de imagem (suporta entrada de múltiplas imagens e geração com consistência de sujeito).
    • Caso de uso: Editar, aplicar transferência de estilo ou gerar imagens consistentes com o sujeito com base em 1 a 4 imagens de entrada.
    • Entrada: Deve fornecer pelo menos uma imagem de referência.
    • Saída: Pode gerar de 1 a 4 imagens resultantes.
  • true: Habilita o modo de saída intercalada de texto e imagem (suporta a entrada de uma imagem ou nenhuma imagem).
    • Caso de uso: Gerar conteúdo combinando texto e imagens com base em uma descrição textual ou realizar geração pura de texto para imagem.
    • Entrada: Pode não fornecer imagem (texto para imagem) ou fornecer até uma imagem de referência.
    • Saída: Gera conteúdo misto contendo tanto texto quanto imagens.
n integer (Opcional)
Este parâmetro afeta o custo (cobrado por imagem gerada com sucesso -- veja preços).
Número de imagens a serem geradas. O comportamento depende de enable_interleave:
  • Quando enable_interleave=false (modo de edição de imagem):
    • Controla diretamente o número de imagens geradas.
    • Faixa: 1 a 4. O valor padrão é 4.
    • Durante testes, defina este valor como 1 para validação de baixo custo.
  • Quando enable_interleave=true (modo intercalado de texto e imagem):
    • O padrão é 1 e deve permanecer 1. Qualquer outro valor causa um erro.
    • Use max_images para controlar a contagem de imagens neste modo.
max_images integer (Opcional)
Este parâmetro afeta o custo (cobrado por imagem gerada com sucesso -- veja preços).
Efetivo apenas no modo intercalado de texto e imagem (enable_interleave=true).
  • Número máximo de imagens que o modelo gera em uma única resposta.
  • Faixa: 1 a 5. O valor padrão é 5.
  • Define o limite superior. O modelo pode gerar menos imagens do que o solicitado.
prompt_extend bool (Opcional)Efetivo apenas no modo de edição de imagem (enable_interleave = false).Habilita a reescrita inteligente de prompts. Otimiza apenas o prompt positivo; o prompt negativo permanece inalterado.
  • true (padrão)
  • false
watermark bool (Opcional)Adiciona um rótulo de marca d'água no canto inferior direito da imagem com o texto fixo "AI Generated".
  • false (padrão)
  • true
seed integer (opcional)Semente de número aleatório. Faixa válida: [0,2147483647].Usar a mesma seed produz saídas semelhantes. Se omitida, o algoritmo usa uma semente aleatória.Nota: A geração de imagens é probabilística. Mesmo com a mesma seed, os resultados podem variar.

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 objectSaí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 requisição para rastreamento e solução de problemas.
code stringCódigo de erro. Retornado apenas para requisições com falha. Consulte Códigos de erro.
message stringMensagem de erro detalhada. Retornada apenas para requisições com falha. Consulte Códigos de erro.

Etapa 2: Consultar resultados usando o ID da tarefa

  • Singapore
  • US (Virginia)
  • China (Beijing)
  • Germany (Frankfurt)
GET https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/tasks/{task_id}Ao fazer a chamada, substitua {WorkspaceId} pelo seu ID do workspace real.
  • Recomendação de polling: A geração de imagens leva tempo. Utilize um mecanismo de consulta periódica com um intervalo razoável, como 10 segundos.
  • Transição de estado da tarefa: PENDING → RUNNING → SUCCEEDED ou FAILED.
  • Link do resultado: Após o sucesso da tarefa, uma URL de imagem válida por 24 horas é retornada. Baixe e salve a imagem em um armazenamento permanente, como o OSS.

Parâmetros da requisição

  • Consultar resultados da tarefa
Substitua {task_id} pelo valor de task_id retornado pela chamada de API anterior. O task_id é válido para consultas por 24 horas.
curl -X GET https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/tasks/{task_id} \
    --header "Authorization: Bearer $DASHSCOPE_API_KEY"
Cabeçalhos da requisição
Authorization string (Obrigatório)Autentica a requisição com uma chave de API do Model Studio. Exemplo: Bearer sk-xxxx.
Parâmetros de caminho da URL
task_id string (Obrigatório)O ID da tarefa.

Parâmetros de resposta

  • Execução bem-sucedida da tarefa
  • Falha na execução da tarefa
Os dados da tarefa (status e URLs das imagens) são retidos por apenas 24 horas e depois removidos automaticamente. Salve as imagens geradas imediatamente.
{
    "request_id": "43d9e959-25bc-4dc7-9888-xxxxxx",
    "output": {
        "task_id": "858cad55-4bdc-4ba3-ae6c-xxxxxx",
        "task_status": "SUCCEEDED",
        "submit_time": "2025-12-16 04:21:02.275",
        "scheduled_time": "2025-12-16 04:21:02.304",
        "end_time": "2025-12-16 04:24:46.658",
        "finished": true,
        "choices": [
            {
                "finish_reason": "stop",
                "message": {
                    "role": "assistant",
                    "content": [
                        {
                            "image": "https://dashscope-result-bj.oss-cn-beijing.aliyuncs.com/1xxx.png?Expires=xxx",
                            "type": "image"
                        }
                    ]
                }
            },
            {
                "finish_reason": "stop",
                "message": {
                    "role": "assistant",
                    "content": [
                        {
                            "image": "https://dashscope-result-bj.oss-cn-beijing.aliyuncs.com/1xxx.png?Expires=xxx",
                            "type": "image"
                        }
                    ]
                }
            }
        ]
    },
    "usage": {
        "size": "1376*768",
        "total_tokens": 0,
        "image_count": 2,
        "output_tokens": 0,
        "input_tokens": 0
    }
}
output objectInformações de saída da tarefa.

Propriedades

task_id stringID da tarefa. Válido para consultas durante 24 horas.task_status stringStatus atual da tarefa.

Valores de enumeração

  • PENDING
  • RUNNING
  • SUCCEEDED
  • FAILED
  • CANCELED
  • UNKNOWN: A tarefa não existe ou seu status é desconhecido.
Transições de estado durante o polling:
  • PENDING → RUNNING → SUCCEEDED ou FAILED.
  • Geralmente, o status da consulta inicial é PENDING ou RUNNING.
  • Quando o status muda para SUCCEEDED, a resposta contém a URL da imagem gerada.
  • Caso o status seja FAILED, verifique a mensagem de erro e tente executar a tarefa novamente.
submit_time stringHorá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 stringHorá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 stringHorá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.finished boolSinalizador de conclusão da solicitação.
  • true
  • false
choices array of objectConteúdo de saída gerado pelo modelo.

Propriedades

finish_reason stringMotivo do término da tarefa. Interrompe naturalmente com stop.message objectMensagem retornada pelo modelo.

Propriedades

rolestringFunção da mensagem, fixa como assistant.contentarray

Propriedades

type stringTipo de saída. Valores enumerados: text, image.text stringTexto gerado.image stringURL da imagem gerada no formato PNG.O link expira após 24 horas. Baixe e salve a imagem prontamente.
usage objectEstatísticas de saída. Conta apenas resultados bem-sucedidos.

Propriedades

image_count integerQuantidade de imagens geradas.size stringResolução das imagens geradas. Exemplo: 1376*768.input_tokens integerContagem de tokens de entrada. Faturado por quantidade de imagens. Atualmente fixo em 0.output_tokens integerContagem de tokens de saída. Faturado por quantidade de imagens. Atualmente fixo em 0.total_tokensintegerContagem total de tokens. Faturado por quantidade de imagens. Atualmente fixo em 0.
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.

DashScope Python SDK

Os parâmetros do SDK estão alinhados com a interface HTTP, adaptados às convenções de cada linguagem. O SDK gerencia chamadas assíncronas internamente e suporta invocação síncrona e assíncrona.
A duração real varia conforme o tamanho da fila e a carga do service.
Requer DashScope Python SDK versão 1.25.8 ou posterior. Instalar SDK.
O base_url e a chave de API são específicos por região. Exemplo de chamada na região de Singapore:
  • Singapore
  • US (Virginia)
  • China (Beijing)
  • Germany (Frankfurt)
https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1Ao realizar a chamada, substitua {WorkspaceId} pelo seu workspace ID real.
O escopo de implantação global (região de Frankfurt) suporta apenas chamadas assíncronas.

Edição de imagem

  • Synchronous
  • Asynchronous
Exemplo de solicitação
import os
import dashscope
from dashscope.aigc.image_generation import ImageGeneration
from dashscope.api_entities.dashscope_response import Message

# Singapore region base_url. Base URLs differ by region.
dashscope.base_http_api_url = 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1'

# If environment variable is not configured, replace the next line with: api_key="sk-xxx"
# API keys differ by region. Get API key: https://www.alibabacloud.com/help/en/model-studio/get-api-key
api_key = os.getenv("DASHSCOPE_API_KEY")

message = Message(
    role="user",
    # Supports local files, e.g., "image": "file://umbrella1.png"
    content=[
        {
            "text": "Generate a tomato and egg stir-fry based on the style of image 1 and the background of image 2"
        },
        {
            "image": "https://cdn.wanx.aliyuncs.com/tmp/pressure/umbrella1.png"
        },
        {
            "image": "https://img.alicdn.com/imgextra/i3/O1CN01SfG4J41UYn9WNt4X1_!!6000000002530-49-tps-1696-960.webp"
        }
    ]
)
print("----sync call, wait a moment----")
rsp = ImageGeneration.call(
        model='wan2.6-image',
        api_key=api_key,
        messages=[message],
        negative_prompt="",
        prompt_extend=True,
        watermark=False,
        n=1,
        enable_interleave=False,
        size="1K"
    )

print(rsp)
Exemplo de resposta
A URL expira após 24 horas. Baixe as imagens prontamente.
{
    "status_code": 200,
    "request_id": "b6a4c68d-3a91-4018-ae96-3cf373xxxxxx",
    "code": "",
    "message": "",
    "output": {
        "text": null,
        "finish_reason": null,
        "choices": [
            {
                "finish_reason": "stop",
                "message": {
                    "role": "assistant",
                    "content": [
                        {
                            "image": "https://dashscope-result-bj.oss-cn-beijing.aliyuncs.com/xxxxxx.png?Expires=xxxxxx",
                            "type": "image"
                        }
                    ]
                }
            }
        ],
        "audio": null,
        "finished": true
    },
    "usage": {
        "input_tokens": 0,
        "output_tokens": 0,
        "characters": 0,
        "image_count": 1,
        "size": "1376*768",
        "total_tokens": 0
    }
}

Saída intercalada de texto e imagem

  • Synchronous (streaming only)
  • Asynchronous
Exemplo de solicitação
import os
import dashscope
from dashscope.aigc.image_generation import ImageGeneration
from dashscope.api_entities.dashscope_response import Message

# Singapore region URL. Base URLs differ by region.
dashscope.base_http_api_url = 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1'

# If environment variable is not configured, replace the next line with: api_key="sk-xxx"
# API keys differ by region. Get API key: https://www.alibabacloud.com/help/en/model-studio/get-api-key
api_key = os.getenv("DASHSCOPE_API_KEY")

def sync_call_with_stream():
    print("\n========== Synchronous call - Streaming text-image output ==========")

    image_message = Message(
        role="user",
        content=[
            {
                "text": "Give me a three-image tutorial for stir-fried pork with chili peppers"
            }
        ]
    )

    image_stream_res = ImageGeneration.call(
        model="wan2.6-image",
        api_key=api_key,
        messages=[image_message],
        stream=True,  # Streaming only
        negative_prompt="",
        enable_interleave=True,
        max_images=3,
        size="1280*1280"
    )

    print("Streaming output results:")
    for stream_res in image_stream_res:
        print(stream_res)

if __name__ == "__main__":
    sync_call_with_stream()
Exemplo de resposta
A URL expira após 24 horas. Baixe as imagens prontamente.
{"status_code": 200, "request_id": "5b98e8f3-aeff-4c20-a26c-499a7525axxx", "code": "", "message": "", "output": {"text": null, "finish_reason": null, "choices": [{"finish_reason": "null", "message": {"role": "assistant", "content": [{"type": "text", "text": "Chili"}]}}], "audio": null, "finished": false}, "usage": {"input_tokens": 28, "output_tokens": 0, "characters": 0, "total_tokens": 28, "image_count": 0, "size": "0*0"}}
{"status_code": 200, "request_id": "5b98e8f3-aeff-4c20-a26c-499a7525axxx", "code": "", "message": "", "output": {"text": null, "finish_reason": null, "choices": [{"finish_reason": "null", "message": {"role": "assistant", "content": [{"type": "text", "text": "Stir-fry"}]}}], "audio": null, "finished": false}, "usage": {"input_tokens": 28, "output_tokens": 1, "characters": 0, "total_tokens": 29, "image_count": 0, "size": "0*0"}}
{"status_code": 200, "request_id": "5b98e8f3-aeff-4c20-a26c-499a7525axxx", "code": "", "message": "", "output": {"text": null, "finish_reason": null, "choices": [{"finish_reason": "null", "message": {"role": "assistant", "content": [{"type": "text", "text": "Pork"}]}}], "audio": null, "finished": false}, "usage": {"input_tokens": 28, "output_tokens": 2, "characters": 0, "total_tokens": 30, "image_count": 0, "size": "0*0"}}

......

{"status_code": 200, "request_id": "5b98e8f3-aeff-4c20-a26c-499a7525axxx", "code": "", "message": "", "output": {"text": null, "finish_reason": null, "choices": [{"finish_reason": "null", "message": {"role": "assistant", "content": [{"type": "text", "text": "."}]}}], "audio": null, "finished": false}, "usage": {"input_tokens": 28, "output_tokens": 398, "characters": 0, "total_tokens": 426, "image_count": 2, "size": "1280*1280"}}
{"status_code": 200, "request_id": "5b98e8f3-aeff-4c20-a26c-499a7525axxx", "code": "", "message": "", "output": {"text": null, "finish_reason": "stop", "choices": [{"finish_reason": "stop", "message": {"role": "assistant", "content": [{"type": "image", "image": "https://dashscope-result-sh.oss-cn-shanghai.aliyuncs.com/xxx.png?Expires=xxx"}]}}], "audio": null, "finished": true}, "usage": {"input_tokens": 28, "output_tokens": 523, "characters": 0, "total_tokens": 551, "image_count": 3, "size": "1280*1280"}}

DashScope Java SDK

Os parâmetros do SDK estão alinhados com a interface HTTP, encapsulados conforme as convenções da linguagem. O SDK gerencia chamadas assíncronas internamente e suporta invocação síncrona e assíncrona.
A duração real depende do tamanho da fila e da carga do service.
Requer DashScope Java SDK versão 2.22.6 ou posterior.
O base_url e a chave de API não são intercambiáveis entre regiões. Exemplos para a região de Singapore:
  • Singapore
  • US (Virginia)
  • China (Beijing)
  • Germany (Frankfurt)
https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1Ao fazer a chamada, substitua {WorkspaceId} pelo seu workspace ID real.
O escopo de implantação global (região de Frankfurt) suporta apenas chamadas assíncronas.

Edição de imagens

  • Synchronous
  • Asynchronous
Exemplo de solicitação
import com.alibaba.dashscope.aigc.imagegeneration.*;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.exception.UploadFileException;
import com.alibaba.dashscope.utils.Constants;
import com.alibaba.dashscope.utils.JsonUtils;

import java.util.Arrays;
import java.util.Collections;

/**
 * wan2.6-image Image editing - Synchronous call example
 */
public class Main {

    static {
        // Singapore region URL. Base URLs differ by region.
        Constants.baseHttpApiUrl = "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1";
    }

    // If environment variable is not configured, replace the next line with: apiKey="sk-xxx"
    // API keys differ by region. Get API key: https://www.alibabacloud.com/help/en/model-studio/get-api-key
    static String apiKey = System.getenv("DASHSCOPE_API_KEY");

    public static void basicCall() throws ApiException, NoApiKeyException, UploadFileException {
        // Build multi-image input message
        ImageGenerationMessage message = ImageGenerationMessage.builder()
                .role("user")
                .content(Arrays.asList(
                        // Supports multi-image input; provide multiple reference images
                        Collections.singletonMap("text", "Generate a tomato and egg stir-fry based on the style of image 1 and the background of image 2"),
                        Collections.singletonMap("image", "https://cdn.wanx.aliyuncs.com/tmp/pressure/umbrella1.png"),
                        Collections.singletonMap("image", "https://img.alicdn.com/imgextra/i3/O1CN01SfG4J41UYn9WNt4X1_!!6000000002530-49-tps-1696-960.webp")
                )).build();

        // Image editing uses standard synchronous call; no need to set stream or enable_interleave
        ImageGenerationParam param = ImageGenerationParam.builder()
                .apiKey(apiKey)
                .model("wan2.6-image")
                .messages(Collections.singletonList(message))
                .n(1)
                .size("1K")
                .negativePrompt("")
                .promptExtend(true)
                .build();

        ImageGeneration imageGeneration = new ImageGeneration();
        ImageGenerationResult result = null;
        try {
            System.out.println("---sync call for image editing, wait a moment----");
            result = imageGeneration.call(param);
        } catch (ApiException | NoApiKeyException | UploadFileException e) {
            throw new RuntimeException(e.getMessage());
        }
        System.out.println(JsonUtils.toJson(result));
    }

    public static void main(String[] args) {
        try {
            basicCall();
        } catch (ApiException | NoApiKeyException | UploadFileException e) {
            System.out.println(e.getMessage());
        }
    }
}
Exemplo de resposta
A URL expira após 24 horas. Baixe as imagens prontamente.
{
    "requestId": "b148327e-830f-414c-a8df-724dec28exxx",
    "usage": {
        "input_tokens": 0,
        "output_tokens": 0,
        "total_tokens": 0,
        "image_count": 1,
        "size": "1376*768"
    },
    "output": {
        "choices": [
            {
                "finish_reason": "stop",
                "message": {
                    "role": "assistant",
                    "content": [
                        {
                            "image": "https://dashscope-result-sh.oss-cn-shanghai.aliyuncs.com/xxx.png?Expires=xxx",
                            "type": "image"
                        }
                    ]
                }
            }
        ],
        "finished": true
    },
    "status_code": 200,
    "code": "",
    "message": ""
}

Saída intercalada de texto e imagem

  • Synchronous call (streaming only)
  • Asynchronous call
Exemplo de solicitação
import com.alibaba.dashscope.aigc.imagegeneration.*;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.exception.UploadFileException;
import com.alibaba.dashscope.utils.Constants;
import com.alibaba.dashscope.utils.JsonUtils;
import io.reactivex.Flowable;

import java.util.Collections;

/**
 * wan2.6-image Text-image output - Streaming call example
 */
public class Main {

    static {
        // Singapore region URL. Base URLs differ by region.
        Constants.baseHttpApiUrl = "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1";
    }

    // If environment variable is not configured, replace the next line with: apiKey="sk-xxx"
    // API keys differ by region. Get API key: https://www.alibabacloud.com/help/en/model-studio/get-api-key
    static String apiKey = System.getenv("DASHSCOPE_API_KEY");

    public static void streamCall() throws ApiException, NoApiKeyException, UploadFileException {
        ImageGenerationMessage message = ImageGenerationMessage.builder()
                .role("user")
                .content(Collections.singletonList(
                        Collections.singletonMap("text", "Give me a three-image tutorial for stir-fried pork with chili peppers")
                )).build();

        // Text-image output requires streaming call
        ImageGenerationParam param = ImageGenerationParam.builder()
                .apiKey(apiKey)
                .model("wan2.6-image")
                .messages(Collections.singletonList(message))
                .stream(true) // Must enable streaming output
                .enableInterleave(true)
                .size("1280*1280")
                .negativePrompt("")
                .maxImages(3)
                .build();

        ImageGeneration imageGeneration = new ImageGeneration();
        try {
            System.out.println("---stream call for image interleave----");
            Flowable<ImageGenerationResult> resultFlowable = imageGeneration.streamCall(param);
            resultFlowable.blockingForEach(result -> {
                System.out.println(JsonUtils.toJson(result));
            });
        } catch (ApiException | NoApiKeyException | UploadFileException e) {
            throw new RuntimeException(e.getMessage());
        }
    }

    public static void main(String[] args) {
        try {
            streamCall();
        } catch (ApiException | NoApiKeyException | UploadFileException e) {
            System.out.println(e.getMessage());
        }
        System.exit(0);
    }
}
Exemplo de resposta
A URL expira após 24 horas. Baixe as imagens prontamente.
{"requestId":"12c7432c-8028-4289-a97c-4e22df98bxxx","usage":{"input_tokens":28,"output_tokens":0,"total_tokens":28,"image_count":0,"size":"0*0"},"output":{"choices":[{"finish_reason":"null","message":{"role":"assistant","content":[{"type":"text","text":"Chili"}]}}],"finished":false},"status_code":200,"code":"","message":""}
{"requestId":"12c7432c-8028-4289-a97c-4e22df98bxxx","usage":{"input_tokens":28,"output_tokens":1,"total_tokens":29,"image_count":0,"size":"0*0"},"output":{"choices":[{"finish_reason":"null","message":{"role":"assistant","content":[{"type":"text","text":"stir-fry"}]}}],"finished":false},"status_code":200,"code":"","message":""}
{"requestId":"12c7432c-8028-4289-a97c-4e22df98bxxx","usage":{"input_tokens":28,"output_tokens":2,"total_tokens":30,"image_count":0,"size":"0*0"},"output":{"choices":[{"finish_reason":"null","message":{"role":"assistant","content":[{"type":"text","text":"pork"}]}}],"finished":false},"status_code":200,"code":"","message":""}

......

{"requestId":"12c7432c-8028-4289-a97c-4e22df98bxxx","usage":{"input_tokens":28,"output_tokens":73,"total_tokens":101,"image_count":0,"size":"0*0"},"output":{"choices":[{"finish_reason":"null","message":{"role":"assistant","content":[{"type":"text","text":"."}]}}],"finished":false},"status_code":200,"code":"","message":""}
{"requestId":"12c7432c-8028-4289-a97c-4e22df98bxxx","usage":{"input_tokens":28,"output_tokens":198,"total_tokens":226,"image_count":1,"size":"1280*1280"},"output":{"choices":[{"finish_reason":"null","message":{"role":"assistant","content":[{"type":"image","image":"https://dashscope-result-sh.oss-cn-shanghai.aliyuncs.com/xxx.png?Expires=xxx"}]}}],"finished":false},"status_code":200,"code":"","message":""}
{"requestId":"12c7432c-8028-4289-a97c-4e22df98bxxx","usage":{"input_tokens":28,"output_tokens":199,"total_tokens":227,"image_count":1,"size":"1280*1280"},"output":{"choices":[{"finish_reason":"null","message":{"role":"assistant","content":[{"type":"text","text":"Next"}]}}],"finished":false},"status_code":200,"code":"","message":""}

......

{"requestId":"12c7432c-8028-4289-a97c-4e22df98bxxx","usage":{"input_tokens":28,"output_tokens":245,"total_tokens":273,"image_count":1,"size":"1280*1280"},"output":{"choices":[{"finish_reason":"null","message":{"role":"assistant","content":[{"type":"text","text":"."}]}}],"finished":false},"status_code":200,"code":"","message":""}
{"requestId":"12c7432c-8028-4289-a97c-4e22df98bxxx","usage":{"input_tokens":28,"output_tokens":368,"total_tokens":396,"image_count":2,"size":"1280*1280"},"output":{"choices":[{"finish_reason":"null","message":{"role":"assistant","content":[{"type":"image","image":"https://dashscope-result-sh.oss-cn-shanghai.aliyuncs.com/xxx.png?Expires=xxx"}]}}],"finished":false},"status_code":200,"code":"","message":""}
{"requestId":"12c7432c-8028-4289-a97c-4e22df98bxxx","usage":{"input_tokens":28,"output_tokens":369,"total_tokens":397,"image_count":2,"size":"1280*1280"},"output":{"choices":[{"finish_reason":"null","message":{"role":"assistant","content":[{"type":"text","text":"Finally"}]}}],"finished":false},"status_code":200,"code":"","message":""}

......

{"requestId":"12c7432c-8028-4289-a97c-4e22df98bxxx","usage":{"input_tokens":28,"output_tokens":416,"total_tokens":444,"image_count":2,"size":"1280*1280"},"output":{"choices":[{"finish_reason":"null","message":{"role":"assistant","content":[{"type":"text","text":"pot"}]}}],"finished":false},"status_code":200,"code":"","message":""}
{"requestId":"12c7432c-8028-4289-a97c-4e22df98bxxx","usage":{"input_tokens":28,"output_tokens":417,"total_tokens":445,"image_count":2,"size":"1280*1280"},"output":{"choices":[{"finish_reason":"null","message":{"role":"assistant","content":[{"type":"text","text":"."}]}}],"finished":false},"status_code":200,"code":"","message":""}
{"requestId":"12c7432c-8028-4289-a97c-4e22df98bxxx","usage":{"input_tokens":28,"output_tokens":541,"total_tokens":569,"image_count":3,"size":"1280*1280"},"output":{"choices":[{"finish_reason":"stop","message":{"role":"assistant","content":[{"type":"image","image":"https://dashscope-result-sh.oss-cn-shanghai.aliyuncs.com/xxx.png?Expires=xxx"}]}}],"finished":true},"status_code":200,"code":"","message":""}

Limitações

  • Validade dos dados: O task_id da tarefa e a url da imagem são retidos por apenas 24 horas. Após esse período, não é possível consultá-los ou baixá-los.
  • Moderação de conteúdo: Tanto o prompt de entrada quanto a imagem de saída passam por moderação de conteúdo. Conteúdo não compatível retorna um erro IPInfringementSuspect ou DataInspectionFailed. Consulte Códigos de erro.

Faturamento e limitação de taxa

  • Cotas gratuitas e preços: Preços do modelo.
  • Para limites de taxa do modelo, consulte Wanxiang.
  • A cobrança é feita por imagem gerada com sucesso. Chamadas com falha não incorrem em custos e não consomem a cota gratuita.

Códigos de erro

Se a chamada do modelo falhar e retornar uma mensagem de erro, consulte Códigos de erro para resolução.

FAQ

P: Como visualizo os custos de inferência e o volume de chamadas de um modelo? R: Consulte Consulta de fatura e gerenciamento de custos. P: Por que não consigo executar os exemplos de código? R: Atualize seu SDK para a versão mais recente. Instalar SDK.
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