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

# Wan3.0 Reference-to-Video

> - Referenzbilder / Referenzvideos / Referenzaudio / Dateien / Webseiten dienen als Material; das Modell versteht die Absicht automatisch und generiert daraus das Video
- Im Prompt wird das Material mit "Image 1", "Video 1" und "Audio 1" angesprochen, **die drei Materialarten werden unabhängig voneinander gezählt**
- Von `prompt` und Referenzmaterial muss **mindestens eines angegeben werden**
- **Start-/Endbild werden nicht akzeptiert** (`image_start` / `image_end`): Referenzmaterial und Start-/Endbild schließen sich gegenseitig aus. Um Anfang und Ende des Bildes streng zu steuern, verwenden Sie [Wan3.0 Image-to-Video](/de/api-manual/video-series/wan3.0/wan3.0-image-to-video)
- **🔴 Referenzvideos zählen zur Abrechnung**, Referenzbilder / Referenzaudio / Dateien / Webseiten werden nicht abgerechnet
- Asynchroner Verarbeitungsmodus, verwenden Sie die zurückgegebene Task-ID für die [Statusabfrage](/de/api-manual/task-management/get-task-detail)
- Generierte Videolinks sind 24 Stunden gültig, bitte zeitnah speichern

## Abrechnung

- **Abrechnungsformel**: abgerechnete Dauer = Dauer des Eingabevideos + Dauer des Ausgabevideos, sekundengenaue Abrechnung
- **Auflösungsmultiplikator**: `480p` = 1x (Basis), `720p` = 2x, `1080p` = 4x
- Referenzbilder, Referenzaudio, Referenzdateien und Weblinks werden **nicht abgerechnet**
- Bei `duration` = `-1` (intelligente Dauer) wird zum Höchstwert von `30` Sekunden vorab reserviert; nach erfolgreicher Aufgabe wird nach der tatsächlichen Ausgabedauer abgerechnet und die Differenz automatisch zurückerstattet
- Das Ein- oder Ausschalten der `audio`-Spur **kostet gleich viel**
- **Fehlgeschlagene Aufgaben werden nicht abgerechnet**, das eingefrorene Guthaben wird vollständig zurückerstattet



## OpenAPI

