> ## Documentation Index
> Fetch the complete documentation index at: https://evolink.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# GPT Image 2 Génération d'images

> - Le modèle GPT Image 2 (gpt-image-2) prend en charge les modes texte-vers-image, image-vers-image, édition d'image et autres modes de génération
- Mode de traitement asynchrone, utilisez l'ID de tâche retourné pour [interroger](/fr/api-manual/task-management/get-task-detail)
- Les liens d'image générés sont valides pendant 24 heures, veuillez les enregistrer rapidement



## OpenAPI

````yaml fr/api-manual/image-series/gpt-image-2/gpt-image-2-image-generation.json POST /v1/images/generations
openapi: 3.1.0
info:
  title: API gpt-image-2
  description: >-
    Créer des tâches d'images en utilisant des modèles IA avec prise en charge
    de plusieurs modèles et configurations de paramètres
  license:
    name: MIT
  version: 1.0.0
servers:
  - url: https://api.evolink.ai
    description: Production
security:
  - bearerAuth: []
tags:
  - name: Génération d'image
    description: API liées à la génération d'images par IA
paths:
  /v1/images/generations:
    post:
      tags:
        - Génération d'image
      summary: API gpt-image-2
      description: >-
        - Le modèle GPT Image 2 (gpt-image-2) prend en charge les modes
        texte-vers-image, image-vers-image, édition d'image et autres modes de
        génération

        - Mode de traitement asynchrone, utilisez l'ID de tâche retourné pour
        [interroger](/fr/api-manual/task-management/get-task-detail)

        - Les liens d'image générés sont valides pendant 24 heures, veuillez les
        enregistrer rapidement
      operationId: createImageGenerationGptImage2
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ImageGenerationRequest'
            examples:
              text_to_image:
                summary: Texte vers image (simple)
                value:
                  model: gpt-image-2
                  prompt: Un magnifique coucher de soleil coloré sur l'océan
              text_to_image_hd:
                summary: Texte vers image (HD 16:9)
                value:
                  model: gpt-image-2
                  prompt: >-
                    Plan large cinématographique d'une skyline urbaine futuriste
                    au crépuscule
                  size: '16:9'
                  resolution: 4K
                  quality: high
                  'n': 1
              text_to_image_pixel:
                summary: Texte vers image (pixels explicites)
                value:
                  model: gpt-image-2
                  prompt: Design de logo minimaliste
                  size: 1024x1024
                  quality: medium
              image_edit:
                summary: Image vers image / Édition
                value:
                  model: gpt-image-2
                  prompt: Ajoute un mignon chat à côté d'elle
                  size: '1:1'
                  resolution: 1K
                  quality: medium
                  image_urls:
                    - https://example.com/input.png
                  callback_url: https://your-domain.com/webhook/image-done
              image_inpaint:
                summary: Inpainting (avec masque)
                value:
                  model: gpt-image-2
                  prompt: Remplacez le ciel par un ciel étoilé
                  size: '1:1'
                  resolution: 1K
                  quality: medium
                  image_urls:
                    - https://example.com/input.png
                  mask_url: https://example.com/mask.png
              batch_generation:
                summary: Génération par lot
                value:
                  model: gpt-image-2
                  prompt: Un robot mignon style pixel art
                  size: '1:1'
                  resolution: 2K
                  quality: high
                  'n': 4
      responses:
        '200':
          description: Tâche d'image créée avec succès
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ImageGenerationResponse'
        '400':
          description: Paramètres de requête invalides
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: invalid_request
                  message: Invalid request parameters
                  type: invalid_request_error
        '401':
          description: Non authentifié, jeton invalide ou expiré
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: unauthorized
                  message: Invalid or expired token
                  type: authentication_error
        '402':
          description: Quota insuffisant, recharge requise
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: insufficient_quota
                  message: Insufficient quota. Please top up your account.
                  type: insufficient_quota
        '403':
          description: Accès refusé
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: model_access_denied
                  message: 'Token does not have access to model: gpt-image-2'
                  type: invalid_request_error
        '429':
          description: Limite de taux dépassée
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: rate_limit_exceeded
                  message: Too many requests, please try again later
                  type: rate_limit_error
        '500':
          description: Erreur interne du serveur
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: internal_error
                  message: Internal server error
                  type: api_error
