> ## 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.

# Seedance 2.5 Image-to-Video

> - 1 Bild eingeben für Startbild-Video, 2 Bilder eingeben für Start-/Endbild-Video, das Modell erkennt dies automatisch
- **Unterstützt jetzt AIGC-Real-Person-Materialien**
- Unterstützt den **Entwurfsmodus**: Mit `draft: true` erstellen Sie zunächst einen 480p-Entwurf. Wenn Sie zufrieden sind, wandeln Sie ihn mit [Draft-to-Video](/de/api-manual/video-series/seedance/seedance-2.5/seedance-2.5-draft-to-video) in ein finales 1080p-Video um. Beide Anfragen werden separat abgerechnet
- Asynchroner Verarbeitungsmodus, verwenden Sie die zurückgegebene Aufgaben-ID [zur Abfrage](/de/api-manual/task-management/get-task-detail)
- Der generierte Video-Link ist 24 Stunden gültig, bitte speichern Sie ihn rechtzeitig



## OpenAPI

````yaml de/api-manual/video-series/seedance/seedance-2.5/seedance-2.5-image-to-video.json POST /v1/videos/generations
openapi: 3.1.0
info:
  title: Seedance 2.5 Image-to-Video API
  description: >-
    Seedance 2.5 Image-to-Video-API, unterstützt Videogenerierung mit Startbild
    und Start-/Endbild
  license:
    name: MIT
  version: 1.0.0
servers:
  - url: https://api.evolink.ai
    description: Produktionsumgebung
security:
  - bearerAuth: []
tags:
  - name: Videogenerierung
    description: API-Schnittstellen für KI-Videogenerierung
paths:
  /v1/videos/generations:
    post:
      tags:
        - Videogenerierung
      summary: Seedance 2.5 Image-to-Video
      description: >-
        - 1 Bild eingeben für Startbild-Video, 2 Bilder eingeben für
        Start-/Endbild-Video, das Modell erkennt dies automatisch

        - **Unterstützt jetzt AIGC-Real-Person-Materialien**

        - Unterstützt den **Entwurfsmodus**: Mit `draft: true` erstellen Sie
        zunächst einen 480p-Entwurf. Wenn Sie zufrieden sind, wandeln Sie ihn
        mit
        [Draft-to-Video](/de/api-manual/video-series/seedance/seedance-2.5/seedance-2.5-draft-to-video)
        in ein finales 1080p-Video um. Beide Anfragen werden separat abgerechnet

        - Asynchroner Verarbeitungsmodus, verwenden Sie die zurückgegebene
        Aufgaben-ID [zur
        Abfrage](/de/api-manual/task-management/get-task-detail)

        - Der generierte Video-Link ist 24 Stunden gültig, bitte speichern Sie
        ihn rechtzeitig
      operationId: createSeedance25ImageToVideo
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VideoGenerationRequest'
            examples:
              first_frame:
                summary: Startbild-Video
                value:
                  model: seedance-2.5-image-to-video
                  prompt: >-
                    The camera slowly zooms in, the scene gradually comes to
                    life
                  image_urls:
                    - https://example.com/first-frame.jpg
                  duration: 5
                  quality: 720p
                  aspect_ratio: adaptive
              first_last_frame:
                summary: Start-/Endbild-Video
                value:
                  model: seedance-2.5-image-to-video
                  prompt: A smooth transition between two scenes
                  image_urls:
                    - https://example.com/first.jpg
                    - https://example.com/last.jpg
                  duration: 6
                  quality: 720p
                  aspect_ratio: adaptive
              draft:
                summary: Entwurfsmodus (480p)
                value:
                  model: seedance-2.5-image-to-video
                  prompt: >-
                    Die Kamera zoomt langsam heran, die Szene erwacht allmählich
                    zum Leben
                  image_urls:
                    - https://example.com/first-frame.jpg
                  duration: 5
                  quality: 480p
                  aspect_ratio: adaptive
                  draft: true
      responses:
        '200':
          description: Videogenerierungsaufgabe erfolgreich erstellt
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VideoGenerationResponse'
        '400':
          description: Ungültige Anfrageparameter
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: invalid_parameter
                  message: Invalid request parameters
                  type: invalid_request_error
        '401':
          description: Nicht authentifiziert, Token ungültig oder abgelaufen
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: unauthorized
                  message: Invalid or expired token
                  type: authentication_error
        '402':
          description: Unzureichendes Guthaben, Aufladung erforderlich
          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:
                    seedance-2.5-image-to-video
                  type: invalid_request_error
        '429':
          description: Anfragelimit ü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
        '503':
          description: >-
            Dienst vorübergehend nicht verfügbar; bei nicht verfügbarem
            Entwurfsmodus kann draft_unavailable zurückgegeben werden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                draft_unavailable:
                  summary: Entwurfsmodus vorübergehend nicht verfügbar
                  value:
                    error:
                      code: draft_unavailable
                      message: >-
                        Draft mode is not available on the selected service
                        right now. Retry later or send the request without
                        draft.
                      type: invalid_request_error
