curl --request POST \
--url https://api.evolink.ai/v1/images/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data @- <<EOF
{
"model": "gpt-image-2.6-sunburst",
"prompt": "Un magnifique coucher de soleil coloré sur l'océan"
}
EOF{
"created": 1757156493,
"id": "task-unified-1757156493-imcg5zqt",
"model": "gpt-image-2.6-sunburst",
"object": "image.generation.task",
"progress": 1,
"status": "processing",
"task_info": {
"can_cancel": true,
"estimated_time": 100
},
"type": "image",
"usage": {
"billing_rule": "per_1k_tokens",
"credits_reserved": 2.5,
"user_group": "default"
}
}{
"error": {
"code": "invalid_request",
"message": "Invalid request parameters",
"type": "invalid_request_error"
}
}{
"error": {
"code": "unauthorized",
"message": "Invalid or expired token",
"type": "authentication_error"
}
}{
"error": {
"code": "insufficient_quota",
"message": "Insufficient quota. Please top up your account.",
"type": "insufficient_quota"
}
}{
"error": {
"code": "model_access_denied",
"message": "Token does not have access to model: gpt-image-2.6-sunburst",
"type": "invalid_request_error"
}
}{
"error": {
"code": "rate_limit_exceeded",
"message": "Too many requests, please try again later",
"type": "rate_limit_error"
}
}{
"error": {
"code": "internal_error",
"message": "Internal server error",
"type": "api_error"
}
}GPT Image 2.6 Génération d'images
- GPT Image 2.6 (gpt-image-2.6-sunburst / gpt-image-2.6-flare) prend en charge le texte vers image, l’image vers image, l’édition d’images, l’édition guidée par annotations ainsi que la génération de GIF animés et de graphiques vectoriels SVG
- Traitement asynchrone : utilisez l’ID de tâche renvoyé pour consulter son état
- Les liens des images générées sont valables pendant 24 heures. Enregistrez les résultats dès que possible
curl --request POST \
--url https://api.evolink.ai/v1/images/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data @- <<EOF
{
"model": "gpt-image-2.6-sunburst",
"prompt": "Un magnifique coucher de soleil coloré sur l'océan"
}
EOF{
"created": 1757156493,
"id": "task-unified-1757156493-imcg5zqt",
"model": "gpt-image-2.6-sunburst",
"object": "image.generation.task",
"progress": 1,
"status": "processing",
"task_info": {
"can_cancel": true,
"estimated_time": 100
},
"type": "image",
"usage": {
"billing_rule": "per_1k_tokens",
"credits_reserved": 2.5,
"user_group": "default"
}
}{
"error": {
"code": "invalid_request",
"message": "Invalid request parameters",
"type": "invalid_request_error"
}
}{
"error": {
"code": "unauthorized",
"message": "Invalid or expired token",
"type": "authentication_error"
}
}{
"error": {
"code": "insufficient_quota",
"message": "Insufficient quota. Please top up your account.",
"type": "insufficient_quota"
}
}{
"error": {
"code": "model_access_denied",
"message": "Token does not have access to model: gpt-image-2.6-sunburst",
"type": "invalid_request_error"
}
}{
"error": {
"code": "rate_limit_exceeded",
"message": "Too many requests, please try again later",
"type": "rate_limit_error"
}
}{
"error": {
"code": "internal_error",
"message": "Internal server error",
"type": "api_error"
}
}Autorisations
Tous les endpoints nécessitent une authentification par jeton Bearer.
Obtenir une API Key :
Rendez-vous sur la page de gestion des API Keys pour obtenir votre API Key.
Ajoutez cet en-tête aux requêtes :
Authorization: Bearer YOUR_API_KEY
Corps
Nom du modèle de génération d'images, offrant une meilleure stabilité et un meilleur contrôle pour les usages commerciaux
| ID du modèle | Positionnement |
|---|---|
gpt-image-2.6-sunburst | Meilleur rendu des détails, adapté aux créations visuelles exigeantes |
gpt-image-2.6-flare | Génération plus rapide, adaptée aux itérations rapides |
Les deux modèles acceptent exactement les mêmes paramètres. À niveau quality identique, la consommation réelle de tokens peut légèrement varier ; référez-vous au usage renvoyé.
gpt-image-2.6-sunburst, gpt-image-2.6-flare "gpt-image-2.6-sunburst"
Invite décrivant l'image à générer ou la manière de modifier l'image d'entrée
Limites de longueur (les deux doivent être respectées) :
- Jusqu'à
32 000caractères (comptés en points de code Unicode) - Le texte de
promptlui-même ne doit pas dépasser60 000octets après encodage en UTF-8
Les caractères peuvent occuper un nombre différent d'octets en UTF-8. Fiez-vous au nombre réel d'octets après encodage.
Si l'une des limites est dépassée, raccourcissez l'invite avant de la renvoyer.
Recommandation : Si l'invite dépasse 8000 tokens, l'image générée peut ne pas correspondre aux attentes ; il est recommandé de raccourcir l'invite.
32000"Un magnifique coucher de soleil coloré sur l'océan"
Liste des images de référence pour l'image vers image et l'édition d'images. Accepte les URL publiques.
Remarques :
- Nombre d'images en entrée par requête :
1–16 - Taille de fichier par image : au maximum
50MB - Nombre de pixels par image : largeur × hauteur au maximum
178 956 970px - Longueur de chaque côté : largeur et hauteur au maximum
23170px ; des valeurs supérieures peuvent provoquer des problèmes - Formats pris en charge :
.jpeg,.jpg,.png,.webp - Lorsqu'une URL est utilisée, le serveur doit pouvoir accéder directement à l'image, ou le téléchargement doit commencer directement à l'ouverture de l'URL. Ces URL se terminent souvent par une extension d'image telle que
.pngou.jpg. - Pour l'image vers image et l'édition, les images de référence entraînent une consommation supplémentaire de tokens d'entrée image.
- Avec
markup_url, les annotations s'appliquent à la première image ; les autres servent de références. La largeur × hauteur de la première image ne doit pas dépasser16 777 216px. - Les images de référence ne sont pas prises en charge avec
output_format=svg.
[
"https://example.com/image1.png",
"https://example.com/image2.png"
]
URL du masque d'inpainting — marque la région de l'image de référence à régénérer. Valide uniquement en mode édition d'image (doit être combiné avec image_urls) ; en texte-vers-image pur, le masque est silencieusement ignoré.
Exigences de format :
- Doit être un PNG avec canal alpha : pixels transparents (
alpha < 255) = zones à régénérer, pixels opaques = préservés - Les dimensions du masque doivent correspondre exactement à celles de l'image de référence (largeur × hauteur en pixels)
- Un seul masque par requête
Remarque :
- Au moins une image de référence est requise dans
image_urls; un masque seul n'a aucun effet - Erreurs courantes :
Invalid mask image format - mask image missing alpha channel: l'image téléchargée n'a pas de canal alpha (JPEG, PNG opaque, etc.). Réexportez le masque en PNG avec des régions transparentes.Invalid mask image format - mask size does not match image size: les dimensions du masque ne correspondent pas à l'image de référence. Redimensionnez le masque aux mêmes dimensions en pixels que votre image de référence.
- Ne peut pas être combiné avec
markup_url.
"https://example.com/mask.png"
URL publique du calque d'annotations. Utilisez des cercles, des flèches ou des dessins pour indiquer les zones à modifier sur l'image de référence, et décrivez les changements dans prompt. Disponible uniquement en mode édition d'image (image_urls doit également être fourni).
Exigences de format :
- PNG contenant des pixels transparents obligatoire : dessinez uniquement les annotations et laissez le reste transparent. Ne dessinez pas directement sur l'image d'origine.
- Les dimensions doivent correspondre exactement à celles de la première image de référence (largeur × hauteur en pixels).
- La première image de référence et le calque d'annotations ne doivent pas dépasser
16 777 216px chacun. - Taille de fichier : au maximum
50MB
Remarques :
- Les annotations s'appliquent à la première image de
image_urls; les autres images servent de références. - Ne peut pas être combiné avec
mask_url. - Prend en charge l'édition d'images classiques et de GIF, mais pas de SVG.
- Peut aussi être fourni dans
model_params.markup_url. Si les deux valeurs sont présentes, celle de premier niveau est prioritaire. - Précisez également dans
promptce qui doit être conservé, par exemple « Laisse le reste inchangé et supprime le cercle rouge ».
"https://example.com/markup.png"
Dimensions de l'image générée, auto par défaut. Les images classiques et les images de référence SVG suivent les règles ci-dessous ; les GIF suivent les règles distinctes de la section ④.
① Images classiques / images de référence SVG : format ratio (15 possibilités)
1:1: carré1:2/2:1: très vertical / très horizontal1:3/3:1: extrêmement vertical / horizontal (limite de 3:1)2:3/3:2: portrait / paysage standard3:4/4:3: portrait / paysage classique4:5/5:4: formats courants pour les réseaux sociaux9:16/16:9: écran large mobile / ordinateur9:21/21:9: écran ultra-large
② Images classiques / images de référence SVG : dimensions explicites en pixels : WxH (ou W×H), par exemple 1024x1024, 1536x1024, 3840×2160
- La largeur et la hauteur doivent être des multiples de
16. - Plage de chaque côté :
[16, 3840] - Budget de pixels :
655 360 ≤ width × height ≤ 8 294 400(environ 0,65 MP à 8,29 MP) - Ratio :
≤ 3:1
③ Images classiques / images de référence SVG : auto : le modèle détermine automatiquement les dimensions (resolution n'a alors aucun effet).
④ Sortie GIF : size désigne les dimensions de chaque frame. Seuls auto et les dimensions explicites en pixels sont acceptés, pas les ratios.
- Avec
auto, chaque frame mesure512×512. - La largeur et la hauteur explicites de chaque frame doivent être des multiples positifs de
16. - La limite minimale de
655 360pixels des images classiques ne s'applique pas aux frames GIF individuelles. Par exemple,512x512est valide. - L'image composée de toutes les frames doit respecter les limites de longueur des côtés, de nombre total de pixels et de ratio. Consultez
model_params.frame_countpour les dispositions et les limites par frame. resolutionn'a aucun effet.
En cas de dépassement :
- Si la combinaison du ratio et de
resolutiondépasse le budget d'une image classique / de référence SVG, elle est réduite proportionnellement jusqu'à la limite (par exemple, 4K 2:1 → 3840×1920). - Des dimensions explicites de frame GIF dépassant les limites entraînent directement HTTP 400, sans réduction automatique.
"auto"
Paramètre rapide de palier de résolution. Effectif uniquement lorsque size est au format ratio ; ignoré pour les dimensions explicites en pixels et les sorties GIF.
Règles de budget pixel (les dimensions sont calculées à partir du nombre total de pixels cible et du ratio size, alignées sur des multiples de 16) :
1K: ~1 MP (1024² = 1 048 576 pixels)2K: ~4 MP (2048² = 4 194 304 pixels)4K: ~8,29 MP (3840×2160 = 8 294 400 pixels, le maximum)
Dimensions de sortie paysage / carré (les dimensions portrait correspondent au paysage avec largeur/hauteur inversées, par exemple 2:3 = 3:2 inversé) :
| Ratio | 1K | 2K | 4K |
|---|---|---|---|
1:1 | 1024×1024 | 2048×2048 | 2880×2880 |
2:1 | 1456×720 | 2896×1456 | 3840×1920 * |
3:1 | 1776×592 | 3552×1184 | 3840×1280 * |
3:2 | 1248×832 | 2512×1680 | 3520×2352 |
4:3 | 1184×880 | 2368×1776 | 3312×2480 * |
5:4 | 1152×912 | 2288×1824 | 3216×2576 |
16:9 | 1360×768 | 2736×1536 | 3840×2160 (UHD) |
21:9 | 1568×672 | 3136×1344 | 3840×1648 * |
* Indique les combinaisons automatiquement réduites pour respecter le budget de pixels. Les valeurs sont insensibles à la casse.
1K, 2K, 4K "1K"
Qualité du rendu, qui influence directement le nombre de tokens de sortie et le coût. Valeur par défaut : medium.
| Valeur | Tokens de sortie (1024²) | Coût relatif de la sortie image (1024²) |
|---|---|---|
low | 824 | ~0,57× |
medium | 1 449 | 1,0× |
high | 1 756 | ~1,21× |
xhigh | 3 122 | ~2,15× |
max | 7 024 | ~4,85× |
Remarques :
- Le tableau compare uniquement les coûts de sortie image, sans les coûts d'entrée ni ceux du modèle auteur SVG.
- Ces valeurs sont calculées pour
1024×1024. Le nombre de tokens de sortie varie selon le nombre total de pixels et le ratio. Référez-vous auusagerenvoyé. - Pour un GIF, le calcul porte sur l'image composée de toutes les frames ; pour un SVG, ce paramètre s'applique à l'image de référence.
- Utilisez
lowpour les brouillons rapides. Pour le résultat final, comparez plusieurs niveaux afin d'équilibrer détails, durée et coût.
low, medium, high, xhigh, max "medium"
Profondeur de planification avant la génération de l'image, indépendante de quality. Valeur par défaut : high.
low: adapté aux modifications locales, comme changer un arrière-plan ou le texte d'une enseignemedium: équilibréhigh: adapté aux images riches en texte, aux mises en page complexes ou aux relations complexes entre objets
Remarques :
- Les niveaux élevés prennent plus de temps et peuvent introduire des modifications indésirables. Comparez les résultats selon la tâche.
- Modifier
complexityn'entraîne pas de facturation supplémentaire. - Pour un SVG, ce paramètre s'applique à l'image de référence.
- Peut aussi être fourni dans
model_params.complexity. Si les deux valeurs sont présentes, celle de premier niveau est prioritaire.
low, medium, high "high"
Canal d'arrière-plan de l'image de sortie, opaque par défaut.
opaque: arrière-plan opaque, sans canal alphatransparent: conserve le canal alpha
Remarques :
transparentest actuellement une fonctionnalité en Preview ; les résultats peuvent être instables.- Avec
transparent,output_formatdoit êtrepngouwebp. - Avec
output_format=gifousvg, seulopaqueest accepté.
opaque, transparent "opaque"
Format du fichier de sortie, png par défaut.
png: sans perte, prend en charge les arrière-plans transparentsjpeg: compression avec perte pour réduire la taille du fichierwebp: compromis entre taille et qualité, avec prise en charge de la transparencegif: GIF animé ; le nombre de frames et leur durée se définissent dansmodel_paramssvg: graphique vectoriel SVG, adapté aux logos, icônes et autres formes nécessitant une mise à l'échelle sans perte
Remarques :
- Avec
background=transparent, seulspngetwebpsont acceptés. gifprend en charge le texte vers image et l'édition d'images.- Pour
gifetsvg,ndoit être égal à1. svgprend uniquement en charge le texte vers image.- Pour un SVG, le modèle d'image génère d'abord une image de référence, puis le modèle auteur (
model_params.svg_model) la convertit en graphique vectoriel. Les tokens consommés par ce dernier sont facturés séparément selon le modèle choisi.
png, jpeg, webp, gif, svg "png"
Nombre d'images à générer. Chaque image est facturée séparément.
Remarques :
- Les tokens d'entrée texte augmentent proportionnellement à
n. - La prise en charge de
n > 1est actuellement peu fiable : même avec une valeur supérieure à 1, une seule image peut être renvoyée. Le nombre réel est celui deresultset la facturation repose sur leusagerenvoyé. Pour obtenir plusieurs images, il est recommandé d'envoyer plusieurs requêtes d'une seule image. - Avec
output_format=gifousvg, seule la valeur1est acceptée.
1 <= x <= 101
Paramètres supplémentaires du modèle. Les paramètres des frames GIF et du modèle auteur SVG doivent être placés dans cet objet.
frame_countetframe_duration_mssont réservés àoutput_format=gif.svg_modeletsvg_reasoning_effortsont réservés àoutput_format=svg.- Si les paramètres supplémentaires ne correspondent pas au format de sortie, HTTP 400 est renvoyé ; ils ne sont pas ignorés silencieusement.
Show child attributes
Show child attributes
Adresse de rappel HTTPS après l'achèvement de la tâche
Moment du rappel :
- Déclenché lorsque la tâche est terminée, échouée ou annulée
- Envoyé après confirmation de la facturation
Restrictions de sécurité :
- Seul le protocole HTTPS est pris en charge
- Les rappels vers les adresses IP internes sont interdits (127.0.0.1, 10.x.x.x, 172.16-31.x.x, 192.168.x.x, etc.)
- La longueur de l'URL ne doit pas dépasser
2048caractères
Mécanisme de rappel :
- Délai d'expiration :
10secondes - Maximum
3tentatives en cas d'échec (tentatives après1seconde/2secondes/4secondes) - Le format du corps de réponse du rappel est cohérent avec le format de réponse de l'API de requête de tâche
- Un code de statut 2xx renvoyé par l'adresse de rappel est considéré comme un succès, les autres codes de statut déclenchent une nouvelle tentative
"https://your-domain.com/webhooks/image-task-completed"
Réponse
Tâche d'image créée avec succès
Horodatage de création de la tâche
1757156493
ID de tâche
"task-unified-1757156493-imcg5zqt"
Nom du modèle réellement utilisé
"gpt-image-2.6-sunburst"
Type spécifique de tâche
image.generation.task Pourcentage de progression de la tâche (0-100)
0 <= x <= 1001
État de la tâche. Les tâches en attente et en cours de génération sont toutes renvoyées avec processing ; l’état final est completed ou failed.
processing, completed, failed "processing"
Informations sur la tâche asynchrone
Show child attributes
Show child attributes
Type de sortie de la tâche
text, image, audio, video "image"
Informations d'utilisation et de facturation
Show child attributes
Show child attributes