Marketing: Bilder und Banner
Auf dieser Seite
Aktualisiert am 2. November 2026 — Bildmodelle.
gpt-image-1, für den dieser Kurs ursprünglich geschrieben wurde, wurde am 23. Oktober 2026 eingestellt.gpt-image-1.5,gpt-image-1-miniundchatgpt-image-latestwerden am 1. Dezember 2026 eingestellt. Die Beispiele verwenden nungpt-image-2.5-sunburst, das präziseste Modell für Bearbeitungen;gpt-image-2.5-flareist schneller für die Standardgenerierung. Beide unterstützen die Qualitätsstufenxhighundmax. GPT-Bildmodelle geben Bilder immer im base64-Format zurück: Der Parameterresponse_formatvon älteren DALL·E-Modellen wird nicht akzeptiert und aus dem Code entfernt. Quelle: Bildgenerierung (OpenAI).
Marketing: Bilder und Banner
Marketing-Teams verbrauchen Bilder kontinuierlich: Werbebannern, Social-Media-Beiträge, Artikelillustrationen, E-Mail-Köpfe. Die Flaschenhalsstelle ist fast nie die Idee, sondern die Produktion. GPT Image über die API verschiebt diesen Flaschenhals, indem Sie die Ausgabe industrialisieren können, ohne die Qualität zu verlieren, sofern Sie in Ihren Prompts codieren, was ein Art Director verlangen würde.
Werbebannern
Ein Banner ist keine Illustration: Es ist eine Botschaft, die in kleinen Größen, in einer überladenen Umgebung und in Bruchteilen einer Sekunde lesbar bleiben muss. Ihr Prompt muss daher den genauen Text in Anführungszeichen tragen und Lesbarkeitsbedingungen durchsetzen – fette serifenlose Typografie, hoher Kontrast zwischen Text und Hintergrund sowie eine klare Handlungsaufforderung. Die folgende Funktion sperrt diese Einschränkungen endgültig ein und variiert nur die Botschaft und die grafische Stimmung, hier ein blau-violetter Farbverlauf mit leichten Partikeln für ein Probierangebot.
from openai import OpenAI
import base64
client = OpenAI()
def banniere_pub(message: str, style: str, format_nom: str, output: str):
"""Generiert ein Werbebanner mit eingebettetem Text."""
prompt = (
f"Professionelles Werbebanner mit dem Text \"{message}\" "
f"in großen, lesbaren Buchstaben, {style}, "
"sauberer und moderner Design, klare Handlungsaufforderung, "
"fette serifenlose Typografie, hoher Text/Hintergrund-Kontrast"
)
response = client.images.generate(
model="gpt-image-2.5-sunburst",
prompt=prompt,
size="1536x1024", # Querformat für Banner
quality="high",
)
data = base64.b64decode(response.data[0].b64_json)
with open(output, "wb") as f:
f.write(data)
print(f"Banner {format_nom}: {output}")
banniere_pub(
message="30-day free trial",
style="blue-violet gradient, light particles, tech mood",
format_nom="leaderboard",
output="banniere_essai.png"
)
Social-Media-Bilder
Jede Plattform hat ihre eigenen Codes, und das Posten desselben Quadrats überall zeigt sich sofort. Ein nüchterner LinkedIn-Beitrag in Blau- und Grautönen funktioniert auf Instagram nicht, wo Nutzer lebhafte Farben und eine zentrierte Komposition erwarten; eine vertikale Story erfordert Text oben und das Bild unten, weil der Daumen des Nutzers den unteren Teil des Bildschirms verdeckt. Die Funktion visuel_social kodiert diese Unterschiede in einem Konfigurations-Dict, das jede Plattform auf ihre native Auflösung und ihren stilistischen Brief abbildet, und komponiert den Prompt dann aus dem von Ihnen bereitgestellten Thema und Text.
from openai import OpenAI
import base64
client = OpenAI()
def visuel_social(plateforme: str, sujet: str, texte: str, output: str):
"""Generiert ein visuelles Element, das an eine Social-Media-Plattform angepasst ist."""
configs = {
"instagram_post": {
"size": "1024x1024",
"style": "polished aesthetic, vibrant colors, centered composition"
},
"instagram_story": {
"size": "1024x1536",
"style": "vertical, text at top, impactful visual at bottom"
},
"linkedin": {
"size": "1536x1024",
"style": "professional and sober, blue and gray tones, corporate"
},
"twitter": {
"size": "1536x1024",
"style": "eye-catching, strong contrast, legible at small sizes"
},
}
config = configs.get(plateforme, configs["instagram_post"])
prompt = (
f"Visual für {plateforme.replace('_', ' ')}, "
f"Thema: {sujet}, "
f"angezeigter Text: \"{texte}\", "
f"{config['style']}, "
"professionelles Design, bereit zur Veröffentlichung"
)
response = client.images.generate(
model="gpt-image-2.5-sunburst",
prompt=prompt,
size=config["size"],
quality="high",
)
data = base64.b64decode(response.data[0].b64_json)
with open(output, "wb") as f:
f.write(data)
print(f"Visual {plateforme}: {output}")
visuel_social("instagram_post", "AI product launch", "New: CorsenBot 2.0", "ig_post.png")
visuel_social("linkedin", "developer recruitment", "We're hiring!", "linkedin_post.png")
visuel_social("instagram_story", "summer promotion", "-30% this weekend", "ig_story.png")
Blog-Artikel-Illustrationen
Das Coverbild eines Artikels folgt einer kontraintuitiven Regel: Es darf keinen Text enthalten. Ihr CMS legt den Titel darüber, und ein Bild, das bereits Buchstaben trägt, verwandelt sich in unlesbaren Brei, sobald der Header angewendet wird. Der Prompt formuliert dies daher ausdrücklich, zusätzlich zur Anforderung einer panoramischen Komposition und harmonischer Farben. Die folgende Artikel-Liste zeigt auch, wie eine einzige Funktion drei sehr verschiedene Register bedient – 3D-isometrisch blau für ein Thema zum Kundenservice, bunte Collage für Marketingtrends, dunkle Tech mit grünen Neonlichtern für Cybersicherheit.
from openai import OpenAI
import base64
client = OpenAI()
def illustration_article(titre_article: str, style: str, output: str):
"""Generiert eine Header-Illustration für einen Blogartikel."""
prompt = (
f"Konzeptuelle Illustration für einen Artikel mit dem Titel \"{titre_article}\", "
f"{style}, "
"panoramische Komposition, kein Text im Bild, "
"harmonische Farben, geeignet als Blog-Cover-Bild"
)
response = client.images.generate(
model="gpt-image-2.5-sunburst",
prompt=prompt,
size="1536x1024",
quality="high",
)
data = base64.b64decode(response.data[0].b64_json)
with open(output, "wb") as f:
f.write(data)
print(f"Illustration: {output}")
articles = [
("How AI is transforming customer service", "3D isometric style, blue tones"),
("5 marketing trends for 2026", "modern collage, bright colors"),
("Cybersecurity guide for SMBs", "dark tech style, green neons"),
]
for i, (titre, style) in enumerate(articles):
illustration_article(titre, style, f"article_header_{i+1}.png")
Marketing-Kampagnenpaket
Eine Kampagne läuft nie mit einem einzigen visuellen Element. Sie benötigen das Hero-Banner der Website, das Social-Quadrat, die vertikale Story und den E-Mail-Header, alle mit derselben Botschaft und Palette. Genau hier schlägt die API manuelle Arbeit: Anstatt eine Quelldatei viermal neu zu exportieren, beschreiben Sie die Kampagne einmal und lassen Sie den Loop jede Variante in ihrer nativen Auflösung produzieren. Das am Ende geschriebene JSON-Manifest ist keine Dekoration – es ermöglicht Ihrem Veröffentlichungstool, die richtige Datei für den richtigen Slot zu finden.
from openai import OpenAI
import base64
import json
client = OpenAI()
def kit_campagne(
nom_campagne: str,
message_principal: str,
palette: str,
output_dir: str = "."
):
"""Generiert ein komplettes visuelles Paket für eine Marketingkampagne."""
assets = [
{
"nom": "hero_banner",
"size": "1536x1024",
"prompt_extra": "large hero banner, centered text, maximum impact"
},
{
"nom": "social_square",
"size": "1024x1024",
"prompt_extra": "square social post, centered composition"
},
{
"nom": "story_vertical",
"size": "1024x1536",
"prompt_extra": "vertical story format, text at top, visual at bottom"
},
{
"nom": "email_header",
"size": "1536x1024",
"prompt_extra": "email marketing header, sober and professional"
},
]
resultats = []
for asset in assets:
prompt = (
f"Marketing-Visual für die \"{nom_campagne}\"-Kampagne, "
f"Botschaft: \"{message_principal}\", "
f"Palette: {palette}, "
f"{asset['prompt_extra']}, "
"Premium-Design, moderne Typografie"
)
response = client.images.generate(
model="gpt-image-2.5-sunburst",
prompt=prompt,
size=asset["size"],
quality="high",
)
path = f"{output_dir}/{nom_campagne}_{asset['nom']}.png"
data = base64.b64decode(response.data[0].b64_json)
with open(path, "wb") as f:
f.write(data)
resultats.append({"asset": asset["nom"], "path": path})
print(f" {asset['nom']} → {path}")
# Manifest speichern
manifeste_path = f"{output_dir}/{nom_campagne}_manifeste.json"
with open(manifeste_path, "w") as f:
json.dump(resultats, f, indent=2, ensure_ascii=False)
print(f"\nKomplettes Paket: {len(resultats)} visuelle Elemente generiert")
print(f"Manifest: {manifeste_path}")
return resultats
kit_campagne(
nom_campagne="rentree-2026",
message_principal="Train in AI starting this September",
palette="deep blue, copper orange, white"
)
Testen, bevor Sie entscheiden
Marketing entscheidet selten nach Bauchgefühl: Es entscheidet nach Zahlen. Aber Sie benötigen mehrere Versionen, die gegeneinander ausgespielt werden können, was früher teuer war, wenn Sie für jede Version einen Designer hinzuziehen mussten. Die A/B-Test-Funktion generiert so viele Varianten wie Konfigurationen, die Sie ihr übergeben, und benennt Dateien mit Buchstaben – A, B, C –, sodass das Abgleichen mit Ihren Kampagnenstatistiken offensichtlich bleibt. Das Beispiel stellt drei Behandlungen desselben Anzeigekonzepts für eine Meditations-App gegeneinander: einen fotografischen Ansatz mit Natur und goldenem Licht, eine minimalistische geometrische Illustration, einen abstrakten Farbverlauf mit schwebenden Partikeln. Das Konzept und der Text bleiben unverändert; nur die visuelle Behandlung wird getestet, was die Bedingung ist, damit das Testergebnis überhaupt etwas bedeutet.
from openai import OpenAI
import base64
client = OpenAI()
def ab_test_visuels(concept: str, variantes: list[dict], output_prefix: str):
"""Generiert A/B-Varianten desselben Marketingkonzepts."""
for i, variante in enumerate(variantes):
lettre = chr(65 + i) # A, B, C...
prompt = (
f"{concept}, "
f"Stil: {variante['style']}, "
f"dominante Farbe: {variante['couleur']}, "
"professionelles Design, bereit zur Veröffentlichung"
)
response = client.images.generate(
model="gpt-image-2.5-sunburst",
prompt=prompt,
size="1024x1024",
quality="high",
)
path = f"{output_prefix}_variante_{lettre}.png"
data = base64.b64decode(response.data[0].b64_json)
with open(path, "wb") as f:
f.write(data)
print(f"Variante {lettre} ({variante['style'][:30]}) → {path}")
ab_test_visuels(
concept="Ad for a meditation app with the text 'Find your calm'",
variantes=[
{"style": "photographic, nature and golden light", "couleur": "green and gold"},
{"style": "minimalist illustration, geometric shapes", "couleur": "pastel blue"},
{"style": "abstract gradient, floating particles", "couleur": "purple and pink"},
],
output_prefix="meditation_ad"
)
Gewohnheiten, die den Unterschied machen
Fünf Gewohnheiten trennen industrialisierte Produktion von einem Haufen unpassender visueller Elemente. Markenkonstanz lebt im Prompt: Schließen Sie systematisch Ihre Palette und Ihren Stil ein, oder jede Generierung startet von einer Standardästhetik und Ihr Feed wird zu einem Flickenteppich. Lesbarkeit von Texten diktiert eine Längendisziplin – GPT Image bewältigt Typografie gut, aber eine Botschaft von fünf bis sieben Wörtern ist die Grenze, ab der ein Banner zu einem unlesbaren Absatz wird.
Generieren Sie immer in der nativen Dimension des Mediums anstatt danach zu zuschneiden, weil das Modell für den Rahmen komponiert, den Sie ihm geben, und Zuschneiden das Motiv aus seiner Stärkezone verschiebt. Archivieren Sie Ihre Prompts laufend: Eine Bibliothek bewährter Formulierungen nach Bildtyp ist nach sechs Monaten weit mehr wert als jede einzelne Geschwindigkeitssteigerung. Führen Sie schließlich jedes visuelle Element durch eine grundlegende rechtliche Prüfung, auch nur einen kurzen Blick, um zu überprüfen, ob es keine bestehende Marke evoziert.
Bringen Sie all dies in einem fiktiven Produktlaunch zusammen: Ein Skript, das das Hero-Banner, den Instagram-Beitrag, die Story, das LinkedIn-Visual und zwei A/B-Varianten des Hauptbeitrags generiert, alles begleitet von einem JSON-Manifest, das jede erzeugte Datei auflistet.