components:
  schemas:
    VideoGenerationRequest:
      type: object
      required:
        - model
        - prompt
        - image_urls
      properties:
        model:
          type: string
          description: Name des Videogenerierungsmodells
          enum:
            - seedance-2.5-image-to-video
          default: seedance-2.5-image-to-video
          example: seedance-2.5-image-to-video
        prompt:
          type: string
          description: >-
            Textprompt zur Beschreibung des gewünschten Videos. Unterstützt
            Chinesisch und Englisch, empfohlen max. 500 Zeichen auf Chinesisch,
            max. 1000 Wörter auf Englisch. Maximale Prompt-Länge: 10000 Tokens


            **Hinweis:**

            - Dieses Modell unterstützt keine Eingabe von `video_urls` oder
            `audio_urls`
          example: The camera slowly zooms in, the scene gradually comes to life
        image_urls:
          type: array
          description: >-
            Bild-URL-Array, **1-2 Bilder**


            **Bildanzahl und Verhalten:**


            | Bildanzahl | Verhalten | Rolle |

            |:--------:|------|------|

            | 1 Bild | Startbild-Video | Automatisch als `first_frame` gesetzt |

            | 2 Bilder | Start-/Endbild-Video | Bild 1 → `first_frame`, Bild 2 →
            `last_frame` |


            **Bildanforderungen:**

            - Unterstützte Formate: `.jpeg`, `.png`, `.webp`

            - Seitenverhältnis (Breite/Höhe): `0.4` ~ `2.5`

            - Breite/Höhe in Pixel: `300` ~ `6000` px

            - Einzelbildgröße: maximal `30MB`

            - Gesamtgröße des Anfragekörpers maximal `64MB`

            - Bei Start-/Endbildern können beide Bilder identisch sein. Bei
            unterschiedlichen Seitenverhältnissen wird das Startbild als
            Referenz verwendet, das Endbild wird automatisch zugeschnitten

            - Bild-URLs müssen für den Server direkt zugänglich sein
          items:
            type: string
            format: uri
          minItems: 1
          maxItems: 2
          example:
            - https://example.com/first-frame.jpg
        duration:
          type: integer
          description: >-
            Videodauer (Sekunden), Standard ist `5` Sekunden


            **Hinweise:**

            - Unterstützt beliebige Ganzzahlwerte zwischen `4` und `30` Sekunden

            - `-1`: automatische Dauer, das Modell wählt eine Länge zwischen
            `4`–`30` Sekunden, abgerechnet wird nach der tatsächlichen
            Ausgabelänge

            - Die Dauer wirkt sich direkt auf die Abrechnung aus
          default: 5
          example: 5
        quality:
          type: string
          description: >-
            Videoauflösung, Standard ist `720p`


            **Verfügbare Werte:**

            - `480p`: Niedrigere Auflösung, günstigerer Preis

            - `720p`: Standardauflösung, dies ist der Standardwert

            - `1080p`: Ultra-HD-Auflösung


            **Entwurfsmodus:** Wenn `draft` auf `true` gesetzt ist, wird nur
            `480p` unterstützt. Wird `quality` weggelassen, wird automatisch
            `480p` verwendet
          enum:
            - 480p
            - 720p
            - 1080p
          default: 720p
          example: 720p
        draft:
          type: boolean
          default: false
          description: >-
            Schalter für den Entwurfsmodus, Standard ist `false`


            **Details:**

            - `true`: Erstellt zunächst einen 480p-Entwurf mit kürzerer
            Generierungszeit und regulärer 480p-Abrechnung

            - Bei aktiviertem Entwurfsmodus muss `quality` entweder `480p` sein
            oder weggelassen werden. Andere Auflösungen führen zu einem
            400-Parameterfehler

            - Darf nur auf der obersten Ebene des Anfragekörpers stehen.
            Innerhalb von `model_params` führt das Feld zu einem
            400-Parameterfehler


            **In ein finales Video umwandeln:**

            - Sobald der Entwurf fertig ist, liefert die
            [Aufgabenabfrage](/de/api-manual/task-management/get-task-detail)
            das Feld `draft_expires_at`

            - Übergeben Sie vor diesem Zeitpunkt die Aufgaben-ID des Entwurfs an
            [Seedance 2.5
            Draft-to-Video](/de/api-manual/video-series/seedance/seedance-2.5/seedance-2.5-draft-to-video),
            um ein finales 1080p-Video mit demselben Inhalt zu erstellen

            - Das finale Video und der Entwurf werden separat abgerechnet. Wenn
            Sie mit dem Entwurf nicht zufrieden sind, können Sie auf die
            Konvertierung verzichten und zahlen nur für den Entwurf

            - Die Gültigkeitsdauer beträgt standardmäßig 24 Stunden ab
            Fertigstellung des Entwurfs; maßgeblich ist `draft_expires_at`.
            Senden Sie die Konvertierungsanfrage frühzeitig: Läuft der Entwurf
            in der Warteschlange ab, schlägt die Konvertierung ebenfalls fehl


            **Vorübergehend nicht verfügbar:** Wenn der Dienst vorübergehend
            nicht verfügbar ist, kann ein 503-Fehler zurückgegeben werden. Bei
            Fehlercode `draft_unavailable` versuchen Sie es später erneut oder
            entfernen Sie `draft`, um den normalen Generierungsmodus zu
            verwenden
          example: false
        aspect_ratio:
          type: string
          description: >-
            Video-Seitenverhältnis, Image-to-Video unterstützt nur `adaptive`


            **Verfügbare Werte:**

            - `adaptive`: Wählt automatisch das nächstliegende Seitenverhältnis
            basierend auf dem Startbild, der einzige für dieses Modell zulässige
            Wert

            - Feste Seitenverhältnisse wie `16:9` oder `9:16` können für dieses
            Modell nicht angegeben werden
          enum:
            - adaptive
          default: adaptive
          example: adaptive
        generate_audio:
          type: boolean
          description: >-
            Ob synchronisiertes Audio generiert werden soll, Standard ist `true`


            **Verfügbare Werte:**

            - `true`: Video enthält synchronisiertes Audio, keine zusätzlichen
            Kosten

            - `false`: Stummes Video ausgeben
          default: true
          example: true
        content_filter:
          type: boolean
          description: >-
            Inhaltsfilter, Standard ist `true`


            **Verfügbare Werte:**

            - `true`: Standardmäßige Inhaltssicherheitsprüfung, dies ist der
            Standard

            - `false`: Lockert die Inhaltsbeschränkungen, Abrechnung mit +10%
            (`1.1x`). Illegale und verbotene Inhalte werden unabhängig von
            dieser Einstellung immer durchgesetzt


            **Nicht mit der Websuche kombinierbar:**

            - `content_filter: false` und `model_params.web_search: true` können
            nicht zusammen verwendet werden; werden beide gesendet, wird ein
            400-Parameterfehler zurückgegeben

            - Behalten Sie `content_filter: true` (Standard) bei, wenn die
            Websuche benötigt wird
          default: true
          example: true
        output_format:
          type: string
          description: >-
            Ausgabe-Containerformat, Standard ist `mp4`


            **Verfügbare Werte:**

            - `mp4`: H.264-Kodierung mit bester Kompatibilität und
            standardmäßiger Farbpräzision, dies ist der Standard

            - `mov`: H.264 + yuv444p-Chroma-Sampling + PCM-Audio für höhere
            Farbtreue, empfohlen für Color-Grading-, Keying- und
            Compositing-Workflows. Die Wiedergabe im Browser wird möglicherweise
            nicht unterstützt; laden Sie die Datei herunter und spielen Sie sie
            mit VLC / mpv / ffplay ab. Keine zusätzlichen Kosten
          enum:
            - mp4
            - mov
          default: mp4
          example: mp4
        callback_url:
          type: string
          description: >-
            HTTPS-Callback-URL nach Aufgabenabschluss


            **Callback-Zeitpunkte:**

            - Wird bei Aufgabenabschluss (completed) oder Fehler (failed)
            ausgelöst

            - Wird nach Bestätigung der Abrechnung gesendet


            **Sicherheitseinschränkungen:**

            - Nur HTTPS-Protokoll unterstützt

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

            - URL-Länge maximal `2048` Zeichen


            **Callback-Mechanismus:**

            - Timeout: `10` Sekunden

            - Maximal `3` Wiederholungsversuche nach Fehler (jeweils nach
            `1`/`2`/`4` Sekunden)

            - Das Format des Callback-Antwortkörpers entspricht dem
            Rückgabeformat der Aufgabenabfrage-Schnittstelle

            - Ein 2xx-Statuscode gilt als Erfolg, andere Statuscodes lösen
            Wiederholungsversuche aus
          format: uri
          example: https://your-domain.com/webhooks/video-task-completed
    VideoGenerationResponse:
      type: object
      properties:
        created:
          type: integer
          description: Zeitstempel der Aufgabenerstellung
          example: 1761313744
        id:
          type: string
          description: Aufgaben-ID
          example: task-unified-1774857405-abc123
        model:
          type: string
          description: Tatsächlich verwendeter Modellname
          example: seedance-2.5-image-to-video
        object:
          type: string
          enum:
            - video.generation.task
          description: Spezifischer Aufgabentyp
        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/VideoTaskInfo'
          description: Detaillierte Informationen zur Videoaufgabe
        type:
          type: string
          enum:
            - text
            - image
            - audio
            - video
          description: Ausgabetyp der Aufgabe
          example: video
        usage:
          $ref: '#/components/schemas/VideoUsage'
          description: Nutzungs- und Abrechnungsinformationen
    ErrorResponse:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              description: Fehlercode-Bezeichner
            message:
              type: string
              description: Fehlerbeschreibung
            type:
              type: string
              description: Fehlertyp
    VideoTaskInfo:
      type: object
      properties:
        can_cancel:
          type: boolean
          description: >-
            Gibt an, ob die Aufgabe abgebrochen werden kann. Seedance 2.5
            unterstützt keinen Abbruch durch Benutzer; dieses Feld gibt immer
            `false` zurück.
          example: false
        estimated_time:
          type: integer
          description: Geschätzte Fertigstellungszeit (Sekunden)
          minimum: 0
          example: 165
        video_duration:
          type: integer
          description: Videodauer (Sekunden)
          example: 8
    VideoUsage:
      type: object
      description: Nutzungs- und Abrechnungsinformationen
      properties:
        billing_rule:
          type: string
          description: Abrechnungsregel
          enum:
            - per_call
            - per_token
            - per_second
          example: per_second
        credits_reserved:
          type: number
          description: Geschätzter Credit-Verbrauch
          minimum: 0
          example: 50
        user_group:
          type: string
          description: Benutzergruppenkategorie
          example: default
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        ##Alle Schnittstellen erfordern eine Authentifizierung mit Bearer
        Token##


        **API Key erhalten:**


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


        **Fügen Sie ihn im Anfrage-Header hinzu:**

        ```

        Authorization: Bearer YOUR_API_KEY

        ```

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.