Início Rápido com API Qwen Image 2512: Gere Imagens em Minutos (2026)
Olá, sou a Dora. Costumava gastar muito tempo criando imagens para produtos: procurando ativos, redimensionando-os, renomeando arquivos, organizando pastas… cada etapa se repetia interminavelmente. Nada era difícil, mas era tedioso. Depois, experimentei a API Qwen Image 2512 e descobri que podia automatizar tudo isso com apenas algumas linhas de código.
Isto não é um anúncio. Estou apenas compartilhando o que realmente aconteceu quando experimentei — o que correu bem, onde tropecei e como a tornei confiável e útil.
Atalho WaveSpeed (Se você só quer resultados)
Se você apenas quer gerar imagens rapidamente, sem configurar tudo você mesmo:
- WaveSpeed já oferece uma API REST Qwen Image 2512 pronta para usar (sem inícios a frio).
- Use o endpoint WaveSpeed + chave API → pronto.
- Se você quiser entender o fluxo oficial do DashScope (e as armadilhas comuns), continue lendo.
O que esta API realmente pode fazer?
Simplificando: você digita uma descrição em texto e ela gera uma imagem.
Por exemplo, se você escrever:
“Uma mesa arrumada com um caderno e uma planta sob luz suave”
alguns segundos depois, você recebe uma imagem que corresponde à sua descrição — e pode salvá-la automaticamente no seu computador.
Para o que é boa:
- Criar mood boards
- Gerar miniaturas rapidamente
- Adicionar imagens de espaço reservado a documentos
- Criar visuais de protótipo para produtos
O que notei:
Na primeira vez que usei, não pareceu muito mais rápido do que procurar manualmente por imagens. Mas depois de duas ou três execuções, percebi que não tinha mais que me preocupar com “qual deve ser este tamanho?” ou “como devo nomear o arquivo?”. O que economizou não foi apenas tempo, foi esforço mental.
Formato de imagem e armazenamento
- Formato: PNG, gerado automaticamente por padrão
- Onde a imagem é armazenada:
- A API retorna um link (URL) para a imagem
- O link aponta para um servidor da Alibaba Cloud
- Importante: o link é válido apenas por 24 horas; depois disso, expira
- Portanto, você precisa baixá-lo para seu computador prontamente
Nota: A API não oferece diretamente o arquivo de imagem. Se você quiser salvá-lo localmente, precisa adicionar uma etapa de download no seu código (explicado depois).
Antes de começar: do que você precisa
Passo 1: Obtenha uma conta e uma chave API
- Inscreva-se em uma conta da Alibaba Cloud

- Vá para o Console do Model Studio
- Gere uma chave API (como uma chave que prova que é você)
- Salve a chave como uma variável de ambiente chamada
DASHSCOPE_API_KEY
Variável de ambiente:
Pense nela como um lugar especial no seu computador onde sua chave fica, para que seu código possa encontrá-la automaticamente sem copiar e colar toda vez.
Dicas:
- Para testes, você pode armazená-la em um arquivo
.env - Para uso real, uma ferramenta segura de gerenciamento de chaves é mais segura
- As regiões de Pequim e Singapura têm chaves diferentes — não as misture
Passo 2: Escolha uma ferramenta
Existem três maneiras principais, começando pela mais simples:

