Référence API
Cette documentation fournit des informations détaillées sur l’utilisation de l’API ImagineoAI pour générer des images avec vos LoRAs personnalisés de manière programmatique.
Introduction
L’API ImagineoAI vous permet d’intégrer nos capacités de génération d’images directement dans vos applications, sites web ou flux de travail. Avec cette API, vous pouvez:
- Générer des images en utilisant vos LoRAs personnalisés
- Effectuer l’upscaling d’images existantes
- Vérifier l’état de la génération
- Récupérer les images générées
Authentification
Toutes les requêtes à l’API ImagineoAI nécessitent une authentification via une clé API.
Obtenir votre Clé API
- Connectez-vous à votre compte ImagineoAI
- Naviguez vers Paramètres du compte > API
- Cliquez sur “Générer une clé API”
- Conservez cette clé en lieu sûr; elle n’est affichée qu’une seule fois
Utilisation de la Clé API
Incluez votre clé API dans l’en-tête de toutes les requêtes:
curl -X POST https://api.imagineoai.com/v1/generate \
-H "Authorization: Bearer VOTRE_CLE_API" \
-H "Content-Type: application/json" \
-d '{
"prompt": "votre prompt ici",
"lora_id": "votre_id_lora",
"lora_weight": 0.8
}'Endpoints de l’API
Génération d’Images
Endpoint: POST /v1/generate
Génère une nouvelle image basée sur un prompt et un LoRA spécifique.
Paramètres:
| Paramètre | Type | Requis | Description |
|---|---|---|---|
| prompt | string | Oui | Le prompt textuel décrivant l’image souhaitée |
| lora_id | string | Oui | ID du modèle LoRA à utiliser |
| lora_weight | float | Non | Poids du LoRA (0.1-1.0, par défaut 0.75) |
| width | integer | Non | Largeur de l’image (512, 768, par défaut 512) |
| height | integer | Non | Hauteur de l’image (512, 768, par défaut 512) |
| num_images | integer | Non | Nombre d’images à générer (1-4, par défaut 1) |
| guidance_scale | float | Non | Échelle de guidance CFG (1-20, par défaut 7.5) |
| steps | integer | Non | Étapes de génération (20-50, par défaut 30) |
| seed | integer | Non | Graine pour la reproductibilité (optionnel) |
Exemple de requête:
{
"prompt": "Bouteille de parfum en verre bleu sur table en marbre, éclairage de studio, photographie professionnelle de produit",
"lora_id": "parfum_marque_v2",
"lora_weight": 0.8,
"width": 768,
"height": 768,
"guidance_scale": 8.0,
"steps": 30
}Exemple de réponse:
{
"request_id": "gen_a1b2c3d4e5f6",
"status": "processing",
"estimated_completion_time": "2023-06-15T14:30:00Z"
}Vérifier l’État de la Génération
Endpoint: GET /v1/generate/{request_id}
Vérifie l’état d’une demande de génération en cours.
Paramètres:
| Paramètre | Type | Requis | Description |
|---|---|---|---|
| request_id | string | Oui | ID de la demande de génération |
Exemple de réponse (en cours):
{
"request_id": "gen_a1b2c3d4e5f6",
"status": "processing",
"progress": 60,
"estimated_completion_time": "2023-06-15T14:30:00Z"
}Exemple de réponse (terminé):
{
"request_id": "gen_a1b2c3d4e5f6",
"status": "completed",
"images": [
{
"image_id": "img_g7h8i9j0k1l2",
"url": "https://storage.imagineoai.com/images/g7h8i9j0k1l2.png",
"width": 768,
"height": 768
}
],
"completed_at": "2023-06-15T14:29:45Z"
}Upscaling d’Images
Endpoint: POST /v1/upscale
Améliore la résolution d’une image existante.
Paramètres:
| Paramètre | Type | Requis | Description |
|---|---|---|---|
| image_id | string | Oui | ID de l’image à améliorer |
| scale_factor | integer | Non | Facteur d’échelle (2, 4, par défaut 2) |
Exemple de requête:
{
"image_id": "img_g7h8i9j0k1l2",
"scale_factor": 4
}Exemple de réponse:
{
"request_id": "up_m3n4o5p6q7r8",
"status": "processing",
"estimated_completion_time": "2023-06-15T14:35:00Z"
}Codes d’Erreur
| Code | Description |
|---|---|
| 400 | Requête incorrecte ou paramètres invalides |
| 401 | Non autorisé - Clé API invalide ou manquante |
| 403 | Interdit - Vous n’avez pas les permissions pour utiliser ce LoRA |
| 404 | Non trouvé - Ressource introuvable |
| 429 | Trop de requêtes - Vous avez dépassé votre quota |
| 500 | Erreur interne du serveur |
Limites de Débit
Votre forfait détermine les limites de débit pour les appels API:
- Forfait Basique: 50 requêtes/heure
- Forfait Professionnel: 200 requêtes/heure
- Forfait Entreprise: 1000 requêtes/heure
Exemples de Code
Python
import requests
import json
import time
API_KEY = "votre_cle_api"
API_URL = "https://api.imagineoai.com/v1"
headers = {
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json"
}
# Générer une image
generation_payload = {
"prompt": "Bouteille de parfum en verre bleu sur table en marbre",
"lora_id": "parfum_marque_v2",
"lora_weight": 0.8
}
response = requests.post(f"{API_URL}/generate", headers=headers, json=generation_payload)
data = response.json()
request_id = data["request_id"]
# Vérifier l'état jusqu'à ce qu'il soit terminé
while True:
status_response = requests.get(f"{API_URL}/generate/{request_id}", headers=headers)
status_data = status_response.json()
if status_data["status"] == "completed":
# Sauvegarder l'URL de l'image
image_url = status_data["images"][0]["url"]
print(f"Image générée! URL: {image_url}")
break
elif status_data["status"] == "failed":
print("La génération de l'image a échoué.")
break
print(f"Génération en cours: {status_data.get('progress', 0)}% terminé")
time.sleep(5)JavaScript
const API_KEY = "votre_cle_api";
const API_URL = "https://api.imagineoai.com/v1";
// Générer une image
async function generateImage() {
const payload = {
prompt: "Bouteille de parfum en verre bleu sur table en marbre",
lora_id: "parfum_marque_v2",
lora_weight: 0.8
};
const response = await fetch(`${API_URL}/generate`, {
method: 'POST',
headers: {
'Authorization': `Bearer ${API_KEY}`,
'Content-Type': 'application/json'
},
body: JSON.stringify(payload)
});
const data = await response.json();
return data.request_id;
}
// Vérifier l'état de la génération
async function checkStatus(requestId) {
const response = await fetch(`${API_URL}/generate/${requestId}`, {
headers: {
'Authorization': `Bearer ${API_KEY}`
}
});
return await response.json();
}
// Flux complet
async function generateAndWait() {
const requestId = await generateImage();
console.log(`Demande initiée avec ID: ${requestId}`);
let isCompleted = false;
while (!isCompleted) {
const statusData = await checkStatus(requestId);
if (statusData.status === "completed") {
console.log("Image générée!");
console.log(`URL: ${statusData.images[0].url}`);
isCompleted = true;
} else if (statusData.status === "failed") {
console.log("La génération de l'image a échoué.");
isCompleted = true;
} else {
console.log(`Génération en cours: ${statusData.progress || 0}% terminé`);
await new Promise(resolve => setTimeout(resolve, 5000));
}
}
}
generateAndWait();Support
Si vous avez des questions ou des problèmes avec l’API, veuillez contacter notre équipe de support à api-support@imagineoai.com.