Images similaires
À partir d’une image, KIT retrouve les visuels les plus ressemblants dans votre bibliothèque indexée. La comparaison porte sur le contenu — ce que l’image montre — non sur son nom de fichier. On repère ainsi des doublons ou des variantes d’un même produit. Cette capacité est en bêta.
Exécuter en ligne
Exécutez cette tâche sur nos serveurs, avec votre compte. Les outils gratuits tournent dans votre navigateur ; celui-ci est facturé sur votre solde KIT au prix affiché ci-dessus.
Comparer des images par leur contenu
Chaque image indexée est traduite en vecteur qui résume ce qu’elle représente : formes, objets, composition. Soumettez une image de référence et KIT cherche ses voisines dans cet espace. Deux photos d’une même chaise sous des angles différents se retrouvent proches, alors que leurs fichiers n’ont rien en commun. C’est une recherche « montre-moi les images qui ressemblent à celle-ci », pilotée par le visuel et non par les métadonnées.
À quoi ça sert au quotidien
Repérer les doublons d’une photothèque, retrouver toutes les prises d’un même produit, vérifier qu’un visuel n’a pas déjà été publié ailleurs dans votre bibliothèque : la recherche par ressemblance visuelle fait en quelques secondes ce qu’un œil humain mettrait des heures à parcourir. Un score de proximité accompagne chaque résultat pour distinguer un quasi-doublon d’une simple parenté de style, et vous fixez vous-même le seuil au-delà duquel deux images comptent comme identiques.
Une fonction en bêta, et son prix
Cette capacité est en bêta : elle fonctionne et s’exécute, mais son comportement peut encore évoluer, et nous préférons vous le dire. Le tarif est celui des recherches du KIT : $0.002 par appel et $0.0015 par requête, en dollars US, sans abonnement. Il faut une bibliothèque d’images déjà indexée ; l’indexation se facture à part. Le montant s’affiche avant chaque exécution, pour que rien ne vous surprenne.
Cas d’usage
Photothèque sans doublons
Studio Lumen SAS soumet une photo et retrouve toutes ses quasi-copies dans les archives d’un shooting. Le tri des variantes redondantes se fait à l’image, sans rouvrir des centaines de fichiers un par un.
Variantes d’un même produit
Atelier Garnier SARL regroupe les prises de vue d’un même meuble dispersées dans sa bibliothèque. À partir d’une photo, les autres angles remontent, prêts à être rattachés à la bonne fiche.
Vérifier un visuel avant publication
Avant d’ajouter une image à un dossier, une TPE vérifie si un visuel très proche existe déjà. La ressemblance visuelle évite de dupliquer la même illustration sous deux noms.
Questions fréquentes
La recherche se fait-elle sur le nom du fichier ?
Non, sur le contenu de l’image elle-même. Deux photos du même objet se retrouvent proches quel que soit leur nom de fichier, et une image bien nommée mais sans rapport visuel ne remonte pas.
Que signifie « en bêta » ici ?
La fonction est disponible et s’exécute, mais elle est plus récente que le reste : sa qualité et ses réglages peuvent encore bouger. Nous l’indiquons franchement plutôt que de la présenter comme définitivement stabilisée.
Faut-il indexer mes images avant ?
Oui. La recherche compare l’image soumise à une bibliothèque déjà indexée. Sans index d’images, il n’y a rien à comparer.
Mes images sont-elles conservées ou réutilisées ?
Les visuels sont envoyés chiffrés à nos serveurs pour être indexés puis comparés, et conservés le temps que vous utilisez la bibliothèque. Ils ne servent pas à entraîner un modèle et se suppriment sur demande à [email protected].
Combien coûte une recherche d’images ?
$0.002 par appel et $0.0015 par requête, en dollars US. L’indexation des images se facture à part. Le prix s’affiche avant de lancer, sans abonnement.
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre stack
curl -X POST https://api.kit.forhosting.com/search/similar-images \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"input":"…"}'const res = await fetch("https://api.kit.forhosting.com/search/similar-images", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"input": "…"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/search/similar-images",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"input": "…"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/search/similar-images", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"input":"…"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"input":"…"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/search/similar-images", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemple de requête
{
"input": "…"
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "search.similar_images",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Limites
max_chunks | 10000 |
max_tokens | 20000 |
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |