🎨 Sådan Genererer Du Billeder med OpenAI's gpt-image-1
Hvis du nogensinde har ønsket at forvandle en historie eller idé til en visuel scene ved hjælp af AI, så gør OpenAIs nye gpt-image-1
model det lettere og mere kraftfuldt end nogensinde. Her er, hvordan vi bruger det i vores eget projekt, StoryGPT, til at skabe smukke illustrationer fra tekst—og endda forbedre dem med karakterbilleder.
🖼️ Trin 1: Forbered Dit Prompt
Ligesom GPT tekstmodellerne, så har gpt-image-1
brug for et beskrivende prompt. For eksempel:
En hyggelig skovhytte ved solnedgang, glødende vinduer, omkranset af høje træer.
Jo bedre dit prompt, jo bedre dit billede. Tilføj stemning, tidspunkt på dagen, stil—hvad der end er vigtigt.
🧙♂️ Trin 2: Tilføj Enhedsbilleder (Valgfrit, men Fantastisk)
Lad os sige, at du allerede har et karakterbillede (f.eks. en hund med hat). Du kan uploade det som base64 og bruge det som en visuel referens.
Så kan du udvide det som dette:
"Tilføj følgende til billedet: hunden har et rødt tørklæde og står på to ben."
På den måde bygger modellen ovenpå det originale billede i stedet for at starte forfra.
📦 Trin 3: Kald API'en
Der er to tilstande:
🧠 Tekst-uden-prompt:
client.images.generate(
model="gpt-image-1",
prompt="En futuristisk by-skyline om natten med flyvende biler",
size="1024x1024",
quality="low",
n=1
)
🖼️ Rediger med billede inputs (som at tilføje til karakterer):
httpx.post(
"https://api.openai.com/v1/images/edits",
headers={"Authorization": f"Bearer {API_KEY}"},
data={
"prompt": "Tilføj magisk glødende øjne til karakteren",
"model": "gpt-image-1",
"size": "1024x1024",
"quality": "low"
},
files=[("image[]", ("dog.png", open("dog.png", "rb"), "image/png"))]
)
Resultatet vil inkludere et base64 billede, du kan vise, gemme eller gemme på disk.
✅ Det er Det!
Du kan nu generere visuelle elementer til dine karakterer, indstillinger eller hele scener. I StoryGPT bruger vi dette til at bringe genererede fortællinger til live—karakter for karakter, side for side.
Prøv det selv og giv dine historier et ansigt!
🧪 Fuld Funktionsdygtig Eksempel – Billedgenerering med gpt-image-1
Dette script kræver:
openai
pakken (pip install openai
)httpx
til at sende multipart billede uploads (pip install httpx
)- En OpenAI API-nøgle i dit miljø som
OPENAI_API_KEY
import os
import base64
import httpx
from openai import OpenAI
## Sørg for, at dette er indstillet i dit miljø
OPENAI_API_KEY = os.environ["OPENAI_API_KEY"]
## Enkel billedgenerering ved kun at bruge et tekstprompt
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")
## Billedgenerering ved hjælp af et uploadet base64 billede og et forbedret 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"Generering af billede fejlede: {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"✅ Gemte billede til: {path}")
if __name__ == "__main__":
# Tilstand 1: Generer fra prompt
print("🔮 Genererer kun fra prompt...")
generate_image_from_prompt("Et eventyrslot på en svævende ø under en lilla himmel")
# Tilstand 2: Generer fra prompt + enhedsbillede
print("🖼️ Genererer med enhedsreference...")
generate_image_with_entity(
image_path="dog.png", # erstat med dit faktiske billede
prompt="Tilføj et rødt tørklæde og en monocle til hunden"
)
🧠 Resume
generate_image_from_prompt(...)
→ kræver kun tekstgenerate_image_with_entity(...)
→ inkluderer dit tilpassede karakter- eller referensbillede- Resultaterne gemmes i
out_images/
mappen