🎨 Como Gerar Imagens com gpt-image-1
da OpenAI
Se você já quis transformar uma história ou ideia em uma cena visual usando IA, o novo modelo gpt-image-1
da OpenAI torna isso mais fácil e poderoso do que nunca. Aqui está como o usamos em nosso próprio projeto, StoryGPT, para criar belas ilustrações a partir de texto—e até mesmo aprimorá-las com imagens de personagens.
🖼️ Passo 1: Prepare Seu Prompt
Assim como os modelos de texto GPT, o gpt-image-1
precisa de um prompt descritivo. Por exemplo:
Uma aconchegante cabana na floresta ao pôr do sol, janelas iluminadas, cercada por árvores altas.
Quanto melhor o seu prompt, melhor será sua imagem. Adicione clima, hora do dia, estilo—o que for importante.
🧙♂️ Passo 2: Adicione Imagens de Entidades (Opcional, mas Incrível)
Vamos dizer que você já tem uma imagem de personagem (por exemplo, um cachorro com um chapéu). Você pode carregá-la como base64 e usá-la como uma referência visual.
Em seguida, você pode estendê-la assim:
"Adicione o seguinte à imagem: o cachorro tem um lenço vermelho e está em pé sobre duas patas."
Dessa forma, o modelo constrói em cima da imagem original, em vez de começar do zero.
📦 Passo 3: Chame a API
Há dois modos:
🧠 Prompt apenas de texto:
client.images.generate(
model="gpt-image-1",
prompt="Um horizonte de cidade futurista à noite com carros voadores",
size="1024x1024",
quality="low",
n=1
)
🖼️ Edição com entradas de imagens (como adicionar a personagens):
httpx.post(
"https://api.openai.com/v1/images/edits",
headers={"Authorization": f"Bearer {API_KEY}"},
data={
"prompt": "Adicione olhos mágicos brilhantes ao personagem",
"model": "gpt-image-1",
"size": "1024x1024",
"quality": "low"
},
files=[("image[]", ("dog.png", open("dog.png", "rb"), "image/png"))]
)
O resultado incluirá uma imagem base64 que você pode exibir, armazenar ou salvar no disco.
✅ É Isso!
Agora você pode gerar visuais para seus personagens, cenários ou cenas inteiras. No StoryGPT, usamos isso para dar vida a contos gerados—personagem por personagem, página por página.
Experimente você mesmo e dê um rosto às suas histórias!
🧪 Exemplo Completo em Funcionamento – Geração de Imagens com gpt-image-1
Este script requer:
- Pacote
openai
(pip install openai
) httpx
para enviar uploads de imagens multipart (pip install httpx
)- Uma chave de API da OpenAI em seu ambiente como
OPENAI_API_KEY
import os
import base64
import httpx
from openai import OpenAI
## Certifique-se de que isso esteja definido em seu ambiente
OPENAI_API_KEY = os.environ["OPENAI_API_KEY"]
## Geração simples de imagem usando apenas um prompt de texto
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")
## Geração de imagem usando uma imagem base64 carregada e um prompt aprimorado
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"A geração da imagem falhou: {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"✅ Imagem salva em: {path}")
if __name__ == "__main__":
# Modo 1: Gerar a partir de um prompt
print("🔮 Gerando apenas a partir do prompt...")
generate_image_from_prompt("Um castelo de conto de fadas em uma ilha flutuante sob um céu roxo")
# Modo 2: Gerar a partir de um prompt + imagem de entidade
print("🖼️ Gerando com referência de entidade...")
generate_image_with_entity(
image_path="dog.png", # substitua pela sua imagem real
prompt="Adicione um lenço vermelho e um monóculo ao cachorro"
)
🧠 Resumo
generate_image_from_prompt(...)
→ precisa apenas de textogenerate_image_with_entity(...)
→ inclui sua imagem de personagem ou referência personalizada- Resultados são salvos na pasta
out_images/