Wprowadzenie
Wan 3.0 Obraz na wideo animuje dostarczony przez ciebie obraz. image_url jest używany dokładnie jako pierwsza klatka, więc ubranie, sylwetka, scenografia i kierunek światła pochodzą z obrazu, a prompt musi opisać tylko ruch. Prompt jest opcjonalny; bez niego model animuje klatkę samodzielnie. Opcjonalny last_image_url dokładnie ustala ostatnią klatkę. Klipy trwają od 2 do 30 sekund w 480p, 720p lub 1080p, a generowanie dźwięku jest domyślnie włączone. To najbardziej dosłowny z trybów: gdy wynik ma odpowiadać opisowi, powierz wygląd obrazowi, a prompt przeznacz na ruch.
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 Tekst na wideo |
| Zatwierdzony obraz początkowy ustala postać i kompozycję, a instrukcja kieruje późniejszym ruchem. | Wan 3.0 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 Referencje na wideo |
Najważniejsze funkcje
Klatka początkowa wyznacza pułap jakości
Ponieważ pierwsza klatka to twój obraz, jego ostrość, oświetlenie i kompozycja są górną granicą klipu. Obsługiwane są JPEG, PNG bez przezroczystości, BMP i WEBP o boku od 240 do 8000 pikseli, proporcjach nie szerszych niż 8:1 i rozmiarze do 20 MB. Bez aspect_ratio klip przejmuje format obrazu; sprzeczne proporcje powodują przycięcie.
Klatka końcowa ustalona, a nie zasugerowana
last_image_url to nie luźna wskazówka: klip kończy się dokładnie na tym obrazie, a pole działa tylko razem z image_url. Przykład z butelką przekazuje ten sam packshot na oba końce, więc butelka obraca się o ćwierć obrotu, refleks przesuwa się po szkle, a ona wraca do wyjściowego kąta z czytelną etykietą.
Długie odcinki między dwoma ustalonymi momentami
Gdy oba końce są podane, generowane jest tylko przejście między nimi. Przykład z tarasem na dachu ustala otwarte trzymanie taneczne jako pierwszą klatkę i najniższy punkt przechyłu jako ostatnią, a model wypełnia pięć sekund pomiędzy nimi w 720p; te same dwa kadry mogą obejmować znacznie dłuższy ruch, bo na tym endpoincie duration_seconds sięga 30.
Parametry żądania
| Parametr | Wymagane | Uwaga |
|---|---|---|
prompt | Nie | Opcjonalny: bez niego model sam animuje klatkę początkową. Jeśli go piszesz, opisz ujęcie: podmiot, jedna akcja, jeden ruch kamery, a 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, a klip 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ż zsynchronizowanym 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 szczegółowych działa przeciwko tobie. Domyślnie: |
seed | Nie | Od 0 do 2147483647. Trzymaj go na stałe, aby porównywać po jednym zmienionym polu; pomiń go, gdy chcesz różnorodności. |
Cennik
| Specyfikacja | Cena |
|---|---|
| $0.045 / sekundę |
| $0.09 / sekundę |
| $0.18 / sekundę |
Zastosowania
Obroty produktu z powrotem do głównego ujęcia
Przy packshotach przekaż zatwierdzony obraz jako pierwszą i ostatnią klatkę, zablokuj kamerę i opisz jeden ruch. Przykład z butelką używa jednego miękkiego światła kluczowego z lewej, bez muzyki (generate_audio ustawione na false) i stałego seeda 20260907, dzięki czemu łatwo powtórzyć ten sam ruch po drobnej zmianie tekstu i porównać oba pliki.
Stylizowane ujęcia zgodne z opisem
Gdy ubranie, sylwetka lub scenografia mają wyglądać dokładnie tak, jak je zatwierdzono, umieść je w klatce początkowej. Przykład przy oknie zaczyna się od kadru kobiety w jedwabnej koszulce; prompt opisuje tylko jej obrót w stronę obiektywu, przezroczystą firanę przesuwającą się przed światłem i powolny najazd, gdy świt się rozjaśnia. Klip trwa 5 sekund w 1080p z dźwiękiem.
Wskazówki
Opisuj to, co się zmienia, a nie to, co widać
Wszystko, co już jest w kadrze, zostaje przejęte; ponowny opis zabiera słowa potrzebne ruchowi. Napisz, kto lub co się porusza, w którą stronę i jak szybko, a potem co robi kamera: „The bottle rotates a quarter turn so the highlight travels across the glass, then returns to its starting angle. Locked camera, single soft key from the left, no music.”
Przygotuj obie klatki jako parę
Dodając last_image_url, przygotuj oba obrazy w tym samym kadrze i w tej samej scenografii, a w prompcie wyjaśnij, jak jeden przechodzi w drugi. Przykład z tarasem na dachu łączy klatkę początkową pary w otwartym trzymaniu tanecznym z klatką końcową tej samej pary – na tym samym dachu i z tego samego ustawienia kamery – w najniższym punkcie przechyłu, a prompt opisuje wyłącznie ruch pomiędzy nimi: on przyciąga ją za rękę i powoli odchyla do tyłu, a kamera pozostaje nieruchoma.
Sprawdzaj środek klipu, nie tylko końce
Zgodna klatka końcowa nie dowodzi wiarygodnego przejścia. Sprawdź wygląd postaci i geometrię na początku, w środku i na końcu; jeśli dryfują, zmniejsz liczbę równoczesnych ruchów, zanim wydłużysz klip. Ustal ruch przy 5 sekundach, dopiero potem wydłużaj i zostaw enable_prompt_expansion na domyślnym false, żeby szczegółowy opis ruchu został wykonany tak, jak go napisano.
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/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.



























