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

> - Das Bild einer bestehenden Aufgabe auf der Leinwand neu positionieren und leere Bereiche mit KI füllen
- Geeignet für die Anpassung der Komposition, das Erweitern von Szenen (Outpaint), das Neuzeichnen usw.
- Asynchroner Verarbeitungsmodus, verwenden Sie die zurückgegebene Aufgaben-ID zum [Abfragen des Status](/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-v8-1-edit.json POST /v1/images/generations
openapi: 3.1.0
info:
  title: mj-v8.1-edit Schnittstelle
  description: Midjourney V8.1 Leinwand-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-v8.1-edit Schnittstelle
      description: >-
        - Das Bild einer bestehenden Aufgabe auf der Leinwand neu positionieren
        und leere Bereiche mit KI füllen

        - Geeignet für die Anpassung der Komposition, das Erweitern von Szenen
        (Outpaint), das Neuzeichnen usw.

        - Asynchroner Verarbeitungsmodus, verwenden Sie die zurückgegebene
        Aufgaben-ID zum [Abfragen des
        Status](/de/api-manual/task-management/get-task-detail)
      operationId: createImageGeneration
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ImageGenerationRequest'
            examples:
              edit_example:
                summary: Leinwand-Bearbeitung
                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: Bildgenerierungsaufgabe erfolgreich erstellt
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ImageGenerationResponse'
        '400':
          description: Ungültige 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, ungültiges 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-v8.1-edit'
                  type: invalid_request_error
        '429':
          description: Ratenlimit überschritten
          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
        - model_params
      properties:
        model:
          type: string
          description: Modellname
          enum:
            - mj-v8.1-edit
          default: mj-v8.1-edit
          example: mj-v8.1-edit
        prompt:
          type: string
          description: Beschreiben Sie den gewünschten Füllinhalt
          maxLength: 1024
          example: Beautiful mountain scenery background
        model_params:
          type: object
          description: Parameter der Leinwand-Bearbeitung
          required:
            - task_id
            - canvas
            - img_pos
          properties:
            task_id:
              type: string
              description: >-
                Quellaufgaben-ID (die Aufgabe, deren Bild Sie bearbeiten
                möchten)
              example: task-unified-xxx
            image_number:
              type: integer
              description: Auswählen, welches Bild aus der Quellaufgabe verwendet wird
              enum:
                - 0
                - 1
                - 2
                - 3
              default: 0
              example: 0
            canvas:
              type: object
              description: >-
                Leinwandgröße. ⚠️ Das Seitenverhältnis der Leinwand
                (width/height) MUSS mit dem Seitenverhältnis des Bildes der
                Quellaufgabe übereinstimmen, andernfalls schlägt die Aufgabe
                fehl (status: failed, Ausführungsfehler).
              required:
                - width
                - height
              properties:
                width:
                  type: integer
                  description: Leinwandbreite
                  example: 1024
                height:
                  type: integer
                  description: Leinwandhöhe
                  example: 1024
            img_pos:
              type: object
              description: >-
                Bildposition und -größe innerhalb der Leinwand. Bild füllt die
                Leinwand aus (Bild B/H = Leinwand B/H) = reine
                Bearbeitung/Neuzeichnen; Bild kleiner als die Leinwand =
                Outpaint (der umgebende leere Bereich wird aus dem Prompt
                generiert).
              required:
                - width
                - height
                - x
                - 'y'
              properties:
                width:
                  type: integer
                  description: Renderbreite
                  example: 512
                height:
                  type: integer
                  description: Renderhöhe
                  example: 512
                x:
                  type: integer
                  description: Horizontaler Versatz oben-links
                  example: 256
                'y':
                  type: integer
                  description: Vertikaler Versatz oben-links
                  example: 256
            mask:
              type: object
              description: >-
                Optionaler maskierter Bereich zum Neuzeichnen innerhalb des
                platzierten Bildes (Polygonkoordinaten oder Maskenbild)


                **Methode 1 - Polygonkoordinaten:**

                ```json

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

                ```


                **Methode 2 - Maskenbild (Alphakanal: undurchsichtig =
                neuzeichnen, transparent = beibehalten, umgekehrt zu typischen
                Inpaint-Masken):**

                ```json

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

                ```
              properties:
                areas:
                  type: array
                  description: Liste der Polygonbereiche
                  items:
                    type: object
                    properties:
                      width:
                        type: integer
                        description: Bereichsbreite
                      height:
                        type: integer
                        description: Bereichshöhe
                      points:
                        type: array
                        description: Polygon-Eckpunktkoordinaten (x1,y1,x2,y2,...)
                        items:
                          type: integer
                url:
                  type: string
                  format: uri
                  description: >-
                    URL des Maskenbildes (Alphakanal: undurchsichtig =
                    neuzeichnen, transparent = beibehalten, umgekehrt zu
                    typischen Inpaint-Masken). Muss den Pixelabmessungen des
                    Referenzbildes entsprechen.
            speed:
              type: string
              description: Geschwindigkeitsmodus
              enum:
                - fast
              default: fast
              example: fast
        callback_url:
          type: string
          description: >-
            HTTPS-Callback-URL für Aufgabenabschluss


            **Callback-Zeitpunkt:**

            - Ausgelöst bei Abschluss, Fehler oder Abbruch der Aufgabe

            - Nach Abrechnungsbestätigung gesendet


            **Sicherheitsbeschränkungen:**

            - Nur HTTPS-Protokoll

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

            - URL-Länge darf `2048` Zeichen nicht überschreiten


            **Callback-Mechanismus:**

            - Timeout: `10` Sekunden

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

            - Das Format des Callback-Antwortkörpers entspricht dem
            Aufgabenabfrage-Endpunkt

            - Ein 2xx-Statuscode gilt als erfolgreich; andere Statuscodes lösen
            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-mjv81
        model:
          type: string
          description: Tatsächlich 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: Geschätzte 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: Geschätzte 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 hinzufügen:**

        ```

        Authorization: Bearer YOUR_API_KEY

        ```

````