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
- Melden Sie sich bei Ihrem ImagineoAI-Konto an
- Navigieren Sie zu Kontoeinstellungen > API
- Klicken Sie auf “API-Schlüssel generieren”
- 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:
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| prompt | string | Ja | Der Textprompt, der das gewünschte Bild beschreibt |
| lora_id | string | Ja | ID des zu verwendenden LoRA-Modells |
| lora_weight | float | Nein | Gewichtung des LoRAs (0.1-1.0, Standard 0.75) |
| width | integer | Nein | Bildbreite (512, 768, Standard 512) |
| height | integer | Nein | Bildhöhe (512, 768, Standard 512) |
| num_images | integer | Nein | Anzahl der zu generierenden Bilder (1-4, Standard 1) |
| guidance_scale | float | Nein | CFG-Führungsskala (1-20, Standard 7.5) |
| steps | integer | Nein | Generierungsschritte (20-50, Standard 30) |
| seed | integer | Nein | Seed 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:
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| request_id | string | Ja | ID 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:
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| image_id | string | Ja | ID des zu verbessernden Bildes |
| scale_factor | integer | Nein | Skalierungsfaktor (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
| Code | Beschreibung |
|---|---|
| 400 | Ungültige Anfrage oder Parameter |
| 401 | Nicht autorisiert - Ungültiger oder fehlender API-Schlüssel |
| 403 | Verboten - Sie haben keine Berechtigung, dieses LoRA zu verwenden |
| 404 | Nicht gefunden - Ressource nicht gefunden |
| 429 | Zu viele Anfragen - Sie haben Ihr Kontingent überschritten |
| 500 | Interner 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.