Open API

GPT Image API

Rufen Sie gpt-image-2 über die OpenAI-Images-kompatible API von LMU AI auf für Text-zu-Bild, Bildbearbeitung, Parameter, Base64-Speicherung, Modellabfrage und Fehlerbehebung.

LMU AI stellt eine OpenAI-Images-kompatible API für Text-zu-Bild und Bildbearbeitung / Bild-zu-Bild mit gpt-image-2 bereit.

Base URL

OpenAI SDK:

https://api.lmuai.com/v1

Wenn Sie HTTP-Anfragen von Hand schreiben, verwenden Sie die vollständigen Endpunkte:

POST https://api.lmuai.com/v1/images/generations
POST https://api.lmuai.com/v1/images/edits

1. API-Überblick

MethodePfadContent-TypeBeschreibung
GET/v1/modelsFragt die für Ihren aktuellen API-Schlüssel verfügbaren Modelle ab
POST/v1/images/generationsapplication/jsonGPT Text-zu-Bild, synchrone Antwort
POST/v1/images/editsmultipart/form-dataGPT-Bildbearbeitung / Bild-zu-Bild, synchrone Antwort

Noch keine GPT-Multi-Item-Batch-API

/v1/images/batches unterstützt derzeit nur Gemini und kann gpt-image-2 nicht annehmen. Um mehrere GPT-Bilder zu erzeugen, lassen Sie den Client die Anfragen einzeln senden und verwalten Sie Nebenläufigkeit und RPM selbst.

Die Produktionsumgebung hat derzeit auch keinen asynchronen Bild-Job-Endpunkt aktiviert, verlassen Sie sich daher auf die beiden synchronen APIs auf dieser Seite.

2. Authentifizierung

Authorization: Bearer YOUR_API_KEY

Platzieren Sie Ihren API-Schlüssel nicht im Browser-Frontend-Code, in öffentlichen Repositories, in URL-Query-Strings oder in Logs. Wir empfehlen, von Ihrem eigenen Server aus aufzurufen.

3. Modelle abfragen

curl https://api.lmuai.com/v1/models \
  -H "Authorization: Bearer YOUR_API_KEY"

Suchen Sie in der Antwort in data[].id nach dem Bildmodell, zum Beispiel:

{
  "object": "list",
  "data": [
    {"id": "gpt-image-2", "object": "model"}
  ]
}

Die Modellliste wird durch die Gruppe bestimmt, zu der Ihr API-Schlüssel gehört. Verschiedene API-Schlüssel auf derselben Website können unterschiedliche Modelle zurückgeben.

4. Text-zu-Bild

POST /v1/images/generations

curl https://api.lmuai.com/v1/images/generations \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-image-2",
    "prompt": "A red ceramic mug, centered on a light-gray studio background, soft side lighting, no text",
    "n": 1,
    "size": "1024x1024",
    "quality": "low",
    "output_format": "png"
  }'

Python SDK

from openai import OpenAI
import base64

client = OpenAI(
    api_key="YOUR_API_KEY",
    base_url="https://api.lmuai.com/v1",
)

result = client.images.generate(
    model="gpt-image-2",
    prompt="A red ceramic mug, light-gray studio background, soft side lighting, no text",
    size="1024x1024",
    quality="low",
)

item = result.data[0]

if item.b64_json:
    with open("gpt-output.png", "wb") as f:
        f.write(base64.b64decode(item.b64_json))
elif item.url:
    print(item.url)
else:
    raise RuntimeError("No valid image in the response")

JavaScript

import OpenAI from "openai";
import fs from "node:fs";

const client = new OpenAI({
  apiKey: process.env.LMU_API_KEY,
  baseURL: "https://api.lmuai.com/v1",
});

const result = await client.images.generate({
  model: "gpt-image-2",
  prompt: "A red ceramic mug, light-gray studio background, soft side lighting, no text",
  size: "1024x1024",
  quality: "low",
  output_format: "png",
});

const item = result.data?.[0];
if (item?.b64_json) {
  fs.writeFileSync("gpt-output.png", Buffer.from(item.b64_json, "base64"));
} else if (item?.url) {
  console.log(item.url);
} else {
  throw new Error("No valid image in the response");
}

5. Text-zu-Bild-Parameter

FeldTypErforderlichBeschreibung
modelstringEmpfohlenDerzeit gpt-image-2
promptstringJaBildbeschreibung
nintegerNeinAnzahl der Bilder; der verfügbare Bereich wird durch das Modell und den Upstream-Kanal bestimmt
sizestringNeinAngeforderte Größe, z. B. 1024x1024; die tatsächlichen Pixelmaße richten sich nach dem zurückgegebenen Bild
qualitystringNeinQualitätsstufe, z. B. low, medium, high; abhängig von den Modellfähigkeiten
backgroundstringNeinHintergrundeinstellung, z. B. transparenter Hintergrund; abhängig von den Modellfähigkeiten
output_formatstringNeinpng, jpeg, webp usw.; abhängig von den Modellfähigkeiten
output_compressionintegerNeinKomprimierungsqualität für Formate wie JPEG / WebP
response_formatstringNeinKompatibilitätsparameter für das Antwortformat; Clients sollten dennoch sowohl b64_json als auch url prüfen
moderationstringNeinParameter zur Inhaltsmoderation; abhängig von den Modellfähigkeiten
streambooleanNeinSchalter für Streaming-Bildantworten; für normale serverseitige Aufrufe empfehlen wir Nicht-Streaming
partial_imagesintegerNeinAnzahl der Teilbilder in Streaming-Szenarien; abhängig von den Modellfähigkeiten

