POST/api/v1/generate/image-upscale

Upscale 4K

Bearer tokenescopo generate:image

Upscale 4K (ampliação de resolução): recebe a URL de uma imagem e devolve a mesma imagem ampliada em 2x ou 4x, preservando detalhes e nitidez. 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
imageUrlstringsimURL HTTPS pública da imagem (≤10 MB)
scalestringnão2x, 4x4x
callbackUrlstringnãoHTTPS, host não-privado

A imageUrl passa por validação contra hosts privados (HTTPS, host não-privado, ≤10 MB). Não há prompt de usuário.

scale: aceita 2x ou 4x. Valores fora da lista retornam 400 VALIDATION_ERROR com os valores aceitos.

Aspect ratio: derivado automaticamente das dimensões da imagem (encaixe no ratio suportado mais próximo). A proporção nativa é preservada na ampliação.

Exemplo de request

cURL
curl -X POST https://avatrix.io/api/v1/generate/image-upscale \
  -H "Authorization: Bearer av_xxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: 9f1c-upscale-001" \
  -d '{
    "imageUrl": "https://storage.avatrix.io/assets/image-43ecc11a-e0a6-4d5f-0876-1f09a9080b5e.jpg",
    "scale": "4x"
  }'

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) ou failed. Ver Ciclo de vida da task.

Exemplo de erro

JSON
{
  "success": false,
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "Campo 'scale' inválido. Valores aceitos: 2x, 4x."
  }
}

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

Valor fixo por escala: há um preço para 2x e outro para 4x.

Erros relevantes

CódigoHTTPQuando
VALIDATION_ERROR400campo obrigatório ausente, URL não-HTTPS, scale inválido
INSUFFICIENT_CREDITS402saldo insuficiente
FORBIDDEN403token sem generate:image
MAX_CONCURRENT_TASKS / RATE_LIMITED42920 tasks simultâneas ou rate limit
INTERNAL_ERROR500erro interno ao processar a cobrança
GENERATION_FAILED502falha do provider
PROVIDER_UNAVAILABLE503provider indisponível