> ## 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 Edición avanzada

> - Edición avanzada en lienzo después de cargar imagen, soporta especificación de área de máscara y ajuste de posición
- Similar a mj-v7-edit, pero no depende de tareas existentes, pasa imágenes directamente
- Modo de procesamiento asíncrono, use el ID de la tarea devuelto para [consultar](/es/api-manual/task-management/get-task-detail)

<Note>
  Midjourney cuenta con un sistema de moderación de contenido integrado. Si algunas imágenes generadas son filtradas por la moderación, los créditos consumidos en esa solicitud no serán reembolsados. Asegúrese de que sus prompts cumplan con las directrices de contenido.
</Note>


## OpenAPI

````yaml es/api-manual/image-series/midjourney/mj-v7-upload-paint.json POST /v1/images/generations
openapi: 3.1.0
info:
  title: Interfaz mj-v7-upload-paint
  description: Midjourney V7 Interfaz de edición avanzada
  license:
    name: MIT
  version: 1.0.0
servers:
  - url: https://api.evolink.ai
    description: Producción
security:
  - bearerAuth: []
tags:
  - name: Generación de imágenes
    description: Interfaces de generación de imágenes IA
paths:
  /v1/images/generations:
    post:
      tags:
        - Generación de imágenes
      summary: Interfaz mj-v7-upload-paint
      description: >-
        - Edición avanzada en lienzo después de cargar imagen, soporta
        especificación de área de máscara y ajuste de posición

        - Similar a mj-v7-edit, pero no depende de tareas existentes, pasa
        imágenes directamente

        - Modo de procesamiento asíncrono, use el ID de la tarea devuelto para
        [consultar](/es/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: Edición avanzada
                value:
                  model: mj-v7-upload-paint
                  prompt: Hermoso fondo de paisaje montañoso
                  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: Generación de imágenesTarea creada exitosamente
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ImageGenerationResponse'
        '400':
          description: Parámetros de solicitud inválidos
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: invalid_request
                  message: Invalid request parameters
                  type: invalid_request_error
        '401':
          description: No autenticado, token inválido o expirado
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: unauthorized
                  message: Invalid or expired token
                  type: authentication_error
        '402':
          description: Cuota insuficiente, recargue por favor
          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: Acceso denegado
          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: Límite de velocidad excedido
          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: Error interno del servidor
          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: Nombre del modelo
          enum:
            - mj-v7-upload-paint
          default: mj-v7-upload-paint
          example: mj-v7-upload-paint
        prompt:
          type: string
          description: Prompt de edición
          example: Hermoso fondo de paisaje montañoso
        image_urls:
          type: array
          description: URL de imagen de entrada (se usa la primera)
          items:
            type: string
            format: uri
          maxItems: 1
          example:
            - https://example.com/photo.jpg
        model_params:
          type: object
          description: Edición avanzadaparámetros
          required:
            - mask
            - canvas
            - img_pos
          properties:
            mask:
              type: object
              description: >-
                Área de inpaint (mismo formato que inpaint: coordenadas de
                polígono o imagen de máscara)


                **Método 1 - Coordenadas de polígono:**

                ```json

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

                ```


                **Método 2 - Imagen de máscara (blanco=inpaint,
                negro=preservar):**

                ```json

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

                ```
              properties:
                areas:
                  type: array
                  description: Lista de áreas de polígono
                  items:
                    type: object
                    properties:
                      width:
                        type: integer
                        description: Ancho del área
                      height:
                        type: integer
                        description: Alto del área
                      points:
                        type: array
                        description: Coordenadas de vértices del polígono (x1,y1,x2,y2,...)
                        items:
                          type: integer
                url:
                  type: string
                  format: uri
                  description: URL de imagen de máscara (blanco=inpaint, negro=preservar)
            canvas:
              type: object
              description: Tamaño del lienzo
              required:
                - width
                - height
              properties:
                width:
                  type: integer
                  description: Ancho del lienzo
                  example: 1024
                height:
                  type: integer
                  description: Alto del lienzo
                  example: 1024
            img_pos:
              type: object
              description: Posición y tamaño de la imagen
              required:
                - width
                - height
                - x
                - 'y'
              properties:
                width:
                  type: integer
                  description: Ancho de renderizado
                  example: 512
                height:
                  type: integer
                  description: Alto de renderizado
                  example: 512
                x:
                  type: integer
                  description: >-
                    Desplazamiento horizontal desde la esquina superior
                    izquierda
                  example: 256
                'y':
                  type: integer
                  description: Desplazamiento vertical desde la esquina superior izquierda
                  example: 256
            speed:
              type: string
              description: |-
                Modo de velocidad

                **Información de costos:** El modo turbo cuesta más
              enum:
                - fast
                - turbo
              default: fast
              example: fast
        callback_url:
          type: string
          description: >-
            Dirección de callback HTTPS después de completar la tarea


            **Momento del callback:**

            - Se activa cuando la tarea se completa (completed), falla (failed)
            o se cancela (cancelled)

            - Se envía después de confirmar la facturación


            **Restricciones de seguridad:**

            - Solo se admite el protocolo HTTPS

            - Se prohíbe el callback a direcciones IP de red interna (127.0.0.1,
            10.x.x.x, 172.16-31.x.x, 192.168.x.x, etc.)

            - La longitud de la URL no debe exceder `2048` caracteres


            **Mecanismo de callback:**

            - Tiempo de espera: `10` segundos

            - Máximo `3` reintentos después de fallar (a los `1`s/`2`s/`4`s
            respectivamente)

            - El formato de respuesta del callback es consistente con el de la
            interfaz de consulta de tareas

            - Si la dirección de callback devuelve un código 2xx se considera
            exitoso, otros códigos activan reintentos
          format: uri
          example: https://your-domain.com/webhooks/image-task-completed
    ImageGenerationResponse:
      type: object
      properties:
        created:
          type: integer
          description: Marca de tiempo de creación
          example: 1757165031
        id:
          type: string
          description: ID de la tarea
          example: task-unified-1757165031-mjv7
        model:
          type: string
          description: Nombre del modelo utilizado
        object:
          type: string
          enum:
            - image.generation.task
          description: Tipo de tarea
        progress:
          type: integer
          description: Porcentaje de progreso (0-100)
          minimum: 0
          maximum: 100
          example: 0
        status:
          type: string
          description: Estado de la tarea
          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: Identificador de código de error
            message:
              type: string
              description: Mensaje de error
            type:
              type: string
              description: Tipo de error
    TaskInfo:
      type: object
      properties:
        can_cancel:
          type: boolean
          description: Si la tarea se puede cancelar
          example: true
        estimated_time:
          type: integer
          description: Tiempo estimado de finalización (segundos)
          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éditos estimados consumidos
          minimum: 0
          example: 1.8
        user_group:
          type: string
          example: default
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        ##Todas las interfaces requieren autenticación con Bearer Token##


        **Obtener API Key:**


        Visite la [página de gestión de API
        Key](https://evolink.ai/dashboard/keys) para obtener su API Key


        **Agregue lo siguiente al encabezado de la solicitud:**

        ```

        Authorization: Bearer YOUR_API_KEY

        ```

````