🎨 Kuinka luoda kuvia OpenAI:n gpt-image-1
avulla
Jos olet koskaan halunnut muuttaa tarinan tai idean visuaaliseksi kohtaukseksi AI:n avulla, OpenAI:n uusi gpt-image-1
-malli tekee siitä helpompaa ja tehokkaampaa kuin koskaan. Tässä on, miten käytämme sitä omassa projektissamme, StoryGPT:ssä, luodaksemme kauniita kuvastoja tekstistä—ja jopa parantaaksemme niitä hahmokuvilla.
🖼️ Vaihe 1: Valmistele Kehotus
Aivan kuten GPT-tekstimallit, gpt-image-1
tarvitsee kuvailevan kehotuksen. Esimerkiksi:
Kodikas metsämökkimaisema auringonlaskussa, hohtavat ikkunat, ympärillä korkeita puita.
Mitä parempi kehotus, sitä parempi kuva. Lisää tunnelmaa, vuorokauden aikaa, tyyliä—mikä ikinä onkaan tärkeää.
🧙♂️ Vaihe 2: Lisää Entiteettikuvia (Valinnainen mutta Upeaa)
Oletetaan, että sinulla on jo hahmokuva (esim. koira hatulla). Voit ladata sen base64-muodossa ja käyttää sitä visuaalisena viittauksena.
Sitten voit laajentaa sitä näin:
"Lisää seuraava kuvaan: koiralla on punainen huivi ja se seisoo kahdella jalalla."
Tällä tavalla malli rakentaa alkuperäisen kuvan päälle sen sijaan, että se aloittaisi alusta.
📦 Vaihe 3: Kutsu APIa
On kaksi tilaa:
🧠 Vain teksti-kehotus:
client.images.generate(
model="gpt-image-1",
prompt="Futuristinen kaupunkitaivaan ääniyö, lentäviä autoja",
size="1024x1024",
quality="low",
n=1
)
🖼️ Muokkaa kuvasyötteellä (kuten hahmojen lisääminen):
httpx.post(
"https://api.openai.com/v1/images/edits",
headers={"Authorization": f"Bearer {API_KEY}"},
data={
"prompt": "Lisää taianomaiset hohtavat silmät hahmolle",
"model": "gpt-image-1",
"size": "1024x1024",
"quality": "low"
},
files=[("image[]", ("dog.png", open("dog.png", "rb"), "image/png"))]
)
Tuloksena on base64-kuva, jonka voit näyttää, tallentaa tai tallentaa levylle.
✅ Siinä se!
Voit nyt luoda visuaaleja hahmoillesi, asetuksillesi tai koko kohtauksille. StoryGPT:ssä käytämme tätä saadaksemme luodut tarinat eloon—hahmo kerrallaan, sivu kerrallaan.
Kokeile itse ja anna tarinoillesi kasvot!
🧪 Täydellinen toimi esimerkki – Kuvan luominen gpt-image-1
avulla
Tämä skripti vaatii:
openai
-paketti (pip install openai
)httpx
monipuolisten kuvien latausten lähettämiseen (pip install httpx
)- OpenAI API-avain ympäristössäsi nimellä
OPENAI_API_KEY
import os
import base64
import httpx
from openai import OpenAI
## Varmista, että tämä on asetettu ympäristöösi
OPENAI_API_KEY = os.environ["OPENAI_API_KEY"]
## Yksinkertainen kuvan luominen käyttäen vain tekstiä
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")
## Kuvan luominen ladatun base64-kuvan ja parannetun kehotuksen avulla
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"Kuvan luominen epäonnistui: {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"✅ Kuvan tallennus: {path}")
if __name__ == "__main__":
# Tila 1: Generoi kehotuksesta
print("🔮 Generoidaan vain kehotuksesta...")
generate_image_from_prompt("Satujen linna kelluvalla saarella violetin taivaan alla")
# Tila 2: Generoi kehotuksesta + entiteettikuva
print("🖼️ Generoidaan entiteettiviittauksen kanssa...")
generate_image_with_entity(
image_path="dog.png", # vaihda omaan kuvaasi
prompt="Lisää punainen huivi ja monokkelia koiralle"
)
🧠 Yhteenveto
generate_image_from_prompt(...)
→ tarvitsee vain tekstiägenerate_image_with_entity(...)
→ sisältää mukautetun hahmon tai viittauskuvan- Tulokset tallennetaan
out_images/
-kansioon