size ist kein garantierter Zuschnitt

Verschiedene Upstream-Konten und Bild-Backends können size auf ihre Fähigkeiten abbilden oder normalisieren. Selbst wenn Sie 1024x1024 anfordern, können die tatsächlichen Bildpixel abweichen. Wenn Sie ein festes Seitenverhältnis oder eine feste Pixelgröße benötigen, lesen Sie die Abmessungen der Ausgabedatei aus und schneiden oder skalieren Sie auf Ihrer Seite.

6. Bildbearbeitung / Bild-zu-Bild

POST /v1/images/edits

Die GPT-Bildbearbeitung verwendet multipart/form-data:

curl https://api.lmuai.com/v1/images/edits \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F "model=gpt-image-2" \
  -F "prompt=Keep the mug's shape, composition, and lighting; change the mug from red to green; no text" \
  -F "image=@./input.png" \
  -F "size=1024x1024" \
  -F "quality=low" \
  -F "output_format=png"

Python SDK:

from openai import OpenAI
import base64

client = OpenAI(
    api_key="YOUR_API_KEY",
    base_url="https://api.lmuai.com/v1",
)

with open("input.png", "rb") as image_file:
    result = client.images.edit(
        model="gpt-image-2",
        image=image_file,
        prompt="Keep the subject and composition; change the background to a neon street on a rainy night",
        size="1024x1024",
        quality="low",
    )

item = result.data[0]
if item.b64_json:
    with open("gpt-edited.png", "wb") as f:
        f.write(base64.b64decode(item.b64_json))

Wenn das Modell und der Kanal Mask-Bearbeitung unterstützen, können Sie hinzufügen:

-F "mask=@./mask.png"

Der edits-Endpunkt akzeptiert auch Parameter wie input_fidelity, background, output_format und output_compression; die genaue Wirkung hängt von den Modellfähigkeiten ab.

7. Antwortformat

Eine typische GPT-Bildantwort:

{
  "created": 1760000000,
  "data": [
    {
      "b64_json": "iVBORw0KGgoAAA..."
    }
  ],
  "background": "opaque",
  "output_format": "png",
  "quality": "low",
  "size": "1024x1024",
  "model": "gpt-image-2",
  "usage": {
    "input_tokens": 48,
    "output_tokens": 186,
    "total_tokens": 234
  }
}

Clients sollten drei Validierungsebenen durchführen:

  1. Ob der HTTP-Statuscode 2xx ist;
  2. Ob data ein nicht leeres Array ist;
  3. Ob ein nicht leeres b64_json oder url in data[] vorhanden ist.

Wenn Sie HTTP 200, aber kein gültiges Bildfeld erhalten, behandeln Sie dies als geschäftsseitigen Fehler.

8. Häufige Fehler

HTTPHäufige UrsacheEmpfohlene Maßnahme
400Fehlerhafter Anfragekörper, Bildformat, Parameter oder ModellPrüfen Sie das JSON / multipart, die Feldnamen und die Modell-ID
401Ungültiger API-SchlüsselPrüfen Sie den Bearer-Header und fügen Sie keine Leerzeichen um den Schlüssel ein
403Die Gruppe, zu der Ihr API-Schlüssel gehört, hat keine Bildgenerierung aktiviertKontaktieren Sie den Administrator, um die Bildberechtigungen der Gruppe zu prüfen
404Falscher Pfad, oder die Bild-API wird für die aktuelle Gruppe nicht unterstütztVergewissern Sie sich, dass Sie /v1/images/generations oder /v1/images/edits verwenden
429Nebenläufigkeits-, RPM- oder Upstream-KontingentgrenzenVerwenden Sie exponentielles Backoff und senken Sie Nebenläufigkeit und RPM
5xxDer Upstream oder das API-Relay ist vorübergehend nicht verfügbarProtokollieren Sie die Request-ID und wiederholen Sie eine begrenzte Anzahl von Malen

Speichern Sie bei der Fehlersuche die Request-ID aus den Antwort-Headern und geben Sie sie dem Administrator; senden Sie nicht Ihren vollständigen API-Schlüssel.

9. Unterschiede zu anderen Bild-APIs

BedarfEmpfohlenes Dokument
Gemini natives Text-zu-Bild, Bild-zu-Bild, 1K / 2K / 4KGemini Image API
GPT Text-zu-Bild und BearbeitungDiese Seite
Grok Text-zu-Bild und BearbeitungGrok Image API
Mehrere Gemini-Prompts gleichzeitig einreichenGemini Batch Image API

Zuletzt aktualisiert:

Auf dieser Seite