# Seedance 2.5 (https://funnyai.io/de/docs/seedance-2-5)





Seedance 2.5 unterstützt Text, Start- und Endbilder sowie Bild-, Video- und Audioreferenzen mit Ausgabe in 480p, 720p, 1080p. Generiere bis zu 30 Sekunden pro Anfrage. [Modelldetails und Playground](/de/models/seedance-2-5).

## Verbindung mit Funny AI herstellen [#connect-to-wan-api]

Verwende `https://api.wanapi.app` als API-Basis-URL. Erstelle in den [API-Schlüsseleinstellungen](/de/settings/apikeys) einen Schlüssel für die Modellfamilie **Seedance** und übermittle ihn als `Authorization: Bearer YOUR_API_KEY`. Bewahre Schlüssel auf deinem Server auf. Der Playground nutzt deine Website-Sitzung und belastet dasselbe Kontoguthaben; du musst keinen Schlüssel in den Browser einfügen.

Der Zugang erfordert ein freigeschaltetes Konto mit ausreichendem Guthaben. `GET /v1/models` listet die für deinen Schlüssel verfügbaren Modelle auf. Seedance-Modelle verwenden `POST /v1/videos`; wähle das Modell im JSON-Body.

| Einstellung     | Seedance 2.5                                                                   |
| --------------- | ------------------------------------------------------------------------------ |
| Modell-ID       | `bytedance/seedance-2.5`                                                       |
| `resolution`    | `480p`, `720p`, `1080p`; Standard: `720p`.                                     |
| `duration`      | 4–30 Ausgabesekunden oder `-1` für automatisch; Standard: `-1`.                |
| `aspectRatio`   | `adaptive`, `16:9`, `4:3`, `1:1`, `3:4`, `9:16`, `21:9`; Standard: `adaptive`. |
| `generateAudio` | Standardmäßig `true`. `false` senkt den Tokentarif nicht.                      |
| Ausgabe         | Ein Video pro Anfrage, mit 24 fps.                                             |

