Wprowadzenie
Seedance 2.0 Mini 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 są powtarzalne.
Seedance 2.0 Mini to najmniejszy wariant linii Seedance 2.0 od ByteDance. Udostępnia te same trzy endpointy co Seedance 2.0 Fast i zwraca klipy od 4 do 15 sekund w 480p lub 720p, z dźwiękiem generowanym w tym samym przebiegu.
Wybierz tryb Seedance 2.0 Mini według materiału wyjściowego
| Materiał wyjściowy | Tryb |
|---|---|
| Scenariusz lub opis sceny | Seedance 2.0 Mini Tekst na wideo |
| Zatwierdzony kadr otwierający | Seedance 2.0 Mini Obraz na wideo |
| Osobne referencje wyglądu, ruchu lub dźwięku | Seedance 2.0 Mini Referencje na wideo |
Najważniejsze funkcje
Ten sam kontrakt co Seedance 2.0 Fast
Mini udostępnia te same endpointy i pola co Seedance 2.0 Fast: adaptacyjne proporcje i sześć stałych, od 4 do 15 sekund lub -1 dla długości wybranej przez model, natywny dźwięk i seed, a rozdzielczość kończy się na 720p. Pipeline napisany pod Mini przeniesiesz do Fast, zmieniając identyfikator modelu, a nie żądanie.
Stworzony do dużych wolumenów
Mini wybierasz, gdy przepustowość liczy się bardziej niż dodatkowa jakość większych modeli Seedance 2.0. Każdy endpoint jest asynchroniczny: wysyłaj Idempotency-Key z każdym żądaniem, zapisuj identyfikatory zadań i odbieraj wyniki przez polling lub callbacki. Klucz działa 24 godziny, więc ponowna próba po zerwanym połączeniu zwraca pierwotne zadanie.
Dłuższe sekwencje z przedłużaniem wideo
Żeby wyjść poza piętnaście sekund, wyślij gotowy klip do endpointu video-extend: jego ostatnia klatka otwiera nowe ujęcie Seedance 2.0 Mini, a w odpowiedzi dostajesz jeden plik z połączonymi częściami. Każdy krok rozlicza tylko sekundy, które dodaje, a połączony wynik można przedłużyć ponownie.
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: |
enable_web_search | Nie | Domyślnie wyłączone. Po włączeniu model może przed renderem wyszukać w sieci informacje związane z promptem. 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.0246078 / sekundę |
| $0.05292 / sekundę |
| $0.036 / sekundę |
| $0.072 / sekundę |
Zastosowania
Zdjęcia katalogowe w ruchu
Płaskie zdjęcie produktu albo półki staje się kilkoma sekundami ruchu bez ponownej sesji. Opublikowany przykład w cztery sekundy, przy nieruchomej kamerze, uzupełnia półkę chłodziarki puszka po puszce, z cichym brzękiem i szumem lodówki.
Timelapse między dwiema klatkami
Z last_image_url klip musi dojść do kadru końcowego. Jeden z przykładów w dziesięć sekund zmienia tę samą aleję z późnego lata w głęboką jesień, przy nieruchomej kamerze i bez cięć.
Dosadne sceny, które filtr tekstu by odrzucił
Treść niesie kadr otwierający, więc prompt opisuje tylko ruch. Gdy własna warstwa Seedance odrzuca scenę zapisaną tekstem, poprowadzenie jej od własnego kadru otwierającego pozwala ją uzyskać.
Wskazówki
Przygotuj kadr otwierający
image_url jest wymagane i ustala kompozycję, wygląd oraz górną granicę jakości; każdy bok musi mieć od 300 do 6000 pikseli. Wcześniej usuń napisy, znaki wodne i logotypy, bo przechodzą do wideo.
Pisz, co się zmienia, a nie co jest
Prompt jest opcjonalny. Opisz akcję, ruch kamery i dźwięk, które następują po kadrze; bez promptu ruch wybierze model. Sprawdź ruch przy 4–5 sekundach, zanim zapłacisz za 15, bo ujęcie z jednej klatki dryfuje tym bardziej, im dłużej trwa.
Dostosuj dołączony przykład
Opublikowany przykład używa aspect_ratio 16:9, duration_seconds 4, generate_audio true i resolution 720p, a jako image_url zdjęcia półki.
A gloved hand enters from the right and fills the gap in the upper row can by can, facing each label forward, then withdraws. Camera locked off on the shelf. Small metallic clinks, chiller hum, fluorescent light unchanged throughout.
Cztery sekundy wystarczą na jedną wyraźną akcję przy nieruchomej kamerze. Podstaw zdjęcie własnego produktu i zachowaj jeden ruch.
Nadaj kadrowi końcowemu te same proporcje
last_image_url musi mieć te same proporcje co kadr otwierający; inaczej zostanie przycięty. Między oboma kadrami trzymaj kamerę i światło bez zmian i zmień jeden wyraźny stan, jak porę roku w przykładzie z aleją.
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-mini/image-to-video",
"input": {
"aspect_ratio": "adaptive",
"bitrate_mode": "standard",
"duration_seconds": 5,
"enable_web_search": false,
"generate_audio": true,
"image_url": "https://example.com/reference.png"
}
}'
# 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.
