````yaml de/api-manual/video-series/wan3.0/wan3.0-reference-video.json POST /v1/videos/generations
openapi: 3.1.0
info:
  title: Wan3.0 Reference-to-Video API
  description: >-
    Wan 3.0 Reference-to-Video, unterstützt gemischte multimodale Eingaben aus
    Referenzbildern, Referenzvideos, Referenzaudio, Dateien und Webseiten
  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: Wan3.0 Reference-to-Video
      description: >-
        - Referenzbilder / Referenzvideos / Referenzaudio / Dateien / Webseiten
        dienen als Material; das Modell versteht die Absicht automatisch und
        generiert daraus das Video

        - Im Prompt wird das Material mit "Image 1", "Video 1" und "Audio 1"
        angesprochen, **die drei Materialarten werden unabhängig voneinander
        gezählt**

        - Von `prompt` und Referenzmaterial muss **mindestens eines angegeben
        werden**

        - **Start-/Endbild werden nicht akzeptiert** (`image_start` /
        `image_end`): Referenzmaterial und Start-/Endbild schließen sich
        gegenseitig aus. Um Anfang und Ende des Bildes streng zu steuern,
        verwenden Sie [Wan3.0
        Image-to-Video](/de/api-manual/video-series/wan3.0/wan3.0-image-to-video)

        - **🔴 Referenzvideos zählen zur Abrechnung**, Referenzbilder /
        Referenzaudio / Dateien / Webseiten werden nicht abgerechnet

        - Asynchroner Verarbeitungsmodus, verwenden Sie die zurückgegebene
        Task-ID für die
        [Statusabfrage](/de/api-manual/task-management/get-task-detail)

        - Generierte Videolinks sind 24 Stunden gültig, bitte zeitnah speichern


        ## Abrechnung


        - **Abrechnungsformel**: abgerechnete Dauer = Dauer des Eingabevideos +
        Dauer des Ausgabevideos, sekundengenaue Abrechnung

        - **Auflösungsmultiplikator**: `480p` = 1x (Basis), `720p` = 2x, `1080p`
        = 4x

        - Referenzbilder, Referenzaudio, Referenzdateien und Weblinks werden
        **nicht abgerechnet**

        - Bei `duration` = `-1` (intelligente Dauer) wird zum Höchstwert von
        `30` Sekunden vorab reserviert; nach erfolgreicher Aufgabe wird nach der
        tatsächlichen Ausgabedauer abgerechnet und die Differenz automatisch
        zurückerstattet

        - Das Ein- oder Ausschalten der `audio`-Spur **kostet gleich viel**

        - **Fehlgeschlagene Aufgaben werden nicht abgerechnet**, das
        eingefrorene Guthaben wird vollständig zurückerstattet
      operationId: createWan30ReferenceVideo
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VideoGenerationRequest'
            examples:
              multi_modal:
                summary: Mehrere Referenzmaterialien (Bilder + Video)
                value:
                  model: wan3.0-reference-video
                  prompt: >-
                    The character in Video 1 holds Image 3 and plays a soft
                    country folk tune on the chair in Image 4, saying: “What
                    lovely sunshine today.”
                  image_urls:
                    - https://example.com/role.jpg
                    - https://example.com/object.png
                    - https://example.com/guitar.png
                    - https://example.com/chair.png
                  video_urls:
                    - https://example.com/ref_role.mp4
                  duration: 10
                  quality: 720p
                  aspect_ratio: adaptive
              with_audio:
                summary: Mit Referenzaudio
                value:
                  model: wan3.0-reference-video
                  prompt: >-
                    The character in Image 1 dances to the rhythm of Audio 1,
                    with the camera orbiting around them.
                  image_urls:
                    - https://example.com/dancer.jpg
                  audio_urls:
                    - https://example.com/beat.mp3
                  duration: 10
              from_file:
                summary: Referenzdatei zu Video (PPT als Werbefilm)
                value:
                  model: wan3.0-reference-video
                  prompt: >-
                    Turn this product deck into a high-end product ad,
                    minimalist, futuristic and upmarket overall, with restrained
                    lighting.
                  model_params:
                    file_url: https://example.com/product-deck.pptx
                  duration: 10
                  quality: 1080p
                  aspect_ratio: '16:9'
              from_link:
                summary: Referenz-Webseite zu Video
                value:
                  model: wan3.0-reference-video
                  prompt: >-
                    Turn the key points of this article into a short
                    infographic-style video.
                  model_params:
                    link_url: https://example.com/article/12345
                  duration: 15
      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 autorisiert, 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 Kontingent, 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: wan3.0-reference-video'
                  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:
    VideoGenerationRequest:
      type: object
      required:
        - model
      properties:
        model:
          type: string
          description: Modellname, fest auf `wan3.0-reference-video`
          enum:
            - wan3.0-reference-video
          example: wan3.0-reference-video
          default: wan3.0-reference-video
        prompt:
          type: string
          description: >-
            Text-Prompt für die Videogenerierung. Chinesisch und Englisch werden
            unterstützt, **jedes chinesische Zeichen / jeder Buchstabe zählt als
            1 Zeichen**, maximale Länge `20000` Zeichen; alles darüber hinaus
            wird automatisch abgeschnitten (ohne Fehler)


            **Regeln für Materialverweise:**

            - Mit "Image 1", "Image 2" wird auf die Bilder an der entsprechenden
            Position in `image_urls` verwiesen (1-basiert)

            - Mit "Video 1", "Video 2" wird auf die Videos an der entsprechenden
            Position in `video_urls` verwiesen

            - Mit "Audio 1", "Audio 2" wird auf die Audiodateien an der
            entsprechenden Position in `audio_urls` verwiesen

            - **Bilder, Videos und Audio werden unabhängig voneinander
            gezählt**, "Image 1" und "Video 1" können also gleichzeitig
            vorkommen

            - In englischen Prompts "Image 1", "Video 1", "Audio 1" schreiben
            (groß geschrieben, mit Leerzeichen zwischen Wort und Zahl)
          example: >-
            The character in Video 1 holds Image 3 and plays a soft country folk
            tune on the chair in Image 4, saying: “What lovely sunshine today.”
        image_urls:
          type: array
          items:
            type: string
            format: uri
          maxItems: 10
          description: >-
            Array mit URLs von Referenzbildern, **höchstens 10 Bilder**. Es kann
            Subjekte (Personen/Tiere/Objekte) oder Szenenhintergründe liefern;
            bei Subjekten sollte jedes Bild nur **einen** Charakter enthalten


            Die Reihenfolge im Array entspricht "Bild 1, Bild 2 ..." im Prompt.


            **Bildgrenzen:**

            - Formate: JPEG, JPG, PNG (Transparenz nicht unterstützt), BMP, WEBP

            - Auflösung: Breite und Höhe in `[240, 8000]` Pixel

            - Seitenverhältnis: 1:8 ~ 8:1

            - Dateigröße: max. `20MB`
          example:
            - https://example.com/ref1.jpg
            - https://example.com/ref2.png
        video_urls:
          type: array
          items:
            type: string
            format: uri
          maxItems: 5
          description: >-
            Array mit URLs von Referenzvideos, **höchstens 5 Clips**. Die
            Reihenfolge im Array entspricht "Video 1, Video 2 ..." im Prompt


            **Dauerbegrenzung:**

            - `1 ~ 15` Sekunden pro Clip

            - **insgesamt höchstens 15 Sekunden**

            - Gesamtdauer der Referenzvideos + Dauer des Ausgabevideos **darf 30
            Sekunden nicht überschreiten**


            **🔴 Referenzvideos zählen zur Abrechnung**: abgerechnete Dauer =
            Dauer des Eingabevideos + Dauer des Ausgabevideos. Referenzbilder,
            Referenzaudio, Dateien und Webseiten werden nicht abgerechnet


            **Videogrenzen:**

            - Formate: mp4, mov

            - Auflösung: Breite und Höhe in `[240, 4096]` Pixel

            - Seitenverhältnis: 1:8 ~ 8:1

            - Größe pro Datei: max. `100MB`
          example:
            - https://example.com/ref_video.mp4
        audio_urls:
          type: array
          items:
            type: string
            format: uri
          maxItems: 5
          description: >-
            Array mit URLs von Referenzaudio, **höchstens 5 Clips**. Die
            Reihenfolge im Array entspricht "Audio 1, Audio 2 ..." im Prompt


            **⚠️ Andere Semantik als in Wan2.7:** In Wan2.7 war `audio_urls`
            eine **Stimme**, die an ein bestimmtes Referenzbild / Referenzvideo
            gebunden war; in Wan3.0 ist Referenzaudio **eigenständiges
            Material**, das im Prompt direkt mit "Audio 1" angesprochen wird,
            und das Stimmbindungs-Protokoll `model_params.voice_bindings` wird
            **nicht unterstützt**. Beim Umstieg von Wan2.7 bitte entsprechend
            anpassen.


            **Dauerbegrenzung:**

            - `1 ~ 15` Sekunden pro Clip, insgesamt höchstens 15 Sekunden

            - Referenzaudio wird **nicht abgerechnet**


            **Audiogrenzen:**

            - Formate: wav, mp3

            - Dateigröße: max. `15MB`
          example:
            - https://example.com/ref_audio.mp3
        model_params:
          type: object
          description: >-
            Modellerweiterungsparameter. `file_url` und `link_url` schließen
            sich **gegenseitig aus**, es ist nur eines von beiden möglich
          properties:
            file_url:
              type: string
              format: uri
              description: >-
                URL der Referenzdatei, **höchstens 1**. Das Modell versteht den
                Dateiinhalt automatisch und generiert daraus das Video (zum
                Beispiel wird aus einem Produkt-Deck ein Werbefilm)


                **Schließt sich mit `link_url` gegenseitig aus**, beide können
                nicht zusammen übergeben werden


                **Dateigrenzen:**

                - Formate: docx, doc, xlsx, xls, pptx, ppt, pdf, txt, key,
                pages, numbers, md

                - Dateigröße: max. `100MB`

                - Seitenzahl: höchstens 50 Seiten
              example: https://example.com/product-deck.pptx
            link_url:
              type: string
              format: uri
              description: >-
                Link zu einer Referenz-Webseite, **höchstens 1**. Das Modell
                ruft die Seite automatisch ab, versteht deren Inhalt und
                generiert daraus das Video


                **Schließt sich mit `file_url` gegenseitig aus**, beide können
                nicht zusammen übergeben werden


                **Einschränkung:** Es können nur öffentliche Seiten **ohne
                Login** ausgewertet werden (Nachrichten, Blogs, Artikel aus
                Newslettern usw.)
              example: https://example.com/article/12345
        duration:
          type: integer
          description: >-
            Dauer des generierten Videos (Sekunden), Standard `5`


            **Zulässige Werte:**

            - Eine beliebige ganze Zahl zwischen `2` und `30`

            - `-1`: intelligente Dauer, das Modell bestimmt die Ausgabelänge
            anhand von Prompt und Eingabematerial


            **Abrechnung der intelligenten Dauer:** Bei der Übermittlung ist
            nicht bekannt, wie lang das Ergebnis wird, daher wird zum Höchstwert
            von `30` Sekunden **vorab reserviert**; nach erfolgreicher Aufgabe
            wird nach der tatsächlichen Ausgabedauer abgerechnet und der zu viel
            eingefrorene Anteil automatisch freigegeben. Reicht das Guthaben für
            die volle Reservierung nicht aus, geben Sie stattdessen eine
            konkrete Sekundenzahl an.


            **Zusätzliche Einschränkung bei übergebenen Referenzvideos:**

            - Gesamtdauer der Referenzvideos + Dauer des Ausgabevideos **darf 30
            Sekunden nicht überschreiten**

            - Beispiel: bei insgesamt 10 Sekunden Referenzvideo kann `duration`
            höchstens 20 betragen
          default: 5
          example: 5
        quality:
          type: string
          description: >-
            Videoauflösung, Standard `720p`


            **Optionen:**

            - `480p`: geringere Schärfe, niedrigster Preis (Abrechnungsbasis)

            - `720p`: Standardschärfe, dies ist der Standardwert, Preis 2x von
            `480p`

            - `1080p`: hohe Schärfe, Preis 4x von `480p`
          enum:
            - 480p
            - 720p
            - 1080p
          default: 720p
          example: 720p
        aspect_ratio:
          type: string
          description: >-
            Seitenverhältnis des Videos, Standard `adaptive`


            **Optionen:**

            - `adaptive`: adaptiv, das Modell empfiehlt anhand des Verhältnisses
            des Eingabematerials und der Absicht des Prompts ein passendes
            Seitenverhältnis, dies ist der Standardwert

            - `16:9` (Querformat), `9:16` (Hochformat), `1:1` (quadratisch),
            `4:3`, `3:4`
          enum:
            - adaptive
            - '16:9'
            - '9:16'
            - '1:1'
            - '4:3'
            - '3:4'
          default: adaptive
          example: '16:9'
        generate_audio:
          type: boolean
          description: >-
            Ob das Ausgabevideo eine Tonspur enthält, Standard `true`


            **Optionen:**

            - `true`: das Ausgabevideo enthält Ton (Stimmen, Soundeffekte,
            Hintergrundmusik), dies ist der Standardwert

            - `false`: stummes Video


            **Ton an oder aus kostet gleich viel**, es fallen keine Zusatzkosten
            an.
          default: true
          example: true
        seed:
          type: integer
          description: >-
            Zufallsseed zur Reproduktion von Ergebnissen, standardmäßig zufällig


            **Hinweise:**

            - Bereich: `0` ~ `2147483647`

            - Ein fester Seed reduziert beim Iterieren am Prompt die Variation
            und verbessert die Reproduzierbarkeit
          minimum: 0
          maximum: 2147483647
          example: 42
        callback_url:
          type: string
          description: >-
            HTTPS-Callback-URL nach Aufgabenabschluss


            **Callback-Zeitpunkte:**

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

            - 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: wan3.0-reference-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: Aufgaben-Ausgabetyp
          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: Ob die Aufgabe abgebrochen werden kann
          example: true
        estimated_time:
          type: integer
          description: Geschätzte Abschlusszeit (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 Guthabenverbrauch
          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

        ```

````