So verwenden Sie die GPT-4o-Bildgenerierungs-API (gpt-image-1)

Dieser Leitfaden taucht tief in GPT-4o Image ein. Modell, Funktionen, Preise & Schritt-für-Schritt-Anleitung in Python.

Leo Schulz

Leo Schulz

5 June 2025

So verwenden Sie die GPT-4o-Bildgenerierungs-API (gpt-image-1)

Künstliche Intelligenz verändert rasant, wie wir visuelle Inhalte erstellen und mit ihnen interagieren. OpenAI steht an der Spitze dieser Revolution und bietet leistungsstarke Modelle, die in der Lage sind, Bilder mit erstaunlichem Realismus und Kreativität zu generieren und zu manipulieren. Während Modelle wie DALL·E 3 und GPT-4o diese Fähigkeiten in benutzerorientierten Tools demonstrieren, bietet OpenAI Entwicklern auch direkten Zugriff auf diese Technologie über seine Image Generation API, wobei häufig die Modellkennung gpt-image-1 verwendet wird.

Dieser Leitfaden bietet einen tiefen Einblick in die Verwendung von gpt-image-1 (der offizielle Name der erwarteten GPT-4o Image Generation API). Wir werden das zugrunde liegende Modell, seine leistungsstarken Funktionen und Preisüberlegungen untersuchen und eine umfassende Schritt-für-Schritt-Anleitung mit Python bereitstellen. Entscheidend ist, dass wir auch besprechen, wie Tools wie Apidog den Entwicklungs- und Testprozess rationalisieren und die Integration reibungsloser und effizienter gestalten können.

💡
Benötigen Sie ein großartiges API-Testtool, das wunderschöne API-Dokumentation generiert?

Benötigen Sie eine integrierte All-in-One-Plattform für Ihr Entwicklerteam, um mit maximaler Produktivität zusammenzuarbeiten?

Apidog liefert alle Ihre Anforderungen und ersetzt Postman zu einem viel günstigeren Preis!
button

Was ist die GPT-4o Image Generation API (gpt-image-1)?

Im Wesentlichen ist gpt-image-1 (GPT-4o Image Generation API) ein Dienst, der es Entwicklern ermöglicht, Bilder programmgesteuert mit den fortschrittlichen KI-Modellen von OpenAI zu erstellen und zu ändern. Wenn Sie mit dieser API interagieren und gpt-image-1 angeben (oder die API auf das neueste empfohlene Modell standardmäßig einstellen, das häufig mit den Fähigkeiten von GPT-4o/DALL·E 3 übereinstimmt), nutzen Sie ein ausgeklügeltes System, das auf riesigen Mengen an Text- und Bilddaten trainiert wurde.

Warum die GPT-4o Image Generation API (gpt-image-1) verwenden?

API-Kosten, Latenz und Inhaltsmoderation

Das Verständnis der Faktoren, die sich auf die Kosten und die Reaktionszeit auswirken, ist entscheidend, wenn Sie die gpt-image-1 API integrieren.

Kosten und Latenz:

Im Gegensatz zu einer einfachen Preisgestaltung pro Bild sind die Kosten und die Latenz für gpt-image-1 direkt proportional zum Rechenaufwand, der in Bild-Tokens gemessen wird. Das Modell generiert zuerst spezielle Bild-Tokens, die den visuellen Inhalt darstellen, bevor das endgültige Bild gerendert wird.

Die Anzahl der generierten Bild-Tokens hängt von den angeforderten Bildabmessungen (size) und der Qualitätseinstellung (quality) ab:

Qualität Quadratisch (1024×1024) Hochformat (1024×1536) Querformat (1536×1024)
Niedrig 272 Tokens 408 Tokens 400 Tokens
Mittel 1056 Tokens 1584 Tokens 1568 Tokens
Hoch 4160 Tokens 6240 Tokens 6208 Tokens

Höhere Qualitätseinstellungen und größere Abmessungen erfordern deutlich mehr Bild-Tokens, was zu höheren Kosten und potenziell höherer Latenz (längere Reaktionszeiten) führt.

Wichtig: Sie müssen auch die Eingabetext-Tokens berücksichtigen, die von Ihrem Prompt verbraucht werden. Die Gesamtkosten pro Anfrage basieren sowohl auf den Eingabe-Prompt-Tokens als auch auf den generierten Bild-Tokens.

Für eine präzise, aktuelle Preisgestaltung pro Text- und Bild-Token konsultieren Sie immer die offizielle OpenAI-Preisseite: https://openai.com/pricing.

