> ## Documentation Index
> Fetch the complete documentation index at: https://docs.acedata.cloud/llms.txt
> Use this file to discover all available pages before exploring further.

# SeeDance Videos Generation API Integrationsanleitung

> ByteDance Seedance Video Generation API guide - Ace Data Cloud

Dieser Artikel beschreibt eine Integrationsanleitung für die SeeDance Videos Generation API, die es ermöglicht, offizielle SeeDance-Videos durch Eingabe benutzerdefinierter Parameter zu generieren.

## Antragsprozess

Um die SeeDance Videos Generation API zu nutzen, müssen Sie zunächst Ihr API-Token im [Ace Data Cloud Dashboard](https://platform.acedata.cloud/console/applications) abrufen und für zukünftige Verwendung aufbewahren.

![](https://cdn.acedata.cloud/5hmkdg.jpg)

Wenn Sie noch nicht angemeldet oder registriert sind, werden Sie automatisch zur Anmeldeseite weitergeleitet, um sich zu registrieren und anzumelden. Nach Abschluss werden Sie automatisch zur aktuellen Seite zurückgeleitet.

**Ein API-Token reicht aus, um auf alle Dienste der Plattform zuzugreifen, es ist nicht erforderlich, für jeden Dienst separat zu beantragen.** Bei der ersten Beantragung erhalten Sie ein kostenloses Kontingent, um es kostenlos auszuprobieren; wenn das Kontingent erschöpft ist, können Sie im [Dashboard](https://platform.acedata.cloud/console/coin) Ihr Guthaben aufladen.

> 📘 Vollständige Dokumentation: [SeeDance Videos Generation API →](https://platform.acedata.cloud/documents/seedance-videos)

## Grundlegende Nutzung

Zunächst sollten Sie die grundlegende Nutzung verstehen, indem Sie die Eingabeaufforderung `content.text`, den Typ `content.type=text` und das Modell `model` eingeben, um das verarbeitete Ergebnis zu erhalten. Die spezifischen Inhalte sind wie folgt:

<p>
  <img src="https://cdn.acedata.cloud/seedance_parameters.png" width="500" className="m-auto" />
</p>

Hier haben wir die Request-Header festgelegt, einschließlich:

* `accept`: In welchem Format Sie die Antwort erhalten möchten, hier eingetragen als `application/json`, also im JSON-Format.
* `authorization`: Der Schlüssel zum Aufrufen der API, nach der Beantragung können Sie ihn direkt aus der Dropdown-Liste auswählen.

Zusätzlich haben wir den Request-Body festgelegt, einschließlich:

* `model`: Das Modell zur Generierung des Videos.
  * **Seedance 1.x-Serie**: `doubao-seedance-1-0-pro-250528`, `doubao-seedance-1-0-pro-fast-251015`, `doubao-seedance-1-5-pro-251215`, `doubao-seedance-1-0-lite-t2v-250428`, `doubao-seedance-1-0-lite-i2v-250428`.
  * **Seedance 2.0-Serie** (unterstützt multimodale Eingaben wie Gesichts-/Charakterreferenzen): `doubao-seedance-2-0-260128` (Standard), `doubao-seedance-2-0-fast-260128` (schnell), `doubao-seedance-2-0-mini-260615` (leicht). Siehe den Abschnitt „Gesicht und Charakterreferenzen (Seedance 2.0)“ weiter unten.
* `content`: Eingabewerte-Array, `type` kann `text` (Eingabeaufforderung), `image_url` (Referenzbild), `audio_url` (Referenzaudio, 2.0), `video_url` (Referenzvideo, 2.0) sein. Bilder können durch `role` für den Zweck angegeben werden: `first_frame` (erste Frame) / `last_frame` (letzte Frame) / `reference_image` (Gesicht / Charakter / Hauptreferenz).
* `resolution`: Ausgaberesolution, wählbar `480p` / `720p` / `1080p` (2.0 Standardmodell unterstützt zusätzlich `4k`; 2.0 `fast` / `mini` maximal `720p`).
* `ratio`: Seitenverhältnis, wählbar `16:9` / `4:3` / `1:1` / `3:4` / `9:16` / `21:9` / `adaptive`.
* `duration`: Videolänge (Sekunden), 1.x Bereich 2–12, 2.0 Bereich 2–15.
* `seed`: Zufallszahl, Ganzzahl, -1 bis 4294967295.
* `camerafixed`: Ob die Kamera fixiert ist, `true` / `false`.
* `watermark`: Ob ein Wasserzeichen hinzugefügt werden soll, `true` / `false`.
* `generate_audio`: Ob ein Video mit Ton generiert werden soll, `true` / `false`, **nur `doubao-seedance-1-5-pro-251215` unterstützt**.
* `return_last_frame`: Ob die URL des letzten Bildes des Videos im Ergebnis zurückgegeben werden soll.
* `execution_expires_after`: Timeout-Zeit für die Aufgabe (Sekunden), Bereich 3600–259200.
* `callback_url`: Asynchrone Rückrufadresse, nach der Einstellung gibt die API sofort `task_id` zurück, und bei Abschluss der Aufgabe wird das Ergebnis an diese Adresse POST gesendet.
* `async`: Optional, wenn auf `true` gesetzt, gibt die Schnittstelle sofort `task_id` zurück, ohne dass `callback_url` bereitgestellt werden muss, und das Ergebnis kann anschließend über die entsprechende Aufgabenabfrage-Schnittstelle abgefragt werden.

Nach der Auswahl können Sie sehen, dass auf der rechten Seite der entsprechende Code generiert wurde, wie im Bild gezeigt:

<p>
  <img src="https://cdn.acedata.cloud/seedance_request.png" width="500" className="m-auto" />
</p>

Klicken Sie auf die Schaltfläche „Try“, um einen Test durchzuführen. Wie im obigen Bild gezeigt, haben wir folgendes Ergebnis erhalten:

```json theme={null}
{
  "success": true,
  "task_id": "9777f36b-4f44-47ff-962d-45cd2f7aeaa8",
  "trace_id": "ce5da2ca-6695-4459-9d2c-2ef9f86db752",
  "data": {
    "task_id": "7e4e1773-510a-4a73-9ab4-98dd1a0b2a7f",
    "status": "succeeded",
    "model": "doubao-seedance-2-0-fast-260128",
    "duration": 5,
    "resolution": "720p",
    "ratio": "16:9",
    "video_url": "https://platform2.cdn.acedata.cloud/seedance/036f24ed-a9b1-49b3-92c4-30049a3bc152.mp4"
  }
}
```

Die Rückgabe enthält mehrere Felder, die wie folgt beschrieben werden:

* `success`, der Status der Videoerzeugungsaufgabe zu diesem Zeitpunkt.
* `task_id`, die ID der Videoerzeugungsaufgabe zu diesem Zeitpunkt.
* `trace_id`, die Verfolgungs-ID der Videoerzeugungsaufgabe zu diesem Zeitpunkt.
* `data`, die Ergebnisliste der Videoerzeugungsaufgabe zu diesem Zeitpunkt.
  * `task_id`, die serverseitige ID der Videoerzeugungsaufgabe zu diesem Zeitpunkt.
  * `video_url`, der Link zum Video der Videoerzeugungsaufgabe zu diesem Zeitpunkt.
  * `status`, der Status der Videoerzeugungsaufgabe zu diesem Zeitpunkt.
    * `model`, das Modell, das zur Generierung des Videos verwendet wurde.

Wir können sehen, dass wir die gewünschten Videoinformationen erhalten haben. Wir müssen nur die Video-URL aus `data` verwenden, um das generierte SeeDance-Video abzurufen.

Wenn Sie den entsprechenden Integrationscode generieren möchten, können Sie ihn direkt kopieren, zum Beispiel sieht der CURL-Code wie folgt aus:

```shell theme={null}
curl -X POST 'https://api.acedata.cloud/seedance/videos' \
-H 'authorization: Bearer ${bearer_token}' \
-H 'accept: application/json' \
-H 'content-type: application/json' \
-d '{
  "content": [{"type":"text","text":"Eine weiße Keramiktasse auf einer glänzenden Marmoroberfläche mit sanftem Morgenlicht durch das Fenster. Die Kamera umkreist die Tasse langsam 360 Grad, während der Dampf sanft aufsteigt."}],
  "model": "doubao-seedance-2-0-fast-260128",
  "resolution": "720p",
  "ratio": "16:9",
  "duration": 5
}'
```

## Inline-Parameterbeschreibung

Am Ende der Eingabeaufforderung `content[].text` können Sie durch Hinzufügen von `--parameter value` Parameter zur Generierung übergeben (alte Methode, schwache Validierung, bei falscher Eingabe wird automatisch der Standardwert verwendet). Die vollständige Parameterliste ist wie folgt:

| Inline-Parameter | Entsprechendes Feld | Beschreibung              | Wertebereich                                                  |
| ---------------- | ------------------- | ------------------------- | ------------------------------------------------------------- |
| `--rs`           | `resolution`        | Ausgaberesolution         | `480p` / `720p` / `1080p`                                     |
| `--rt`           | `ratio`             | Seitenverhältnis          | `16:9` / `4:3` / `1:1` / `3:4` / `9:16` / `21:9` / `adaptive` |
| `--dur`          | `duration`          | Videolänge (Sekunden)     | 2–12                                                          |
| `--frames`       | `frames`            | Videoanzahl               | Ganzzahlen in \[29, 289], die 25+4n erfüllen                  |
| `--fps`          | `framespersecond`   | Bildrate                  | Unterstützt nur `24`                                          |
| `--seed`         | `seed`              | Zufallszahl               | -1 bis 4294967295                                             |
| `--cf`           | `camerafixed`       | Kamera fixiert?           | `true` / `false`                                              |
| `--wm`           | `watermark`         | Wasserzeichen hinzufügen? | `true` / `false`                                              |

> **Empfohlene Vorgehensweise**: Verwenden Sie direkt die entsprechenden Top-Level-Felder (wie `resolution`, `ratio` usw.) im Request Body. Im strengen Validierungsmodus wird bei falscher Parameterangabe eine klare Fehlermeldung zurückgegeben, was die Fehlersuche erleichtert.

## Generierung von Videos mit Ton

`doubao-seedance-1-5-pro-251215` unterstützt die Generierung von Videos mit Audio durch den Parameter `generate_audio`:

```json theme={null}
{
  "model": "doubao-seedance-1-5-pro-251215",
  "content": [
    {
      "type": "text",
      "text": "Ein Mädchen hält einen Fuchs, der Wind weht ihr Haar, man kann das Geräusch des Windes hören"
    }
  ],
  "generate_audio": true,
  "ratio": "16:9",
  "duration": 5
}
```

Andere Modelle unterstützen diesen Parameter nicht, er wird ignoriert, wenn er übergeben wird.

## Bildgenerierung für das erste Video-Frame

Wenn Sie ein Video aus einem Bild generieren möchten, muss der `content`-Parameter zunächst einen Eintrag mit `type` als `image_url` enthalten, das `image_url`-Feld muss im Objektformat sein: `{"url": "https://..."}` oder im Base64-Format `{"url": "data:image/png;base64,..."}`.

> **Hinweis**: `image_url` unterstützt nicht die direkte Übergabe im String-Format (z. B. `"image_url": "https://..."`), es muss das Objektformat `"image_url": {"url": "https://..."}` verwendet werden, andernfalls wird ein 400-Fehler zurückgegeben.

Entsprechender Code:

```python theme={null}
import requests

url = "https://api.acedata.cloud/seedance/videos"

headers = {
    "accept": "application/json",
    "authorization": "Bearer {token}",
    "content-type": "application/json"
}

payload = {
    "content": [
        {
            "type": "image_url",
            "image_url": {
                "url": "https://ark-project.tos-cn-beijing.volces.com/doc_image/i2v_foxrgirl.png"
            }
        },
        {
            "type": "text",
            "text": "Ein Mädchen hält einen Fuchs in ihren Armen. Sie öffnet ihre Augen und schaut zärtlich in die Kamera, während der Fuchs sie liebevoll zurückhält. Als die Kamera langsam zurückzieht, weht der Wind sanft durch ihr Haar. --ratio adaptive  --dur 5"
        }
    ],
    "model": "doubao-seedance-1-0-pro-250528"
}

response = requests.post(url, json=payload, headers=headers)
print(response.text)
```

Wenn Sie auf Ausführen klicken, werden Sie sofort ein Ergebnis erhalten, wie folgt:

```
{
    "success": true,
    "task_id": "dc7cceb5-3c12-4de7-a5f4-abcbba3e8e39",
    "trace_id": "b3b09de3-b7fa-4bb0-88b5-aad4b4a96fd4",
    "data": {
        "task_id": "cgt-20251222072003-x2259",
        "status": "succeeded",
        "video_url": "https://platform.cdn.acedata.cloud/seedance/6afb78b8-5ba8-424f-adcd-69423a700b50.mp4",
        "model": "doubao-seedance-1-0-pro-250528"
    }
}
```

Sie können sehen, dass das generierte Ergebnis ein Video aus einem Bild ist, das Ergebnis ähnelt dem oben genannten.

## Bildgenerierung für das erste und letzte Video-Frame

Wenn Sie das erste und letzte Frame eines Videos aus Bildern generieren möchten, muss der Parameter `content` zunächst den Typ `image_url` enthalten und die `role`-Eigenschaft auf `first_frame` und `last_frame` gesetzt werden, um die folgenden Inhalte anzugeben:

* role: Gibt das erste oder letzte Frame an.
* image\_url
  * url Bildlink
    Gleichzeitig muss `content` auch den Typ `text` als Prompt-Hinweis enthalten.

Entsprechender Code:

```python theme={null}
import requests

url = "https://api.acedata.cloud/seedance/videos"

headers = {
    "accept": "application/json",
    "authorization": "Bearer {token}",
    "content-type": "application/json"
}

payload = {
   "model": "doubao-seedance-1-0-pro-250528",
    "content": [
         {
            "type": "text",
            "text": "360-Grad-Aufnahme"
        },
        {
            "type": "image_url",
            "image_url": {
                "url": "https://ark-project.tos-cn-beijing.volces.com/doc_image/seepro_first_frame.jpeg"
            },
            "role": "first_frame"
        },
        {
            "type": "image_url",
            "image_url": {
                "url": "https://ark-project.tos-cn-beijing.volces.com/doc_image/seepro_last_frame.jpeg"
            },
            "role": "last_frame"
        }
    ]
}

response = requests.post(url, json=payload, headers=headers)
print(response.text)
```

Wenn Sie auf Ausführen klicken, werden Sie sofort ein Ergebnis erhalten, wie folgt:

```
{
    "success": true,
    "task_id": "f7096c6c-9430-4392-8201-d259632d7afd",
    "trace_id": "4a4a3721-00fb-43d2-aff2-3b516ac01a8a",
    "data": {
        "task_id": "cgt-20251222073134-54qcw",
        "status": "succeeded",
        "video_url": "https://platform.cdn.acedata.cloud/seedance/95f9f5f0-fc50-4c71-bc6f-e154582c141e.mp4",
        "model": "doubao-seedance-1-0-pro-250528"
    }
}
```

Sie können sehen, dass das generierte Ergebnis ein Charakter-generiertes Video ist, das Ergebnis ähnelt dem oben genannten.

## Gesicht und Charakter Referenz (Seedance 2.0)

**Seedance 2.0 Serie** (`doubao-seedance-2-0-260128`, `doubao-seedance-2-0-fast-260128`, `doubao-seedance-2-0-mini-260615`) unterstützt die Übergabe von „**echten / Charakter**“ Referenzmaterial: Fügen Sie im `content` einen Eintrag mit `type` als `image_url` und `role` als `reference_image` hinzu, um ein Personenfoto als Referenz zu verwenden. Das Modell wird im generierten Video **die Merkmale dieser Person beibehalten**, um dieselbe Person in **neue Szenen, Bewegungen oder Aufnahmen** zu setzen.

> 📌 Fotos von echten Personen werden automatisch als Basismaterial auf der Plattform registriert und dann zur Generierung verwendet. Der gesamte Prozess ist für den Aufrufer völlig transparent: **Anfrage- und Antwortformat bleiben unverändert**, es sind keine zusätzlichen Parameter erforderlich, nur die erste Generierung benötigt einige Sekunden mehr für die Materialverarbeitung.

Wichtige Punkte zur Verwendung:

* Nur **Seedance 2.0 Serien** Modelle unterstützen `reference_image`; Modelle der 1.x Serie verwenden bitte `first_frame` / `last_frame` (erstes und letztes Bild im Video).
* `reference_image` **darf nicht** mit `first_frame` / `last_frame` kombiniert werden, es kann nur eines von beiden verwendet werden.
* Maximale Anzahl an multimodalen Referenzen: `image_url` maximal **9** Bilder; 2.0 unterstützt auch `audio_url` (`role` ist `reference_audio`, maximal 3) und `video_url` (`role` ist `reference_video`, maximal 3).
* Referenzbilder sollten **einzelne Personen, frontal, klar und ungehindert** zeigen; je klarer das Gesicht, desto höher die Ähnlichkeit.

### Beispiel 1: Nahaufnahme, die das Aussehen der Person beibehält

Übergeben Sie ein Gesichtsfoto, damit die Person in die Kamera lächelt und winkt. Der entsprechende Code:

```python theme={null}
import requests

url = "https://api.acedata.cloud/seedance/videos"

headers = {
    "accept": "application/json",
    "authorization": "Bearer {token}",
    "content-type": "application/json"
}

payload = {
    "model": "doubao-seedance-2-0-fast-260128",
    "content": [
        {
            "type": "text",
            "text": "Die Frau schaut in die Kamera, lächelt warm und natürlich und winkt mit der Hand, sanfte Studio-Beleuchtung, sanfter Kameraflug."
        },
        {
            "type": "image_url",
            "role": "reference_image",
            "image_url": {
                "url": "https://platform2.cdn.acedata.cloud/nanobanana/8e075897-0f50-4443-8500-666751791c6c.jpg"
            }
        }
    ],
    "resolution": "480p",
    "ratio": "9:16",
    "duration": 5
}

response = requests.post(url, json=payload, headers=headers)
print(response.text)
```

Die Rückgabe sieht wie folgt aus, das generierte Video zeigt die Person, die mit dem Referenzfoto übereinstimmt:

```json theme={null}
{
  "success": true,
  "task_id": "895eb5ea-bbe1-41a3-a9e9-48608e03f93a",
  "trace_id": "83544791-7a84-44de-b8d2-afe171a1c0e4",
  "data": {
    "task_id": "458abf29-cc39-4fd0-bcea-24f89a70d8de",
    "status": "succeeded",
    "video_url": "https://platform2.cdn.acedata.cloud/seedance/e71d3cc5-27e7-4719-be34-1f0e254eccaf.mp4",
    "model": "doubao-seedance-2-0-fast-260128",
    "resolution": "480p",
    "ratio": "9:16",
    "duration": 5
  }
}
```

### Beispiel 2: Die gleiche Person in einer neuen Szene

Die Stärke von `reference_image` liegt darin: nur die **Identität der Person** bleibt erhalten, während Szene, Kleidung und Bewegung vollständig durch die Eingabeaufforderung bestimmt werden. Hier verwenden wir dasselbe Gesichtsfoto, um die Person in einem beigen Mantel durch einen herbstlichen Park gehen zu lassen:

```json theme={null}
{
  "model": "doubao-seedance-2-0-fast-260128",
  "content": [
    {
      "type": "text",
      "text": "Die gleiche Frau, die einen beigen Mantel trägt, geht durch einen sonnigen Herbstpark, goldene Blätter fallen um sie herum, sie lächelt sanft in die Kamera, filmische Verfolgungsaufnahme."
    },
    {
      "type": "image_url",
      "role": "reference_image",
      "image_url": {
        "url": "https://platform2.cdn.acedata.cloud/nanobanana/8e075897-0f50-4443-8500-666751791c6c.jpg"
      }
    }
  ],
  "resolution": "720p",
  "ratio": "9:16",
  "duration": 5
}
```

Die Rückgabe sieht wie folgt aus, das Aussehen der Person bleibt erhalten, während die Szene in den herbstlichen Park gewechselt hat:

```json theme={null}
{
  "success": true,
  "task_id": "00872de7-16b7-431f-b4f7-6bf38ae86157",
  "trace_id": "577a07c3-4f5f-4cc7-86fe-535bb8332614",
  "data": {
    "task_id": "32fe1537-ba3e-452a-8749-3ef8890d37fd",
    "status": "succeeded",
    "video_url": "https://platform2.cdn.acedata.cloud/seedance/44f47593-556b-4fda-afa5-7a71eefcd228.mp4",
    "model": "doubao-seedance-2-0-fast-260128",
    "resolution": "720p",
    "ratio": "9:16",
    "duration": 5
  }
}
```

> 💡 Wenn Sie möchten, dass die Person die Komposition des Fotos genau nachahmt (anstatt „die gleiche Person in einer anderen Szene“), können Sie `first_frame` verwenden (erstes Bild im Video), um das Video mit diesem Foto zu beginnen.

## Asynchrone Rückrufe

Da die SeeDance Videos Generation API eine längere Generierungszeit hat (ca. 1-2 Minuten), können Sie das asynchrone Modus über das Feld `callback_url` verwenden, um zu vermeiden, dass die HTTP-Verbindung lange blockiert wird.

Gesamtprozess: Der Client gibt bei der Anfrage `callback_url` an, die API gibt sofort eine Antwort mit der `task_id` zurück; nach Abschluss der Aufgabe sendet die Plattform die generierten Ergebnisse in Form von POST JSON an die `callback_url`, die Ergebnisse enthalten ebenfalls die `task_id`, um die Zuordnung zu ermöglichen.

```json theme={null}
{
  "task_id": "f7096c6c-9430-4392-8201-d259632d7afd"
}
```

Wenn die Aufgabe abgeschlossen ist, sieht der Inhalt, der an die `callback_url` gesendet wird, wie folgt aus:

```json theme={null}
{
  "success": true,
  "task_id": "f7096c6c-9430-4392-8201-d259632d7afd",
  "trace_id": "4a4a3721-00fb-43d2-aff2-3b516ac01a8a",
  "data": {
    "task_id": "cgt-20251222073134-54qcw",
    "status": "succeeded",
    "video_url": "https://platform.cdn.acedata.cloud/seedance/95f9f5f0-fc50-4c71-bc6f-e154582c141e.mp4",
    "model": "doubao-seedance-1-0-pro-250528"
  }
}
```

Das `task_id` Feld in den Ergebnissen stimmt mit dem überein, das bei der Anfrage zurückgegeben wurde, und über dieses Feld kann die Zuordnung der Aufgabe erfolgen.

## Fehlerbehandlung

Wenn beim Aufruf der API ein Fehler auftritt, gibt die API den entsprechenden Fehlercode und die Informationen zurück. Zum Beispiel:

* `400 token_mismatched`: Ungültige Anfrage, möglicherweise aufgrund fehlender oder ungültiger Parameter.
* `400 api_not_implemented`: Ungültige Anfrage, möglicherweise aufgrund fehlender oder ungültiger Parameter.
* `401 invalid_token`: Unbefugt, ungültiger oder fehlender Autorisierungstoken.
* `429 too_many_requests`: Zu viele Anfragen, Sie haben das Kontingent überschritten.
* `500 api_error`: Interner Serverfehler, etwas ist auf dem Server schiefgelaufen.

### Beispiel für eine Fehlerantwort

```json theme={null}
{
  "success": false,
  "error": {
    "code": "api_error",
    "message": "fetch failed"
  },
  "trace_id": "2cf86e86-22a4-46e1-ac2f-032c0f2a4e89"
}
```

## Fazit

Durch dieses Dokument haben Sie gelernt, wie Sie die SeeDance Videos Generation API verwenden, um Videos durch Eingabeaufforderungen, Referenzbilder und die Gesicht-/Charakterreferenz von Seedance 2.0 zu generieren. Wir hoffen, dass dieses Dokument Ihnen hilft, die API besser zu integrieren und zu nutzen. Bei Fragen wenden Sie sich bitte jederzeit an unser technisches Support-Team.
