Comparar duas imagens
Envie duas imagens e receba uma nota de quanto elas se parecem visualmente: um marketplace pode tratar 0,9 como anúncio duplicado, enquanto um painel de referências aceita qualquer valor acima de 0,5. Cópias redimensionadas ou recomprimidas continuam próximas. Você paga por uso, sem assinatura.
Rode online
Rode nos nossos servidores com a sua conta. As ferramentas grátis rodam no seu navegador; esta aqui é descontada do seu saldo do KIT pelo preço acima.
Compare duas imagens e receba um índice de semelhança: a análise olha o conteúdo visual — não só os pixels — e diz o quanto uma imagem se parece com a outra. Serve para achar produto repetido, detectar foto reaproveitada e agrupar imagens parecidas dentro do seu sistema.
Semelhança de conteúdo, não de arquivo
A comparação não confere byte a byte: cada imagem é convertida numa representação do que ela mostra, e o índice mede a proximidade entre as duas representações. Por isso, a mesma cadeira fotografada de ângulos um pouco diferentes pontua alto, enquanto duas fotos tecnicamente idênticas de objetos distintos pontuam baixo. É o tipo de comparação que se aproxima do julgamento humano — “isso é praticamente a mesma coisa” — mas devolvida como número, utilizável em regra de sistema.
Onde isso entra no seu produto
Marketplace que quer impedir o mesmo produto anunciado dez vezes com fotos levemente diferentes. Time de moderação que precisa saber se a imagem denunciada é a mesma que já foi removida. Catálogo que agrupa variações da mesma peça.
Verificação de que a foto entregue pelo fornecedor corresponde à referência aprovada. Em todos os casos, a decisão vira uma comparação de índice contra um limite que você calibra com seus próprios exemplos.
Como é a chamada
Você envia as duas imagens na mesma requisição e recebe o índice de semelhança na resposta. Cada arquivo pode ter até 15 MB e 12 megapixels, nos formatos comuns de foto e arte.
Casos de uso
Bloquear anúncio duplicado com foto “nova”
No classificado, o vendedor reposta o mesmo sofá com a foto tirada de outro ângulo para burlar o filtro de repetição. A comparação de conteúdo pontua alto contra o anúncio antigo e o sistema segura a publicação para revisão.
Conferir a foto do fornecedor contra a referência
A Distribuidora Horizonte Verde aprova uma foto-padrão por produto. Quando o fornecedor envia material novo, o sistema compara com a referência: índice baixo significa foto de produto errado — e o erro morre antes do site.
Moderação que reconhece imagem já removida
Uma comunidade online remove uma imagem por violar as regras. Quando alguém tenta subi-la de novo, recortada e recomprimida, a comparação acusa a semelhança e o caso vai direto para a fila certa.
Perguntas frequentes
O que exatamente o índice mede?
A proximidade entre o conteúdo visual das duas imagens. Valores altos indicam mesma cena ou objeto, mesmo com corte, ângulo ou compressão diferentes; valores baixos indicam conteúdos distintos.
Que valor devo usar como corte?
Depende do seu caso: rode a comparação com pares seus — duplicatas reais e pares distintos — e escolha o limite que separa bem os dois grupos. A calibração com dados próprios vale mais que qualquer número universal.
As imagens comparadas ficam guardadas?
São usadas para calcular o índice da sua chamada e devolver o resultado — não alimentam galerias nem outros fins.
Funciona para comparar documentos escaneados?
Funciona como comparação visual: detecta se são o mesmo documento em versões parecidas. Para conferir o texto em si, o caminho é extração de conteúdo, não comparação de imagem.
Preciso de conta para começar?
Não — por enquanto não há cadastro: a contratação é direta e você já faz as primeiras chamadas.
Ferramentas relacionadas
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/image/compare \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"image_a":"https://example.com/a.jpg","image_b":"https://example.com/b.jpg"}'const res = await fetch("https://api.kit.forhosting.com/image/compare", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"image_a": "https://example.com/a.jpg",
"image_b": "https://example.com/b.jpg"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/image/compare",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"image_a": "https://example.com/a.jpg",
"image_b": "https://example.com/b.jpg"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/image/compare", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"image_a":"https://example.com/a.jpg","image_b":"https://example.com/b.jpg"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"image_a":"https://example.com/a.jpg","image_b":"https://example.com/b.jpg"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/image/compare", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"image_a": "https://example.com/a.jpg",
"image_b": "https://example.com/b.jpg"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "image.compare",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Limites
max_mb | 15 |
max_megapixels | 12 |
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |
Notas técnicas
Como é a chamada
A execução é assíncrona — a tarefa devolve um task_id e o resultado sai em segundos —, o que permite disparar comparações em paralelo quando há volume.
Preço por comparação
O preço fica publicado nesta página para a conta ser feita antes da integração, não depois da fatura. US$ 0,002 por chamada mais US$ 0,0015 por imagem analisada: comparar um par custa US$ 0,005 — meio centavo de dólar. Rodar mil comparações de moderação sai por cerca de US$ 5, pagos por uso, sem plano nem franquia.
Perguntas técnicas
Quanto custa comparar um par de imagens?
US$ 0,005 no total: US$ 0,002 da chamada mais US$ 0,0015 por cada uma das duas imagens. Pagamento por uso, sem mensalidade.