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

# Midjourney V7 Édition avancée

> - Telecharge une image puis effectue une edition avancee sur un canevas, prend en charge la specification de zones de masque et l'ajustement de position
- Similaire a mj-v7-edit, mais ne depend pas d'une tache existante, fournissez directement l'image
- Mode de traitement asynchrone, utilisez l'ID de tache retourne pour [effectuer une requete](/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-v7-upload-paint.json POST /v1/images/generations
openapi: 3.1.0
info:
  title: Interface mj-v7-upload-paint
  description: Interface d'edition avancee Midjourney V7
  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: Interfaces de génération d'images IA
paths:
  /v1/images/generations:
    post:
      tags:
        - Génération d'images
      summary: Interface mj-v7-upload-paint
      description: >-
        - Telecharge une image puis effectue une edition avancee sur un canevas,
        prend en charge la specification de zones de masque et l'ajustement de
        position

        - Similaire a mj-v7-edit, mais ne depend pas d'une tache existante,
        fournissez directement l'image

        - Mode de traitement asynchrone, utilisez l'ID de tache retourne pour
        [effectuer une requete](/fr/api-manual/task-management/get-task-detail)
      operationId: createImageGeneration
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ImageGenerationRequest'
            examples:
              upload_paint_example:
                summary: Edition avancee
                value:
                  model: mj-v7-upload-paint
                  prompt: Magnifique paysage de montagne
                  image_urls:
                    - https://example.com/photo.jpg
                  model_params:
                    mask:
                      areas:
                        - width: 100
                          height: 100
                          points:
                            - 10
                            - 10
                            - 10
                            - 100
                            - 100
                            - 100
                            - 100
                            - 10
                    canvas:
                      width: 1024
                      height: 1024
                    img_pos:
                      width: 512
                      height: 512
                      x: 256
                      'y': 256
                    speed: fast
      responses:
        '200':
          description: Génération d'imagesTâche 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-v7-upload-paint'
                  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
        - image_urls
        - model_params
      properties:
        model:
          type: string
          description: Nom du modèle
          enum:
            - mj-v7-upload-paint
          default: mj-v7-upload-paint
          example: mj-v7-upload-paint
        prompt:
          type: string
          description: Prompt d'edition
          example: Magnifique paysage de montagne
        image_urls:
          type: array
          description: URL de l'image d'entree (la première est utilisée)
          items:
            type: string
            format: uri
          maxItems: 1
          example:
            - https://example.com/photo.jpg
        model_params:
          type: object
          description: Parametres d'edition avancee
          required:
            - mask
            - canvas
            - img_pos
          properties:
            mask:
              type: object
              description: >-
                Zone de repeinture (meme format que inpaint : coordonnees
                polygonales ou image de masque)


                **Methode 1 - Coordonnees polygonales :**

                ```json

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

                ```


                **Methode 2 - Image de masque (blanc = repeinture, noir =
                conservation) :**

                ```json

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

                ```
              properties:
                areas:
                  type: array
                  description: Liste des zones polygonales
                  items:
                    type: object
                    properties:
                      width:
                        type: integer
                        description: Largeur de la zone
                      height:
                        type: integer
                        description: Hauteur de la zone
                      points:
                        type: array
                        description: Coordonnees des sommets du polygone (x1,y1,x2,y2,...)
                        items:
                          type: integer
                url:
                  type: string
                  format: uri
                  description: >-
                    URL de l'image de masque (blanc = repeinture, noir =
                    conservation)
            canvas:
              type: object
              description: Dimensions du canevas
              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
              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: Decalage horizontal du coin superieur gauche
                  example: 256
                'y':
                  type: integer
                  description: Decalage vertical du coin superieur gauche
                  example: 256
            speed:
              type: string
              description: |-
                Mode de vitesse

                **Informations sur les couts :** Le mode turbo coûte plus cher
              enum:
                - fast
                - turbo
              default: fast
              example: fast
        callback_url:
          type: string
          description: >-
            Adresse de rappel HTTPS apres l'achevement de la tache


            **Moment du rappel :**

            - Declenche lorsque la tache est terminee (completed), echouee
            (failed) ou annulee (cancelled)

            - Envoye apres la confirmation de facturation


            **Restrictions de securite :**

            - Seul le protocole HTTPS est pris en charge

            - Les rappels vers les adresses IP privees 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 depasser `2048` caracteres


            **Mecanisme de rappel :**

            - Delai d'expiration : `10` secondes

            - Jusqu'a `3` tentatives apres un echec (respectivement
            `1`s/`2`s/`4`s apres l'echec)

            - Le format du corps de la reponse de rappel est identique a celui
            de l'interface de requete de tache

            - Un code de statut 2xx de l'adresse de rappel est considere comme
            un succes, tout autre code de statut declenche 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
          example: 1757165031
        id:
          type: string
          description: ID de la tâche
          example: task-unified-1757165031-mjv7
        model:
          type: string
          description: Nom du modèle utilisé
        object:
          type: string
          enum:
            - image.generation.task
          description: Type de tâche
        progress:
          type: integer
          description: Pourcentage de progression (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 necessitent une authentification par Bearer
        Token##


        **Obtenir une cle API :**


        Visitez la [page de gestion des cles
        API](https://evolink.ai/dashboard/keys) pour obtenir votre cle API


        **Ajoutez dans l'en-tete de la requete :**

        ```

        Authorization: Bearer YOUR_API_KEY

        ```

````