Vue d’ensemble
Crée une image modifiée ou prolongée à partir d’une image originale et d’un prompt. Cet endpoint prend en charge à la fois :- le flux de téléversement
multipart/form-datacompatible OpenAI documenté ci-dessous - les requêtes JSON qui fournissent
image_url,image_urlsou des références officiellesimagespour les familles image-to-image prises en charge
gpt-image-2 est pris en charge ici. Il accepte les uploads multipart image, JSON image_url / image_urls et les références officielles images[] (image_url ou file_id), jusqu’à 16 images source. Créez d’abord les file_id via /v1/files. Définissez async: true pour recevoir d’abord une tâche ; les modèles d’édition officiels FLUX/BFL utilisent le même flux de polling.Les éditions gpt-image-2 n’acceptent pas resolution ni background ; utilisez size pour les dimensions de sortie. Pour les éditions multi-image ou à forte latence, préférez async: true et interrogez ensuite la tâche retournée.Les requêtes Nano Banana avec image de référence (nano-banana, nano-banana-2 et nano-banana-pro) sont exposées sur /v1/images/generations avec operation: "image-to-image" et image_urls, pas sur cet endpoint /v1/images/edits.Les modèles d’édition d’image xAI Grok Imagine (grok-imagine-image, grok-imagine-image-quality et le legacy grok-imagine-image-pro) acceptent au maximum 3 images source. Les requêtes avec plus de 3 images source échouent à la validation d’entrée avec 400 too_many_images.input_fidelity ne fait pas partie du champs pris en charge actuel de TokenLab pour gpt-image-2 ; omettez-le, sinon la requête renvoie 400 unsupported_parameter.Corps de la requête
Timeout des requêtes synchrones : certaines requêtes image renvoient l’image finale inline et attendent la fin de la génération. Les requêtes haute résolution ou haute qualité peuvent prendre près d’une minute ou plus ; définissez donc le timeout de votre client HTTP à au moins120s. Si la réponse de création inclut status: "pending", task_id ou poll_url, suivez plutôt le poll_url renvoyé.
URLs d’image distantes : lorsqu’une entrée multipart est nécessaire, TokenLab récupère JSON image_url, image_urls ou images[].image_url et envoie les octets comme parties multipart image. Les URLs doivent être publiques en http/https, sans identifiants intégrés ni fragments, et ne doivent pas résoudre vers localhost, des plages IP privées ou réservées ; chaque redirection est revérifiée. Le contenu récupéré doit être une vraie image PNG, JPEG ou WebP. Limites : 50MB par image, 200MB au total pour les images récupérées par URL dans une requête, timeout de récupération 10s et jusqu’à 3 redirections.
Images source multipart. Répétez
image pour fournir plusieurs sources GPT Image. Les fichiers doivent être PNG, JPEG ou WebP, jusqu’à 16 images source et 50MB chacune. Les modèles d’édition xAI Grok Imagine utilisent les mêmes champs d’entrée, mais limitent les images source à 3.Description textuelle de la modification souhaitée.
Une image supplémentaire dont les zones entièrement transparentes indiquent où l’image doit être modifiée. Doit être un fichier PNG valide, inférieur à 50 Mo et avoir les mêmes dimensions que
image.Pour les requêtes JSON, mask peut aussi être un objet contenant exactement l’un des champs image_url ou file_id ; les valeurs file_id doivent provenir de /v1/files et rester liées à la même configuration d’édition d’image.Modèle à utiliser pour l’édition d’image. Utilisez
gpt-image-2 pour les éditions GPT Image, ou un autre modèle d’édition d’image actuel renvoyé par GET /v1/models?recommended_for=image.Nombre d’images à générer. Doit être compris entre 1 et 10.
Taille de l’image générée. Pour
gpt-image-2, utilisez auto ou WIDTHxHEIGHT ; les dimensions doivent être des multiples de 16, le bord le plus long ne doit pas dépasser 3840px, le ratio long/court doit être au plus 3:1, et le total de pixels doit être compris entre 655,360 et 8,294,400.Format dans lequel les images générées sont renvoyées. Doit être
url ou b64_json ; la valeur par défaut est url.Pour les requêtes gpt-image-2 Azure Official ou compatibles Azure, TokenLab reçoit les données d’image en b64_json. Pour les requêtes url, TokenLab téléverse chaque image vers le CDN et renvoie data[].url. Si le stockage CDN est indisponible ou si le téléversement échoue, la requête échoue au lieu d’être convertie en réponse Base64. Pour b64_json, le Base64 brut est renvoyé.Définissez sur
true avec gpt-image-2 ou les modèles d’édition officiels FLUX/BFL pour renvoyer une tâche avant que l’image finale soit prête. Les éditions asynchrones terminées renvoient des URL, quel que soit le response_format demandé ; utilisez des requêtes synchrones si vous avez besoin de b64_json.Identifiant unique représentant votre utilisateur final pour la surveillance des abus.
Réponse
Horodatage Unix de création des images.
Tableau des images générées.Chaque objet contient :
url(string) : URL de l’image modifiée (siresponse_formatvauturl)b64_json(string) : Image encodée en Base64 (siresponse_formatvautb64_json)
Réponse de tâche asynchrone
Définissezasync: true avec gpt-image-2 ou les modèles d’édition officiels FLUX/BFL pour créer une tâche au lieu d’attendre l’image modifiée dans la requête. La réponse contient status: "pending", task_id et poll_url. Interrogez /v1/tasks/{task_id} jusqu’à ce que la tâche passe à completed ou failed.
Les tâches d’édition asynchrones ne renvoient que les URL finales. Si vous avez besoin des données image brutes b64_json, utilisez une requête synchrone.
La création de la tâche peut réserver le montant estimé. Les tâches terminées sont facturées selon l’usage réel ; les tâches échouées ou expirées libèrent ou remboursent la réserve.
Notes
Les échecs de récupération d’images distantes sont renvoyés comme erreurs d’entrée avant le début de la génération. URL inaccessible, timeout, réponses 403/404, hôtes privés/internes, identifiants ou fragments dans l’URL, contenu non image, formats non pris en charge et dépassements de taille renvoient
400 ou 413 et indiquent l’entrée image_url / image_urls[n]. Pour des assets privés ou protégés par headers, téléversez directement des fichiers multipart image ou créez des références /v1/files.