Zum Hauptinhalt springen
Lektion 4 von 12 · Bildgenerierung über die API: GPT Image

Qualität, Stil und Auflösung steuern

Lektion 4 von 12 Aktualisiert am 2. November 2026 Entwickler
Auf dieser Seite
  1. Qualität, Stil und Auflösung steuern
  2. Qualitätsstufen
  3. Verfügbare Auflösungen
  4. Stil über den Prompt steuern
  5. Hilfsfunktion für die Generierung
  6. Die richtige Kombination wählen

Aktualisiert am 2. November 2026 — Bildmodelle. Das Modell gpt-image-1, für das dieser Kurs ursprünglich geschrieben wurde, wurde am 23. Oktober 2026 eingestellt. Zudem werden gpt-image-1.5, gpt-image-1-mini und chatgpt-image-latest am 1. Dezember 2026 zurückgezogen. Die Beispiele verwenden nun gpt-image-2.5-sunburst, das für Bearbeitungen die höchste Präzision bietet; gpt-image-2.5-flare ist für die Standardgenerierung schneller. Beide Modelle unterstützen nun die Qualitätsstufen xhigh und max. GPT Image-Modelle geben Bilder stets im Base64-Format zurück: Der Parameter response_format, der von älteren DALL·E-Modellen verwendet wurde, wird nicht mehr akzeptiert und aus dem Code entfernt. Quelle: Bildgenerierung (OpenAI).

Qualität, Stil und Auflösung steuern

GPT Image bietet mehrere Hebel zur Anpassung des Outputs, doch sie funktionieren nicht alle auf die gleiche Weise. Qualität und Auflösung sind explizite API-Parameter, die Kosten und Generierungszeit beeinflussen. Der Stil hingegen wird ausschließlich über Ihren Prompt gesteuert. Das Verständnis dieses Unterschieds verhindert, dass Sie nach nicht existierenden Optionen suchen, und hilft Ihnen, das Verhältnis von Qualität zu Kosten für jede Generierung zu optimieren.

Qualitätsstufen

Der Parameter quality wirkt sich direkt auf das Detailniveau und die Generierungszeit aus. Der beste Weg, um den Unterschied zu erkennen, ist ein Test mit einem anspruchsvollen Motiv – wie einer Stillleben mit Rembrandt-Beleuchtung, bei der Gradienten und Texturen kritisch sind – anstatt auf einer flachen Grafik, wo Unterschiede unsichtbar blieben.

import base64
from openai import OpenAI

client = OpenAI()

qualities = ["low", "medium", "high"]

for q in qualities:
    response = client.images.generate(
        model="gpt-image-2.5-sunburst",
        prompt="Still life with exotic fruits on a marble table, Rembrandt lighting",
        size="1024x1024",
        quality=q
    )
    with open(f"quality_{q}.png", "wb") as f:
        f.write(base64.b64decode(response.data[0].b64_json))
    print(f"Qualität {q}: quality_{q}.png")
QualitätDetailsZeitKostenEmpfohlene Verwendung
lowBasisSchnellWirtschaftlichEntwürfe, Tests, Prototypen
mediumGutModeratMittelSoziale Medien, Präsentationen
highMaximumLangsamerPremiumDruck, Werbung, Portfolios

Verfügbare Auflösungen

Es stehen drei Seitenverhältnisse zur Verfügung, die jeweils für spezifische Anwendungsfälle optimiert sind: quadratisch 1024×1024 für soziale Medien und Avatare, Portrait 1024×1536 für Stories, Plakate und mobile Bildschirme sowie Landschaft 1536×1024 für Banner, Header und Präsentationen. Generieren Sie stets direkt im gewünschten Format. Nachträgliches Zuschneiden verschwendet bezahlte Pixel und stört die Komposition, die das Modell für diesen spezifischen Rahmen erstellt hat.

import base64
from openai import OpenAI

client = OpenAI()

resolutions = {
    "1024x1024": "Quadratisch — ideal für soziale Medien und Avatare",
    "1024x1536": "Portrait — Stories, Plakate, Mobilgeräte",
    "1536x1024": "Landschaft — Banner, Header, Präsentationen",
}

for size, description in resolutions.items():
    response = client.images.generate(
        model="gpt-image-2.5-sunburst",
        prompt="Panoramic view of a futuristic city at dusk, neon lights and skyscrapers",
        size=size,
        quality="medium"
    )
    with open(f"city_{size}.png", "wb") as f:
        f.write(base64.b64decode(response.data[0].b64_json))
    print(f"{size} ({description}) → city_{size}.png")

Stil über den Prompt steuern

Stil ist kein expliziter API-Parameter; Sie steuern ihn vollständig über Ihren Prompt. Die zuverlässigste Technik besteht darin, ein präzises Medium mit seinem eigenen Vokabular anzugeben. „Professionelle Fotografie, Nikon D850, Blende f/2,8” fordert nicht nur ein Foto, sondern verlangt eine spezifische Schärfentiefe und optische Darstellung. „Retro 16-Bit Pixelart, begrenztes Farbschema” setzt eine Auflösungsbeschränzung durch, die das Modell respektiert. Der folgende Loop wendet fünf verschiedene Medien auf dasselbe Motiv an, wodurch die Unterschiede sofort sichtbar werden.

import base64
mediums = [
    "professional photography, Nikon D850, f/2.8",
    "oil painting on canvas, impressionist style",
    "flat design vector illustration, pastel colors",
    "architectural technical drawing, cross-section view",
    "retro 16-bit pixel art, limited palette",
]