Die [Anfragefelder](#request-fields) beschreiben alle 14 Felder auf oberster Ebene. Verwende die hier gezeigten Feldnamen, einschließlich `aspectRatio` und `generateAudio`.

## Eine Aufgabe mit Seedance 2.5 absenden [#submit-a-seedance-25-task]

Dies ist eine Text-zu-Video-Anfrage über vier Sekunden in 720p. Setze `WAN_API_KEY` auf dem Server auf deinen Seedance-Schlüssel. Sende einmal und speichere die zurückgegebene `id`.

```bash
curl https://api.wanapi.app/v1/videos \
  -H "Authorization: Bearer $WAN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "model": "bytedance/seedance-2.5",
  "prompt": "A paper boat floats through a sunlit stream. Slow tracking shot.",
  "resolution": "720p",
  "aspectRatio": "16:9",
  "duration": 4,
  "generateAudio": true
}'
```

## Eine Aufgabe von Seedance 2.5 abfragen [#query-a-seedance-25-task]

Speichere die zurückgegebene `id` als `TASK_ID` und frage dann mit demselben Schlüssel ab. Das Absenden liefert eine Aufgabenbestätigung; das Video ist nach Abschluss verfügbar. Beginne mit Abfragen im Abstand von fünf Sekunden; siehe [Aufgabenstatus und Downloads](#poll-and-download-the-video).

```bash
curl "https://api.wanapi.app/v1/videos/$TASK_ID" \
  -H "Authorization: Bearer $WAN_API_KEY"
```

## Seedance 2.5: Preise [#seedance-25-pricing]

Die Tarife sind in USD pro eine Million Videotokens angegeben. Eingabe- und Ausgabe-Videotokens bestimmen die endgültigen Kosten. Auflösung, Dauer und Referenzvideo-Eingaben beeinflussen den Verbrauch; verwende den passenden Tarif für Anfragen mit oder ohne Referenzvideo. Für Audio gibt es keine eigene Preisstufe.

<SeedanceModelPricing model="findSeedanceModel('seedance-2-5')" />

[Preise und Schätzungen für Seedance 2.5 ansehen](/de/models/seedance-2-5#pricing). Prüfe vor dem Absenden die Schätzung im [Playground](/de/models/seedance-2-5#playground).

## Anfragefelder [#request-fields]

Sende ein JSON-Objekt. Für eine neue Szene sind `model` und ein nicht leerer Prompt oder mindestens eine Medieneingabe erforderlich; andere Felder sind optional. Sende für ein finales Rendering nur `model`, `draftTaskId` und `resolution: "1080p"` (optional `n: 1` und `providerOptions.bytedance.output_format`). Unbekannte Felder werden abgewiesen.

| Feld              | Typ                 | Vorgaben                                                                                                                                                                                                                                                                                             |
| ----------------- | ------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `model`           | Zeichenfolge        | Erforderlich: `bytedance/seedance-2.5`.                                                                                                                                                                                                                                                              |
| `draftTaskId`     | Zeichenfolge        | Öffentliche ID deines abgeschlossenen Seedance 2.5-Entwurfs. Sende für das finale Rendering nur `model`, `draftTaskId` und `resolution: "1080p"` (optional `n: 1` und `providerOptions.bytedance.output_format`).                                                                                    |
| `prompt`          | Zeichenfolge        | Textanweisungen; bei diesem Dienst bis zu 20.000 Zeichen. Eine neue Szene erfordert einen Prompt oder eine Medieneingabe; lasse dieses Feld weg, wenn du `draftTaskId` verwendest.                                                                                                                   |
| `image`           | URL oder URL-Objekt | URL des Startbilds oder ein Objekt mit `type: "url"`, `url` und optional `mediaType`. Verwende entweder `image` oder `frameImages`.                                                                                                                                                                  |
| `frameImages`     | Array               | Ein `first_frame` und optional ein `last_frame`. Jeder Eintrag enthält `frameType` und `image`; siehe Einzelbildbeispiel unten.                                                                                                                                                                      |
| `inputReferences` | Array               | Bis zu 30 Bilder und 10 Videos. Jeder Eintrag enthält `type: "url"`, `url` und `mediaType`. Auch das URL-Format mit `data`/`mediaType` wird akzeptiert.                                                                                                                                              |
| `aspectRatio`     | Zeichenfolge        | `adaptive` (Standard), `16:9`, `4:3`, `1:1`, `3:4`, `9:16`, `21:9`. Startbildmodi erfordern adaptive.                                                                                                                                                                                                |
| `resolution`      | Zeichenfolge        | `480p`, `720p`, `1080p`. Standard: `720p`. Akzeptiert auch `854x480`, `1280x720`, `1920x1080` als Auflösungsstufen; wähle die Form mit `aspectRatio`.                                                                                                                                                |
| `duration`        | Ganzzahl            | 4–30 Ausgabesekunden oder `-1` für automatisch. Standard: `-1`.                                                                                                                                                                                                                                      |
| `fps`             | Ganzzahl            | Fest auf `24`; weglassen oder `24` senden.                                                                                                                                                                                                                                                           |
| `seed`            | Ganzzahl            | Optional; `-1` bis `2147483647`. Keine Garantie für Wiederholbarkeit. Gib nicht zusätzlich `providerOptions.bytedance.seed` an.                                                                                                                                                                      |
| `generateAudio`   | Boolescher Wert     | Ton generieren. Standard: `true`; Deaktivieren ändert den Tokentarif nicht.                                                                                                                                                                                                                          |
| `n`               | Ganzzahl            | Fest auf `1`; ein Video pro Anfrage.                                                                                                                                                                                                                                                                 |
| `providerOptions` | Objekt              | Optionales `bytedance`-Objekt: `referenceAudio` (bis zu 10 HTTP(S)-URLs), `seed` (dieselben Grenzen wie `seed` auf oberster Ebene), `draft` (boolescher Wert; Standard `false`; `true` erfordert `480p`), `output_format` (`mp4` oder `mov`; Standard `mp4`). Unbekannte Optionen werden abgewiesen. |

### Eingabekombinationen und Mediengrenzen [#input-combinations-and-media-limits]

* Verwende `image` für ein Startbild oder `frameImages` für ein Startbild mit optionalem Endbild. Ein Endbild allein und doppelte Einzelbildtypen werden abgewiesen.

* Einzelbilder lassen sich nicht mit `inputReferences` oder `providerOptions.bytedance.referenceAudio` kombinieren.

* Der Referenzmodus akzeptiert bis zu 30 Bilder, 10 Videos und 10 Audioclips mit insgesamt höchstens 50 Referenzen.

* Einzelbildeingaben erfordern `aspectRatio: "adaptive"`. Referenzaudio kann ohne Bild oder Video verwendet werden.

* Medieneingaben müssen öffentliche HTTP(S)-URLs sein. Hochgeladene Bytes und URLs mit Zugangsdaten werden nicht akzeptiert.

* Bilder: JPEG, PNG, WebP, BMP, TIFF oder GIF, HEIC oder HEIF; kleiner als 30 MB; jede Seite 300–6.000 Pixel; Seitenverhältnis 0,4–2,5.

* Videos: MP4 oder MOV; höchstens 200 MB pro Datei; jeder Clip 2–30 Sekunden und zusammen höchstens 30 Sekunden; 300–6.000 Pixel pro Seite, Seitenverhältnis 0,4–2,5, 24–60 fps.

* Audio: MP3 oder WAV; höchstens 15 MB pro Datei; jeder Clip 2–30 Sekunden und zusammen höchstens 30 Sekunden.

* Größe, Kodierung und Dauer entfernter Medien werden während der Verarbeitung geprüft; die URL-Prüfung allein garantiert keine nutzbare Datei.

* Verwende `draftTaskId`, um einen abgeschlossenen Entwurf in 1080p zu rendern. Beliebige native Aufgabenoptionen werden nicht akzeptiert.

## Beispiele für Einzelbilder und Referenzen [#frame-and-reference-examples]

Sende diese Bodys an denselben Endpunkt `POST /v1/videos`. Ersetze vor dem Absenden jede `example.com`-URL durch deine eigene direkt zugängliche Medien-URL. Halte die Eingabe-URLs bis zum Abschluss der Aufgabe verfügbar.

### Start- und Endbilder [#first-and-last-frames]

Verwende für ein einzelnes Startbild `image: "https://example.com/first-frame.jpg"` und lasse `frameImages` weg. Um beide Endpunkte des Clips festzulegen, verwende:

```json
{
  "model": "bytedance/seedance-2.5",
  "prompt": "The camera slowly moves from the opening scene to the closing scene.",
  "frameImages": [
    {
      "frameType": "first_frame",
      "image": "https://example.com/first-frame.jpg"
    },
    {
      "frameType": "last_frame",
      "image": "https://example.com/last-frame.jpg"
    }
  ],
  "aspectRatio": "adaptive",
  "resolution": "720p",
  "duration": 4
}
```

### Bild-, Video- und Audioreferenzen [#image-video-and-audio-references]

Trage Bild- und Videoeingaben mit explizitem MIME-Typ in `inputReferences` ein. Audio-URLs gehören in `providerOptions.bytedance.referenceAudio`. Füge dieser Anfrage keine Einzelbildeingaben hinzu.

```json
{
  "model": "bytedance/seedance-2.5",
  "prompt": "Use the character from the image and the camera movement from the video.",
  "inputReferences": [
    {
      "type": "url",
      "url": "https://example.com/character.jpg",
      "mediaType": "image/jpeg"
    },
    {
      "type": "url",
      "url": "https://example.com/motion.mp4",
      "mediaType": "video/mp4"
    }
  ],
  "providerOptions": {
    "bytedance": {
      "referenceAudio": [
        "https://example.com/sound.wav"
      ]
    }
  },
  "resolution": "720p",
  "duration": 4
}
```

### Entwurfsvorschau [#draft-preview]

Verwende `providerOptions.bytedance.draft: true` mit `resolution: "480p"`, um einen Entwurf zu erstellen. Dabei gilt der normale 480p-Tokentarif. Verwende nach Abschluss seine öffentliche Aufgaben-ID für ein separates finales Rendering in 1080p.

```json
{
  "model": "bytedance/seedance-2.5",
  "prompt": "A paper boat floats through a sunlit stream. Slow tracking shot.",
  "resolution": "480p",
  "aspectRatio": "16:9",
  "duration": 4,
  "generateAudio": true,
  "providerOptions": {
    "bytedance": {
      "draft": true
    }
  }
}
```

### Einen Entwurf in 1080p rendern [#render-a-draft-at-1080p]

Sende diesen Body an `POST /v1/videos` und verwende dabei die öffentliche `task_…`-ID des abgeschlossenen Entwurfs. Der Entwurf muss zu deinem Konto gehören, dasselbe Modell und denselben Kanal verwenden und weniger als 7 Tage alt sein. Diese native Gültigkeitsdauer des Entwurfs ist unabhängig von der Speicherdauer des Videos.

```json
{
  "model": "bytedance/seedance-2.5",
  "draftTaskId": "task_YOUR_COMPLETED_DRAFT",
  "resolution": "1080p"
}
```

Sende `prompt`, Medien, `duration`, `aspectRatio`, `seed`, `generateAudio`, `fps`, `draft` oder `referenceAudio` nicht erneut. Diese Einstellungen werden aus dem Entwurf übernommen. Für die finale Ausgabe kannst du `providerOptions.bytedance.output_format` festlegen. Die API gibt eine **neue Aufgaben-ID** zurück; frage `GET /v1/videos/{new_task_id}` ab, um das finale Video und seine Bunny-URL abzurufen.

Das finale Rendering wird separat zum aktuellen 1080p-Tarif und in der Referenzvideo-Preisstufe des ursprünglichen Entwurfs abgerechnet. Grundlage sind die tatsächlich bei der Fertigstellung erfassten Tokens. Statusabfragen erzeugen keine neue Generierung und keine erneuten Kosten. Ist das Ergebnis des Absendeversuchs unklar, sende die Anfrage nicht automatisch erneut.

## MOV-Ausgabe [#mov-output]

Setze `providerOptions.bytedance.output_format` auf `mov` für MOV oder auf `mp4` für MP4 (Standard). Diese Ausgabeoption lässt sich sowohl für eine neue Szene als auch für das finale Rendering eines Entwurfs verwenden.

```json
{
  "model": "bytedance/seedance-2.5",
  "prompt": "A red ball on a plain table. Static camera.",
  "resolution": "480p",
  "duration": 4,
  "providerOptions": {
    "bytedance": {
      "output_format": "mov"
    }
  }
}
```

Nach Abschluss enthält `videos[0].url` die signierte Bunny-URL der ursprünglichen `.mov`-Datei und `videos[0].mediaType` den Wert `video/quicktime`. MOV wird nicht in MP4 umgewandelt. Die Wiedergabe im Browser hängt von der Codec-Unterstützung ab; lade die Datei herunter, falls dein Browser sie nicht abspielen kann. Die Dateien werden zu Bunny hochgeladen; in der Datenbank werden nur Dateiverweise und Aufgabenmetadaten gespeichert. Base64-Medieneingaben werden nicht akzeptiert.

## Video per Statusabfrage abrufen und herunterladen [#poll-and-download-the-video]

Eine akzeptierte Aufgabe gibt ein Objekt wie dieses zurück. Die Beispiel-IDs und Zeitstempel dienen der Veranschaulichung:

```json
{
  "id": "task_EXAMPLE",
  "object": "video",
  "model": "bytedance/seedance-2.5",
  "status": "queued",
  "progress": 0,
  "created_at": 1792022400
}
```

Frage `GET /v1/videos/{task_id}` mit deinem API-Schlüssel ab. Die Abfrage liefert dieselbe öffentliche Aufgaben-ID und dasselbe Modell zurück. Entscheide anhand von `status`, wann du die Abfragen beendest; `progress` ist keine Schätzung der verbleibenden Zeit.

| Status        | Bedeutung                           | Nächster Schritt                         |
| ------------- | ----------------------------------- | ---------------------------------------- |
| `queued`      | Die Aufgabe wurde angenommen.       | Weiter abfragen.                         |
| `in_progress` | Die Generierung läuft.              | Weiter abfragen.                         |
| `completed`   | Das Video ist bereit.               | `videos[0].url` lesen und herunterladen. |
| `failed`      | Die Generierung ist fehlgeschlagen. | Abfragen beenden und `error` prüfen.     |

Eine abgeschlossene Abfrage enthält `videos`, ein Array aus Objekten mit `url` und `mediaType`. Zeitstempel verwenden Unix-Sekunden; `completed_at` erscheint, sobald der Abschluss erfasst ist.

```json
{
  "id": "task_EXAMPLE",
  "object": "video",
  "model": "bytedance/seedance-2.5",
  "status": "completed",
  "progress": 100,
  "created_at": 1792022400,
  "completed_at": 1792022460,
  "videos": [
    {
      "url": "/v1/tasks/task_EXAMPLE/artifacts/video/content",
      "mediaType": "video/mp4"
    }
  ]
}
```

Ist die zurückgegebene URL ein relativer Pfad, löse ihn gegen `https://api.wanapi.app` auf und authentifiziere dich mit deinem API-Schlüssel. Für das obige Beispiel:

```bash
curl "https://api.wanapi.app/v1/tasks/$TASK_ID/artifacts/video/content" \
  -H "Authorization: Bearer $WAN_API_KEY" \
  -o video.mp4
```

Wird eine signierte HTTPS-Medien-URL zurückgegeben, verwende sie direkt, ohne deinen API-Schlüssel an diesen Host weiterzugeben. Ergebnis-URLs können ablaufen. Speichere Videos, die du behalten möchtest, in deinem eigenen Speicher. Statusabfragen und der Download eines vorhandenen Ergebnisses erzeugen keine weitere Generierung.

Eine fehlgeschlagene Aufgabe enthält ein `error`-Objekt mit `code` und `message`, zum Beispiel:

```json
{
  "id": "task_EXAMPLE",
  "object": "video",
  "model": "bytedance/seedance-2.5",
  "status": "failed",
  "error": {
    "code": "generation_failed",
    "message": "Video generation failed"
  }
}
```

## Abrechnung und Fehlerbehandlung [#billing-and-failure-handling]

Die endgültige Abrechnung richtet sich nach dem tatsächlichen Videotoken-Verbrauch und dem aktuellen Modelltarif. Die Playground-Schätzung ist ein geschätzter Höchstbetrag, kein Festpreisangebot. Längere Clips und höhere Ausgabeauflösungen können den Tokenverbrauch erhöhen. Fehlgeschlagene Anfragen werden nicht berechnet.

* **Ungültige Parameter:** Korrigiere vor dem erneuten Absenden die Felder oder Eingabekombination. Prüfe neben der URL-Syntax auch Medienformate und Grenzen.
* **Authentifizierung oder Modellzugang:** Verwende einen gültigen Seedance-Schlüssel, der für das angefragte Modell freigeschaltet ist.
* **Nicht genügend Guthaben:** Lade vor einer neuen kostenpflichtigen Anfrage Guthaben auf. Ein Schlüssellimit fügt dem Konto kein Guthaben hinzu.
* **Vorübergehender Abfragefehler:** Wiederhole den GET mit zunehmendem Abstand und einer maximalen Wartezeit. Eine fehlgeschlagene Abfrage bedeutet nicht, dass die Generierung fehlgeschlagen ist.
* **Zeitüberschreitung beim Absenden oder fehlende Aufgaben-ID:** Das Ergebnis kann unklar sein. Wiederhole den POST nicht automatisch; das könnte eine zweite kostenpflichtige Aufgabe erzeugen.
* **Downloadfehler:** Versuche zuerst erneut, das vorhandene Ergebnis herunterzuladen, bevor du eine neue Generierung startest.

Bewahre die Aufgaben-ID auf und kontaktiere den [Support](/de/contact), wenn ein unklarer Übermittlungsstatus untersucht werden muss.

[OpenAPI-Schema für Seedance 2.5 herunterladen](https://funnyai.io/models/seedance-2-5/openapi.json).