components:
  schemas:
    ImageGenerationRequest:
      type: object
      required:
        - model
        - prompt
      properties:
        model:
          type: string
          description: >-
            Nom du modèle de génération d'image, canal officiel, meilleure
            stabilité et contrôlabilité, adapté aux scénarios commerciaux
          enum:
            - gpt-image-2
          default: gpt-image-2
          example: gpt-image-2
        prompt:
          type: string
          description: >-
            Invite décrivant l'image à générer, ou décrivant comment éditer
            l'image d'entrée


            **Limites :**

            - Jusqu'à `32000` caractères (comptés en points de code Unicode,
            valable pour CJK et autres langues)

            - Si l'invite dépasse `8000` tokens, l'image générée peut ne pas
            correspondre aux attentes ; il est recommandé de réduire l'invite
          example: Un magnifique coucher de soleil coloré sur l'océan
          maxLength: 32000
        image_urls:
          type: array
          description: >-
            Liste d'URL d'images de référence pour les fonctions image vers
            image et édition d'image


            **Remarque :**

            - Nombre d'images d'entrée par requête : `1~16`

            - Taille d'une seule image : ne dépassant pas `50MB`

            - Pixels d'une seule image : largeur × hauteur ne dépassant pas `178
            956 970` px

            - Longueur de côté d'une seule image : largeur / hauteur chacune ne
            dépassant pas `23170` px ; au-delà, des anomalies peuvent survenir

            - Formats de fichiers pris en charge : `.jpeg`, `.jpg`, `.png`,
            `.webp`

            - Les URL d'images doivent être directement accessibles par le
            serveur, ou l'URL de l'image doit déclencher un téléchargement
            direct lors de l'accès (généralement ces URL se terminent par des
            extensions de fichiers image, telles que `.png`, `.jpg`)

            - Dans les scénarios image vers image / édition d'image, les images
            de référence fournies entraînent une consommation supplémentaire de
            tokens d'entrée d'image
          items:
            type: string
            format: uri
          example:
            - https://example.com/image1.png
            - https://example.com/image2.png
        mask_url:
          type: string
          format: uri
          description: >-
            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.
          example: https://example.com/mask.png
        size:
          type: string
          description: >-
            Taille de l'image générée. Prend en charge à la fois le **format de
            ratio** et le **format de pixels explicite**, par défaut `auto`


            **① Format de ratio (recommandé, 15 options)**


            - `1:1` : Carré

            - `1:2` / `2:1` : Portrait / paysage extrême

            - `1:3` / `3:1` : Ultra portrait / paysage (limite 3:1)

            - `2:3` / `3:2` : Portrait / paysage standard

            - `3:4` / `4:3` : Portrait / paysage classique

            - `4:5` / `5:4` : Courant sur les réseaux sociaux

            - `9:16` / `16:9` : Écran large mobile / bureau

            - `9:21` / `21:9` : Ultra-large


            **② Format de pixels explicite** : `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)

            - Rapport d'aspect : `≤ 3:1`


            **③ `auto`** : Le modèle détermine la taille automatiquement (dans
            ce cas `resolution` ne s'applique pas)


            **Gestion des dépassements :**

            - Si une combinaison ratio + `resolution` dépasse le budget de
            pixels, les dimensions sont automatiquement réduites
            proportionnellement au maximum (par ex. 4K 2:1 → 3840×1920)
          default: auto
          example: auto
        resolution:
          type: string
          description: >-
            Paramètre rapide de palier de résolution, effectif uniquement
            lorsque `size` est au format ratio ; ignoré en format pixels
            explicite


            **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×1632 \* |


            \* Indique les combinaisons automatiquement réduites pour respecter
            le budget de pixels. Les valeurs sont insensibles à la casse.
          enum:
            - 1K
            - 2K
            - 4K
          default: 1K
          example: 1K
        quality:
          type: string
          description: >-
            Qualité de rendu, contrôle la "profondeur de raisonnement" du
            modèle, affecte directement le nombre de tokens de sortie et le
            coût. Par défaut `medium`


            | Valeur | Base de tuiles | Coût relatif (1024²) |

            |---|---|---|

            | `low` | 16 | ~0,11× |

            | `medium` | 48 | 1,0× |

            | `high` | 96 | ~4,0× |
          enum:
            - low
            - medium
            - high
          default: medium
          example: medium
        'n':
          type: integer
          description: |-
            Nombre d'images à générer, chacune facturée indépendamment

            **Remarque :**
            - Les tokens d'entrée texte augmentent proportionnellement à `n`
          minimum: 1
          maximum: 10
          default: 1
          example: 1
        callback_url:
          type: string
          description: >-
            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 `2048` caractères


            **Mécanisme de rappel :**

            - Délai d'expiration : `10` secondes

            - Maximum `3` tentatives en cas d'échec (tentatives après `1`
            seconde/`2` secondes/`4` secondes)

            - 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
          format: uri
          example: https://your-domain.com/webhooks/image-task-completed
    ImageGenerationResponse:
      type: object
      properties:
        created:
          type: integer
          description: Horodatage de création de la tâche
          example: 1757156493
        id:
          type: string
          description: ID de tâche
          example: task-unified-1757156493-imcg5zqt
        model:
          type: string
          description: Nom du modèle réellement utilisé
          example: gpt-image-2
        object:
          type: string
          enum:
            - image.generation.task
          description: Type spécifique de tâche
        progress:
          type: integer
          description: Pourcentage de progression de la tâche (0-100)
          minimum: 0
          maximum: 100
          example: 0
        status:
          type: string
          description: Statut de la tâche
          enum:
            - pending
            - processing
            - completed
            - failed
          example: pending
        task_info:
          $ref: '#/components/schemas/TaskInfo'
          description: Informations sur la tâche asynchrone
        type:
          type: string
          enum:
            - text
            - image
            - audio
            - video
          description: Type de sortie de la tâche
          example: image
        usage:
          $ref: '#/components/schemas/Usage'
          description: Informations d'utilisation et de facturation
    ErrorResponse:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              description: Identifiant de code d'erreur
            message:
              type: string
              description: Description de l'erreur
            type:
              type: string
              description: Type d'erreur
    TaskInfo:
      type: object
      properties:
        can_cancel:
          type: boolean
          description: Si la tâche peut être annulée
          example: true
        estimated_time:
          type: integer
          description: Temps estimé d'achèvement (secondes)
          minimum: 0
          example: 100
    Usage:
      type: object
      description: Informations d'utilisation et de facturation
      properties:
        billing_rule:
          type: string
          description: Règle de facturation
          enum:
            - per_call
            - per_token
            - per_second
          example: per_call
        credits_reserved:
          type: number
          description: Crédits estimés consommés
          minimum: 0
          example: 2.5
        user_group:
          type: string
          description: Catégorie de groupe d'utilisateurs
          example: default
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        ##Toutes les API nécessitent une authentification Bearer Token##


        **Obtenir une clé API :**


        Visitez la [Page de gestion des clés
        API](https://evolink.ai/dashboard/keys) pour obtenir votre clé API


        **Ajouter à l'en-tête de requête :**

        ```

        Authorization: Bearer YOUR_API_KEY

        ```

````