Skip to Content
ModèlesGPT ImageInpainting

Inpainting

Délimitez une zone avec un masque et ne redessinez que cette zone ; tout le reste demeure inchangé.

Vous n’écrivez pas de code ? Consultez Générer des images dans vos propres outils.

POST/v1/images/editsParamètres communs

Avant de commencer

PrérequisDétails
Clé d’APICréez-en une dans la console OfoxAI  et remplacez YOUR_OFOX_API_KEY dans le code
EnvironnementcURL nécessite jq pour décoder l’image ; Python nécessite pip install openai, ainsi que pip install pillow pour générer le masque ; Node.js 18 ou version ultérieure, sans dépendance
ImagesPlacez un input.png et un mask.png de même taille dans le répertoire courant. Pas encore de masque ? L’étape 1 ci-dessous explique comment en créer un
Délai d’attenteRéglez le délai d’attente du client sur 600 secondes. La haute qualité, les grandes tailles ou l’édition peuvent prendre plusieurs minutes
Valeurs utilisées dans le code
URL de l'APIhttps://api.ofox.ai/v1
Identifiant de modèleopenai/gpt-image-2.5-flare
Clé d'APIRemplacez YOUR_OFOX_API_KEY dans le code par votre clé
Dépendances Pythonpip install openai pillowpillow sert à créer le masque

Exigences relatives au masque

Original
+
Masquecentre transparent, opaque ailleurs
→
Résultatseule la zone transparente est redessinée

Illustration, et non un résultat réellement généré

  • Un PNG avec canal alpha. Le JPEG et le PNG opaque ne fonctionnent pas.
  • Exactement la même taille que l’image d’origine.
  • Les pixels transparents sont redessinés ; les pixels opaques conservent l’original.
  • Ne fonctionne que sur l’endpoint d’édition. Envoyé au texte vers image, il est ignoré.

Étapes

Créer un masque

Ignorez cette étape si vous en avez déjà un.

Cet extrait lit input.png dans le répertoire courant, rend transparent le carré central de 40 % et l’enregistre sous mask.png.

make_mask.py
from PIL import Image, ImageDraw src = Image.open("input.png") mask = Image.new("RGBA", src.size, (0, 0, 0, 255)) # fully opaque = keep everything w, h = src.size ImageDraw.Draw(mask).rectangle( # transparent area = what gets repainted (int(w * 0.3), int(h * 0.3), int(w * 0.7), int(h * 0.7)), fill=(0, 0, 0, 0) ) mask.save("mask.png")

Envoyer la requête

Chacun des exemples ci-dessous a été exécuté tel quel. Le résultat est enregistré sous output.png dans le répertoire courant.

Terminal
# mask.png: same size as input.png, with an alpha channel; transparent area = what gets repainted curl -s https://api.ofox.ai/v1/images/edits \ -H "Authorization: Bearer YOUR_OFOX_API_KEY" \ -F "model=openai/gpt-image-2.5-flare" \ -F "image=@input.png" \ -F "mask=@mask.png" \ -F "prompt=An orange cat sitting in the center, background and everything else unchanged" \ -F "quality=low" \ -o response.json jq -r '.data[0].b64_json' response.json | base64 --decode > output.png

Rédiger la consigne

Décrivez l’image entière telle qu’elle doit apparaître après modification, et pas seulement ce qu’il faut ajouter.

ConsigneRésultat mesuré
✅Un chat roux assis au centre, l’arrière-plan et tout le reste inchangésUn chat au centre ; le reste inchangé
❌Dessinez un chat dans la zone transparenteLe modèle a interprété « transparente » comme un contenu et a dessiné un fond en damier

Résultat mesuré

En dehors du masque, l’image ne change pratiquement pas : l’écart moyen des pixels par rapport à l’original est inférieur à 2/255.

À titre de comparaison, la modification de la même image sans masque a changé cette même zone de 120/255.

Dépannage

SymptômeCauseSolution
Erreur Invalid image file or modeLe masque n’est pas un PNG avec canal alphaRégénérez-le avec le code de l’étape 1 ci-dessus
L’image entière a changéLe masque n’a eu aucun effet : il a été envoyé à l’endpoint de texte vers image, ou il est entièrement opaqueVérifiez que vous appelez /v1/images/edits et que le masque comporte une zone transparente
Un fond en damier est apparuLa consigne mentionnait « la zone transparente »Décrivez l’image entière, comme indiqué dans Rédiger la consigne

Pour les autres erreurs, consultez le tableau complet des erreurs.

Documentation officielle

La documentation d’OpenAI décrit le comportement lors d’un appel direct à OpenAI. Lorsque vous passez par OfoxAI, les résultats mesurés dans ces pages font foi. Par exemple, il n’est pas nécessaire d’épingler un fournisseur pour l’édition.

Last updated on