> ## 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.1 É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.
- 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é. Si certaines images générées sont filtrées par la modération, les crédits consommés pour cette requête ne seront pas remboursés. Veuillez vous assurer que vos prompts respectent les directives de contenu.
</Note>


## OpenAPI

````yaml fr/api-manual/image-series/midjourney/mj-v8-1-edit.json POST /v1/images/generations
openapi: 3.1.0
info:
  title: Interface mj-v8.1-edit
  description: Interface d'édition de canevas Midjourney V8.1
  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.1-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.

        - 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.1-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.1-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.1-edit
          default: mj-v8.1-edit
          example: mj-v8.1-edit
        prompt:
          type: string
          description: Décrit le contenu de remplissage souhaité
          maxLength: 1024
          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 (la tâche dont vous voulez éditer l'image)
              example: task-unified-xxx
            image_number:
              type: integer
              description: Sélectionne quelle image de la tâche source
              enum:
                - 0
                - 1
                - 2
                - 3
              default: 0
              example: 0
            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 (canal alpha : opaque = repeindre,
                transparent = conserver, l'inverse des masques d'inpaint
                habituels) :**

                ```json

                { "url": "https://example.com/mask.png" }

                ```
              properties:
                areas:
                  type: array
                  description: Liste des régions polygonales
                  items:
                    type: object
                    properties:
                      width:
                        type: integer
                        description: Largeur de la région
                      height:
                        type: integer
                        description: Hauteur de la région
                      points:
                        type: array
                        description: Coordonnées des sommets du polygone (x1,y1,x2,y2,...)
                        items:
                          type: integer
                url:
                  type: string
                  format: uri
                  description: >-
                    URL de l'image de masque (canal alpha : opaque = repeindre,
                    transparent = conserver, l'inverse des masques d'inpaint
                    habituels). Doit correspondre aux dimensions en pixels de
                    l'image de référence.
            speed:
              type: string
              description: Mode de vitesse
              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, échouée ou annulé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-mjv81
        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:
        can_cancel:
          type: boolean
          description: Si la tâche peut être annulée
          example: true
        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

        ```

````