fr-CARéférence API

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

  1. Connectez-vous à votre compte ImagineoAI
  2. Naviguez vers Paramètres du compte > API
  3. Cliquez sur “Générer une clé API”
  4. 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ètreTypeRequisDescription
promptstringOuiLe prompt textuel décrivant l’image souhaitée
lora_idstringOuiID du modèle LoRA à utiliser
lora_weightfloatNonPoids du LoRA (0.1-1.0, par défaut 0.75)
widthintegerNonLargeur de l’image (512, 768, par défaut 512)
heightintegerNonHauteur de l’image (512, 768, par défaut 512)
num_imagesintegerNonNombre d’images à générer (1-4, par défaut 1)
guidance_scalefloatNonÉchelle de guidance CFG (1-20, par défaut 7.5)
stepsintegerNonÉtapes de génération (20-50, par défaut 30)
seedintegerNonGraine 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ètreTypeRequisDescription
request_idstringOuiID 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ètreTypeRequisDescription
image_idstringOuiID de l’image à améliorer
scale_factorintegerNonFacteur 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

CodeDescription
400Requête incorrecte ou paramètres invalides
401Non autorisé - Clé API invalide ou manquante
403Interdit - Vous n’avez pas les permissions pour utiliser ce LoRA
404Non trouvé - Ressource introuvable
429Trop de requêtes - Vous avez dépassé votre quota
500Erreur 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.