Wprowadzenie
Seedance 2.0 Fast w trybie obraz na wideo zaczyna klip od twojego obrazu i animuje go do 15 sekund. Gdy dodasz kadr końcowy, ujęcie musi do niego dojść — dzięki temu przejścia i pary przed-po są powtarzalne.
Seedance 2.0 Fast to szybki wariant linii Seedance 2.0 od ByteDance. Jego trzy endpointy zwracają klipy od 4 do 15 sekund w 480p lub 720p, z dźwiękiem generowanym razem z obrazem.
Wybierz tryb Seedance 2.0 Fast według materiału wyjściowego
| Materiał wyjściowy | Tryb |
|---|---|
| Scenariusz lub opis sceny | Seedance 2.0 Fast Tekst na wideo |
| Zatwierdzony kadr otwierający | Seedance 2.0 Fast Obraz na wideo |
| Osobne referencje wyglądu, ruchu lub dźwięku | Seedance 2.0 Fast Referencje na wideo |
Najważniejsze funkcje
Jeden zestaw pól, trzy źródła
Wszystkie trzy endpointy przyjmują te same podstawowe pola: prompt, duration_seconds od 4 do 15 (lub -1, jeśli długość ma wybrać model), resolution w 480p lub 720p, aspect_ratio, generate_audio i seed. Zmienia się tylko źródło, które zakotwicza obraz: brak, kadr otwierający albo zestaw referencji. Żądanie przenosisz do innego trybu, dodając lub usuwając to źródło.
Obraz i dźwięk w jednym przebiegu
generate_audio jest domyślnie włączone i tworzy tło dźwiękowe, efekty ruchu oraz głos zsynchronizowane z klatkami. Wyłączenie nie obniża stawki w tym wariancie, więc wyłączaj je tylko w niemych pętlach lub materiale, który udźwiękowisz w postprodukcji.
Domyślnie adaptacyjne proporcje
aspect_ratio ma domyślnie wartość adaptive: obraz na wideo zachowuje proporcje kadru otwierającego, referencje na wideo idą za główną referencją, a w trybie tekst na wideo model sam wybiera kształt podpowiedziany przez prompt. Sześć stałych proporcji, 16:9, 9:16, 4:3, 3:4, 1:1 i 21:9, jest dostępnych, gdy miejsce publikacji narzuca format.
Parametry żądania
| Parametr | Wymagane | Uwaga |
|---|---|---|
prompt | Nie | Opcjonalny, ale warto go napisać: powiedz, co dzieje się po klatce, zamiast powtarzać to, co już widać – akcję, ruch kamery, upływ czasu, dźwięk. Bez niego ruch wybiera sam model. od 1 znaków |
image_url | Tak | Publiczny, bezpośrednio pobieralny odnośnik do pierwszej klatki; wymagany. |
last_image_url | Nie | Opcjonalna klatka końcowa. Decyduje, na jakim obrazie ląduje ujęcie: przejście, para przed i po albo pętla, która zaczyna się i kończy tym samym kadrem. |
aspect_ratio | Nie | Kadr wyjściowy, domyślnie adaptive: klip zachowuje proporcje klatki początkowej, więc nic nie zostaje przycięte. |
resolution | Nie | Rozdzielczość wyjściowa: 480p albo domyślne 720p. Wybiera próg cenowy i rządzi wyłącznie formatem dostawy – nie dokłada szczegółu, którego nie ma już w pierwszej klatce. |
duration_seconds | Nie | Długość gotowego klipu w pełnych sekundach, od 4 do 15, domyślnie 5, a zarazem rozliczana ilość; przy -1 długość wybiera model, a szacunek zakłada 15 sekund. |
generate_audio | Nie | Decyduje, czy powstaje własna ścieżka dźwiękowa zsynchronizowana z obrazem. Domyślnie włączone; wyłączenie nie obniża stawki na tym poziomie. Domyślnie: |
seed | Nie | Całkowity seed; pominięty – każdy przebieg losuje własny. Ustal go przy wszystkim innym bez zmian, żeby ocenić, co naprawdę zmieniła poprawka w prompcie. |
return_last_frame | Nie | Oprócz wideo zwraca ostatnią klatkę klipu jako osobny obraz. Wyślij ją do image-to-video jako kolejną klatkę początkową, żeby łączyć ujęcia bez samodzielnego eksportowania kadru. Domyślnie: |
bitrate_mode | Nie | Bitrate dostarczanego pliku: |
watermark | Nie | Dodaje do wideo widoczny znak wodny „AI generated” samego modelu. Domyślnie wyłączone; włącz, gdy miejsce publikacji wymaga oznaczania materiałów wygenerowanych przez AI. Domyślnie: |
Cennik
| Specyfikacja | Cena |
|---|---|
| $0.04499712 / sekundę |
| $0.096768 / sekundę |
Zastosowania
Dosłowne wyniki z własnego kadru
To, co pokazuje kadr otwierający, jest już w klipie, więc prompt opisuje tylko ruch i nie musi bronić treści. To pewna droga, gdy własny filtr Seedance odrzuca tę samą scenę zapisaną tekstem.
Przed i po oraz przejścia
Wyślij last_image_url razem z image_url, a ujęcie będzie musiało wylądować na kadrze końcowym. Opublikowany przykład w dziesięć sekund, przy nieruchomej kamerze, wypełnia pusty pokój dywanem, sofą i lampami — to kształt pokazu po remoncie albo przemiany produktu.
Szkic w 480p, dostawa w 720p
Rób tanie przebiegi w 480p, aż akcja i kadrowanie będą czytelne, a potem powtórz to samo żądanie w 720p dla ujęcia, które zostawiasz. Rozdzielczość zmienia tylko format wyjściowy; nie dodaje szczegółów, których nie ma w kadrze otwierającym.
Wskazówki
Najpierw przygotuj kadr
image_url ustala kompozycję, wygląd postaci, kolorystykę i górną granicę jakości. Napisy, znaki wodne i logotypy przechodzą do wideo, więc usuń je wcześniej. Każdy bok obrazu musi mieć od 300 do 6000 pikseli, inaczej żądanie zostanie odrzucone, zanim zacznie się generowanie.
Opisz, co dzieje się dalej, a nie to, co widać
Prompt jest opcjonalny, ale warto go napisać: podaj akcję, ruch kamery, upływ czasu i dźwięk. Ujęcie prowadzone przez jeden kadr dryfuje tym bardziej, im dłużej trwa, więc sprawdź ruch przy 4–5 sekundach, zanim zapłacisz za 15.
Dostosuj dołączony przykład
Opublikowany przykład używa aspect_ratio 16:9, duration_seconds 6, generate_audio true i resolution 720p, a jako image_url zdjęcia witryny kawiarni.
A hand reaches into frame and flips the door sign from CLOSED to OPEN, then withdraws; steam drifts off the machine behind the glass and the street reflection keeps moving. Camera stays where it is.
16:9 podano jawnie pod stałe poziome miejsce publikacji, zamiast zostawić adaptive, które poszłoby za zdjęciem. Gdy podstawisz własny kadr, zachowaj nieruchomą kamerę i jedną wyraźną akcję.
Oba kadry w tych samych proporcjach
Gdy dodajesz last_image_url, nadaj mu te same proporcje co kadrowi otwierającemu; jeśli się różnią, kadr końcowy zostanie przycięty. Między oboma kadrami trzymaj kamerę i światło bez zmian i zmień jeden wyraźny stan, inaczej środek klipu zamieni się w cięcie.
Szybki start z API
# Generate the idempotency key once; reuse it when retrying after a lost response.
export SPICY_IDEMPOTENCY_KEY="${SPICY_IDEMPOTENCY_KEY:-$(uuidgen)}"
curl -X POST https://api.spicyapi.ai/api/v1/jobs/createTask \
-H "Authorization: Bearer $SPICY_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $SPICY_IDEMPOTENCY_KEY" \
-d '{
"model": "bytedance/seedance-2.0-fast/image-to-video",
"input": {
"aspect_ratio": "adaptive",
"bitrate_mode": "standard",
"duration_seconds": 5,
"generate_audio": true,
"image_url": "https://example.com/reference.png",
"prompt": "A slow aerial shot drifting over a misty pine forest at sunrise"
}
}'
# Copy data.taskId from the response into TASK_ID, then poll the status.
TASK_ID="TASK_ID_FROM_RESPONSE"
curl "https://api.spicyapi.ai/api/v1/jobs/recordInfo?taskId=$TASK_ID" \
-H "Authorization: Bearer $SPICY_API_KEY"
Uwierzytelnianie, pełny schemat, odpytywanie i obsługę błędów opisuje dokumentacja API.
















