/api/v1/generate/skin-enhanceMelhorar pele
Melhorar pele adiciona micro-texturas e poros realistas para remover o
"look de plástico", presente em algumas imagens geradas por IA, preservando
feições, expressão, cabelo, roupas e fundo. 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
| Campo | Tipo | Obrigatório | Valores / restrições | Padrão |
|---|---|---|---|---|
imageUrl | string | sim | URL HTTPS pública da imagem (≤10 MB) | — |
textureLevel | inteiro | não | 0–100 (intensidade da micro-textura) | 50 |
poresDetail | inteiro | não | 0–100 (nível de detalhe dos poros) | 50 |
lightingFix | boolean | não | true / false (naturalizar iluminação) | true |
callbackUrl | string | não | HTTPS, host não-privado | — |
A imageUrl passa por validação contra hosts privados (HTTPS, host não-privado,
≤10 MB). Não é necessário enviar prompt, basta enviar os valores desejados para
textureLevel, poresDetail e lightingFix.
Aspect ratio: derivado automaticamente das dimensões da imagem enviada.
Falha de detecção não bloqueia a requisição e aplica proporção padrão 1:1.
Exemplo de request
curl -X POST https://avatrix.io/api/v1/generate/skin-enhance \
-H "Authorization: Bearer av_xxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: 9f1c-skin-001" \
-d '{
"imageUrl": "https://storage.avatrix.io/assets/image-6386c98d-4ebb-4cb8-b6ab-b5ec7da7d4d8.png",
"textureLevel": 60,
"poresDetail": 50,
"lightingFix": true
}'Resposta — 202
{
"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 pending → processing →
completed (com resultUrl) ou failed. Ver
Ciclo de vida da task.
Exemplo de erro
{
"success": false,
"error": {
"code": "VALIDATION_ERROR",
"message": "Campo 'textureLevel' deve estar entre 0 e 100."
}
}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 geração. Não depende dos megapixels da imagem.
Erros relevantes
| Código | HTTP | Quando |
|---|---|---|
VALIDATION_ERROR | 400 | campo obrigatório ausente, URL não-HTTPS, textureLevel/poresDetail fora de 0–100, lightingFix não-booleano |
INSUFFICIENT_CREDITS | 402 | saldo insuficiente |
FORBIDDEN | 403 | token sem generate:image |
MAX_CONCURRENT_TASKS / RATE_LIMITED | 429 | 20 tasks simultâneas ou rate limit |
INTERNAL_ERROR | 500 | erro interno ao processar a cobrança |
GENERATION_FAILED | 502 | falha do provider |
PROVIDER_UNAVAILABLE | 503 | provider indisponível |