de-DEAPI-Referenz

API-Referenz

Diese Dokumentation bietet detaillierte Informationen zur Verwendung der ImagineoAI-API, um programmgesteuert Bilder mit Ihren benutzerdefinierten LoRAs zu generieren.

Einführung

Die ImagineoAI-API ermöglicht es Ihnen, unsere Bildgenerierungsfunktionen direkt in Ihre Anwendungen, Websites oder Workflows zu integrieren. Mit dieser API können Sie:

  • Bilder mit Ihren benutzerdefinierten LoRAs generieren
  • Upscaling bestehender Bilder durchführen
  • Den Status der Generierung überprüfen
  • Generierte Bilder abrufen

Authentifizierung

Alle Anfragen an die ImagineoAI-API erfordern eine Authentifizierung mittels eines API-Schlüssels.

API-Schlüssel erhalten

  1. Melden Sie sich bei Ihrem ImagineoAI-Konto an
  2. Navigieren Sie zu Kontoeinstellungen > API
  3. Klicken Sie auf “API-Schlüssel generieren”
  4. Bewahren Sie diesen Schlüssel sicher auf; er wird nur einmal angezeigt

Verwendung des API-Schlüssels

Fügen Sie Ihren API-Schlüssel im Header aller Anfragen hinzu:

curl -X POST https://api.imagineoai.com/v1/generate \
  -H "Authorization: Bearer IHR_API_SCHLÜSSEL" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "Ihr Prompt hier",
    "lora_id": "ihre_lora_id",
    "lora_weight": 0.8
  }'

API-Endpunkte

Bildgenerierung

Endpunkt: POST /v1/generate

Generiert ein neues Bild basierend auf einem Prompt und einem spezifischen LoRA.

Parameter:

ParameterTypErforderlichBeschreibung
promptstringJaDer Textprompt, der das gewünschte Bild beschreibt
lora_idstringJaID des zu verwendenden LoRA-Modells
lora_weightfloatNeinGewichtung des LoRAs (0.1-1.0, Standard 0.75)
widthintegerNeinBildbreite (512, 768, Standard 512)
heightintegerNeinBildhöhe (512, 768, Standard 512)
num_imagesintegerNeinAnzahl der zu generierenden Bilder (1-4, Standard 1)
guidance_scalefloatNeinCFG-Führungsskala (1-20, Standard 7.5)
stepsintegerNeinGenerierungsschritte (20-50, Standard 30)
seedintegerNeinSeed für Reproduzierbarkeit (optional)

Beispielanfrage:

{
  "prompt": "Blaue Glasparfümflasche auf Marmortisch, Studiobeleuchtung, professionelle Produktfotografie",
  "lora_id": "parfum_marke_v2",
  "lora_weight": 0.8,
  "width": 768,
  "height": 768,
  "guidance_scale": 8.0,
  "steps": 30
}

Beispielantwort:

{
  "request_id": "gen_a1b2c3d4e5f6",
  "status": "processing",
  "estimated_completion_time": "2023-06-15T14:30:00Z"
}

Generierungsstatus überprüfen

Endpunkt: GET /v1/generate/{request_id}

Überprüft den Status einer laufenden Generierungsanfrage.

Parameter:

ParameterTypErforderlichBeschreibung
request_idstringJaID der Generierungsanfrage

Beispielantwort (in Bearbeitung):

{
  "request_id": "gen_a1b2c3d4e5f6",
  "status": "processing",
  "progress": 60,
  "estimated_completion_time": "2023-06-15T14:30:00Z"
}

Beispielantwort (abgeschlossen):

{
  "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"
}

Bild-Upscaling

Endpunkt: POST /v1/upscale

Verbessert die Auflösung eines vorhandenen Bildes.

Parameter:

ParameterTypErforderlichBeschreibung
image_idstringJaID des zu verbessernden Bildes
scale_factorintegerNeinSkalierungsfaktor (2, 4, Standard 2)

Beispielanfrage:

{
  "image_id": "img_g7h8i9j0k1l2",
  "scale_factor": 4
}

Beispielantwort:

{
  "request_id": "up_m3n4o5p6q7r8",
  "status": "processing",
  "estimated_completion_time": "2023-06-15T14:35:00Z"
}

Fehlercodes

CodeBeschreibung
400Ungültige Anfrage oder Parameter
401Nicht autorisiert - Ungültiger oder fehlender API-Schlüssel
403Verboten - Sie haben keine Berechtigung, dieses LoRA zu verwenden
404Nicht gefunden - Ressource nicht gefunden
429Zu viele Anfragen - Sie haben Ihr Kontingent überschritten
500Interner Serverfehler

Ratenbegrenzungen

Ihr Plan bestimmt die Ratenbegrenzungen für API-Aufrufe:

  • Basis-Plan: 50 Anfragen/Stunde
  • Profi-Plan: 200 Anfragen/Stunde
  • Unternehmensplan: 1000 Anfragen/Stunde

Codebeispiele

Python

import requests
import json
import time
 
API_KEY = "ihr_api_schlüssel"
API_URL = "https://api.imagineoai.com/v1"
 
headers = {
    "Authorization": f"Bearer {API_KEY}",
    "Content-Type": "application/json"
}
 
# Bild generieren
generation_payload = {
    "prompt": "Blaue Glasparfümflasche auf Marmortisch",
    "lora_id": "parfum_marke_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"]
 
# Status überprüfen, bis Generierung abgeschlossen ist
while True:
    status_response = requests.get(f"{API_URL}/generate/{request_id}", headers=headers)
    status_data = status_response.json()
    
    if status_data["status"] == "completed":
        # Bild-URL speichern
        image_url = status_data["images"][0]["url"]
        print(f"Bild generiert! URL: {image_url}")
        break
    elif status_data["status"] == "failed":
        print("Bildgenerierung fehlgeschlagen.")
        break
    
    print(f"Generierung läuft: {status_data.get('progress', 0)}% abgeschlossen")
    time.sleep(5)

JavaScript

const API_KEY = "ihr_api_schlüssel";
const API_URL = "https://api.imagineoai.com/v1";
 
// Bild generieren
async function generateImage() {
  const payload = {
    prompt: "Blaue Glasparfümflasche auf Marmortisch",
    lora_id: "parfum_marke_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;
}
 
// Generierungsstatus überprüfen
async function checkStatus(requestId) {
  const response = await fetch(`${API_URL}/generate/${requestId}`, {
    headers: {
      'Authorization': `Bearer ${API_KEY}`
    }
  });
  
  return await response.json();
}
 
// Vollständiger Ablauf
async function generateAndWait() {
  const requestId = await generateImage();
  console.log(`Anfrage mit ID gestartet: ${requestId}`);
  
  let isCompleted = false;
  
  while (!isCompleted) {
    const statusData = await checkStatus(requestId);
    
    if (statusData.status === "completed") {
      console.log("Bild generiert!");
      console.log(`URL: ${statusData.images[0].url}`);
      isCompleted = true;
    } else if (statusData.status === "failed") {
      console.log("Bildgenerierung fehlgeschlagen.");
      isCompleted = true;
    } else {
      console.log(`Generierung läuft: ${statusData.progress || 0}% abgeschlossen`);
      await new Promise(resolve => setTimeout(resolve, 5000));
    }
  }
}
 
generateAndWait();

Support

Wenn Sie Fragen oder Probleme mit der API haben, kontaktieren Sie bitte unser Support-Team unter api-support@imagineoai.com.