> ## 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 Upload-Bearbeitung

> - Bilder hochladen fuer erweiterte Leinwandbearbeitung mit Maskenbereich und Positionsanpassung
- Aehnlich wie mj-v7-edit, aber unabhaengig von bestehenden Aufgaben
- Asynchroner Verarbeitungsmodus, verwenden Sie die zurueckgegebene Aufgaben-ID zum [Abfragen](/de/api-manual/task-management/get-task-detail)

<Note>
  Midjourney verfügt über ein integriertes Moderationssystem. Wenn einige generierte Bilder durch die Moderation gefiltert werden, können die für diese Anfrage verbrauchten Credits nicht erstattet werden. Bitte achten Sie darauf, dass Ihre Prompts den Inhaltsrichtlinien entsprechen.
</Note>


## OpenAPI

````yaml de/api-manual/image-series/midjourney/mj-v7-upload-paint.json POST /v1/images/generations
openapi: 3.1.0
info:
  title: mj-v7-upload-paint Schnittstelle
  description: Midjourney V7 Erweiterte Bearbeitung Schnittstelle
  license:
    name: MIT
  version: 1.0.0
servers:
  - url: https://api.evolink.ai
    description: Produktionsumgebung
security:
  - bearerAuth: []
tags:
  - name: Bildgenerierung
    description: KI-Bildgenerierung Endpunkte
paths:
  /v1/images/generations:
    post:
      tags:
        - Bildgenerierung
      summary: mj-v7-upload-paint Schnittstelle
      description: >-
        - Bilder hochladen fuer erweiterte Leinwandbearbeitung mit Maskenbereich
        und Positionsanpassung

        - Aehnlich wie mj-v7-edit, aber unabhaengig von bestehenden Aufgaben

        - Asynchroner Verarbeitungsmodus, verwenden Sie die zurueckgegebene
        Aufgaben-ID zum
        [Abfragen](/de/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: Erweiterte Bearbeitung
                value:
                  model: mj-v7-upload-paint
                  prompt: Schoene Berglandschaft
                  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: Bildgenerierungsaufgabe erfolgreich erstellt
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ImageGenerationResponse'
        '400':
          description: Ungueltige Anfrageparameter
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: invalid_request
                  message: Invalid request parameters
                  type: invalid_request_error
        '401':
          description: Nicht authentifiziert, ungueltiges oder abgelaufenes Token
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: unauthorized
                  message: Invalid or expired token
                  type: authentication_error
        '402':
          description: Unzureichendes Guthaben, bitte aufladen
          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: Zugriff verweigert
          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: Ratenlimit ueberschritten
          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: Interner Serverfehler
          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: Modellname
          enum:
            - mj-v7-upload-paint
          default: mj-v7-upload-paint
          example: mj-v7-upload-paint
        prompt:
          type: string
          description: Bearbeitungs-Prompt
          example: Schoene Berglandschaft
        image_urls:
          type: array
          description: Eingabebild-URL (erstes wird verwendet)
          items:
            type: string
            format: uri
          maxItems: 1
          example:
            - https://example.com/photo.jpg
        model_params:
          type: object
          description: Erweiterte Bearbeitungsparameter
          required:
            - mask
            - canvas
            - img_pos
          properties:
            mask:
              type: object
              description: >-
                Inpaint-Bereich (gleiches Format: Polygonkoordinaten oder
                Maskenbild)


                **Methode 1 - Polygonkoordinaten:**

                ```json

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

                ```


                **Methode 2 - Maskenbild (weiss = Inpaint, schwarz =
                erhalten):**

                ```json

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

                ```
              properties:
                areas:
                  type: array
                  description: Polygonbereichsliste
                  items:
                    type: object
                    properties:
                      width:
                        type: integer
                        description: Bereichsbreite
                      height:
                        type: integer
                        description: Bereichshoehe
                      points:
                        type: array
                        description: Polygon-Eckpunktkoordinaten (x1,y1,x2,y2,...)
                        items:
                          type: integer
                url:
                  type: string
                  format: uri
                  description: Maskenbild-URL (weiss = Inpaint, schwarz = erhalten)
            canvas:
              type: object
              description: Leinwandgroesse
              required:
                - width
                - height
              properties:
                width:
                  type: integer
                  description: Leinwandbreite
                  example: 1024
                height:
                  type: integer
                  description: Leinwandhoehe
                  example: 1024
            img_pos:
              type: object
              description: Bildposition und -groesse
              required:
                - width
                - height
                - x
                - 'y'
              properties:
                width:
                  type: integer
                  description: Renderbreite
                  example: 512
                height:
                  type: integer
                  description: Renderhoehe
                  example: 512
                x:
                  type: integer
                  description: Horizontaler Versatz oben-links
                  example: 256
                'y':
                  type: integer
                  description: Vertikaler Versatz oben-links
                  example: 256
            speed:
              type: string
              description: |-
                Geschwindigkeitsmodus

                **Preishinweis:** Turbo-Modus kostet mehr
              enum:
                - fast
                - turbo
              default: fast
              example: fast
        callback_url:
          type: string
          description: >-
            HTTPS-Callback-URL fuer Aufgabenabschluss


            **Callback-Zeitpunkt:**

            - Ausgeloest bei Abschluss, Fehler oder Abbruch der Aufgabe

            - Nach Abrechnungsbestaetigung gesendet


            **Sicherheitsbeschraenkungen:**

            - Nur HTTPS-Protokoll

            - Callbacks an private IPs verboten (127.0.0.1, 10.x.x.x,
            172.16-31.x.x, 192.168.x.x usw.)

            - URL-Laenge max `2048` Zeichen


            **Callback-Mechanismus:**

            - Timeout: `10` Sekunden

            - Bis zu `3` Wiederholungen (nach `1`s/`2`s/`4`s)

            - Antwortformat entspricht der Aufgabenabfrage

            - 2xx-Statuscode = erfolgreich; andere loesen Wiederholungen aus
          format: uri
          example: https://your-domain.com/webhooks/image-task-completed
    ImageGenerationResponse:
      type: object
      properties:
        created:
          type: integer
          description: Zeitstempel der Aufgabenerstellung
          example: 1757165031
        id:
          type: string
          description: Aufgaben-ID
          example: task-unified-1757165031-mjv7
        model:
          type: string
          description: Tatsaechlich verwendeter Modellname
        object:
          type: string
          enum:
            - image.generation.task
          description: Aufgabenobjekttyp
        progress:
          type: integer
          description: Aufgabenfortschritt in Prozent (0-100)
          minimum: 0
          maximum: 100
          example: 0
        status:
          type: string
          description: Aufgabenstatus
          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: Fehlercode-Bezeichner
            message:
              type: string
              description: Fehlerbeschreibung
            type:
              type: string
              description: Fehlertyp
    TaskInfo:
      type: object
      properties:
        can_cancel:
          type: boolean
          description: Ob die Aufgabe abgebrochen werden kann
          example: true
        estimated_time:
          type: integer
          description: Geschaetzte Fertigstellungszeit (Sekunden)
          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: Geschaetzte verbrauchte Credits
          minimum: 0
          example: 1.8
        user_group:
          type: string
          example: default
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        ## Alle Endpunkte erfordern Bearer Token Authentifizierung ##


        **API Key erhalten:**


        Besuchen Sie die [API Key
        Verwaltungsseite](https://evolink.ai/dashboard/keys) um Ihren API Key zu
        erhalten


        **Zum Request-Header hinzufuegen:**

        ```

        Authorization: Bearer YOUR_API_KEY

        ```

````