Wprowadzenie
Wan 3.0 Spicy Przedłużanie wideo kontynuuje klip, który już masz. Przekaż go w video_url; prompt opisujący, co dzieje się dalej, pokieruje kontynuacją, a bez niego model sam poprowadzi scenę dalej. Ostatnia klatka klipu staje się klatką początkową nowego ujęcia Wan 3.0 Spicy z obrazu na wideo trwającego od 2 do 30 sekund, a obie części są łączone w jeden plik MP4: najpierw oryginał, potem kontynuacja, bez powtórzonej klatki na łączeniu. Nowy fragment wraca też jako osobny plik, więc możesz przedłużać dalej albo montować części oddzielnie.
Najważniejsze funkcje
Ciągłość bierze się z ostatniej klatki. Kostiumy, scenografia, światło i ustawienie wszystkich postaci zostają zachowane, bo nowy fragment dosłownie zaczyna się od twojej ostatniej klatki. Ruch nie przechodzi w ten sam sposób: model widzi jedną nieruchomą klatkę, a nie cały klip, dlatego opisz ruch, który ma trwać dalej, zamiast zakładać, że tempo i kierunek zostaną zachowane. Ten model potrafi też sam zmienić strój w trakcie klipu, nawet gdy prompt prosi o coś innego, więc obejrzyj cały nowy segment, zanim zaczniesz na nim budować.
Jeśli chcesz, wskaż też, gdzie ujęcie ma się zakończyć. Podaj last_image_url, a nowy fragment skończy się dokładnie na tym obrazie, więc ujęcie może wrócić do głównego kadru albo dojść do ustalonej kompozycji. Bez niej o zakończeniu decyduje model. Początek to zawsze ostatnia klatka twojego klipu.
Dostajesz jeden plik oraz osobno sam nowy fragment. Połączony MP4 zachowuje liczbę klatek na sekundę i kadr Twojego klipu, bez czarnych pasów. Aby dopasować łączenie, obraz może zostać przycięty lub skorygowany o kilka procent na brzegach. Jeśli model zwróci wyraźnie inne proporcje, nowy segment zostanie przeskalowany tak, aby wypełnić Twój kadr, i wyśrodkowany, a to, co wystaje, zostanie przycięte. Jest kodowany jako H.264 z dźwiękiem AAC. Dźwięk źródła zostaje, dźwięk wygenerowany dla nowego segmentu idzie za nim, a cichą stronę uzupełnia cisza, by obraz i dźwięk nie rozjeżdżały się na łączeniu. Drugi zasób w odpowiedzi to sam nowy segment z rolą segment, gotowy do kolejnego przedłużenia.
Cała reszta to image-to-video Wan 3.0 Spicy. Nowy segment przechodzi tymi samymi trasami, z tym samym zakresem treści i tą samą ceną za sekundę co endpoint image-to-video, wraz z ustawieniami dźwięku, rozwinięcia promptu i ziarna, a nieudana generacja jest zwracana tak samo. Dodaj last_image_url, aby nowy segment kończył się na wybranej przez Ciebie klatce. Jeśli generacja się uda, ale samego połączenia nie da się zbudować, zadanie kończy się błędem, a opłata jest zwracana.
Parametry żądania
| Parametr | Wymagane | Uwaga |
|---|---|---|
prompt | Nie | Opcjonalny, ale warto go napisać: co dzieje się dalej, ruch kamery i dźwięk. Ostatnia klatka już ustala bohatera i scenerię, więc słowa poświęć ruchowi. od 1 znaków |
video_url | Tak | Klip do kontynuowania: MP4, MOV lub WebM, do 60 sekund. Jego ostatnia klatka staje się klatką początkową nowego fragmentu, więc przytnij go na czystej, ostrej klatce. od 1 znaków |
last_image_url | Nie | Opcjonalna docelowa ostatnia klatka: nowy segment kończy się na tym obrazie, przyciętym do proporcji segmentu. Bez niej model sam decyduje, jak segment się kończy. |
resolution | Nie | Rozdzielczość, w jakiej powstaje nowy fragment: 480p, 720p lub 1080p, domyślnie 720p. Wybierz rozdzielczość oryginału, żeby na łączeniu nie było widać skoku ostrości. |
duration_seconds | Nie | Długość nowego segmentu: dowolna liczba całkowita od 2 do 30, domyślnie 5. Twoje źródło jest dodawane z przodu i nie jest rozliczane. |
generate_audio | Nie | Domyślnie włączone, więc nowy fragment dostaje wygenerowany dźwięk. 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
Opłata za każdą sekundę nowego fragmentu w wybranej rozdzielczości; wysłany klip źródłowy nie jest rozliczany.
| Specyfikacja | Cena |
|---|---|
| $0.057 / sekundę |
| $0.114 / sekundę |
| $0.228 / sekundę |
Zastosowania
Wydłuż ujęcie, które skończyło się za wcześnie: obrotową podstawę z produktem, która staje, zanim etykieta zwróci się do kamery, albo spacer urwany, zanim postać dojdzie do drzwi. Przedłuż o kilka sekund i opisz tylko pozostały ruch.
Buduj dłuższą sekwencję krok po kroku. Wygeneruj pierwsze ujęcie, przedłuż je, a potem znowu przedłuż połączony wynik; każdy krok rozlicza tylko dodane sekundy. Każdy krok zaczyna się od jednej klatki, więc obejrzyj każde łączenie, zanim dołożysz kolejne.
Wskazówki
Opisuj następny moment, a nie całą scenę. Klatka już ustala, kto i gdzie się znajduje; poświęć prompt na następną akcję, ruch kamery i dźwięk. Powtórz język kamery, na którym skończył się klip, na przykład powolny najazd albo statyczne ujęcie, żeby łączenie wyglądało jak jedno ujęcie. Prompt jest opcjonalny; bez niego model po prostu kontynuuje od klatki, co wystarcza przy ujęciach nastrojowych lub słabo wyreżyserowanych.
Przytnij klip przed przedłużeniem. Ostatnia klatka to jedyne, co widzi model, więc rozmyte, urwane w pół ruchu albo mocno skompresowane zakończenie przechodzi wprost do kontynuacji. Najpierw przytnij oryginał na czystej, ostrej klatce. Przyjmowane są oryginały do 60 sekund w formatach MP4, MOV lub WebM.
Utrzymaj spójną rozdzielczość. Przedłużenie klipu 1080p w 480p wygląda miękko obok oryginału. Dopasuj rozdzielczość do źródła i ustaw duration_seconds na długość, której naprawdę potrzebujesz: opłata dotyczy tylko nowego segmentu.
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-spicy/video-extend",
"input": {
"duration_seconds": 5,
"resolution": "720p",
"video_url": "https://example.com/reference.mp4"
}
}'
# 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.





















