Neuere Sprachmodelle können Bildeingaben verarbeiten und analysieren. Diese Fähigkeit wird als Bildverständnis bezeichnet. GPT Image-Modelle können anhand von Text- und Bildeingaben neue Bilder erstellen oder bestehende bearbeiten.
Wähle einen Endpunkt danach aus, ob du Bilder analysieren oder generieren möchtest:
Mehr über die von unseren Modellen unterstützten Ein- und Ausgabemodalitäten erfährst du auf unserer Modellübersicht.
Bilder generieren oder bearbeiten
Wähle bei der Images API gpt-image-2.5-sunburst, um Bilder aus Text zu generieren oder bestehende Bilder zu bearbeiten. Wähle bei der Responses API ein Modell aus der Hauptmodellreihe, das das Tool zur Bildgenerierung unterstützt. Das Tool übernimmt die Auswahl des GPT Image-Modells.
Bilder mit Responses generieren
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20import OpenAI from "openai";const openai = new OpenAI();const response = await openai.responses.create({ model: "gpt-6-astra", input: "Generate an image of gray tabby cat hugging an otter with an orange scarf", tools: [{ type: "image_generation" }],});// Save the image to a fileconst imageData = response.output .filter((output) => output.type === "image_generation_call") .map((output) => output.result);if (imageData.length > 0) { const imageBase64 = imageData[0]; const fs = await import("fs"); fs.writeFileSync("cat_and_otter.png", Buffer.from(imageBase64, "base64"));}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22from openai import OpenAIimport base64client = OpenAI()response = client.responses.create(model="gpt-6-astra",input="Generate an image of gray tabby cat hugging an otter with an orange scarf",tools=[{"type": "image_generation"}],)# Save the image to a fileimage_data = [ output.resultfor output in response.outputif output.type =="image_generation_call"]if image_data: image_base64 = image_data[0]withopen("cat_and_otter.png", "wb") as f: f.write(base64.b64decode(image_base64))
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43package mainimport ( "context" "encoding/base64" "os" "github.com/openai/openai-go/v3" "github.com/openai/openai-go/v3/responses")func main() { client := openai.NewClient() response, err := client.Responses.New(context.Background(), responses.ResponseNewParams{ Model: "gpt-6-astra", Input: responses.ResponseNewParamsInputUnion{ OfString: openai.String("Generate an image of a gray tabby cat hugging an otter with an orange scarf."), }, Tools: []responses.ToolUnionParam{{ OfImageGeneration: &responses.ToolImageGenerationParam{}, }}, }) if err != nil { panic(err) } for _, output := range response.Output { if output.Type != "image_generation_call" { continue } image, err := base64.StdEncoding.DecodeString(output.AsImageGenerationCall().Result) if err != nil { panic(err) } if err := os.WriteFile("cat_and_otter.png", image, 0o600); err != nil { panic(err) } return } panic("response did not include an image generation call")}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23import com.openai.client.OpenAIClient;import com.openai.client.okhttp.OpenAIOkHttpClient;import com.openai.models.responses.ResponseCreateParams;import com.openai.models.responses.Tool;import java.io.IOException;import java.nio.file.Files;import java.nio.file.Path;import java.util.Base64;ResponseCreateParams params = ResponseCreateParams.builder() .model("gpt-6-astra") .input("Generate an image of a gray tabby cat hugging an otter with an orange scarf.") .addTool(Tool.ImageGeneration.builder().build()) .build();String imageResult = client.responses().create(params).output().stream() .flatMap(item -> item.imageGenerationCall().stream()) .flatMap(call -> call.result().stream()) .findFirst() .orElseThrow(() -> new IllegalStateException("No generated image returned"));Files.write(Path.of("cat_and_otter.png"), Base64.getDecoder().decode(imageResult));
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28using OpenAI.Responses;#pragma warning disable OPENAI001string key = Environment.GetEnvironmentVariable("OPENAI_API_KEY")!;ResponsesClient client = new(key);CreateResponseOptions options = new(){ Model = "gpt-6-astra",};options.InputItems.Add( ResponseItem.CreateUserMessageItem( "Generate an image of a gray tabby cat hugging an otter with an orange scarf." ));options.Tools.Add( ResponseTool.CreateImageGenerationTool(model: "gpt-image-2"));ResponseResult response = await client.CreateResponseAsync(options);ImageGenerationCallResponseItem image = response .OutputItems.OfType<ImageGenerationCallResponseItem>() .FirstOrDefault() ?? throw new InvalidOperationException("No generated image was returned.");await File.WriteAllBytesAsync( "cat_and_otter.png", image.ImageResultBytes.ToArray());
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21require "base64"require "openai"client = OpenAI::Client.newresponse = client.responses.create( model: "gpt-6-astra", input: "Generate an image of a gray tabby cat hugging an otter with an orange scarf.", tools: [{ type: :image_generation }])image_call = response.output.find do |item| item.is_a?(OpenAI::Models::Responses::ResponseOutputItem::ImageGenerationCall)endunless image_call.is_a?(OpenAI::Models::Responses::ResponseOutputItem::ImageGenerationCall) raise "No image generation call returned"endFile.binwrite( "cat_and_otter.png", Base64.strict_decode64(image_call.result))
1
2
3
4
5
6
7
8openai responses create \ --model gpt-6-astra \ --raw-output \ --transform 'output.#(type=="image_generation_call").result' <<'YAML' | base64 --decode > cat_and_otter.pngtools: - type: image_generationinput: Generate an image of a gray tabby cat hugging an otter with an orange scarf.YAML
GPT Image-Modelle können auch ohne Referenzbild auf Weltwissen zurückgreifen. So kann ein Prompt für eine Vitrine mit Halbedelsteinen eine Szene mit erkennbaren Schmucksteinen wie Amethyst, Rosenquarz und Jade erzeugen.
Bilder analysieren
Verwende ein Modell mit Bildverständnis, um Bilder zu beschreiben, sichtbaren Text zu lesen und Fragen zu Objekten, Formen, Farben oder Texturen zu beantworten. Berücksichtige die Einschränkungen des Modells, wenn du seine Antworten verwendest.
Bilder als Eingabe an ein Modell übergeben
Stelle ein Bild zur Analyse bereit, indem du entweder eine vollständig qualifizierte Bild-URL oder eine Base64-kodierte Daten-URL angibst.
Du kannst mehrere Bilder in einer einzigen Anfrage als Eingabe übergeben, indem du sie in das Array content aufnimmst. Beachte dabei, dass Bilder als Token zählen und entsprechend abgerechnet werden.
Du kannst ein Bild auf eine der folgenden Arten zur Analyse bereitstellen:
Indem du eine vollständig qualifizierte URL zu einer Bilddatei angibst
Indem du ein Bild als Base64-kodierte Daten-URL angibst
Indem du eine Datei-ID angibst (erstellt mit der Files API)
Du kannst mehrere Bilder in einer einzigen Anfrage als Eingabe übergeben, indem du sie in das Array content aufnimmst. Beachte dabei, dass Bilder als Token zählen und entsprechend abgerechnet werden.
Verwende unterstützte Bilddateien, deren Inhalt für die Analyse durch das Modell deutlich genug erkennbar ist.
Anforderung
Unterstützte Eingaben
Dateitypen
PNG (.png), JPEG (.jpeg oder .jpg), WEBP (.webp) und nicht animierte GIFs (.gif)
Anfragegröße
Bis zu 512 MB Gesamtnutzdaten pro Anfrage
Bildanzahl
Bis zu 1.500 Bilder pro Anfrage
Bei patchbasierten Bildeingaben unterstützt die API bis zu 30.000 Patches pro Bild, nachdem die Skalierungsregeln für das gewählte Modell und die gewählte detail-Stufe angewendet wurden. Diese Grenze gilt für alle unterstützten Detailstufen und für jedes Bild einzeln, nicht für die Gesamtzahl der Patches in der Anfrage.
Niedrigere Skalierungsbudgets für bestimmte Modelle und Detailstufen gelten weiterhin. Bilder, die nach der Verarbeitung die Grenze von 30.000 Patches überschreiten, werden abgelehnt und nicht automatisch auf diese Grenze verkleinert. Reduziere die Bildabmessungen und versuche es erneut.
Die Bild-Token und der restliche Prompt müssen außerdem innerhalb der Eingabe- und Kontextgrenzen des Modells liegen. Eine Token-Schätzung garantiert nicht, dass eine Anfrage alle Eingabegrenzen einhält. Die Verwendung von Bildern muss unseren Nutzungsrichtlinien entsprechen.
Detailstufe für Bilder wählen
Der Parameter detail steuert die Vorverarbeitung von Bildern. Welche Werte unterstützt werden, hängt vom Modell ab: low, high, original oder auto. Wenn du den Parameter weglässt, wird sowohl in der Responses API als auch in der Chat Completions API standardmäßig auto verwendet. Die Tabelle zur Bildskalierung nach Modell zeigt das jeweilige Verhalten.
Orientiere dich bei der Wahl der Detailstufe an den folgenden Hinweisen:
Detailstufe
Am besten geeignet für
low
Grobes Bildverständnis. Skalierung und Token-Verbrauch hängen vom Modell ab. low verbraucht nicht immer weniger Token als high.
high
Standardmäßiges, detailgetreues Bildverständnis, wenn keine präzisen Koordinaten im Originalbild benötigt werden.
original
Große, inhaltsreiche Bilder, Bilder, bei denen die genaue räumliche Zuordnung wichtig ist, oder Bilder für die Computernutzung, sofern das Modell dies unterstützt.
auto
Verwendet die standardmäßige Bildskalierung des Modells, wie in der Tabelle zur Bildskalierung nach Modell angegeben.
Verwende für Aufgaben, die feine visuelle Details oder präzise Koordinaten erfordern, etwa optische Zeichenerkennung (OCR), die Erkennung kleiner Objekte oder Computernutzung, "detail": "original", sofern dies unterstützt wird. Auch bei der Detailstufe Original können Bilder verkleinert werden, um die maximale Seitenlänge oder das Patch-Budget für die Skalierung des Modells einzuhalten. Die separate Ablehnungsgrenze von 30.000 Patches führt dagegen nicht zu einer Skalierung. Wenn es bei einer Aufgabe auf genaue Koordinaten ankommt, verkleinere die Bilder vor dem Senden so, dass sie diese Grenzen einhalten, und rechne die zurückgegebenen Koordinaten auf das Originalbild um. Hinweise zum Umgang mit Koordinaten findest du im Leitfaden zur Computernutzung.
Bildskalierung nach Modell
Die folgende Tabelle fasst zusammen, wie universell einsetzbare Bildverarbeitungsmodelle Bilder skalieren. Für andere Modelle und spezialisierte Varianten können andere Grenzwerte gelten. Bei jeder Skalierung bleibt das Seitenverhältnis erhalten; kleinere Bilder werden nicht vergrößert.
Modellfamilie
Unterstützte Detailstufen
Patches und Bildskalierung
gpt-6-astra
low, high, original,
auto
Bei low beträgt die Bildgröße höchstens 512 × 512 Pixel. high erlaubt bis zu
2.500 Patches und eine maximale Seitenlänge von 65.535 Pixeln. Beide Grenzwerte gelten.
original behält die Bildabmessungen bei. Bilder mit mehr als
65.535 Pixeln auf einer Seite werden jedoch so verkleinert, dass sie
diesen Grenzwert einhalten. Wenn das resultierende Bild mehr als
30.000 Patches benötigt, lehnt die API
die Anfrage ab; das Bild wird nicht verkleinert, um das Patch-Limit einzuhalten.
auto skaliert Bilder genauso wie original.
gpt-5.6-sol, gpt-5.6-terra,
gpt-5.6-luna
low, high, original,
auto
Bei low ist das Bild höchstens 512 × 512 Pixel groß. Bei high gelten
höchstens 2.048 × 2.048 Pixel und 2.500 Patches. original
behält die Bildabmessungen bei. Nur Bilder, bei denen eine Seite länger als 65.535
Pixel ist, werden auf diese Grenze verkleinert. Benötigt das resultierende
Bild mehr als
30.000 Patches, lehnt die API
die Anfrage ab. Das Bild wird nicht auf die Patch-Grenze verkleinert.
auto verwendet dieselbe Bildskalierung wie original.
gpt-5.5
low, high, original,
auto
Bei low ist das Bild höchstens 512 × 512 Pixel groß. high erlaubt bis
zu 2.500 Patches und eine maximale Seitenlänge von 2.048 Pixeln. original
erlaubt bis zu 10.000 Patches und eine maximale Seitenlänge von 6.000 Pixeln. Beide
Grenzen gelten. auto verwendet dieselbe Bildskalierung wie
original.
gpt-5.4, gpt-5.4-mini, gpt-5.4-nano
low, high, original,
auto
Bei low gelten eine maximale Seitenlänge von 2.048 Pixeln und ein Budget von 6.144 Patches.
Daher kann diese Stufe mehr Token verbrauchen als high.
high erlaubt bis zu 2.500 Patches und eine maximale Seitenlänge
von 2.048 Pixeln. original erlaubt bis zu 10.000 Patches und eine
maximale Seitenlänge von 6.000 Pixeln. Beide Grenzen gelten. auto verwendet
dieselbe Bildskalierung wie high.
gpt-5.2, gpt-4.1-mini
low, high, auto
Für diese Detailstufen gelten dieselben Skalierungsgrenzen: eine maximale Seitenlänge von 2.048 Pixeln
und ein Budget von 6.144 Patches. original wird nicht
unterstützt.
Modelle mit Bildverständnis wandeln Bildeingaben in abrechenbare Eingabe-Token um. Der Kostenrechner für Bildeingaben und die Patch- und Kachelregeln in diesem Abschnitt gelten für Eingaben dieser Modelle, nicht für die Bildgenerierung oder -bearbeitung mit GPT Image. Die dafür geltenden separaten Preise findest du unter Eingaben für GPT Image-Modelle.
Bild-Token werden auch auf deine Grenzen für Token pro Minute (TPM) angerechnet. Der Rechner schätzt die Kosten für ein einzelnes Bild zu den Standardpreisen für Eingaben. Den restlichen Prompt und die Modellausgabe berücksichtigt er nicht.
Kostenrechner für Bildeingaben
Mit dem Kostenrechner für Bildeingaben kannst du die Eingabe-Token und Kosten für ein einzelnes Bild anhand von Modell, Bildgröße und Detailstufe schätzen.
Patchbasierte Bildtokenisierung
Einige Modelle tokenisieren Bilder, indem sie diese mit Patches von 32 × 32 Pixeln abdecken. Für viele Kombinationen aus Modell und Detailstufe ist ein Patch-Budget für die Skalierung festgelegt. Zunächst passt die API das Bild an die maximale Seitenlänge der gewählten Detailstufe an. Dabei bleibt das Seitenverhältnis erhalten, die Abmessungen werden auf ganze Pixel gerundet und kleinere Bilder werden nicht vergrößert. Anschließend wird der Token-Verbrauch wie folgt ermittelt:
A. Berechne, wie viele Patches von 32 × 32 Pixeln benötigt werden, um das Bild nach Anwendung der maximalen Seitenlänge abzudecken. Ein Patch darf über den Bildrand hinausragen.
patch_count = ceil(width/32)×ceil(height/32)
B. Wenn für das gewählte Modell und die Detailstufe ein Patch-Budget für die Skalierung festgelegt ist, verkleinere das Bild proportional, falls es dieses Budget überschreitet. Andernfalls überspringe diesen Schritt. Passe den Skalierungsfaktor so an, dass das Budget auch nach der Umrechnung in ganzzahlige Pixelabmessungen und der Berechnung der benötigten Patches eingehalten wird. Behalte bis zur Berechnung der endgültigen Abmessungen die volle Genauigkeit bei.
C. Wenn das Bild in Schritt B skaliert wurde, runde die endgültige skalierte Breite und Höhe auf ganze Pixel ab. Berechne die Anzahl der Patches, die zur Abdeckung des resultierenden Bildes benötigt werden. Dies ist die Anzahl der Bild-Token vor Anwendung des Modellmultiplikators. Wenn ein Patch-Budget gilt, bleibt diese Anzahl innerhalb des Budgets.
Überschreitet diese Anzahl 30.000 Patches, lehnt die API die Anfrage ab. Prüfe diese Grenze, bevor du den Token-Multiplikator anwendest.
D. Multipliziere die Patch-Anzahl mit dem Multiplikator des Modells und runde auf, um die abrechenbaren Bildeingabe-Token zu erhalten. Wende den Eingabepreis des Modells einmal auf diese Token an. Der Multiplikator gilt weder für andere Prompt-Token noch erneut für den Preis.
Modell
Multiplikator
gpt-6-astra
1,2
gpt-5.6-sol
1,2
gpt-5.6-terra
1,2
gpt-5.6-luna
1,2
gpt-5.5
1,2
gpt-5.4
1,2
gpt-5.4-mini
1,2
gpt-5.4-nano
1,2
gpt-5.2
1,2
gpt-5-mini*
1,2
gpt-5-nano*
1,5
gpt-4.1-mini
1,62
gpt-4.1-nano* (Snapshot vom 14.04.2025)
2,46
o4-mini*
1,72
Bei gpt-4.1-mini gilt dies für den Snapshot vom 14.04.2025.
* Veraltet und zur Abschaltung vorgesehen. Termine und Ersatzmodelle findest du im Zeitplan für die Einstellung. Diese Modelle sind weder im Rechner noch in der obigen Tabelle zur Größenanpassung enthalten.
Beispiele zur Berechnung von Bild-Token für gpt-6-astra mit detail: high
Für diese Kombination gelten eine maximale Seitenlänge von 65.535 Pixeln, ein Budget von 2.500 Patches und ein Multiplikator von 1,2.
Ein Bild mit 1024 × 1024 Pixeln benötigt 32 × 32 = 1024 Patches. Eine Größenanpassung ist nicht nötig. Für die Bildeingabe werden ceil(1024 × 1.2) = 1229 Token abgerechnet.
Ein Bild mit 2048 × 2048 Pixeln benötigt zunächst 64 × 64 = 4096 Patches. Aufgrund des Patch-Budgets wird es auf 1600 × 1600 Pixel verkleinert, was 50 × 50 = 2500 Patches entspricht. Die Schätzung beträgt ceil(2500 × 1.2) = 3000 Token.
Ein Bild mit 4096 × 512 Pixeln behält seine ursprüngliche Größe: 128 × 16 = 2048 Patches und ceil(2048 × 1.2) = 2458 Token.
Durch die Rundung von Gleitkommazahlen bei der Abrechnung kann die endgültige Anzahl um ein Token von der Schätzung abweichen.
Kachelbasierte Bildtokenisierung
Die Modelle in dieser Tabelle verwenden eine Basisanzahl an Token zuzüglich Token für Bildkacheln:
Modell
Basis-Token
Token pro Kachel
gpt-5.1
70
140
gpt-5*
70
140
gpt-4o, gpt-4.1
85
170
gpt-4o-mini
2.833
5.667
o1*, o1-pro*, o3*
75
150
* Veraltet und zur Abschaltung vorgesehen. Termine und Ersatzmodelle findest du im Zeitplan für die Einstellung. Diese Modelle sind weder im Rechner noch in der obigen Tabelle zur Größenanpassung enthalten.
Mit "detail": "low" fallen für ein Bild unabhängig von seinen Abmessungen nur die Basis-Token des Modells an. Mit "detail": "high" oder "detail": "auto" gilt:
Verkleinere das Bild unter Beibehaltung des Seitenverhältnisses so, dass es in ein Quadrat mit 2048 × 2048 Pixeln passt. Kleinere Bilder werden nicht vergrößert.
Wenn die kürzere Seite länger als 768 Pixel ist, verkleinere sie auf 768 Pixel und runde die andere Seitenlänge ab.
Zähle die Quadrate mit 512 Pixeln Seitenlänge, die zum Abdecken des Bildes nötig sind. Für jedes Quadrat fällt die modellspezifische Anzahl an Token pro Kachel an.
Addiere die Basis-Token des Modells zu den Token für die Kacheln.
Eingaben für GPT Image-Modelle
Für GPT Image-Modelle gelten separate Preise für Bild-Token bei der Generierung und Bearbeitung. Der Rechner für Bildanalyse schätzt ihre Eingabe- oder Ausgabekosten nicht. Aktuelle Preise findest du unter Preise für Bildgenerierung. Arbeitsabläufe für die Generierung und Bearbeitung findest du im Leitfaden zur Bildgenerierung.
GPT Image 1
Die folgenden Regeln für Eingabe-Token gelten für gpt-image-1. Verwende die kachelbasierte Größenanpassung, verkleinere die kürzere Seite aber auf 512 statt auf 768 Pixel. Der Tokenverbrauch hängt von den Bildabmessungen und dem Parameter input_fidelity in der Images API ab.
Bei niedriger Eingabetreue betragen die Basiskosten 65 Bild-Token. Jede Kachel kostet 129 Bild-Token.
Bei hoher Eingabetreue addieren wir zu den oben beschriebenen Bild-Token eine feste Anzahl an Token, die vom Seitenverhältnis des Bildes abhängt.
Wenn dein Bild quadratisch ist, addieren wir 4.160 zusätzliche Bild-Eingabe-Token.
Wenn es eher einem Hoch- oder Querformat entspricht, addieren wir 6.240 zusätzliche Token.
Modelle mit Bildverarbeitung können Fehler machen. Berücksichtige bei der Entwicklung deiner Anwendung diese Einschränkungen:
Medizinische Bilder: Das Modell eignet sich nicht zur Interpretation spezieller medizinischer Bilder wie CT-Aufnahmen und sollte nicht für medizinische Beratung verwendet werden.
Nicht englischsprachige Inhalte: Bei Bildern mit Text in nicht lateinischen Schriftsystemen, etwa Japanisch oder Koreanisch, liefert das Modell möglicherweise keine optimalen Ergebnisse.
Kleine Schrift: Vergrößere den Text im Bild, um die Lesbarkeit zu verbessern. Wenn verfügbar, kann auch "detail": "original" die Ergebnisse verbessern.
Drehung: Das Modell kann gedrehte oder auf dem Kopf stehende Texte und Bilder falsch interpretieren.
Visuelle Elemente: Das Modell kann Schwierigkeiten haben, Diagramme oder Texte mit unterschiedlichen Farben oder Darstellungsstilen zu verstehen, etwa mit durchgezogenen, gestrichelten oder gepunkteten Linien.
Räumliches Denken: Das Modell hat Schwierigkeiten mit Aufgaben, die eine präzise räumliche Zuordnung erfordern, etwa dem Erkennen von Schachstellungen.
Genauigkeit: Das Modell kann in bestimmten Situationen falsche Beschreibungen oder Bildunterschriften erzeugen.
Bildform: Das Modell hat Schwierigkeiten mit Panorama- und Fischaugenbildern.
Metadaten und Größenanpassung: Das Modell verarbeitet weder ursprüngliche Dateinamen noch Metadaten. Bilder können vor der Analyse in ihrer Größe angepasst werden, auch bei der Detailstufe original. Die für jedes Modell geltenden Grenzen findest du unter Größenanpassung nach Modell.
Zählen: Das Modell gibt die Anzahl von Objekten in Bildern möglicherweise nur näherungsweise an.
CAPTCHAs: Aus Sicherheitsgründen blockiert unser System die Übermittlung von CAPTCHAs.