Der nominelle Preis pro Bild auf den ersten Blick ist ein schlechter erster Filter. Zwei Modelle mit demselben nominalen Tarif können sich darin unterscheiden, ob sie Referenzbilder akzeptieren, ob sie maskierte Bearbeitungen unterstützen, wie die Ausgabegröße ausgewählt wird und ob die Abrechnung pro Anfrage oder pro Token erfolgt. Filtern Sie Kandidaten zuerst nach Fähigkeiten und vergleichen Sie dann die Kosten pro akzeptierter Ausgabe anhand Ihrer eigenen Prompts.
Dieser Artikel ist ein Auswahl-Framework für Bildgenerierungs-APIs. Er behandelt die Bildgenerierung, nicht Video. Wo eine Pipeline beides benötigt, gelten dieselben Async- und Abrechnungsmechanismen, Video liegt hier jedoch außerhalb des Rahmens.
Schritt 1: Passende unterstützte Operation abstimmen
Die erste Ausscheidungsrunde ist betrieblicher Natur. Ein Endpunkt, der ausschließlich aus Text generiert, kann keine maskierte Bearbeitung durchführen, und ein für Inpainting gebautes Modell ist kein Allrounder für Prompt-zu-Bild-Generierung.
Auf TokenLab sind Generierung und Bearbeitung üblicherweise unterschiedliche Endpunkte:
| Was Sie benötigen | Endpunkt | Hinweise |
|---|---|---|
| Text-to-Image | POST /v1/images/generations |
Die Anfrage beginnt nur mit einem Prompt |
| Image-to-Image / referenzbasierte Generierung | POST /v1/images/generations |
Modelle, die operation: "image-to-image" plus Referenz-URLs akzeptieren |
| Maskierte oder mehrteilige Bearbeitung | POST /v1/images/edits |
Modelle, die einen Edit-Ablauf dokumentieren |
| Variation eines bestehenden Bildes | POST /v1/images/variations |
Für Integrationen, die bereits das Variations-Format nutzen |
| Aufgabenstatus | GET /v1/tasks/{id} |
Wenn eine Create-Antwort task_id, status: "pending" oder poll_url zurückgibt |
Siehe den Leitfaden zur Bildgenerierung für die Entscheidungstabelle und die Referenzen zu Create Image sowie Edit Image für Anfragefelder.
Eine Routing-Regel verursacht überproportional viele Fehler: Nano-Banana-Referenzbildanfragen (nano-banana-2, nano-banana-pro) gehen an /v1/images/generations mit operation: "image-to-image" und image_urls, nicht an /v1/images/edits. Umgekehrt gehören gpt-image-2-Edits auf /v1/images/edits, wo Multipart-image-Uploads, JSON-image_url / image_urls und images[]-Referenzen mit bis zu 16 Quellbildern akzeptiert werden.
Nützliche Gruppierungen aus dem aktuellen TokenLab-Katalog:
- Sowohl Generierung als auch Bearbeitung:
flux-2-klein-4b,flux-2-klein-9b,flux-2-pro,flux-2-flex,flux-2-max,flux-kontext-pro,flux-kontext-max,gemini-3-pro-image,gemini-3.1-flash-image,nano-banana-2,nano-banana-2-lite,nano-banana-pro,gpt-image-2,gpt-image-2.5-flare,gpt-image-2.5-sunburst,grok-imagine-image,grok-imagine-image-quality,grok-imagine-image-2.0,qwen-image-2.0,qwen-image-2.0-pro,qwen-image-3.0,seedream-4.0,seedream-4.5,seedream-5.0,seedream-5.0-lite,seedream-5.0-pro,vidu-image-lite,vidu-image-pro. - Nur Text-to-Image:
flux-1-dev,flux-pro-1.1,flux-pro-1.1-ultra,sd3.5-medium,sd3.5-large,sd3.5-large-turbo,sd3.5-flash,stable-image-core,stable-image-ultra,z-image,z-image-turbo,kling-image,kling-omni-image,hy-image-lite. - Spezialisierte Bearbeitungswerkzeuge:
stability-inpaint,stability-control-sketch,stability-control-structure,stability-style-guide,stability-upscale-fast,stability-upscale-conservative,image-upscaler,image-background-remover,flux-pro-1.0-fill,qwen-image-edit.
Überprüfen Sie Operationen pro Modell und nicht pro Familie. GET /v1/models?recommended_for=image gibt das aktuell empfohlene Set zurück, und die Referenz Get a Model zeigt das Feld supported_operations, das Ihnen mitteilt, was eine bestimmte ID akzeptiert.
Schritt 2: Prüfen, wie das Modell Referenzbilder entgegennimmt
Die Handhabung von Referenzbildern ist die Stelle, an der Integrationen scheitern. Die Feldnamen sind nicht austauschbar:
image_url– ein einzelnes Referenzbild.image_urls– eine oder mehrere Referenzen in JSON.reference_image_urls– zusätzliche Referenzen für Modelle, die primäre Eingaben von Referenzen trennen.image– ein Multipart-Datei-Upload für private oder Header-geschützte Quellbilder.images[]mitimage_urloderfile_id– ein Edit-Flow-Format; wird auf/v1/images/generationsnicht akzeptiert.
Einschränkungen aus der API-Referenz, die beim Design berücksichtigt werden sollten:
- Remote-Referenzen müssen öffentliche
http/https-URLs ohne eingebettete Zugangsdaten oder Fragmente sein und dürfen nicht auf localhost, private oder reservierte IP-Bereiche auflösen. Jede Weiterleitung wird erneut überprüft. - Per URL abgerufene Bilder: 50 MiB pro Bild, 200 MiB insgesamt pro Anfrage (einschließlich Maske), 30s Timeout für den Abruf, bis zu 3 Weiterleitungen. Die abgerufene Nutzlast muss ein echtes PNG, JPEG oder WebP sein.
- Begrenzungen für Quellbilder unterscheiden sich:
gpt-image-2akzeptiert bis zu 16; das dokumentierte Limit von 3 Eingabebildern gilt speziell fürgrok-imagine-imageundgrok-imagine-image-quality(die über 3 mit400 too_many_imagesfehlschlagen) und ist fürgrok-imagine-image-2.0nicht dokumentiert. - Eine
maskmuss ein PNG kleiner als 50 MiB mit denselben Abmessungen wie das Quellbild sein.
Wenn Ihre Quellbilder privat sind, planen Sie einen Multipart-Upload oder eine /v1/files-Referenz ein, anstatt eine ablaufende signierte URL zu übergeben. Eine signierte URL, die abläuft, bevor die Verarbeitung beginnt, ist eine abgelehnte Eingabe und kein Generierungsfehler.
Schritt 3: Ausgabesteuerungen vergleichen, nicht nur Modellnamen
Zwei Modelle in derselben Kategorie können völlig unterschiedliche Größen- und Qualitätssteuerungen bereitstellen. Bestätigen Sie das Selektor-Verhalten, bevor Sie eine Benutzeroberfläche darum herum aufbauen.
| Steuerung | Was zu prüfen ist |
|---|---|
size |
OpenAI-ähnliche Familien akzeptieren auto oder WIDTHxHEIGHT. Für gpt-image-2 müssen die Abmessungen Vielfache von 16 sein, die längste Kante maximal 3840px, das Verhältnis lang/kurz maximal 3:1 und die Gesamtzahl der Pixel zwischen 655.360 und 8.294.400 liegen |
aspect_ratio |
Google-Bildfamilien und Grok Imagine verwenden 1:1, 16:9, 9:16, 3:2, 2:3 und ähnliche Werte |
resolution |
gemini-3.1-flash-image, gemini-3-pro-image, nano-banana-2 und nano-banana-pro unterstützen 1k, 2k, 4k, während nano-banana-2-lite nur 1k unterstützt. Grok Imagine unterstützt 1k und 2k |
quality |
GPT-Image-Modelle verwenden auto, low, medium, high. Andere Modelle verwenden möglicherweise andere Werte |
n |
Anzahl der Bilder pro Anfrage, modellabhängig |
response_format |
url oder b64_json. Asynchrone Aufgaben geben unabhängig vom angeforderten Format URLs zurück |
background, output_format, output_compression |
Dokumentiert für gpt-image-2; transparent wird nicht unterstützt |
async |
Unterstützt für gpt-image-2 und offizielle FLUX/BFL-Bildmodelle |
Das Senden eines undokumentierten Feldes ist nicht harmlos. input_fidelity beispielsweise gehört nicht zu den aktuell unterstützten Feldern für gpt-image-2 und gibt 400 unsupported_parameter zurück. Nicht unterstützte Felder bei anderen Modellen schlagen ähnlich fehl. Die vollständige Feldliste befindet sich in der Referenz Create Image.
Schritt 4: Die Abrechnungseinheit ermitteln, bevor etwas verglichen wird
Kostenvergleiche gehen schief, wenn ein Modell mit Token-Abrechnung mit einem Modell mit bildbasierter Abrechnung verglichen wird, als handele es sich um dieselbe Einheit.
gpt-image-2wird nach Token abgerechnet. TokenLab folgt der Nutzungsaufschlüsselung des Herstellers für Texteingabe-, Bildeingabe-, gemeldete zwischengespeicherte Eingabe- und Bildausgabe-Tokens; es wird nicht als Modell mit festem Preis pro Bild abgerechnet.- Die meisten anderen Bildmodelle werden pro Anfrage, pro Bild oder nach einer anderen auf der Modellseite angegebenen Einheit abgerechnet.
Die praktische Konsequenz: Bei gpt-image-2 kann derselbe Prompt bei denselben nominalen Einstellungen je nach Auflösung, Qualität und dem Prompt selbst unterschiedlich viel kosten, da sich das Ausgabetoken-Volumen ändert. Messen Sie nach, bevor Sie sich auf eine Routing-Regel festlegen.
Lesen Sie die aktuelle Abrechnungseinheit und den Preis zur Anfragezeit ab, anstatt eine Tabelle fest zu verdrahten:
- Abrechnung und Preise erklärt, wie Gebühren, Schätzungen und asynchrone Reservierungen funktionieren.
- Get a Model gibt
tokenlab.pricingundtokenlab.pricing_unitfür ein einzelnes Modell zurück. - List Models gibt den Katalog mit
tokenlab.pricing,tokenlab.capabilitiesundtokenlab.deliveryAvailabilityzurück. - Die Modellseite zeigt dieselben Informationen zum Durchsuchen.
Ein Bindestrich in der TokenLab-Preiskolumne bedeutet, dass für dieses Modell derzeit kein TokenLab-Verified-Angebot verfügbar ist – nicht, dass das Modell kostenlos ist. Modelle mit Official-Bereitstellung können weiterhin über die Lieferoption Official oder Auto erreicht werden.
Schritt 5: Entscheidung zwischen synchronem und aufgabenbasiertem Ablauf
Anfragen für hochauflösende Bilder können nahezu eine Minute oder länger dauern. Setzen Sie das Timeout Ihres HTTP-Clients bei synchronen Aufrufen auf mindestens 120s oder nutzen Sie den Task-Ablauf.
- Senden Sie
async: truebeigpt-image-2oder offiziellen FLUX/BFL-Bildmodellen, um anstelle eines fertigen Bildes einetask_idund einepoll_urlzu erhalten. - Legen Sie ein Modell im Code nicht starr als immer synchron oder immer asynchron fest. Prüfen Sie die Create-Antwort: Wenn sie
status: "pending",task_idoderpoll_urlenthält, folgen Sie der zurückgegebenenpoll_url. - Die Statuswerte lauten
pending,processing,completedundfailed. Ein erfolgreicher Statusabruf gibt HTTP 200 zurück, selbst wenn die Aufgabe fehlgeschlagen ist; verwenden Sie das Feldstatus, nicht den HTTP-Code. - Asynchrone Bildresultate werden als URLs zurückgegeben. Wenn Sie reines
b64_jsonbenötigen, verwenden Sie eine synchrone Anfrage. - Pollen Sie alle paar Sekunden und stoppen Sie bei einem finalen Status. Generierte Bild-HTTP(S)-Ergebnis-URLs können für 30 Tage als Medienkopien vorgehalten werden; prüfen Sie
media_retention.itemsauf den Status und dasexpires_atjedes Elements.
Details finden Sie im Leitfaden für asynchrone Jobs und Polling und in der Referenz Get Image Status.
Wiederholungsversuche (Retries) stellen nicht nur ein Latenzrisiko dar, sondern auch ein Abrechnungsrisiko. Eine nach einem Timeout wiederholte Create-Anfrage kann eine zweite Aufgabe und eine zweite Abrechnung erzeugen. Speichern Sie request_id, task_id sowie eventuelle billing_transaction_id und prüfen Sie vor einer Wiederholung, ob bereits eine Aufgabe erstellt wurde.
Schritt 6: Am eigenen Prompt-Set evaluieren
Dieser Artikel enthält kein herstellerneutrales Qualitätsranking, und keines sollte aus Marketingtexten übernommen werden. Begründen Sie die Wahl durch Messungen an Ihrer eigenen Arbeitslast:
- Stellen Sie ein festes Prompt-Set zusammen, das Ihre Produktionsverteilung widerspiegelt – die Motive, Stile und Anweisungsformen, die Sie tatsächlich erhalten. Generische Demo-Prompts werden die Modelle für Sie nicht differenzieren.
- Führen Sie dasselbe Set auf Ihren Kandidatenmodellen mit denselben Einstellungen aus und protokollieren Sie die Generierungszeit pro Anfrage einschließlich Wiederholungsversuchen.
- Bewerten Sie die Ergebnisse nach einem festen Kriterienkatalog, entweder automatisiert oder durch ein menschliches Begutachtungspanel, anstatt Stichproben nur oberflächlich zu sichten.
- Berechnen Sie die Kosten pro akzeptiertem Bild, nicht die Kosten pro generiertem Bild. Ein günstigeres Modell, das zwei Versuche pro nutzbarer Ausgabe benötigt, ist nicht günstiger.
- Wenn Ihr Produkt latenzempfindlich ist, erfassen Sie Perzentile statt Durchschnitte, da Benutzer vor allem die Ausreißer (das Tail) bemerken.
- Wiederholen Sie den Vergleich, wenn Sie Anbieter oder Auflösungsziele ändern, da sich sowohl Abrechnungseinheiten als auch das Modellverhalten ändern können.
Die Kosten pro akzeptiertem Bild sind die einzige Zahl, die beantwortet, ob ein teureres Modell für Ihre Arbeitslast seinen Preis wert ist.
Beispielhafte Anfrage
Das Folgende ist ein illustratives Beispiel für den Aufbau des Generierungsaufrufs, kein gemessenes Ergebnis. Es verwendet ein Modell, das aspect_ratio und resolution bereitstellt.
curl https://api.tokenlab.sh/v1/images/generations \
-H "Authorization: Bearer $TOKENLAB_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gemini-3-pro-image",
"prompt": "A cinematic portrait of a white cat sitting on a rainy windowsill",
"aspect_ratio": "16:9",
"resolution": "2k"
}'
Wenn diese Antwort mit status: "pending" zurückkommt, pollen Sie die zurückgegebene poll_url, anstatt dies als Fehler zu behandeln.
Der Modellzugriff ist über verschiedene API-Formate hinweg nicht einheitlich. TokenLab akzeptiert Anfrageformate für Chat Completions, Responses, Anthropic Messages und Gemini, und ein bestimmtes Modell unterstützt möglicherweise nur einige davon. Überprüfen Sie tokenlab.accepted_request_formats beim Modell, bevor Sie einen bestehenden Client wiederverwenden – siehe API-Formate.
Grenzen dieses Artikels
- Es sind hier keine unabhängigen Qualitätsbenchmarks, Latenzmessungen oder Durchsatzwerte für irgendein Bildmodell enthalten. Herstellerbehauptungen zu Anatomie, Textdarstellung oder Fotorealismus werden nicht als Tatsachen wiedergegeben.
- Es werden keine Preise genannt. Die Abrechnungseinheiten für Bildmodelle unterscheiden sich und ändern sich; lesen Sie den aktuellen Wert auf der Modellseite oder über
GET /v1/models/{model}ab. - Die Modellverfügbarkeit variiert je nach Lieferoption und Workspace.
tokenlab.deliveryAvailabilitybeschreibt die konfigurierte Unterstützung; es garantiert keine Echtzeit-Verfügbarkeit, die geprüft wird, wenn eine Anfrage ausgeführt wird. - Es gelten öffentliche regionale Einschränkungen.
Weiterführende Literatur
- Leitfaden zur Bildgenerierung
- Create Image und Edit Image
- Asynchrone Jobs und Polling
- Abrechnung und Preise
- List Models und Get a Model
- API-Formate
- Aktuelle Modellliste und Preise: Modellseite
Quellen
- https://docs.tokenlab.sh/guides/image-generationGeprüft am 2026-09-27
- https://docs.tokenlab.sh/api-reference/images/create-imageGeprüft am 2026-09-27
- https://docs.tokenlab.sh/api-reference/images/edit-imageGeprüft am 2026-09-27
- https://docs.tokenlab.sh/api-reference/models/get-modelGeprüft am 2026-09-27
- https://docs.tokenlab.sh/guides/billingGeprüft am 2026-09-27
- https://docs.tokenlab.sh/api-reference/models/list-modelsGeprüft am 2026-09-27
- https://tokenlab.sh/models
- https://docs.tokenlab.sh/guides/async-jobs-pollingGeprüft am 2026-09-27