Inhaltsmoderation:

OpenAI filtert alle Eingabe-Prompts und generierten Bilder anhand seiner Inhaltsrichtlinie, um Sicherheit und verantwortungsvolle Nutzung zu gewährleisten. Bei der Verwendung von gpt-image-1 haben Sie über den optionalen Parameter moderation eine gewisse Kontrolle über die Strenge der Moderation:

Wählen Sie die für den Kontext und die Benutzerbasis Ihrer Anwendung geeignete Einstellung, während Sie gleichzeitig die Nutzungsrichtlinien von OpenAI einhalten.

So verwenden Sie die OpenAI Image Generation API (gpt-image-1)

Dieser Abschnitt enthält umfassende Code-Snippets, die zeigen, wie Sie die OpenAI Image Generation API mit dem Modell gpt-image-1 über die offizielle openai Python-Bibliothek verwenden.

Voraussetzungen & Einrichtung

Stellen Sie sicher, dass Sie ein OpenAI-Konto und einen API-Schlüssel haben. Installieren Sie die erforderlichen Bibliotheken:

pip install --upgrade openai pillow

Importieren Sie die erforderlichen Module und initialisieren Sie den Client (er verwendet automatisch die Umgebungsvariable OPENAI_API_KEY):

import os
import base64
from io import BytesIO
from openai import OpenAI
from PIL import Image # Für Bildmanipulation, wenn b64_json verarbeitet wird

# Initialisieren Sie den Client
client = OpenAI()
# Stellen Sie sicher, dass der API-Schlüssel als Umgebungsvariable festgelegt ist, oder initialisieren Sie mit:
# client = OpenAI(api_key="YOUR_API_KEY")

# Empfohlen: Verwenden Sie response_format='b64_json' für die direkte Verarbeitung
# Hilfsfunktion (optional) zur Verarbeitung von b64_json-Daten:
def process_b64_json(b64_json_data, output_path):
    try:
        image_bytes = base64.b64decode(b64_json_data)
        image = Image.open(BytesIO(image_bytes))
        # Optional: Größe ändern oder andere Verarbeitung
        # image = image.resize((512, 512), Image.LANCZOS)
        image.save(output_path) # Speichert im Format, das aus der Erweiterung abgeleitet wird
        print(f"Bild gespeichert unter {output_path}")
    except Exception as e:
        print(f"Fehler bei der Bildverarbeitung: {e}")

# Ausgabeverzeichnis erstellen
os.makedirs("generated_images", exist_ok=True)
output_dir = "generated_images"

Bilder generieren (client.images.generate)

Erstellen Sie neue Bilder aus Text-Prompts. gpt-image-1 zeichnet sich dadurch aus, dass es detaillierten Anweisungen folgt.

Grundlegende Generierung:

prompt_text = """
Rendere ein realistisches Bild dieses Charakters:
Blobby Alien Character Spec Name: Glorptak... [Rest des detaillierten Prompts aus dem Kochbuch]
"""

try:
    response = client.images.generate(
        model="gpt-image-1",
        prompt=prompt_text,
        size="1024x1024",        # Optionen: "1024x1024", "1024x1792", "1792x1024", "auto" (Kochbuch erwähnt auch "1536x1024", "1024x1536")
        quality="high",          # Optionen: "standard", "hd" (API-Dokumente) oder "low", "medium", "high", "auto" (Kochbuch) - Verwenden Sie 'hd' für die beste Qualität über die API-Dokumente.
        style="vivid",           # Optionen: "vivid", "natural" (Optional, beeinflusst Realismus/Drama)
        n=1,                     # Anzahl der zu generierenden Bilder
        response_format="b64_json" # Oder "url"
    )

    # Verarbeiten Sie die Antwort (mit der Hilfsfunktion)
    image_b64 = response.data[0].b64_json
    output_path = os.path.join(output_dir, "glorptak.png") # Speichern als PNG
    process_b64_json(image_b64, output_path)

except Exception as e:
    print(f"Fehler während der Generierung: {e}")

Ausgabe anpassen:

Das Kochbuch hebt zusätzliche Parameter hervor, um die Ausgabe beim Generieren fein abzustimmen.

prompt_pixel_cat = "Generieren Sie ein Porträt im Pixel-Art-Stil einer grauen Tabby-Katze, die als blonde Frau auf dunklem Hintergrund gekleidet ist."

