Images

Retouche et images de référence

Donnez des images à un modèle comme point de départ : modifiez une photo, placez un produit dans une nouvelle scène, gardez le même personnage d’une image à l’autre ou fusionnez plusieurs images en une seule.

Deux façons d’envoyer des images

EndpointEntréesIdéal pour
POST /v1/images/editsLe formulaire multipart d’OpenAI (fichiers image), ou du JSONLes SDK d’OpenAI : client.images.edit(...)
POST /v1/images/generationsDu JSON avec une liste imagesTout client HTTP ; images sous forme de liens ou d’URL de données

Les deux acceptent les mêmes modèles et tailles, aux mêmes tarifs que la génération. Une modification coûte le même prix qu’une nouvelle image de cette taille.

Nombre d’images accepté par chaque modèle

ModèleIDTailles et prixImages de référence
Nano Banana 2.1nano-banana-2.11K $0.03 · 2K $0.04 · 4K $0.06jusqu’à 14
Nano Banana Pronano-banana-pro1K et 2K $0.035 · 4K $0.065jusqu’à 14
Nano Banana 2nano-banana-21K $0.025 · 2K $0.034 · 4K $0.058jusqu’à 14
Nano Banana 2 Litenano-banana-2-lite1K $0.016jusqu’à 14
GPT Image 2.5 Flaregpt-image-2.5-flare1K $0.028 · 2K $0.034 · 4K $0.045jusqu’à 16
GPT Image 2.5 Sunburstgpt-image-2.5-sunburst1K $0.026 · 2K $0.034 · 4K $0.045jusqu’à 16
GPT Image 2gpt-image-2$0.02 par imagejusqu’à 16
Grok Imagine Image 2.0grok-imagine-image-2.01K $0.045 · 2K $0.06jusqu’à 3
FLUX 3 Imageflux-3-image1K $0.04 · 2K $0.05 · 4K $0.09jusqu’à 1

Avec les SDK d’OpenAI

import os
from openai import OpenAI
client = OpenAI(base_url="https://api.zurelay.com/v1", api_key=os.environ["ZURELAY_API_KEY"])
result = client.images.edit(
model="gpt-image-2",
image=[open("product.png", "rb"), open("background.jpg", "rb")],
prompt="Put the bottle from the first image on the marble counter in the second. Keep its label exactly.",
)
print(result.data[0].url)

En JSON

Sur les deux endpoints, indiquez les images dans images sous forme de liens ou d’URL de données (image fonctionne aussi pour une seule image) :

import os
import requests
response = requests.post(
"https://api.zurelay.com/v1/images/generations",
headers={"Authorization": f"Bearer {os.environ['ZURELAY_API_KEY']}"},
json={
"model": "nano-banana-pro",
"prompt": "Make the jacket in the first image deep green, and give the model the pose from the second.",
"images": [
"https://example.com/model.jpg",
"data:image/png;base64,iVBORw0KGgo..."
],
"size": "2K",
"aspect_ratio": "4:5"
},
)
response.raise_for_status()
print(response.json())

Règles pour les images d’entrée

  • PNG, JPEG ou WebP, jusqu’à 20 MB par image.
  • Les liens doivent être des URL https publiques ; nous téléchargeons les images nous-mêmes. Si une image ne peut pas être téléchargée, la requête est refusée avec invalid_image avant toute génération.
  • Désignez les images par leur ordre dans le prompt : “la première image”, “la deuxième image”.
  • Les masques ne sont pas pris en charge. Décrivez plutôt la modification (“remplacez uniquement le ciel”) ; ces modèles ne modifient que ce que vous indiquez.
  • Si vous dépassez une limite du modèle, la requête est refusée avec une erreur claire précisant cette limite.

À essayer

ObjectifExemple de prompt
Modifier un seul élément“Passez la voiture en noir mat. Gardez tout le reste à l’identique.”
Changer le fond“Placez la personne de l’image sur une plage au coucher du soleil, en adaptant l’éclairage.”
Intégrer un produit dans une scène“Placez le produit de la première image sur l’étagère de la seconde.”
Même personnage, nouvelle prise de vue“La même femme que sur les images de référence, cette fois à vélo dans Paris.”
Transfert de style“Redessinez la première image dans le style de la seconde.”
Combiner plusieurs images“Une photo de groupe des six personnes présentes dans les images, debout sur un escalier.”

Une question ou un élément manquant ? Contactez notre équipe d’assistance et nous vous répondrons par e-mail, généralement en moins d’une minute.