> ## 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.

# Midjourney V8.2 Édition de canevas

> - Repositionne l'image d'une tâche existante sur le canevas et remplit les zones vides avec l'IA
- Adapté à l'ajustement de la composition, l'extension de scènes (outpaint), la repeinture, etc.
- Remarque : les tâches dérivées d'images V8.2 (variation / remix / édition) sont rendues côté fournisseur par le moteur V7 (documenté par le canal fournisseur) ; le résultat peut différer légèrement en style de l'image source. La facturation reste inchangée
- Mode de traitement asynchrone, utilisez l'ID de tâche retourné pour [effectuer une requête](/fr/api-manual/task-management/get-task-detail)

<Note>
  Midjourney dispose d’un système de modération de contenu intégré. Chaque image est modérée individuellement : les images filtrées n’apparaissent pas dans les résultats et les autres images sont livrées normalement, vous pouvez donc recevoir moins d’images que d’habitude. Si au moins une image est validée, la tâche est `completed` et facturée normalement ; si toutes les images sont filtrées, la tâche se termine en `failed` et les crédits réservés sont intégralement remboursés. Veuillez vous assurer que vos prompts et vos images de référence respectent les directives de contenu.
</Note>


## OpenAPI

````yaml fr/api-manual/image-series/midjourney/mj-v8-2-edit.json POST /v1/images/generations
openapi: 3.1.0
info:
  title: Interface mj-v8.2-edit
  description: Interface d'édition de canevas Midjourney V8.2
  license:
    name: MIT
  version: 1.0.0
servers:
  - url: https://api.evolink.ai
    description: Production
security:
  - bearerAuth: []
tags:
  - name: Génération d'images
    description: Points de terminaison de génération d'images par IA
