OrcaRouter mówi po modelach wideo Seedance na tym samym endpoincie
submit-and-poll co Kling. Wysyłasz model: byteplus/dreamina-seedance-2-0-260128,
OrcaRouter routuje żądanie do upstreamowego API Ark
/contents/generations/tasks, a Ty pollujesz to samo task ID z powrotem
przez OrcaRouter, gdy skończy (zwykle 30 sekund do 4 minut w zależności
od duration / resolution / generate_audio).
Aktualnie dostępny model. Tylko Seedance 2.0 jest obecnie
udostępniony, pod nazwą backendu byteplus/dreamina-seedance-2-0-260128.
Tabela możliwości poniżej wymienia resztę rodziny Seedance dla
referencji, ale nie są one jeszcze wybieralne w playgroundzie ani
routowalne przez OrcaRouter — używaj byteplus/dreamina-seedance-2-0-260128
dla każdego żądania na razie.
Endpoint zgłaszania POST /v1/video/generations i endpoint pobierania
GET /v1/video/generations/{task_id} są współdzielone z
Kling. Co się zmienia, to ciało żądania:
Kling używa prompt + image + metadata.{mode, aspect_ratio, image_list, ...}, Seedance używa prompt + metadata.{content[], ratio, duration, generate_audio, watermark, ...}. Prefiks model wybiera, który
schemat jest honorowany.
Modele
| Model | T2V | I2V (first) | I2V (first+last) | Ref multimodalna¹ | Edycja wideo² | Generate audio³ | Czas trwania | Dostępny |
|---|
byteplus/dreamina-seedance-2-0-260128 (2.0) | ✓ | ✓ | ✓ | ✓ pełna | ✓ | ✓ | 4 – 15 s | ✓ |
byteplus/seedance-2.0-fast | ✓ | ✓ | ✓ | ✓ pełna | ✓ | ✓ | 4 – 15 s | planowane |
byteplus/seedance-1-5-pro | ✓ | ✓ | ✓ | tylko obraz | | ✓ | 4 – 12 s | planowane |
byteplus/seedance-1-0-pro | ✓ | ✓ | ✓ | tylko obraz | | | 2 – 12 s | planowane |
byteplus/seedance-1-0-pro-fast | ✓ | ✓ | | tylko obraz | | | 2 – 12 s | planowane |
byteplus/seedance-1-0-lite-i2v | | ✓ | ✓ | tylko obraz | | | 2 – 12 s | planowane |
byteplus/seedance-1-0-lite-t2v | ✓ | | | tylko obraz | | | 2 – 12 s | planowane |
¹ Referencja multimodalna = tablica metadata.content[] może nieść
elementy image_url / video_url / audio_url z markerami role
(reference_image / reference_video / reference_audio).
“Pełna” oznacza, że akceptowane są kombinacje image + video + audio.
² Edycja wideo = przekaż element treści video_url, aby zastosować
edycje sterowane promptem do źródłowego wideo (zamiana podmiotu,
region inpainting itd.).
³ Natywne audio = upstream auto-generuje ścieżkę dźwiękową pasującą
do wideo. Przełącz przez metadata.generate_audio: true.
Endpoint zgłaszania jest taki sam dla każdego modelu —
POST /v1/video/generations. Co się zmienia, to które pola metadata
upstream honoruje zgodnie z tabelą powyżej. Zobacz upstreamową
matrycę możliwości Seedance,
aby zapoznać się z autorytatywną listą funkcji per-model.
Wyślij zadanie
Wyślij POST na /v1/video/generations z model, prompt i dowolnymi
upstream-specyficznymi parametrami pod metadata:
curl https://api.orcarouter.ai/v1/video/generations \
-H "Authorization: Bearer sk-orca-..." \
-H "Content-Type: application/json" \
-d '{
"model": "byteplus/dreamina-seedance-2-0-260128",
"prompt": "A girl holding a fox, the girl opens her eyes, looks gently at the camera, the fox hugs affectionately, the camera slowly pulls out, the girl'\''s hair is blown by the wind",
"metadata": {
"content": [
{ "type": "image_url", "image_url": { "url": "https://example.com/foxgirl.png" } }
],
"ratio": "16:9",
"duration": 5,
"generate_audio": true,
"watermark": false
}
}'
Odpowiedź niesie task ID (ta sama koperta co Kling — OrcaRouter
normalizuje między dostawcami):
{
"id": "task_9q9oz6tjtgABYWC1QIqoz3sscgVz7ycw",
"task_id": "task_9q9oz6tjtgABYWC1QIqoz3sscgVz7ycw",
"object": "video",
"model": "byteplus/dreamina-seedance-2-0-260128",
"status": "queued",
"progress": 0,
"created_at": 1777975188
}
OrcaRouter automatycznie zawija Twój prompt jako element tekstowy
wewnątrz tablicy content[] Seedance — nie musisz sam przekazywać
elementu {type: "text"}. Każdy element tekstowy, który podasz w
metadata.content[], jest zastępowany przez Twój główny prompt.
Inne elementy treści (image_url, video_url, audio_url) przechodzą
bez zmian.
Pola ciała
Te pola idą wewnątrz metadata. Ułóż je zgodnie z tabelami wariantów
poniżej.
| Pole | Typ | Uwagi |
|---|
content | array | Multimodalne elementy referencji. Każdy element: {type, image_url? | video_url? | audio_url?, role?}. Pomiń dla czystego text-to-video. |
ratio | string | Proporcje obrazu. 16:9 / 9:16 / 1:1 / 4:3 / 3:4 / 21:9 / adaptive. adaptive wnioskuje z wejścia. |
duration | integer | Sekundy. Dozwolony zakres zależy od modelu — zobacz tabelę powyżej. |
resolution | string | 480p / 720p / 1080p. Domyślnie 720p. 1080p tylko na seedance-2.0 / seedance-2.0-fast / seedance-1-5-pro / seedance-1-0-pro / seedance-1-0-pro-fast. |
generate_audio | boolean | Auto-generuj zsynchronizowaną ścieżkę dźwiękową. Domyślnie false. Tylko na seedance-2.0 / 2.0-fast / 1-5-pro. |
watermark | boolean | Odciśnij watermark upstreamu. Domyślnie zdefiniowane przez upstream. |
seed | integer | Losowy seed do odtwarzalności. |
service_tier | string | default (online) lub flex (offline / niższy priorytet, wyższa kwota). Domyślnie default. |
return_last_frame | boolean | Zwróć ostatnią klatkę jako obraz obok MP4. Domyślnie false. |
callback_url | string | URL webhooka — otrzymuje zmiany statusu zamiast (lub obok) pollowania. |
Kształt elementu content[]
Każdy element w metadata.content jest jednym z czterech kształtów:
{ "type": "image_url", "image_url": { "url": "https://..." }, "role": "first_frame" }
{ "type": "video_url", "video_url": { "url": "https://..." }, "role": "reference_video" }
{ "type": "audio_url", "audio_url": { "url": "https://..." }, "role": "reference_audio" }
{ "type": "text", "text": "..." } // automatycznie zastępowany przez główny prompt
Wartości role:
role | Cel |
|---|
first_frame | Zakotwicz ten obraz jako pierwszą klatkę wygenerowanego wideo. |
end_frame | Zakotwicz ten obraz jako ostatnią klatkę (użyj z first_frame dla first+last frame i2v). |
reference_image | Referencja stylu / podmiotu (wariant Multimodalnej referencji; można przekazać wiele). |
reference_video | Referencja stylu / ruchu lub źródłowe wideo do edycji / rozszerzenia. |
reference_audio | Muzyka w tle lub referencja głosu (generowanie audio-video). |
Odwołuj się do elementów wewnątrz promptu składnią [Image 1],
[Video 1], [Audio 1]. Indeks odpowiada kolejności tablicy (od 1,
zakres per typ).
Polluj po wyniki
Użyj task ID zwróconego przy zgłaszaniu:
curl https://api.orcarouter.ai/v1/video/generations/task_9q9oz6tjtgABYWC1QIqoz3sscgVz7ycw \
-H "Authorization: Bearer sk-orca-..."
Kształt odpowiedzi jest opakowany (identyczny z Kling):
{
"code": "success",
"message": "",
"data": {
"task_id": "task_9q9oz6tjtgABYWC1QIqoz3sscgVz7ycw",
"status": "SUCCESS",
"progress": "100%",
"result_url": "https://ark-content-generation-ap-southeast-1.tos-ap-southeast-1.volces.com/.../video.mp4",
"submit_time": 1777975188,
"start_time": 1777975241,
"finish_time": 1777975277,
"fail_reason": ""
}
}
Wartości statusu są znormalizowane na duże litery między dostawcami:
| Status | Status upstreamu Seedance | Znaczenie |
|---|
NOT_START | (przejściowy) | Wiersz zadania utworzony, jeszcze nie wysłany |
SUBMITTED | queued | Wysłany do upstreamu, czeka w kolejce |
IN_PROGRESS | running | Upstream renderuje |
SUCCESS | succeeded | Zrobione. data.result_url niesie MP4 |
FAILURE | failed | Awaria. data.fail_reason ma powód |
Postęp to procentowy string ("50%", "100%"), nie integer.
Polluj co 5 - 10 sekund. 5-sekundowy klip 720p typowo kończy się w
30 - 60 sekund; 1080p z audio lub 15-sekundowe / klipy z referencją
multimodalną mogą trwać 3 - 5 minut.
result_url to URL z podpisem upstreamu TOS z krótkim TTL — pobierz
lub przehostuj szybko, jeśli potrzebujesz długiej retencji.
Warianty endpointów
Wszystkie warianty współdzielą POST /v1/video/generations. To, którą
ścieżkę funkcjonalności Seedance upstream obsługuje, jest określone
przez elementy metadata.content[] i markery role — nie przez URL.
Text-to-video
Tylko model + prompt + opcjonalne metadane. Brak elementów treści
oznacza czyste text-to-video:
curl https://api.orcarouter.ai/v1/video/generations \
-H "Authorization: Bearer sk-orca-..." \
-H "Content-Type: application/json" \
-d '{
"model": "byteplus/dreamina-seedance-2-0-260128",
"prompt": "Photorealistic style: under a clear blue sky, a vast expanse of white daisy fields stretches out. The camera gradually zooms in on a single daisy with glistening dewdrops on its petals.",
"metadata": {
"ratio": "16:9",
"duration": 5,
"watermark": true
}
}'
Image-to-video — pierwsza klatka
Przekaż jeden element obrazu z role: "first_frame":
curl https://api.orcarouter.ai/v1/video/generations \
-H "Authorization: Bearer sk-orca-..." \
-H "Content-Type: application/json" \
-d '{
"model": "byteplus/dreamina-seedance-2-0-260128",
"prompt": "the cat starts dancing energetically",
"metadata": {
"content": [
{ "type": "image_url", "image_url": { "url": "https://example.com/cat.png" }, "role": "first_frame" }
],
"ratio": "adaptive",
"duration": 5,
"generate_audio": true
}
}'
Image-to-video — pierwsza i ostatnia klatka
Dwa elementy obrazu, po jednym dla first_frame i end_frame:
curl https://api.orcarouter.ai/v1/video/generations \
-H "Authorization: Bearer sk-orca-..." \
-H "Content-Type: application/json" \
-d '{
"model": "byteplus/dreamina-seedance-2-0-260128",
"prompt": "Create a 360-degree orbiting camera shot from start to end frame.",
"metadata": {
"content": [
{ "type": "image_url", "image_url": { "url": "https://example.com/start.jpg" }, "role": "first_frame" },
{ "type": "image_url", "image_url": { "url": "https://example.com/end.jpg" }, "role": "end_frame" }
],
"ratio": "16:9",
"duration": 6
}
}'
Referencja multimodalna — image + video + audio
Połącz elementy reference_image / reference_video / reference_audio.
Odwołuj się do nich w promptcie indeksami [Image N] / [Video N] /
[Audio N] (od 1, per typ):
curl https://api.orcarouter.ai/v1/video/generations \
-H "Authorization: Bearer sk-orca-..." \
-H "Content-Type: application/json" \
-d '{
"model": "byteplus/dreamina-seedance-2-0-260128",
"prompt": "Use the first-person POV framing from [Video 1] throughout, and use [Audio 1] as the background music. First-person POV fruit tea promotional ad: [Image 1] hands pick a dew-covered apple; [Image 2] holds the finished drink up to the camera.",
"metadata": {
"content": [
{ "type": "image_url", "image_url": { "url": "https://example.com/tea_pic1.jpg" }, "role": "reference_image" },
{ "type": "image_url", "image_url": { "url": "https://example.com/tea_pic2.jpg" }, "role": "reference_image" },
{ "type": "video_url", "video_url": { "url": "https://example.com/tea_video1.mp4" }, "role": "reference_video" },
{ "type": "audio_url", "audio_url": { "url": "https://example.com/tea_audio1.mp3" }, "role": "reference_audio" }
],
"ratio": "16:9",
"duration": 11,
"generate_audio": true,
"watermark": false
}
}'
Dostępne na seedance-2.0 i seedance-2.0-fast (pełne kombinacje
image + video + audio); seedance-1-5-pro i seedance-1-0-* akceptują
tylko elementy reference_image.
Edycja / rozszerzenie wideo
Przekaż {type: "video_url", role: "reference_video"} i poproś prompt,
aby go zmodyfikował lub rozszerzył:
curl https://api.orcarouter.ai/v1/video/generations \
-H "Authorization: Bearer sk-orca-..." \
-H "Content-Type: application/json" \
-d '{
"model": "byteplus/dreamina-seedance-2-0-260128",
"prompt": "Change all the fruits in [Video 1] into fresh fruits.",
"metadata": {
"content": [
{ "type": "video_url", "video_url": { "url": "https://example.com/source.mp4" }, "role": "reference_video" }
],
"ratio": "adaptive",
"duration": 6
}
}'
Dostępne tylko na seedance-2.0 i seedance-2.0-fast.
Webhooki
Przekaż metadata.callback_url: "https://your.domain/webhook", aby
otrzymać POST, gdy zadanie przejdzie do SUCCESS lub FAILURE.
Payload odzwierciedla odpowiedź pollowania. Jeśli ustawisz zarówno
pollowanie, jak i callback, dostaniesz oba — są niezależne.
Rozliczenia
OrcaRouter przekazuje upstreamową opłatę za tokeny per-zadanie bez
narzutu. Końcowy koszt odpowiada opublikowanej karcie cen ByteDance
Ark (upstreamowe completion_tokens / total_tokens z wyniku zadania
są konwertowane na kwotę po stawce per-token modelu ustawionej w
Twojej konfiguracji Channel Margin).
Niewielka pre-konsumowana rezerwa jest blokowana przy zgłaszaniu;
różnica rozliczana jest przy sukcesie. Zobacz
Operacje / Rozliczenia i zużycie.
Zobacz także