🎨 So erzeugen Sie Bilder mit OpenAI's gpt-image-1
Wenn Sie schon immer eine Geschichte oder Idee in eine visuelle Szene mithilfe von KI umwandeln wollten, macht das neue Modell gpt-image-1
von OpenAI dies einfacher und leistungsfähiger als je zuvor. Hier erfahren Sie, wie wir es in unserem eigenen Projekt, StoryGPT, verwenden, um aus Text wunderschöne Illustrationen zu erstellen – und sie sogar mit Charakterbildern zu verbessern.
🖼️ Schritt 1: Bereiten Sie Ihren Prompt vor
Ähnlich wie bei GPT-Textmodellen benötigt gpt-image-1
einen beschreibenden Prompt. Zum Beispiel:
Ein gemütliches Waldhäuschen bei Sonnenuntergang, leuchtende Fenster, umgeben von hohen Bäumen.
Je besser Ihr Prompt, desto besser Ihr Bild. Fügen Sie Stimmung, Tageszeit, Stil – was auch immer wichtig ist – hinzu.
🧙♂️ Schritt 2: Fügen Sie Entitätsbilder hinzu (Optional, aber großartig)
Angenommen, Sie haben bereits ein Charakterbild (z. B. einen Hund mit einem Hut). Sie können es als Base64 hochladen und als visuelle Referenz verwenden.
Anschließend können Sie es wie folgt erweitern:
"Füge folgendes zum Bild hinzu: der Hund trägt einen roten Schal und steht auf zwei Beinen."
Auf diese Weise baut das Modell auf dem ursprünglichen Bild auf, anstatt von Grund auf neu zu beginnen.
📦 Schritt 3: Rufen Sie die API auf
Es gibt zwei Modi:
🧠 Nur-Text-Prompt:
client.images.generate(
model="gpt-image-1",
prompt="Eine futuristische Skyline bei Nacht mit fliegenden Autos",
size="1024x1024",
quality="low",
n=1
)
🖼️ Bearbeiten mit Bildeingaben (wie das Hinzufügen zu Charakteren):
httpx.post(
"https://api.openai.com/v1/images/edits",
headers={"Authorization": f"Bearer {API_KEY}"},
data={
"prompt": "Fügen Sie magische, leuchtende Augen zum Charakter hinzu",
"model": "gpt-image-1",
"size": "1024x1024",
"quality": "low"
},
files=[("image[]", ("dog.png", open("dog.png", "rb"), "image/png"))]
)
Das Ergebnis wird ein Base64-Bild enthalten, das Sie anzeigen, speichern oder auf der Festplatte sichern können.
✅ Das war's!
Sie können jetzt visuelle Darstellungen für Ihre Charaktere, Umgebungen oder ganze Szenen erstellen. In StoryGPT verwenden wir dies, um generierte Geschichten zum Leben zu erwecken – Charakter für Charakter, Seite für Seite.
Probieren Sie es selbst aus und verleihen Sie Ihren Geschichten ein Gesicht!
🧪 Vollständiges Arbeitsbeispiel – Bilderzeugung mit gpt-image-1
Dieses Skript erfordert:
- Das
openai
-Paket (pip install openai
) httpx
für das Senden von Multipart-Bild-Uploads (pip install httpx
)- Einen OpenAI-API-Schlüssel in Ihrer Umgebung als
OPENAI_API_KEY
import os
import base64
import httpx
from openai import OpenAI
## Stellen Sie sicher, dass dies in Ihrer Umgebung gesetzt ist
OPENAI_API_KEY = os.environ["OPENAI_API_KEY"]
## Einfache Bilderzeugung nur mit einem Text-Prompt
def generate_image_from_prompt(prompt: str):
client = OpenAI()
response = client.images.generate(
model="gpt-image-1",
prompt=prompt,
size="1024x1024",
quality="low",
n=1,
)
image_b64 = response.data[0].b64_json
save_image(image_b64, "image_text_only.png")
## Bilderzeugung mit einem hochgeladenen Base64-Bild und einem erweiterten Prompt
def generate_image_with_entity(image_path: str, prompt: str):
with open(image_path, "rb") as f:
image_bytes = f.read()
files = [
("image[]", (os.path.basename(image_path), image_bytes, "image/png"))
]
data = {
"prompt": prompt,
"model": "gpt-image-1",
"size": "1024x1024",
"quality": "low",
}
headers = {
"Authorization": f"Bearer {OPENAI_API_KEY}",
}
response = httpx.post(
"https://api.openai.com/v1/images/edits",
headers=headers,
data=data,
files=files,
timeout=60,
)
if response.status_code != 200:
raise Exception(f"Image generation failed: {response.text}")
image_b64 = response.json()["data"][0]["b64_json"]
save_image(image_b64, "image_with_entity.png")
def save_image(image_b64: str, filename: str):
os.makedirs("out_images", exist_ok=True)
path = os.path.join("out_images", filename)
with open(path, "wb") as f:
f.write(base64.b64decode(image_b64))
print(f"✅ Bild gespeichert unter: {path}")
if __name__ == "__main__":
# Modus 1: Generieren nur aus Prompt
print("🔮 Erzeugen nur aus Prompt...")
generate_image_from_prompt("Ein Märchenschloss auf einer schwebenden Insel unter einem violetten Himmel")
# Modus 2: Generieren aus Prompt + Entitätsbild
print("🖼️ Erzeugen mit Referenzbild...")
generate_image_with_entity(
image_path="dog.png", # Ersetzen Sie dies durch Ihr tatsächliches Bild
prompt="Fügen Sie dem Hund einen roten Schal und ein Monokel hinzu"
)
🧠 Zusammenfassung
generate_image_from_prompt(...)
→ benötigt nur Textgenerate_image_with_entity(...)
→ enthält Ihr benutzerdefiniertes Charakter- oder Referenzbild- Ergebnisse werden im Ordner
out_images/
gespeichert