for medium in mediums:
    prompt = f"A typical Parisian café with outdoor seating, {medium}"
    response = client.images.generate(
        model="gpt-image-2.5-sunburst",
        prompt=prompt,
        size="1024x1024",
        quality="medium"
    )
    filename = f"cafe_{mediums.index(medium) + 1}.png"
    with open(filename, "wb") as f:
        f.write(base64.b64decode(response.data[0].b64_json))
    print(f"{medium[:40]}... → {filename}")

Beleuchtung ist Ihr zweiter Hebel und oft der mächtigste: Sie kann dieselbe Szene radikal transformieren. Ein Porträt einer Keramikhandwerkerin in ihrer Werkstatt wird unter Dreipunkt-Studio-Beleuchtung zu einem nüchternen Dokumentaraufnahme, zu einem Werbebild im goldenen Licht oder zu einem Filmplakat im Caravaggio-Stil mit Chiaroscuro. Das Motiv hat nicht das Wort gewechselt; nur die Atmosphäre hat sich verschoben.

import base64
lightings = [
    "three-point studio lighting, neutral white background",
    "natural golden hour light",
    "cyberpunk neon lighting, pink and blue",
    "dramatic Caravaggio-style chiaroscuro",
    "diffuse rainy day light, gray tones",
]

for lighting in lightings:
    prompt = f"Portrait of a ceramic artisan in her workshop, {lighting}"
    response = client.images.generate(
        model="gpt-image-2.5-sunburst",
        prompt=prompt,
        size="1024x1536",
        quality="high"
    )
    filename = f"artisan_{lightings.index(lighting) + 1}.png"
    with open(filename, "wb") as f:
        f.write(base64.b64decode(response.data[0].b64_json))
    print(f"Beleuchtung: {lighting} → {filename}")

Hilfsfunktion für die Generierung

Das Wiederholen derselben sechs Zeilen für jeden Aufruf wird schnell mühsam und fehleranfällig. Verpacken Sie Ihre Standardpräferenzen in eine wiederverwendbare Funktion, die auch die lokale Speicherung und die Benennung von Dateien mit Suffixen verwaltet, wenn Sie mehrere Bilder anfordern.

from openai import OpenAI
import base64
from pathlib import Path

client = OpenAI()

def generate_image(
    prompt: str,
    output_path: str,
    size: str = "1024x1024",
    quality: str = "medium",
    n: int = 1
) -> list[str]:
    """
    Generiert ein oder mehrere Bilder und speichert sie lokal.
    Gibt eine Liste der erstellten Dateipfade zurück.
    """
    response = client.images.generate(
        model="gpt-image-2.5-sunburst",
        prompt=prompt,
        n=n,
        size=size,
        quality=quality,
    )

    paths = []
    for i, image in enumerate(response.data):
        if n > 1:
            path = Path(output_path).stem + f"_{i+1}" + Path(output_path).suffix
        else:
            path = output_path

        data = base64.b64decode(image.b64_json)
        with open(path, "wb") as f:
            f.write(data)
        paths.append(path)
        print(f"Gespeichert: {path}")

    return paths


# Verwendung
generate_image(
    prompt="Premium packaging for matcha tea, minimalist Japanese design",
    output_path="matcha_packaging.png",
    size="1024x1024",
    quality="high"
)

Die richtige Kombination wählen

Sie entscheiden beide Parameter gemeinsam, basierend auf Ihrem Zielmedium. Die folgende Tabelle fasst die häufigsten Szenarien zusammen.

KontextAuflösungQualität
Schnelle Prototypen1024×1024low
Instagram / LinkedIn-Beitrag1024×1024medium
Vertikale Story / Reel1024×1536medium
Web-Banner / Header1536×1024medium
Plakat für Druck A3+1024×1536high
Kreatives Portfolio / Buch1024×1024high
Batch-Test von Prompts1024×1024low

In der Produktion kopieren Sie diese Tabelle nicht manuell in jeden Skript. Übersetzen Sie sie in Konfigurationslogik und lassen Sie Ihren Code basierend auf dem deklarierten Kontext wählen. Sie erhalten eine einzige Quelle der Wahrheit, und wenn Sie später entscheiden, dass Ihre Social-Media-Beiträge high Qualität verwenden sollen, reicht eine Zeile Änderung.

def generate_for_context(prompt: str, context: str, output: str):
    """Passt Qualität und Auflösung automatisch an den Kontext an."""
    configs = {
        "prototype": {"size": "1024x1024", "quality": "low"},
        "social_media": {"size": "1024x1024", "quality": "medium"},
        "story": {"size": "1024x1536", "quality": "medium"},
        "banner": {"size": "1536x1024", "quality": "medium"},
        "print": {"size": "1024x1536", "quality": "high"},
    }

    config = configs.get(context, configs["social_media"])

    return generate_image(
        prompt=prompt,
        output_path=output,
        **config
    )


# Dasselbe Bild für verschiedene Medien generieren
generate_for_context(
    "Corsen AI logo on dark background, premium tech style",
    "social_media",
    "logo_social.png"
)

Um Ihr eigenes Urteil über diese Einstellungen zu bilden, generieren Sie die vollständige Matrix selbst: Schreiben Sie einen Skript, das einen einzelnen Prompt entnimmt und alle neun Qualität × Auflösung-Kombinationen erzeugt, speichert jede Datei mit einem expliziten Namen wie image_low_1024x1024.png und zeigt eine Zusammenfassungstabelle an. Bald werden Sie mit bloßem Auge erkennen, wann medium ausreicht.