POST/api/v1/generate/image

Gerar imagem

Bearer tokenescopo generate:image

Geração de imagem a partir de um prompt de texto, no modelo escolhido. Responde 202 Accepted com um taskId; acompanhe o resultado por polling em GET /api/v1/tasks/:id ou via webhook.

Escopo necessário: generate:image.

Body

CampoTipoObrigatórioValores / restriçõesPadrão
modelstringsimUm dos modelos disponíveis (ver lista abaixo)
promptstringsimDescrição da imagem a gerar
referenceImagesstring[]nãoURLs HTTPS públicas de referência; depende do modelo (alguns não aceitam)
aspectRatiostringnãoProporção suportada pelo modelo (ex.: 1:1, 9:16, 16:9)default do modelo
qualitystringnãoResolução suportada pelo modelo (ex.: 1K, 2K, 4K)default do modelo
modelOptionsobjectnãoOpções extras específicas do modelo (objeto JSON; passado adiante){}
callbackUrlstringnãoHTTPS, host não-privado

Se aspectRatio ou quality forem omitidos, é usado o default daquele modelo (ver tabela abaixo).

Modelos disponíveis

Escolha o modelo no campo model conforme o caso de uso. Cada modelo aceita um conjunto próprio de proporções, resoluções e imagens de referência.

ModeloQuando usarRefs (máx.)Proporções (default)Resoluções (default)
nano-banana-proMelhor escolha ao trabalhar com imagens de referência14auto, 1:1, 2:3, 3:2, 3:4, 4:3, 4:5, 5:4, 9:16, 16:9, 21:9 (default 9:16)1K, 2K, 4K (default 1K)
nano-banana-2Versão clássica, de custo menor41:1, 2:3, 3:2, 3:4, 4:3, 4:5, 5:4, 9:16, 16:9, 21:9 (default 9:16)1K, 2K, 4K (default 1K)
seedream-4.5Prompts longos e cenas complexas41:1, 2:3, 3:2, 3:4, 4:3, 9:16, 16:9, 21:9 (default 9:16)1K, 2K, 4K (default 2K)
gpt-image-2Estilo ilustrativo8auto, 1:1, 5:4, 4:5, 4:3, 3:4, 3:2, 2:3, 16:9, 9:16, 21:9 (default auto)1K, 2K, 4K (default 1K)
z-imageGeração rápida apenas por texto (sem referências)01:1, 4:3, 3:4, 16:9, 9:16 (default 1:1)1K
grok-imagineModelo da xAI; aceita 1 referência opcional11:1, 2:3, 3:2, 9:16, 16:9 (default 3:2)1K
flux-2-proAlta fidelidade, com várias referências8auto, 1:1, 4:3, 3:4, 16:9, 9:16, 3:2, 2:3 (default 1:1)1K, 2K (default 1K)
flux-2-flexVariante mais rápida do Flux 2 Pro8auto, 1:1, 4:3, 3:4, 16:9, 9:16, 3:2, 2:3 (default 1:1)1K, 2K (default 1K)
flux-kontext-proEdição guiada por instruções em linguagem natural11:1, 4:3, 3:4, 16:9, 9:16, 21:9, 9:21 (default 16:9)1K
flux-kontext-maxVersão Max do Kontext, mais qualidade em cenas complexas11:1, 4:3, 3:4, 16:9, 9:16, 21:9, 9:21 (default 16:9)1K

Enviar uma proporção/resolução não suportada pelo modelo, ou mais imagens de referência do que ele aceita, retorna 400 VALIDATION_ERROR.

Exemplo de request

cURL
curl -X POST https://avatrix.io/api/v1/generate/image \
  -H "Authorization: Bearer av_xxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: 9f1c-img-001" \
  -d '{
    "model": "nano-banana-pro",
    "prompt": "uma influencer numa cafeteria, luz natural",
    "aspectRatio": "9:16",
    "quality": "1K"
  }'

Resposta — 202

JSON
{
  "success": true,
  "data": { "taskId": "...", "status": "queued" }
}

O status: "queued" é só o rótulo de criação. No polling (GET /api/v1/tasks/:id) a task evolui por pendingprocessingcompleted (com resultUrl da imagem) ou failed. Ver Ciclo de vida da task.

Exemplo de erro

JSON
{
  "success": false,
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "Campo 'model' é obrigatório."
  }
}

Idempotência

Envie o header Idempotency-Key (opcional, ≤128 chars, TTL 24h). Repetir a mesma chave retorna a resposta original sem novo débito. A concorrência é limitada a 20 tasks simultâneas por usuário. Ver Idempotência.

Custo

O custo em créditos depende do modelo e da resolução escolhidos. O valor é debitado quando a task é aceita.

Erros relevantes

CódigoHTTPQuando
VALIDATION_ERROR400model ausente/desconhecido, prompt ausente, proporção/resolução ou referências inválidas para o modelo, Idempotency-Key acima de 128 caracteres
INSUFFICIENT_CREDITS402saldo insuficiente
FORBIDDEN403token sem generate:image
RATE_LIMITED / MAX_CONCURRENT_TASKS429rate limit ou 20 tasks simultâneas
INTERNAL_ERROR500erro interno ao processar a cobrança
GENERATION_FAILED502falha do provider
PROVIDER_UNAVAILABLE503provider indisponível