try:
    response = client.images.generate(
        model="gpt-image-1",
        prompt=prompt_pixel_cat,
        size="1024x1536",          # Hochformatausrichtung
        quality="low",             # Niedrigere Qualitätseinstellung (aus dem Kochbuch)
        output_format="jpeg",      # JPEG-Ausgabe anfordern
        output_compression=50,     # JPEG-Komprimierungsgrad (0-100)
        response_format="b64_json",
        n=1
    )

    # Verarbeiten Sie die Antwort
    image_b64 = response.data[0].b64_json
    output_path = os.path.join(output_dir, "pixel_cat.jpeg")
    process_b64_json(image_b64, output_path)

except Exception as e:
    print(f"Fehler während der benutzerdefinierten Generierung: {e}")

Transparenter Hintergrund:

Verwenden Sie output_format="png" oder "webp" und setzen Sie background="transparent". Die Aufnahme von "transparenter Hintergrund" in den Prompt könnte dies auch automatisch auslösen (gemäß Kochbuch).

prompt_transparent_hat = "Generieren Sie ein Bild im Pixel-Art-Stil eines grünen Eimerhuts mit einer rosa Feder auf transparentem Hintergrund."

try:
    response = client.images.generate(
        model="gpt-image-1",
        prompt=prompt_transparent_hat,
        size="1024x1024",
        quality="low",
        output_format="png",          # Erforderlich für Transparenz
        # background="transparent",   # Kann explizit festgelegt werden
        response_format="b64_json",
        n=1
    )

    # Verarbeiten Sie die Antwort
    image_b64 = response.data[0].b64_json
    output_path = os.path.join(output_dir, "hat_transparent.png")
    process_b64_json(image_b64, output_path)

except Exception as e:
    print(f"Fehler beim Generieren des transparenten Bildes: {e}")

Bilder bearbeiten (client.images.edit)

Ändern Sie vorhandene Bilder basierend auf einem Prompt. Kann mehrere Bilder kombinieren oder Masken verwenden. Erfordert, dass Bilddateien im binären Lesemodus ('rb') geöffnet werden.

Kombinieren/Bearbeiten mehrerer Bilder (Kochbuchbeispiel):

Geben Sie eine Liste geöffneter Datei-Objekte an den Parameter image an.

prompt_combine = "Kombinieren Sie die Bilder, um die Katze zu zeigen, die den Hut trägt, während sie in einem Baum sitzt, immer noch im Pixel-Art-Stil."
cat_image_path = os.path.join(output_dir, "pixel_cat.jpeg") # Gehen Sie davon aus, dass sie existiert
hat_image_path = os.path.join(output_dir, "hat_transparent.png") # Gehen Sie davon aus, dass sie existiert

img1_file = None
img2_file = None
try:
    img1_file = open(cat_image_path, "rb")
    img2_file = open(hat_image_path, "rb")

    response = client.images.edit(
        model="gpt-image-1",
        image=[img1_file, img2_file], # Übergeben Sie eine Liste von Datei-Objekten
        prompt=prompt_combine,        # Beschreiben Sie das gewünschte kombinierte Ergebnis
        size="1024x1536",             # Passen Sie die gewünschte Ausgabegröße an
        response_format="b64_json",
        n=1
    )

    # Verarbeiten Sie die Antwort
    image_b64 = response.data[0].b64_json
    output_path = os.path.join(output_dir, "cat_with_hat.jpeg")
    process_b64_json(image_b64, output_path)

except FileNotFoundError:
    print("Fehler: Eingabebilddatei(en) nicht gefunden.")
except Exception as e:
    print(f"Fehler während der Bildkombination/Bearbeitung: {e}")
finally:
    # WICHTIG: Dateien schließen
    if img1_file: img1_file.close()
    if img2_file: img2_file.close()

Bearbeiten mit einer Maske:

Geben Sie ein einzelnes Basis-image und eine mask-Datei (PNG mit Alphakanal) an. Der Prompt beschreibt das gewünschte endgültige Bild unter Berücksichtigung des maskierten Bereichs.

Schritt 1: Maske erhalten/generieren: Sie können eine manuell erstellen oder die API selbst verwenden.

# --- Snippet: Generieren einer S/W-Maske über die API (aus dem Kochbuch) ---
base_image_path = os.path.join(output_dir, "glorptak.png") # Gehen Sie davon aus, dass sie existiert
mask_prompt = "Generieren Sie eine Maske, die den gesamten Charakter im Bild abgrenzt, wobei Weiß für den Charakter und Schwarz für den Hintergrund verwendet wird. Geben Sie ein Bild in der gleichen Größe wie das Eingabebild zurück."
bw_mask_output_path = os.path.join(output_dir, "glorptak_mask_bw.png")

