Endpoint /v1/images/edits : modifier vos images
L’édition d’images avec l’API Grok
Au-delà de la génération, l’API xAI propose un endpoint dédié à l’édition d’images existantes : POST /v1/images/edits. Cet endpoint vous permet de modifier, transformer ou enrichir des images en décrivant les changements souhaités par un simple prompt textuel.
Structure d’une requête d’édition
La requête d’édition utilise un format JSON avec le modèle, un prompt décrivant la modification et l’image source :
import requests
import os
headers = {
"Authorization": f"Bearer {os.getenv('XAI_API_KEY')}",
"Content-Type": "application/json"
}
payload = {
"model": "grok-imagine-image",
"prompt": "Ajoutez un chapeau rouge au personnage",
"image": {
"url": "https://exemple.com/photo-personnage.jpg"
}
}
response = requests.post(
"https://api.x.ai/v1/images/edits",
headers=headers,
json=payload
)
result = response.json()
edited_url = result["data"][0]["url"]
Pourquoi utiliser requests au lieu du SDK OpenAI ?
L’endpoint d’édition xAI utilise un format JSON, tandis que la méthode images.edit() du SDK OpenAI envoie les données en multipart/form-data. Cette incompatibilité de content-type signifie que vous devez utiliser directement l’API REST avec la bibliothèque requests pour les éditions.
# NE FONCTIONNE PAS avec l'API xAI
# client.images.edit(...) # Envoie en multipart, pas en JSON
# FONCTIONNE : appel REST direct
requests.post(
"https://api.x.ai/v1/images/edits",
headers=headers,
json=payload
)
Paramètres de l’endpoint d’édition
model(obligatoire) :grok-imagine-imageougrok-imagine-image-proprompt(obligatoire) : description de la modification à apporterimage: objet contenant l’URL d’une seule image sourceimages: tableau d’objets pour plusieurs images sources (mutuellement exclusif avecimage)mask: objet contenant l’URL du masque de zone à éditern: nombre de variantes à générer (1 à 10)response_format:urloub64_json
Types de modifications possibles
L’édition d’images permet de nombreuses transformations :
- Ajout d’éléments : “Ajoutez des lunettes de soleil au personnage”
- Suppression : “Retirez l’arrière-plan et remplacez-le par un fond blanc”
- Transformation de style : “Convertissez cette photo en illustration aquarelle”
- Modification d’ambiance : “Changez la scène du jour à la nuit”
- Correction : “Améliorez l’éclairage et augmentez le contraste”
# Exemple : changer le style d'une image
payload = {
"model": "grok-imagine-image",
"prompt": "Transformez cette photo en une illustration style bande dessinée franco-belge",
"image": {
"url": "https://exemple.com/photo-ville.jpg"
}
}
Mise en pratique
Essayez d’éditer une image en plusieurs étapes. Commencez par une modification simple, puis affinez :
# Étape 1 : modifier l'arrière-plan
payload_step1 = {
"model": "grok-imagine-image",
"prompt": "Remplacez l'arrière-plan par un coucher de soleil sur la mer",
"image": {"url": "https://exemple.com/portrait.jpg"}
}
Points clés à retenir
- L’endpoint d’édition est
POST /v1/images/edits - Utilisez
requestsen Python, pas le SDK OpenAI (incompatibilité de format) - Vous pouvez fournir jusqu’à 5 images sources par requête
- Le prompt décrit la modification souhaitée en langage naturel
- Les deux modèles (standard et pro) sont disponibles pour l’édition