Bilder

Bild bearbeiten

Bearbeitet ein Bild anhand eines Prompts und eines Quellbilds

POST
/v1/images/edits

Übersicht

Erstellt ein bearbeitetes oder erweitertes Bild auf Basis eines Originalbilds und eines Prompts.

Die Route unterstützt sowohl:

  • den unten dokumentierten OpenAI-kompatiblen Upload per multipart/form-data
  • JSON-Anfragen mit image_url, image_urls oder offiziellen images-Referenzen für unterstützte Image-to-Image-Familien

gpt-image-2 wird hier unterstützt. Akzeptiert werden multipart-image-Uploads, JSON image_url / image_urls und offizielle images[]-Referenzen (image_url oder file_id) mit bis zu 16 Quellbildern. file_id-Werte zuerst über /v1/files erstellen. Mit async: true wird zuerst eine Aufgabe zurückgegeben; offizielle FLUX/BFL-Edit-Modelle verwenden denselben Polling-Ablauf.

gpt-image-2-Edits akzeptieren kein resolution; verwenden Sie size für die Ausgabemaße. background akzeptiert auto oder opaque; transparent wird nicht unterstützt. Für Multi-Image- oder latenzstarke Edits wird async: true empfohlen; pollen Sie anschließend die zurückgegebene Aufgabe.

Nano-Banana-Referenzbild-Anfragen (nano-banana-edit, nano-banana-2 und nano-banana-pro) sind auf /v1/images/generations mit operation: "image-to-image" und image_urls verfügbar, nicht auf diesem /v1/images/edits-Endpunkt.

xAI-Grok-Imagine-Bildbearbeitungsmodelle (grok-imagine-image, grok-imagine-image-quality und das legacy grok-imagine-image-pro) akzeptieren höchstens 3 Quellbilder. Anfragen mit mehr als 3 Quellbildern schlagen in der Eingabevalidierung mit 400 too_many_images fehl.

input_fidelity gehört nicht zum aktuellen öffentlichen TokenLab-Vertrag für gpt-image-2; lassen Sie es weg, sonst gibt die Anfrage 400 unsupported_parameter zurück.

Anfragekörper

Timeout für synchrone Anfragen: Einige Bildanfragen geben das endgültige Bild inline zurück und warten dafür, bis die Generierung abgeschlossen ist. Hochauflösende oder hochwertige Anfragen können fast eine Minute oder länger dauern; setzen Sie das Timeout Ihres HTTP-Clients daher auf mindestens 120s. Wenn die Create-Antwort status: "pending", task_id oder poll_url enthält, folgen Sie stattdessen der zurückgegebenen poll_url.

Remote-Bild-URLs: Wenn multipart-Eingaben benötigt werden, ruft TokenLab JSON image_url, image_urls oder images[].image_url ab und sendet die Bytes als multipart-image-Teile. URLs müssen öffentliche http/https-Ressourcen sein, ohne eingebettete Zugangsdaten oder Fragmente, und dürfen nicht auf localhost, private oder reservierte IP-Bereiche auflösen; jede Weiterleitung wird erneut geprüft. Die geladene Nutzlast muss ein echtes PNG-, JPEG- oder WebP-Bild sein. Grenzen: 50 MiB pro Bild, 200 MiB insgesamt für per URL geladene Bilder pro Anfrage, 30s Fetch-Timeout und bis zu 3 Weiterleitungen.

JSON-Anfragen müssen genau eines der Felder image_url, image_urls oder images enthalten. Jedes images[]-Objekt muss genau image_url oder file_id enthalten. Die Gesamtgrenze von 200 MiB umfasst alle Ausgangsbilder und die Maske.

imagefile

Multipart-Quellbilder. Wiederholen Sie image, um mehrere GPT-Image-Quellen zu senden. Dateien müssen PNG, JPEG oder WebP sein, bis zu 16 Quellbilder und jeweils 50 MiB. xAI-Grok-Imagine-Edit-Modelle verwenden dieselben Eingabefelder, begrenzen Quellbilder aber auf 3.

promptstringerforderlich

Eine Textbeschreibung der gewünschten Bearbeitung.

maskfile | object

Ein zusätzliches Bild, dessen vollständig transparente Bereiche angeben, wo das Bild bearbeitet werden soll. Muss eine gültige PNG-Datei sein, kleiner als 50 MiB und die gleichen Abmessungen wie image haben.

In JSON-Anfragen kann mask auch ein Objekt mit genau einem der Felder image_url oder file_id sein; file_id-Werte müssen aus /v1/files stammen und an dieselbe Bildbearbeitungskonfiguration gebunden bleiben.

modelstringerforderlich

Das Modell für Bildbearbeitungen. Verwenden Sie gpt-image-2 für GPT-Image-Edits oder ein anderes aktuelles Bildbearbeitungsmodell aus GET /v1/models?recommended_for=image.