img_input_file = None
try:
    img_input_file = open(base_image_path, "rb")
    mask_gen_response = client.images.edit( # Ja, der Bearbeitungsendpunkt kann Masken generieren
        model="gpt-image-1",
        image=img_input_file,
        prompt=mask_prompt,
        size="1024x1024", # Passen Sie die Eingabegröße an
        response_format="b64_json"
    )
    # Speichern Sie die generierte S/W-Maske
    mask_b64 = mask_gen_response.data[0].b64_json
    process_b64_json(mask_b64, bw_mask_output_path)
except Exception as e:
    print(f"Fehler beim Generieren der Maske: {e}")
finally:
    if img_input_file: img_input_file.close()

Schritt 2: S/W-Maske in Alpha-Maske konvertieren (aus dem Kochbuch): Die API erfordert, dass die Maske einen Alphakanal hat.

# --- Snippet: Erstellen eines Alphakanals für die Maske ---
bw_mask_path = os.path.join(output_dir, "glorptak_mask_bw.png") # Gehen Sie davon aus, dass sie existiert
alpha_mask_path = os.path.join(output_dir, "glorptak_mask_alpha.png")

try:
    mask = Image.open(bw_mask_path).convert("L") # Laden als Graustufen
    mask_rgba = mask.convert("RGBA")             # Konvertieren in RGBA
    mask_rgba.putalpha(mask)                     # Verwenden Sie die Graustufenintensität für Alpha
    mask_rgba.save(alpha_mask_path, format="PNG") # Speichern als PNG
    print(f"Alpha-Maske gespeichert unter {alpha_mask_path}")
except FileNotFoundError:
     print(f"Fehler: S/W-Maske nicht gefunden unter {bw_mask_path}")
except Exception as e:
    print(f"Fehler beim Erstellen der Alpha-Maske: {e}")

Schritt 3: Maskierte Bearbeitung durchführen: Verwenden Sie das Basisbild und die Alpha-Maske.

# --- Snippet: Bearbeiten mit Alpha-Maske ---
base_image_path = os.path.join(output_dir, "glorptak.png") # Gehen Sie davon aus, dass sie existiert
alpha_mask_path = os.path.join(output_dir, "glorptak_mask_alpha.png") # Gehen Sie davon aus, dass sie existiert
edit_prompt_masked = "Ein seltsamer Charakter auf einem farbenfrohen Galaxiehintergrund mit vielen Sternen und Planeten."
masked_edit_output_path = os.path.join(output_dir, "glorptak_masked_edit.jpeg")

img_input_file = None
mask_alpha_file = None
try:
    img_input_file = open(base_image_path, "rb")
    mask_alpha_file = open(alpha_mask_path, "rb") # Verwenden Sie die Maske mit Alpha

    response = client.images.edit(
        model="gpt-image-1",
        image=img_input_file,
        mask=mask_alpha_file, # Geben Sie die Alpha-Maskendatei an
        prompt=edit_prompt_masked,
        size="1024x1024",
        response_format="b64_json",
        n=1
    )

    # Verarbeiten Sie die Antwort
    image_b64 = response.data[0].b64_json
    process_b64_json(image_b64, masked_edit_output_path)

except FileNotFoundError:
    print("Fehler: Basisbild- oder Alpha-Maskendatei nicht gefunden.")
except Exception as e:
    print(f"Fehler während der maskierten Bearbeitung: {e}")
finally:
    if img_input_file: img_input_file.close()
    if mask_alpha_file: mask_alpha_file.close()

Erstellen von Bildvariationen (client.images.create_variation)

Generieren Sie Variationen eines vorhandenen Bildes. Im Kochbuchbeispiel nicht behandelt, aber über die API verfügbar.

base_image_for_variation_path = os.path.join(output_dir, "glorptak.png") # Gehen Sie davon aus, dass sie existiert
variation_output_path_template = os.path.join(output_dir, "glorptak_variation_{i}.png")