paths:
  /v1/images/generations:
    post:
      tags:
        - Génération d'images
      summary: Interface mj-v8.2-edit
      description: >-
        - Repositionne l'image d'une tâche existante sur le canevas et remplit
        les zones vides avec l'IA

        - Adapté à l'ajustement de la composition, l'extension de scènes
        (outpaint), la repeinture, etc.

        - Remarque : les tâches dérivées d'images V8.2 (variation / remix /
        édition) sont rendues côté fournisseur par le moteur V7 (documenté par
        le canal fournisseur) ; le résultat peut différer légèrement en style de
        l'image source. La facturation reste inchangée

        - Mode de traitement asynchrone, utilisez l'ID de tâche retourné pour
        [effectuer une requête](/fr/api-manual/task-management/get-task-detail)
      operationId: createImageGeneration
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ImageGenerationRequest'
            examples:
              edit_example:
                summary: Édition de canevas
                value:
                  model: mj-v8.2-edit
                  prompt: Beautiful mountain scenery background
                  model_params:
                    task_id: task-unified-xxx
                    image_number: 0
                    canvas:
                      width: 1024
                      height: 1024
                    img_pos:
                      width: 512
                      height: 512
                      x: 256
                      'y': 256
                    speed: fast
      responses:
        '200':
          description: Tâche de génération d'images 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é, token 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, veuillez recharger
          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: mj-v8.2-edit'
                  type: invalid_request_error
        '429':
          description: Limite de débit 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
        - model_params
      properties:
        model:
          type: string
          description: Nom du modèle
          enum:
            - mj-v8.2-edit
          default: mj-v8.2-edit
          example: mj-v8.2-edit
        prompt:
          type: string
          description: Décrit le contenu de remplissage souhaité
          maxLength: 8100
          example: Beautiful mountain scenery background
        model_params:
          type: object
          description: Paramètres d'édition de canevas
          required:
            - task_id
            - canvas
            - img_pos
          properties:
            task_id:
              type: string
              description: >-
                ID de la tâche source, doit être une tâche mj-v8.2 terminée
                (génération d'images, variation, remix ou édition) appartenant à
                l'utilisateur actuel
              example: task-unified-xxx
            image_number:
              type: integer
              description: >-
                Sélectionne quelle image de la tâche source : 0-3 pour une tâche
                source fast, 0-23 pour une tâche source draft
              default: 0
              example: 0
              minimum: 0
              maximum: 23
            canvas:
              type: object
              description: >-
                Taille du canevas. Le rapport d'aspect du canevas (width/height)
                DOIT correspondre au rapport d'aspect de l'image de la tâche
                source, sinon la tâche échoue (status: failed, erreur
                d'exécution).
              required:
                - width
                - height
              properties:
                width:
                  type: integer
                  description: Largeur du canevas
                  example: 1024
                height:
                  type: integer
                  description: Hauteur du canevas
                  example: 1024
            img_pos:
              type: object
              description: >-
                Position et taille de l'image dans le canevas. L'image remplit
                le canevas (W/H de l'image = W/H du canevas) =
                édition/repeinture pure ; image plus petite que le canevas =
                outpaint (la zone vide environnante est générée à partir du
                prompt).
              required:
                - width
                - height
                - x
                - 'y'
              properties:
                width:
                  type: integer
                  description: Largeur de rendu
                  example: 512
                height:
                  type: integer
                  description: Hauteur de rendu
                  example: 512
                x:
                  type: integer
                  description: Décalage horizontal du coin supérieur gauche
                  example: 256
                'y':
                  type: integer
                  description: Décalage vertical du coin supérieur gauche
                  example: 256
            mask:
              type: object
              description: >-
                Région masquée optionnelle à repeindre au sein de l'image placée
                (coordonnées de polygone ou image de masque)


                **Méthode 1 - Coordonnées de polygone :**

                ```json

                { "areas": [{ "width": 100, "height": 100, "points": [10, 10,
                10, 100, 100, 100, 100, 10] }] }

                ```


                **Méthode 2 - Image de masque (noir et blanc, blanc = repeindre
                ; même taille que l'image source ; URL ou data URI Base64) :**

                ```json

                { "url":
                "https://cdn.evolink.ai/model-cards/midjourney-v8-2/midjourney-v8-2-og-v1.jpg"
                }

                ```


                (L'URL ci-dessus est un exemple de substitution : remplacez-la
                par votre propre image de masque en noir et blanc.)
              properties:
                areas:
                  type: array
                  description: Liste des régions polygonales
                  items:
                    type: object
                    properties:
                      width:
                        type: integer
                        description: >-
                          Largeur de référence en pixels de l’image source
                          (espace de coordonnées de `points`)
                      height:
                        type: integer
                        description: >-
                          Hauteur de référence en pixels de l’image source
                          (espace de coordonnées de `points`)
                      points:
                        type: array
                        description: >-
                          Coordonnées des sommets du polygone (x1,y1,x2,y2,...),
                          en pixels de l’image source, dans le sens horaire à
                          partir de l’origine en haut à gauche
                        items:
                          type: integer
                url:
                  type: string
                  format: uri
                  description: >-
                    URL ou data URI de l'image de masque. Image binaire en noir
                    et blanc de la même taille en pixels que l'image source :
                    **blanc = repeindre, noir = conserver**. Le Base64 est
                    accepté sous forme de data URI
                    (`data:image/png;base64,...`). N'utilisez pas la
                    transparence PNG pour le masque : les pixels transparents
                    sont traités comme du blanc (repeindre).
            speed:
              type: string
              description: |-
                Mode de vitesse

                - `fast` : mode standard (par défaut), 1x
              enum:
                - fast
              default: fast
              example: fast
        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 ou échouée

            - Envoyé après la confirmation de facturation


            **Restrictions de sécurité :**

            - Seul le protocole HTTPS est pris en charge

            - Les rappels vers les adresses IP privées 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

            - Jusqu'à `3` tentatives après un échec (respectivement
            `1`s/`2`s/`4`s après l'échec)

            - Le format du corps de la réponse de rappel est identique à celui
            de l'interface de requête de tâche

            - Un code de statut 2xx est considéré comme un succès, tout autre
            code de statut déclenche 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: 1757165031
        id:
          type: string
          description: ID de la tâche
          example: task-unified-1757165031-mjv82
        model:
          type: string
          description: Nom du modèle réellement utilisé
        object:
          type: string
          enum:
            - image.generation.task
          description: Type d'objet de la 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'
        type:
          type: string
          enum:
            - text
            - image
            - audio
            - video
          example: image
        usage:
          $ref: '#/components/schemas/Usage'
    ErrorResponse:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              description: Identifiant du code d'erreur
            message:
              type: string
              description: Message d'erreur
            type:
              type: string
              description: Type d'erreur
    TaskInfo:
      type: object
      properties:
        estimated_time:
          type: integer
          description: Temps d'achèvement estimé (secondes)
          minimum: 0
          example: 45
    Usage:
      type: object
      properties:
        billing_rule:
          type: string
          enum:
            - per_call
            - per_token
            - per_second
          example: per_call
        credits_reserved:
          type: number
          description: Crédits estimés consommés
          minimum: 0
          example: 1.8
        user_group:
          type: string
          example: default
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        ## Toutes les interfaces nécessitent une authentification par 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


        **Ajoutez dans l'en-tête de la requête :**

        ```

        Authorization: Bearer YOUR_API_KEY

        ```

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.