nintegerStandard: 1

Anzahl der zu generierenden Bilder (1-10, modellabhängig).

sizestring

Die Größe des erzeugten Bildes. Für gpt-image-2 verwenden Sie auto oder WIDTHxHEIGHT; beide Abmessungen müssen Vielfache von 16 sein, die längste Kante höchstens 3840px, das Verhältnis lange/kurze Kante höchstens 3:1, und die Gesamtpixelzahl zwischen 655,360 und 8,294,400.

response_formatstringStandard: url

Format, in dem die erzeugten Bilder zurückgegeben werden. Muss url oder b64_json sein; Standard ist url.

url liefert Bild-URLs in data[].url; b64_json liefert Base64-Bilddaten in data[].b64_json.

asyncbooleanStandard: false

Auf true setzen, um mit gpt-image-2 oder offiziellen FLUX/BFL-Edit-Modellen eine Aufgabe zurückzugeben, bevor das endgültige Bild bereit ist. Abgeschlossene Async-Edits liefern unabhängig vom angeforderten response_format URLs; verwenden Sie synchrone Anfragen, wenn Sie b64_json benötigen.

userstring

Eine eindeutige Kennung für Ihren Endbenutzer zur Missbrauchsüberwachung.

Antwort

createdinteger

Unix-Zeitstempel der Bilderstellung.

dataarray

Array der generierten Bilder.

Jedes Objekt enthält:

  • url (string): URL des bearbeiteten Bildes, wenn response_format auf url gesetzt ist
  • b64_json (string): Base64-kodiertes Bild, wenn response_format auf b64_json gesetzt ist

Antwort für asynchrone Aufgaben

Setzen Sie async: true mit gpt-image-2 oder offiziellen FLUX/BFL-Edit-Modellen, um eine Aufgabe zu erstellen, statt im Request auf das bearbeitete Bild zu warten. Die Antwort enthält status: "pending", task_id und poll_url. Fragen Sie /v1/tasks/{task_id} ab, bis die Aufgabe completed oder failed erreicht.

Asynchrone Edit-Aufgaben liefern nur die endgültigen Bild-URLs. Wenn Sie rohe b64_json-Bilddaten benötigen, verwenden Sie eine synchrone Anfrage.

Beim Erstellen der Aufgabe kann der geschätzte Betrag reserviert werden. Abgeschlossene Aufgaben werden nach tatsächlicher Nutzung abgerechnet; fehlgeschlagene oder abgelaufene Aufgaben werden freigegeben oder erstattet.

Anfrage

curl -X POST "https://api.tokenlab.sh/v1/images/edits" \
  -H "Authorization: Bearer sk-your-api-key" \
  -F "model=gpt-image-2" \
  -F "image=@sunlit_lounge.png" \
  -F "mask=@mask.png" \
  -F "prompt=A sunlit indoor lounge area with a pool" \
  -F "n=1" \
  -F "size=1024x1024"

Antwort

Response
{
  "created": 1706000000,
  "data": [
    {
      "url": "https://..."
    }
  ]
}

Hinweise

Fehler beim Abrufen entfernter Bilder werden als Eingabefehler zurückgegeben, bevor die Generierung beginnt. Nicht erreichbare URLs, Timeouts, 403/404-Antworten, private/interne Hosts, Zugangsdaten oder Fragmente in der URL, Nicht-Bild-Inhalte, nicht unterstützte Formate und Größenüberschreitungen geben 400 oder 413 zurück und markieren die Eingabe image_url / image_urls[n]. Für private oder headergeschützte Assets laden Sie multipart-image-Dateien direkt hoch oder erstellen /v1/files-Referenzen.

Hy Image 3.5 Preview erstellt aus Text quadratische Bilder mit 1024 Pixeln und bearbeitet Referenzbilder anhand schriftlicher Anweisungen. Es eignet sich für visuelle Entwürfe und die Verfeinerung einer Bildkomposition.

{
  "model": "hy-image-v3.5-preview",
  "prompt": "Change the table to pale blue",
  "image_url": "https://example.com/reference.png",
  "size": "1024x1024",
  "n": 1,
  "response_format": "url"
}

Autorisierung

BearerAuth
AuthorizationBearer <token>

API-Key-Authentifizierung. Erstellen oder verwalten Sie API-Keys unter Dashboard > API > API Keys.

Ort: header

Header

X-TokenLab-Delivery-Policy?string

Zustellungsrichtlinie pro Anfrage. Überschreibt die API-Key- und Workspace-Standardeinstellungen. Versucht automatisch zuerst TokenLab Verified und kann vor der Ausgabe, der Annahme der Anfrage oder der Erstellung persistenter Ressourcen einmalig auf Official umstellen.

Zulässige Werte

  • "auto"
  • "verified"
  • "official"

Anfragekörper

Antwort

application/json

application/json

application/json

application/json

application/json

application/json