-
cURL (mais simples)
- Bom para testes rápidos para ver se a API funciona
- Nenhuma programação necessária, apenas cole o comando
- Recomendado para a primeira tentativa
-
Python (mais comum)
- Bom para criar uma pequena ferramenta para uso repetido
- Uso o SDK DashScope oficial para lidar com muitos detalhes automaticamente
- Alguns conhecimentos básicos de Python ajudam
-
Node.js (amigável para desenvolvedores frontend)
- Se você é um desenvolvedor frontend, isso também funciona
- Os princípios são os mesmos, embora eu não os cubra aqui
Experimente o Playground primeiro:
Se você apenas quer testar resultados rapidamente, o Playground Wavespeed permite gerar imagens no navegador. Perfeito para uso ocasional. Para geração em lote ou automação, continue lendo para aprender como usar a API.
Início rápido: testando com cURL
Abra seu terminal (Mac) ou prompt de comando (Windows) e cole isto:
curl --location 'https://dashscope.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation' \
--header 'Content-Type: application/json' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--data '{
"model": "qwen-image-max",
"input": {
"messages": [
{
"role": "user",
"content": [
{"text": "A tidy desk with a notebook and a plant under soft light"}
]
}
]
},
"parameters": {
"size": "1024*1024"
}
}'
Pressione Enter, aguarde alguns segundos e você verá uma resposta JSON com um link para sua imagem.
Armadilhas em que tropecei
- O nome do modelo deve ser
qwen-image-max, nãoqwen-image-2512ou qualquer outro. - O formato de tamanho usa um asterisco
1024*1024, não1024x1024. - Para a região de Singapura, altere a URL para:
https://dashscope-intl.aliyuncs.com/api/v1/...
Se você está construindo algo parecido com produção, o fluxo oficial do DashScope é totalmente funcional — mas vem com detalhes operacionais (regiões, tempos de vida de URL, tentativas). É exatamente por isso que gosto de usar o WaveSpeed para o trabalho do dia a dia: ele me oferece Qwen Image 2512 por trás de uma API REST pronta para usar, para que eu possa me concentrar em prompts e gerenciamento de saída em vez de plumbing.

