Intégrer la conversion image-vers-prompt dans vos applications ouvre des possibilités puissantes : génération automatisée de descriptions, outils de recherche visuelle, pipelines de création de contenu et systèmes de recommandation basés sur le style visuel. Dans ce guide technique, nous couvrons tout ce dont les développeurs ont besoin pour intégrer l'API ImageToPrompt dans leurs projets.

Note : L'API ImageToPrompt est alimentée par Claude AI d'Anthropic et traite les images de manière éphémère. Aucune image n'est jamais stockée sur nos serveurs.

Présentation de l'API

L'API ImageToPrompt expose quatre endpoints principaux qui couvrent l'ensemble des cas d'utilisation de conversion image/texte vers prompt IA. Chaque endpoint accepte des requêtes POST avec un corps JSON et retourne une réponse structurée contenant le prompt généré ainsi que des métadonnées utiles.

L'API est hébergée sur Vercel comme fonctions serverless, ce qui garantit une latence faible et une disponibilité élevée. Les temps de réponse moyens sont de 5 à 10 secondes selon la complexité de l'image et le modèle cible choisi.

Authentification et Sécurité

Les requêtes API nécessitent un header d'authentification contenant votre clé secrète. Cette clé est transmise dans le header x-app-secret de chaque requête.

POST /api/analyze Content-Type: application/json x-app-secret: YOUR_APP_SECRET { "image": "data:image/jpeg;base64,/9j/4AAQ...", "model": "midjourney", "style": "cinematic" }

Toutes les communications sont chiffrées via HTTPS. Les images sont transmises en base64 dans le corps de la requête et ne transitent jamais par des services tiers non sécurisés.

Endpoints Disponibles

Endpoint Méthode Description
/api/analyze POST Convertit une image en prompt IA pour le modèle cible
/api/text-to-prompt POST Transforme une description textuelle en prompt IA optimisé
/api/image-to-video-prompt POST Génère un prompt vidéo IA à partir d'une image source
/api/text-to-video-prompt POST Crée un prompt vidéo IA à partir d'une description textuelle

Exemple d'Intégration Python

Voici un exemple complet d'intégration en Python utilisant la bibliothèque requests. Ce script encode une image locale en base64, envoie la requête à l'API et affiche le prompt généré.

import requests import base64 import json def image_to_prompt(image_path, model="midjourney", style="cinematic"): """Convert a local image to an AI prompt.""" # Read and encode the image with open(image_path, "rb") as f: image_data = base64.b64encode(f.read()).decode("utf-8") # Determine MIME type ext = image_path.lower().split(".")[-1] mime_types = {"jpg": "jpeg", "jpeg": "jpeg", "png": "png", "webp": "webp"} mime = mime_types.get(ext, "jpeg") # Build the request payload = { "image": f"data:image/{mime};base64,{image_data}", "model": model, "style": style } headers = { "Content-Type": "application/json", "x-app-secret": "YOUR_APP_SECRET" } response = requests.post( "https://www.imagetoprompt.dev/api/analyze", json=payload, headers=headers, timeout=30 ) if response.status_code == 200: result = response.json() return result elif response.status_code == 429: print("Rate limit reached. Try again tomorrow.") return None else: print(f"Error {response.status_code}: {response.text}") return None # Usage result = image_to_prompt("my-photo.jpg", model="flux", style="technical") if result: print("Prompt:", result["prompt"]) print("Negative:", result.get("negative", "N/A"))

Exemple d'Intégration JavaScript

Pour les applications web et Node.js, voici un exemple utilisant fetch. Ce code fonctionne aussi bien côté navigateur que côté serveur avec Node.js 18+.