img_input_file = None
try:
    img_input_file = open(base_image_for_variation_path, "rb")

    response = client.images.create_variation(
        model="gpt-image-1", # Geben Sie das Modell an, wenn es sich vom Standard (DALL-E 2) unterscheidet
        image=img_input_file, # Basisbild-Datei-Objekt
        n=2,                  # Anzahl der zu erstellenden Variationen
        size="1024x1024",     # Gewünschte Größe für Variationen
        response_format="b64_json"
    )

    # Verarbeiten Sie mehrere Ergebnisse, wenn n > 1
    for i, data_item in enumerate(response.data):
        image_b64 = data_item.b64_json
        output_path = variation_output_path_template.format(i=i+1)
        process_b64_json(image_b64, output_path)
    print(f"Generierte {len(response.data)} Variationen.")

except FileNotFoundError:
    print(f"Fehler: Basisbild nicht gefunden unter {base_image_for_variation_path}")
except Exception as e:
    print(f"Fehler beim Erstellen von Variationen: {e}")
finally:
    if img_input_file: img_input_file.close()

Diese Snippets decken die Kernfunktionalitäten ab, die im Kochbuch und in der API-Dokumentation für gpt-image-1 demonstriert werden, wobei die offizielle openai-Bibliothek verwendet wird. Denken Sie daran, Fehler angemessen zu behandeln und Dateiresourcen (Schließen von Dateien) in Ihrer vollständigen Anwendung zu verwalten.

Passen Sie die gpt-image-1 API-Ausgabegröße, -Qualität und -Format an

Die gpt-image-1 API bietet mehrere Parameter, um die generierte Bildausgabe an Ihre spezifischen Bedürfnisse anzupassen, einschließlich Format, Qualität, Abmessungen und Hintergrundtransparenz.

Optimieren Sie generierte Bilder mit diesen gpt-image-1 API-Parametern:

size: Bildabmessungen. Beeinflusst Token-Kosten & Latenz.

quality: Rendering-Detail & Token-Kosten.

output_format: Dateityp für zurückgegebene b64_json-Daten.

output_compression (nur für jpeg/webp): Kompromiss zwischen Qualität und Größe (0=maximale Komprimierung, 100=minimale Komprimierung). Beispiel: output_compression=75.

Erstellen Sie ein Bild mit transparentem Hintergrund mit gpt-image-1

background: Setzen Sie auf "transparent" für Transparenz.

Beispiel: Generieren eines hochwertigen transparenten WebP-Bildes:

from openai import OpenAI
import base64, os

client = OpenAI()
output_dir = "generated_images"; os.makedirs(output_dir, exist_ok=True)

try:
    result = client.images.generate(
        model="gpt-image-1",
        prompt="Vektor-Art-Symbol eines stilisierten Raketenschiffs, transparenter Hintergrund",
        size="1024x1024",
        quality="high",             # Höhere Qualität für bessere Transparenz
        output_format="webp",       # WebP unterstützt Transparenz und gute Komprimierung
        background="transparent",   # Explizit Transparenz anfordern
        response_format="b64_json",
        n=1
    )
    # Decodieren und speichern
    img_b64 = result.data[0].b64_json
    img_bytes = base64.b64decode(img_b64)
    output_path = os.path.join(output_dir, "rocket_icon.webp")
    with open(output_path, "wb") as f: f.write(img_bytes)
    print(f"Transparentes WebP-Bild gespeichert unter {output_path}")
except Exception as e: print(f"Fehler: {e}")

So passen Sie die Inhaltsfilterung von gpt-image-

Explore more

Fathom-R1-14B: Fortschrittliches KI-Argumentationsmodell aus Indien

Fathom-R1-14B: Fortschrittliches KI-Argumentationsmodell aus Indien

Künstliche Intelligenz wächst rasant. FractalAIResearch/Fathom-R1-14B (14,8 Mrd. Parameter) glänzt in Mathe & Logik.

5 June 2025

Cursor 1.0 mit BugBot: KI-gestütztes Automatisierungstest-Tool ist da:

Cursor 1.0 mit BugBot: KI-gestütztes Automatisierungstest-Tool ist da:

Die Softwareentwicklung erlebt Innovationen durch KI. Cursor, ein KI-Editor, erreicht mit Version 1.0 einen Meilenstein.

5 June 2025

30+ öffentliche Web 3.0 APIs, die Sie jetzt nutzen können

30+ öffentliche Web 3.0 APIs, die Sie jetzt nutzen können

Der Aufstieg von Web 3.0: Dezentral, nutzerorientiert, transparent. APIs ermöglichen innovative dApps und Blockchain-Integration.

4 June 2025

Praktizieren Sie API Design-First in Apidog

Entdecken Sie eine einfachere Möglichkeit, APIs zu erstellen und zu nutzen