Parâmetros explicados
Obrigatórios
-
model
"qwen-image-max"é o nome oficial para Qwen-Image-2512- Também existe
"qwen-image-plus", semelhante mas mais barato
-
input.messages
- Um array com um elemento
texté sua descrição- Máximo de 800 caracteres (cerca de 400 caracteres chineses)
Opcionais (padrões usados se omitidos)
-
parameters.size
1664*928(paisagem 16:9)1472*1104(4:3)1328*1328(quadrado 1:1, padrão)1104*1472(3:4 retrato)928*1664(9:16 retrato)
-
parameters.negative_prompt
- Coisas que você não quer: ex.,
"baixa resolução, desfocado, distorcido, supersaturado" - Até 500 caracteres
- Coisas que você não quer: ex.,
-
parameters.prompt_extend
- Padrão é
true - Enriquece automaticamente sua descrição
- Desative se quiser controle estrito
- Padrão é
-
parameters.watermark
- Padrão
false - Adiciona marca d’água “Qwen-Image” se
true
- Padrão
-
parameters.seed
- Intervalo
0–2147483647 - Mesma seed + mesma descrição = mesma imagem
- Útil para testes e comparação de resultados
- Intervalo
Exemplo de resposta da API
{
"output": {
"choices": [
{
"finish_reason": "stop",
"message": {
"role": "assistant",
"content": [
{
"image": "https://dashscope-result-sz.oss-cn-shenzhen.aliyuncs.com/xxx.png?Expires=xxxx"
}
]
}
}
]
},
"usage": {
"width": 1328,
"image_count": 1,
"height": 1328
},
"request_id": "xxx"
}
Pontos-chave
- URL da imagem:
output.choices[0].message.content[0].image - Verifique se
finish_reasoné"stop"para confirmar o sucesso - Links duram 24 horas — baixe prontamente
Automatizando com Python
Se você quiser geração em lote ou uma pequena ferramenta:
import os
import time
import requests
from urllib.parse import urlparse, unquote
from pathlib import PurePosixPath
API_KEY = os.getenv("DASHSCOPE_API_KEY")
ENDPOINT = "https://dashscope.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation"
HEADERS = {
"Content-Type": "application/json",
"Authorization": f"Bearer {API_KEY}",
}
def generate_image(prompt: str, size="1328*1328"):
payload = {
"model": "qwen-image-max",
"input": {
"messages": [{"role": "user", "content": [{"text": prompt}]}]
},
"parameters": {"size": size, "prompt_extend": True, "watermark": False}
}
r = requests.post(ENDPOINT, headers=HEADERS, json=payload, timeout=120)
r.raise_for_status()
data = r.json()
choices = data.get("output", {}).get("choices", [])
if not choices:
raise ValueError(f"No image generated:\n{data}")
content = choices[0].get("message", {}).get("content", [])
if not content:
raise ValueError(f"Empty content:\n{data}")
image_url = content[0].get("image")
if not image_url:
raise ValueError(f"No image URL:\n{data}")
img_response = requests.get(image_url)
img_response.raise_for_status()
file_name = PurePosixPath(unquote(urlparse(image_url).path)).parts[-1]
ts = int(time.time())
path = f"qwen_image_{ts}_{file_name}"
with open(path, "wb") as f:
f.write(img_response.content)
return path
if __name__ == "__main__":
output_path = generate_image("A tidy desk with a notebook and a plant under soft light")
print("Image saved at:", output_path)
O que aprendi durante os testes
- Nome de modelo incorreto quebra tudo (
qwen-image-plus→qwen-image-max) - Formato de tamanho incorreto (
1328x1328em vez de1328*1328) - A estrutura de resposta difere ligeiramente da documentação; verifique a URL da imagem
- Esquecer de baixar a imagem faz o link expirar após 24 horas
Usando o SDK oficial
import os
import json
from dashscope import MultiModalConversation
api_key = os.getenv("DASHSCOPE_API_KEY")
messages = [{"role": "user", "content": [{"text": "A tidy desk with a notebook and a plant under soft light"}]}]
response = MultiModalConversation.call(
api_key=api_key,
model="qwen-image-max",
messages=messages,
result_format='message',
stream=False,
watermark=False,
prompt_extend=True,
size='1328*1328'
)
if response.status_code == 200:
print(json.dumps(response, ensure_ascii=False))
image_url = response.output.choices[0].message.content[0]['image']
print(f"Image URL: {image_url}")
else:
print(f"Error: {response.code} - {response.message}")
Referência rápida de parâmetros
| Parâmetro | Valor Sugerido | Notas |
|---|---|---|
| size | 1328*1328 | Quadrado, equilibra velocidade e qualidade |
| prompt_extend | TRUE | Deixe a IA enriquecer sua descrição |
| seed | Número fixo | Use para testes e comparar resultados |
| negative_prompt | Conforme necessário | ex., “desfocado, baixa qualidade, distorcido” |
Quando alterar a seed
- Seed fixa → compare variações de prompt
- Seeds diferentes → gere múltiplas imagens distintas
Erros comuns e correções
401 Unauthorized→ chave API incorreta, região incorreta ou permissão de imagem ausente429 Rate limit→ muitas requisições; adicione atraso ou atualize quota- Timeout / problemas de rede → aumente timeout, baixe imediatamente
Pequenas melhorias que adicionei
- Seed fixa para testes de prompts → mais fácil comparar resultados
- Nomenclatura de arquivo consistente:
{keyword}-{size}-{seed}.png - Gerenciamento de arquivo de configuração: YAML para evitar hardcoding de parâmetros
Para quem isso funciona
Playground
- Geração ocasional de imagens
- Teste rápido de prompts
- Nenhuma automação necessária
API
- Geração em lote
- Integração de ferramenta ou produto
- Uso agendado ou baseado em sistema
Caminhos finais (escolha o que se adequa a você)
Caminho A — Rápido e prático
- Use a API Playground WaveSpeed para Qwen Image 2512
- Setup mínimo, endpoint REST pronto para usar
Caminho B — Controle total
- Use DashScope diretamente se você precisar de integração profunda da Alibaba Cloud
Gosto de ferramentas que funcionam silenciosamente em segundo plano. Para aprender e entender, o fluxo oficial é ótimo. Para o trabalho diário e entregar mais rápido, WaveSpeed economiza muita fricção para mim.