async function imageToPrompt(imageFile, model = "midjourney", style = "cinematic") { // Convert File to base64 const reader = new FileReader(); const base64 = await new Promise((resolve) => { reader.onload = () => resolve(reader.result); reader.readAsDataURL(imageFile); }); const response = await fetch("https://www.imagetoprompt.dev/api/analyze", { method: "POST", headers: { "Content-Type": "application/json", "x-app-secret": "YOUR_APP_SECRET" }, body: JSON.stringify({ image: base64, model: model, style: style }) }); if (response.status === 429) { throw new Error("Rate limit exceeded"); } if (!response.ok) { throw new Error(`API error: ${response.status}`); } return await response.json(); } // Usage with file input const fileInput = document.querySelector('input[type="file"]'); fileInput.addEventListener("change", async (e) => { const file = e.target.files[0]; try { const result = await imageToPrompt(file, "stable-diffusion", "technical"); console.log("Generated prompt:", result.prompt); } catch (err) { console.error("Failed:", err.message); } });

Paramètres de Requête

Chaque endpoint accepte des paramètres spécifiques qui influencent la génération du prompt. Voici les paramètres pour l'endpoint principal /api/analyze :

Paramètre Type Requis Description
image string Oui Image en base64 avec préfixe data URI
model string Oui Modèle cible : midjourney, stable-diffusion, flux, dall-e-3, adobe-firefly, leonardo-ai, ideogram
style string Non Style de prompt : cinematic, technical, artistic, minimal, epic, photographic

Format de Réponse

L'API retourne un objet JSON structuré contenant le prompt principal, le prompt négatif (si applicable), une variante créative et des métadonnées sur l'analyse visuelle.

{ "prompt": "cinematic portrait of a woman in golden hour light, shallow depth of field, film grain, warm tones --ar 3:2 --v 6.1 --style raw", "negative": "blurry, low quality, deformed, bad anatomy", "remix": "ethereal portrait bathed in amber sunset glow, dreamlike bokeh...", "colors": ["#D4A574", "#2C1810", "#F5E6D3", "#8B4513", "#FFD700"], "tags": ["portrait", "golden hour", "cinematic", "warm tones"], "aspectRatio": "3:2", "model": "midjourney", "style": "cinematic" }

Limites de Taux et Quotas

L'API utilise un système de rate limiting basé sur l'adresse IP avec Upstash Redis. Les limites actuelles sont :

En cas de dépassement du quota, l'API retourne un code HTTP 429 avec un message explicatif. Implémentez un mécanisme de retry avec backoff exponentiel dans votre code client.

Gestion des Erreurs

L'API utilise les codes HTTP standards pour signaler les erreurs. Voici les codes les plus courants et leur signification :

Code Signification Action recommandée
200 Succès Traitez la réponse normalement
400 Requête invalide Vérifiez le format de l'image et les paramètres
401 Non authentifié Vérifiez votre clé x-app-secret
429 Limite de taux atteinte Attendez la réinitialisation du quota ou passez au plan payant
500 Erreur serveur Réessayez après quelques secondes avec backoff exponentiel

Cas d'Utilisation Avancés

Pipeline de génération de contenu

Intégrez l'API dans votre pipeline de création de contenu pour générer automatiquement des descriptions visuelles à partir de photos de produits, d'images de portfolio ou de captures d'écran de design. Cela permet de créer des variations de style cohérentes à grande échelle.

Moteur de recherche visuelle

Utilisez les prompts générés comme descripteurs sémantiques pour indexer et rechercher des images par style visuel. Les tags de couleur, de style et d'ambiance retournés par l'API créent un index riche pour la recherche par similarité visuelle.

Outil de formation créative

Construisez des outils éducatifs qui décomposent les images en leurs composantes visuelles (éclairage, composition, palette, style) pour aider les artistes et les photographes à comprendre ce qui rend une image efficace.

Automatisation de réseaux sociaux

Générez automatiquement des légendes descriptives et des hashtags à partir de vos visuels. Le prompt généré contient les termes les plus pertinents pour décrire le contenu visuel de manière détaillée et engageante.

Testez l'API Maintenant

Essayez gratuitement avec 10 requêtes par jour. Aucune inscription requise pour tester l'outil en ligne.

Essayer ImageToPrompt Gratuitement →

Questions Fréquentes

L'API ImageToPrompt est-elle gratuite ?

L'API offre un quota gratuit de 10 requêtes par jour par adresse IP. Ce quota est partagé entre tous les endpoints (image-to-prompt, text-to-prompt, image-to-video, text-to-video). Pour des volumes plus importants, consultez nos plans tarifaires sur la page Pricing.

Quels formats d'image sont supportés par l'API ?

L'API accepte les images au format JPEG, PNG, WebP et GIF (première frame uniquement). La taille maximale est de 10 Mo par image. Les images sont envoyées en base64 dans le corps de la requête JSON. Pour de meilleurs résultats, utilisez des images d'au moins 512x512 pixels.

Comment gérer les erreurs et les limites de taux dans l'API ?

L'API retourne un code HTTP 429 lorsque la limite de taux est atteinte, avec un header Retry-After indiquant quand réessayer. Implémentez un backoff exponentiel dans votre code. Les erreurs 400 indiquent un problème avec la requête (image invalide, paramètres manquants) et les erreurs 500 signalent un problème serveur temporaire.

Les images envoyées à l'API sont-elles stockées ?

Non. Toutes les images sont traitées en mémoire de manière éphémère et ne sont jamais stockées sur nos serveurs. L'analyse est effectuée en temps réel par Claude AI et les données sont immédiatement supprimées après la génération du prompt. Aucun log d'image n'est conservé.