Wprowadzenie
Seedance 1.5 Pro Spicy w trybie obraz na wideo robi z wysłanego zdjęcia pierwszą klatkę i animuje je do 12 sekund. Z włączonym camera_fixed dostarczona kompozycja jest kompozycją całego klipu.
Seedance 1.5 Pro Spicy to dostrojona przez LoRA odmiana bez cenzury generacji Seedance 1.5 Pro od ByteDance, udostępniona jako jeden endpoint obraz na wideo. image_url to jedyne wymagane pole, a klipy trwają od 4 do 12 sekund w 480p, 720p lub 1080p, z dźwiękiem generowanym w tym samym przebiegu.
Najważniejsze funkcje
Zablokowany kadr pozwala małemu ruchowi unieść klip
Ustaw camera_fixed na true, a kadr zatrzyma się w miejscu, podczas gdy postać porusza się dalej w jego wnętrzu. W zbliżeniach, bez pośpiechu, liczy się jedno: wędrująca kamera zamienia utrzymane spojrzenie w teledysk, a zablokowany kadr pozwala, by oddech, przesunięta kostka czy dłoń na kołdrze niosły cały klip.
To, co pokazuje zdjęcie, jest już w klipie
Strój, poza, skóra i ekspozycja przychodzą razem z obrazem, zanim model przeczyta prompt. Dlatego praca prowadzona obrazem przechodzi briefy, których pusta kartka by nie przeszła, a ostre, dobrze naświetlone zdjęcie daje więcej niż jakiekolwiek późniejsze łatanie promptu.
Twarde limity, które warto znać
Ta generacja kończy się na 1080p i dwunastu sekundach i nie ma endpointu referencji. Jeśli ujęcie wymaga 4K albo trzydziestu sekund, poradzi sobie Seedance 2.5 Spicy, ale bez blokady kamery. aspect_ratio ma domyślnie adaptive i idzie za proporcjami twojego zdjęcia.
Parametry żądania
| Parametr | Wymagane | Uwaga |
|---|---|---|
image_url | Tak | Wymagane – i jedyne wymagane pole. |
prompt | Nie | Tutaj opcjonalny, a przy włączonym |
last_image_url | Nie | Opcjonalna ostatnia klatka. Decyduje o obrazie, na którym ujęcie ląduje: przejście, para przed-i-po albo pętla otwierająca się i zamykająca na tym samym zdjęciu. |
aspect_ratio | Nie | Kadrowanie wyjścia, domyślnie adaptive: idzie za proporcjami dostarczonej klatki i oszczędza wcześniejsze przycinanie. |
duration_seconds | Nie | Długość gotowego klipu w pełnych sekundach, od 4 do 12, domyślnie 5 – i jednocześnie rozliczana wielkość. |
resolution | Nie | Rozdzielczość wyjścia: 480p, domyślnie 720p albo 1080p. Wybiera próg cenowy i rządzi wyłącznie dostarczanym formatem – nie dodaje detalu, którego pierwsza klatka już nie ma. |
generate_audio | Nie | Decyduje, czy powstaje natywna ścieżka dźwiękowa zsynchronizowana z obrazem. Domyślnie włączone i przesuwa żądanie do wyższego progu cenowego. Domyślnie: |
camera_fixed | Nie | Domyślnie wyłączone. Po włączeniu kamera stoi nieruchomo i porusza się wyłącznie postać – to pewniejszy sposób na nieruchome ujęcie niż wypraszanie go w prompcie. 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. |
Cennik
| Rozdzielczość | Generuj dźwięk: Nie | Generuj dźwięk: Tak |
|---|---|---|
| $0.012 / sekundę | $0.024 / sekundę |
| $0.026 / sekundę | $0.052 / sekundę |
| $0.052 / sekundę | $0.104 / sekundę |
Zastosowania
Klipy z pierwszej osoby i POV
Stopy na końcu łóżka, dłoń na kołdrze, spojrzenie prosto w obiektyw: ujęcia, które działają tylko wtedy, gdy kamera zachowuje się jak nieruchomo leżący człowiek. camera_fixed sprawia, że to się naprawdę udaje, a nie tylko w przybliżeniu.
Pętle, które nie dryfują
Wyślij to samo zdjęcie jako image_url i last_image_url, włącz camera_fixed i ogranicz ruch do oddechu albo przeniesienia ciężaru. Zablokowany kadr z małym ruchem wraca blisko punktu wyjścia, więc cięcie do początku jest niewidoczne.
Poprawka klienta bez ponownych zdjęć
Ustal seed zatwierdzonego ujęcia, zmień jeden fragment, na przykład dłoń idzie w lewo zamiast w prawo albo światło robi się cieplejsze, i wygeneruj ponownie. Przy zablokowanej kamerze i ustalonym kadrze druga wersja jest rozpoznawalnie tym samym ujęciem.
Wskazówki
Skomponuj kadr otwierający jak ujęcie ze statywu
Kadruj zdjęcie tak, jak ma wyglądać cały klip, bo z camera_fixed dostajesz dokładnie to. Zostaw dość miejsca, by postać mogła się ruszać bez pomocy kamery. Każdy bok musi mieć od 300 do 6000 pikseli.
Każdy czasownik należy do postaci
Przy zablokowanej kamerze prompt opisuje tylko ruch w kadrze: oddech, dłoń, przesuniętą kostkę, zatrzymane spojrzenie. Polecenie dla kamery i zablokowana kamera działają przeciwko sobie. Własna warstwa Seedance wciąż odrzuca wąski zakres sformułowań, najczęściej pocałunek, więc umieść ten moment w kadrze, a nie w zdaniu.
Dostosuj dołączony przykład
Opublikowany przykład używa camera_fixed true, duration_seconds 5, generate_audio true i resolution 720p.
Camera stays locked off. Her crossed ankles rock slowly and one foot flexes. She slides one hand out from behind her head and rests it on her stomach, her fingers tracing a slow circle on the camisole, while her other hand stays tucked behind her head. Her chest rises with a long breath. Nothing else in frame moves except the light shifting on the sheets.
Zdjęcie startowe dostarcza kompozycję i strój, camera_fixed trzyma kadr absolutnie nieruchomo, a prompt porusza tylko jej kostki, dłoń i oddech.
Sprawdź krótko, zanim zapłacisz za dwanaście
Ujęcie prowadzone przez jedną klatkę dryfuje tym bardziej, im dłużej trwa, więc najpierw sprawdź ruch przy 4–5 sekundach. generate_audio przenosi żądanie do wyższego progu cenowego; wyłącz je, dopóki sprawdzasz tylko kadrowanie.
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-1.5-pro-spicy/image-to-video",
"input": {
"aspect_ratio": "adaptive",
"duration_seconds": 5,
"generate_audio": true,
"image_url": "https://example.com/reference.png",
"resolution": "720p"
}
}'
# 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.
















