DALL-E API: geração de imagens programática
A API de imagens da OpenAI permite gerar, editar e criar variações de imagens via código Python. Isso abre possibilidades que o ChatGPT não oferece: geração em lote, integração em pipelines, e personalização total via parâmetros.
Modelos disponíveis
DALL-E 3 (dall-e-3): alta qualidade, máximo 1 imagem por request, excelente fidelidade ao prompt. gpt-image-1: modelo mais recente, suporta até 10 imagens simultâneas, aceita referências de imagem, melhor para workflows de produção.
Passo 1 — Geração básica com DALL-E 3
from openai import OpenAI
import base64
client = OpenAI()
response = client.images.generate(
model="dall-e-3",
prompt="A futuristic Brazilian city at sunset, São Paulo skyline with flying cars, cinematic photography",
size="1792x1024",
quality="hd",
n=1
)
print(response.data[0].url) # URL temporária (expira em 1h)
Passo 2 — Salvar imagem localmente
import requests
image_url = response.data[0].url
image_data = requests.get(image_url).content
with open("imagem_gerada.png", "wb") as f:
f.write(image_data)
Passo 3 — gpt-image-1 com base64
response = client.images.generate(
model="gpt-image-1",
prompt="Minimalist logo for a fintech startup, blue and white, clean vector style",
size="1024x1024",
quality="high",
n=1
)
import base64
image_bytes = base64.b64decode(response.data[0].b64_json)
with open("logo.png", "wb") as f:
f.write(image_bytes)
Passo 4 — Geração em lote com threading
from concurrent.futures import ThreadPoolExecutor
prompts = ["capa 1 ...", "capa 2 ...", "capa 3 ..."]
def gerar(prompt):
r = client.images.generate(model="gpt-image-1",prompt=prompt,size="1536x1024",quality="high",n=1)
return base64.b64decode(r.data[0].b64_json)
with ThreadPoolExecutor(max_workers=5) as ex:
imagens = list(ex.map(gerar, prompts))
Passo 5 — Edição de imagens (inpainting)
with open("original.png","rb") as img, open("mascara.png","rb") as mask:
response = client.images.edit(
image=img, mask=mask,
prompt="Replace the background with a tropical beach",
model="dall-e-2", size="1024x1024"
)
Controle de custos
DALL-E 3 HD 1792x1024: US$0,12 por imagem. gpt-image-1 high 1536x1024: US$0,19 por imagem. Para volume: use quality="standard" e salve no storage para evitar re-geração.
