Introdução
Object Eraser remove de uma foto aquilo que você não quer e preenche o espaço deixado com um fundo que combina com o resto da cena. Você aponta o objeto de uma de duas formas, descrevendo-o em poucas palavras ou pintando-o de branco sobre uma máscara preta, e recebe a mesma foto no tamanho original, sem o objeto.
Recursos e destaques
Aponte com palavras ou com uma máscara
O caminho mais rápido é uma descrição curta: "o banco de madeira à esquerda", "a placa acima da porta", "a segunda pessoa a partir da direita". Ela funciona melhor com objetos bem definidos e com espaço ao redor; objetos finos e coisas na borda do quadro costumam passar despercebidos, e uma foto que volta sem mudanças é o sinal. A máscara marca os pixels com exatidão, por isso é o caminho seguro nesses casos e também para uma de duas xícaras parecidas ou só uma parte de uma cerca. Dá para enviar as duas na mesma requisição.
Preenchimentos que seguem a cena
A área removida não é borrada nem manchada: ela é reconstruída a partir do entorno. O assoalho continua, as paredes mantêm a textura e a luz segue vindo do mesmo lado, por isso o resultado parece uma fotografia sem retoque.
O resto da foto fica como estava
Só o objeto selecionado é substituído. O enquadramento, a resolução e tudo o que está fora da seleção voltam como foram enviados, então a foto editada pode voltar direto para um layout, um anúncio ou uma série.
Parâmetros da requisição
| Parâmetro | Obrigatório | Descrição |
|---|---|---|
image_url | Sim | A foto a limpar, em JPEG, PNG ou WebP. pelo menos 1 caracteres |
prompt | Não | O que remover, em poucas palavras e com a posição quando houver mais de um: "o carro vermelho à esquerda". Nomeie algo que esteja mesmo na foto; se não, ela volta sem alterações. pelo menos 1 caracteres · no máximo 1000 caracteres |
mask_url | Não | Imagem opcional em preto e branco do mesmo tamanho da foto: o branco marca o que sai e o preto o que fica. Use quando uma descrição puder apontar para o objeto errado. pelo menos 1 caracteres |
output_format | Não | PNG preserva todas as bordas sem perda e é o padrão; JPEG e WebP geram arquivos menores. |
Preços
$0.03 / imagem
Cobrado por imagem gerada; a quantidade de objetos removidos numa requisição não muda o preço.
Casos de uso
Fotos limpas de produtos e imóveis
Tire cabos, etiquetas de preço, embalagens esquecidas ou pedestres de fotos que já estão quase prontas, em vez de marcar uma nova sessão. É o conserto mais rápido para fotos de anúncios, interiores e galerias de imóveis em que um único objeto incômodo estraga o quadro.
Fotos de viagem e eventos mais organizadas
Tire turistas, lixeiras, andaimes ou outros fotógrafos do fundo de um retrato ou de um ponto turístico, para que o assunto finalmente tenha o quadro só para ele.
Preparar imagens para outras edições
Abra espaço primeiro e depois amplie a cena inteira com Image Expander.
Guia de prompt e dicas práticas
Descreva o que está visível, e onde
Escreva o objeto como você o apontaria para um colega: um substantivo, uma cor ou material e uma posição. "Banco" funciona; "o banco de madeira à esquerda" funciona melhor quando a cena tem mais de um. Nomear algo que não está na imagem não gera erro. A foto simplesmente volta sem alterações, então um resultado idêntico à entrada geralmente significa que a descrição errou o alvo.
Pinte máscaras com folga
Quando usar mask_url, faça a máscara do mesmo tamanho da foto, branca sobre o objeto e preta em todo o resto. Estenda o branco um pouco além da borda do objeto para que o contorno e a sombra também desapareçam; uma máscara colada à silhueta costuma deixar um leve vestígio.
Remova coisas grandes uma de cada vez
Vários objetos pequenos podem sair numa só requisição, mas para remoções grandes ou sobrepostas faça passadas separadas e confira cada resultado. Cada passada devolve uma foto completa, então a saída de uma requisição pode entrar direto na próxima.
Início rápido da API
# Generate the idempotency key once; reuse it when retrying after a lost response.
export SPICY_IDEMPOTENCY_KEY="${SPICY_IDEMPOTENCY_KEY:-$(uuidgen)}"
curl -X POST https://api.spicyapi.ai/api/v1/jobs/createTask \
-H "Authorization: Bearer $SPICY_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $SPICY_IDEMPOTENCY_KEY" \
-d '{
"model": "spicyapi/object-eraser-v1/edit",
"input": {
"image_url": "https://example.com/reference.png",
"output_format": "png",
"prompt": "A ceramic teapot on a linen cloth, soft window light, muted palette"
}
}'
# Copy data.taskId from the response into TASK_ID, then poll the status.
TASK_ID="TASK_ID_FROM_RESPONSE"
curl "https://api.spicyapi.ai/api/v1/jobs/recordInfo?taskId=$TASK_ID" \
-H "Authorization: Bearer $SPICY_API_KEY"
Consulte a referência da API para autenticação, esquema completo, polling e tratamento de erros.








