Wprowadzenie
Wan 3.0 Prime Obraz na wideo animuje klatkę początkową przez 2–30 sekund na renderze Prime, z tymi samymi polami co Wan 3.0 Obraz na wideo. image_url jest wymagany i staje się dokładnie pierwszą klatką; prompt jest opcjonalny i musi opisać tylko ruch; last_image_url opcjonalnie ustala klatkę końcową. Rozdzielczość to 480p, 720p lub 1080p, domyślnie 720p, a dźwięk powstaje razem z obrazem, chyba że ustawisz generate_audio na false.
Wybierz tryb według materiału początkowego
| Materiał początkowy | Tryb |
|---|---|
| Pisany brief określa scenę, działanie, kamerę i w razie potrzeby dźwięk. | Wan 3.0 Prime Tekst na wideo |
| Zatwierdzony obraz początkowy ustala postać i kompozycję, a instrukcja kieruje późniejszym ruchem. | Wan 3.0 Prime Obraz na wideo |
| Oddzielne materiały referencyjne mogą prowadzić tożsamość, miejsce, ruch lub dźwięk, gdy każdy ma jasną rolę. | Wan 3.0 Prime Referencje na wideo |
Najważniejsze funkcje
Scenografia i strój z obrazu, akcja z promptu
Skoro kadr już niesie look, cały wniosek może skupić się na akcji i dźwięku. Przykład z sauną zaczyna się od nieruchomego obrazu, który już zawiera scenerię i strój; prompt obejmuje chochlę wody na rozgrzane kamienie, obłok pary, grzbiet nadgarstka przesunięty po obojczyku i linię audio nazywającą syk, skrzypiące cedrowe drewno i powolny oddech.
Ustalone zakończenie zabezpiecza długie zmiany
last_image_url sprawia, że klip kończy się dokładnie na przekazanym obrazie. Przykład z parkietem zaczyna się od pustego parkietu i kończy na dostarczonej klatce pełnej sali – 10 sekund w 1080p i 3:4 bez dźwięku – więc model wymyśla, jak sala się zapełnia, a nie czym jest w końcu wypełniona.
Domyślnie kształt samej klatki
Bez aspect_ratio klip zachowuje kształt klatki początkowej; sprzeczna wartość powoduje przycięcie. Obsługiwane są JPEG, PNG bez przezroczystości, BMP i WEBP o boku od 240 do 8000 pikseli, do 20 MB i nie szersze niż 8:1. Klatka końcowa podlega tym samym limitom.
Parametry żądania
| Parametr | Wymagane | Uwaga |
|---|---|---|
prompt | Nie | Opcjonalny: bez niego model sam ożywia klatkę początkową. Jeśli go piszesz, opisz ujęcie: temat, jedna akcja, jeden ruch kamery, potem światło i dźwięk. od 1 znaków |
image_url | Tak | Klatka początkowa, użyta dokładnie jako pierwsza klatka, a zarazem prawdziwy sufit jakości ujęcia. |
last_image_url | Nie | Pole opcjonalne, działa tylko razem z |
aspect_ratio | Nie | 16:9, 9:16, 1:1, 4:3, 3:4 albo adaptive, przy którym wybiera model. Pomiń je, żeby odziedziczyć kształt klatki początkowej; sprzeczna wartość spowoduje kadrowanie. |
enable_thinking | Nie | Każe modelowi przemyśleć polecenie i materiały referencyjne przed generowaniem. Domyślnie: |
resolution | Nie | 480p, 720p lub 1080p. Domyślnie 720p. |
duration_seconds | Nie | Dowolna liczba całkowita od 2 do 30 albo -1 dla inteligentnej długości, przy której długość wybiera model: z góry rezerwowane jest maksimum 30 sekund, a rozliczenie ustala się n… |
generate_audio | Nie | Domyślnie włączone. Klip wraca z dźwiękiem już zgranym z obrazem. Domyślnie: |
enable_prompt_expansion | Nie | Domyślnie wyłączone. Po włączeniu prompt jest przepisywany przed generowaniem: pomaga przy ubogich briefach, a przy rozbudowanych raczej przeszkadza. Domyślnie: |
seed | Nie | Od 0 do 2147483647. Trzymaj go bez zmian, żeby porównywać po jednym polu; pomiń go, jeśli zależy ci na różnorodności. |
Cennik
| Specyfikacja | Cena |
|---|---|
| $0.0612 / sekundę |
| $0.126 / sekundę |
| $0.252 / sekundę |
Zastosowania
Szybka akcja z nieruchomego obrazu
Przykład z plażą zaczyna się od amazonki na koniu i prosi, by kłus przeszedł w galop, piasek i płytka woda tryskały spod kopyt, a szybki ruch kamery równolegle towarzyszył jej, gdy przemyka w stronę nisko zawieszonego słońca. Przy tej prędkości klatka początkowa przestaje pomagać, więc fizykę niesie prompt: co jest wyrzucane, w którą stronę i jak kamera nadąża.
Jeden gest z ustalonym zakończeniem
Przykład z balem maskowym ustala oba końce – przekazaną pierwszą i ostatnią klatkę tej samej kobiety na tych samych marmurowych schodach – i opisuje wejście pomiędzy nimi: zdejmuje złotą maskę, unosi suknię i schodzi kilka stopni w stronę kamery, a zamaskowani goście wznoszą kieliszki. Ponieważ kadr końcowy powstał z początkowego, suknia, żyrandol i goście zostają na swoich miejscach. Klip trwa 5 sekund w 720p, z dźwiękiem.
Wskazówki
Najpierw zatwierdź klatkę końcową jako obraz
Gdy zakończenie ma znaczenie, przygotuj ostatnią klatkę przed renderem, w tej samej scenografii i w tym samym kadrze co pierwszą. Zatwierdzenie jej jako obrazu jest dużo tańsze niż iterowanie długiego środka, a zadaniem promptu staje się opis przejścia zamiast wymyślania celu.
Zapisuj dźwięk jako listę źródeł
Prompt sauny kończy się linią „Audio:”, która wymienia każde źródło. To pewniejsze niż słowo opisujące nastrój i wiąże każdy dźwięk z akcją, która go wywołuje. Ustaw generate_audio na false, jak w przykładzie z parkietem, gdy klip dostanie muzykę w montażu.
Ustal krótko, potem wydłużaj
Przetestuj ruch przy 5 sekundach ze stałym seed, potem wydłużaj. Dłuższe klipy bardziej dryfują w wyglądzie postaci i geometrii, a szybkie krzyżowanie rąk i nóg przy 30 sekundach to miejsce, gdzie artefakty pojawiają się najpierw. Zostaw enable_prompt_expansion na domyślnym false, żeby precyzyjny opis ruchu nie został przepisany przed generowaniem.
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": "alibaba/wan-3.0-prime/image-to-video",
"input": {
"duration_seconds": 5,
"image_url": "https://example.com/reference.png",
"prompt": "A slow aerial shot drifting over a misty pine forest at sunrise",
"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.



























