Przejdź do treści głównej

Jak sprawić, by pętla wideo AI wyglądała naturalnie

Zaplanuj powtarzalny ruch i połącz koniec z początkiem. Napraw styki obrazu i dźwięku w pętlach postaci AI bez oczywistego odwracania.

Autor
Lydia
Opublikowano
Czas czytania
9 min czytania
Zaktualizowano
Dorosła kobieta w bordowej sukience stoi na balkonie o zmierzchu.

Naturalna pętla wideo AI wymaga, by koniec przechodził w początek: pozycja, kierunek ruchu, światło i dźwięk muszą pasować. Dwie zgodne pozy nie wystarczą. Zacznij od małego gestu, który sam wraca, wygeneruj krótkie ujęcie i wybierz punkt łączenia w edytorze. Jeśli akcja nie może naturalnie wrócić, wygeneruj powrót jako drugi klip, połącz styk przenikaniem albo świadomie zastosuj odtwarzanie do przodu i do tyłu.

Seedance 2.5 image-to-video to dobry punkt wyjścia: ujęcia od 4 do 30 sekund, 480p, 720p lub 1080p i opcjonalna klatka końcowa. Nie ma przełącznika pętli, więc styk musisz przygotować samodzielnie.

Wygeneruj gest, który może wrócić

Przygotuj referencję 16:9 fikcyjnej dorosłej kobiety w bordowej sukience całkowicie zakrywającej ciało przy balustradzie balkonu. Pokaż oba barki, zostaw miejsce wokół włosów i utrzymaj nieruchome tło miasta. Użyj swobodnej pozy początkowej. Unikaj działań zmieniających stan sceny: opróżniania kubka, zdejmowania ubrania, wejścia kogoś w kadr.

Skopiuj ten prompt ruchu:

One continuous six-second medium portrait of this fictional adult woman on the balcony. She slowly turns her gaze from the city toward the viewer, holds a soft smile briefly, then returns her head and eyes to the opening position. Her hands stay where they are. The camera stays at the same position and scale. Stable dusk illumination, a still background, very slight hair movement. No cut, no zoom, no new objects, no dialogue.

Wypróbuj w Playground

  1. Otwórz Seedance 2.5 image to video z tym wypełnionym promptem. Pozostań na karcie Playground w widoku Form; zaloguj się na konto z dodatnim saldem, aby uruchomić zadanie.
  2. Dodaj referencję balkonu w Input image i ten sam plik w Closing frame.
  3. Ustaw Duration na 6, Resolution na 480p do pierwszego podglądu (720p dla wersji do zachowania), pozostaw Aspect ratio na Auto, wyłącz Generate audio i w Advanced parameters włącz Return last frame.
  4. Sprawdź szacowaną cenę, uruchom zadanie i oceń styk według opisu poniżej.

Te same ustawienia pod nazwami pól:

UstawienieWartość początkowaPowód
image_urlTwoja zatwierdzona referencjaStaje się pierwszą klatką
last_image_urlTa sama referencjaProsi o podobny obraz końcowy; nie gwarantuje zgodności ruchu
duration_seconds6Czas na obrót i powrót
resolution720p0,2773 $ na sekundę
aspect_ratioadaptiveJedyna akceptowana wartość; przytnij wejście wcześniej
generate_audiofalseDźwięk jest domyślnie włączony; dodaj atmosferę osobno
return_last_frametrueDostarcza ostatnią klatkę do metody dwóch klipów poniżej

Sześć sekund w 720p kosztuje 1,6638 $. Zrób podgląd w 480p, 6 s (0,7404 $), aby sprawdzić ruch przed generowaniem w 720p. Dłuższe ujęcia bardziej dryfują, więc utrzymuj krótką jednostkę pętli i powtarzaj ją zamiast generować 30 sekund.

Uruchom z kodu

bash
cat > input.json <<'J'
{
  "prompt": "One continuous six-second medium portrait of this fictional adult woman on the balcony. She slowly turns her gaze from the city toward the viewer, holds a soft smile briefly, then returns her head and eyes to the opening position. Her hands stay where they are. The camera stays at the same position and scale. Stable dusk illumination, a still background, very slight hair movement. No cut, no zoom, no new objects, no dialogue.",
  "image_url": "<your reference image URL>",
  "last_image_url": "<the same reference image URL>",
  "duration_seconds": 6,
  "resolution": "720p",
  "aspect_ratio": "adaptive",
  "generate_audio": false,
  "return_last_frame": true
}
J
spicyapi tasks create --model bytedance/seedance-2.5/image-to-video --input-file input.json --wait

Konfiguracja, przesyłanie plików lokalnych i wyniki są w dokumentacji CLI.

Albo zleć wykonanie Agentowi. Przekaż asystentowi powyższe CLI, serwer MCP (wywołuje spicyapi_task_create) lub Skill (npx skills add spicyapi-ai/spicy-skill). CLI i MCP pokazują cenę i pytają przed płatnym uruchomieniem.

Trzy klatki ilustracyjne pokazują dorosłą kobietę siedzącą na balkonie, patrzącą na miasto, odwracającą się do widza i wracającą do pozy początkowej.

Ilustracja, nie klatka Seedance: propozycja obrotu i powrotu.

Jeśli obraca się i nie wraca, uprość akcję do lekkiego przechylenia głowy zamiast dodawać instrukcje. Jeśli cały obraz zbliża się do widza, usuń filmowe opisy kamery i użyj referencji z oczywistymi stałymi punktami, jak narożniki balustrady. Identyczne pierwsze i ostatnie obrazy jedynie zachęcają do tej samej kompozycji; włosy, rękawy i dłonie pomiędzy nimi mogą nadal skończyć gdzie indziej.

Gdy pojedynczy klip nie wraca: wygeneruj powrót

Zwykle zaleca się identyczne obrazy początku i końca, ale środek ujęcia nadal może się zmieniać. Większą kontrolę daje metoda dwóch klipów:

  1. Wygeneruj klip A z referencji z włączonym return_last_frame.
  2. Użyj ostatniej klatki zwróconej przez A jako image_url, a oryginalnej referencji jako last_image_url, aby wygenerować klip B, opisując ruch powrotny, na przykład: "Continuing from this frame, she turns her head and eyes back to the opening position, then holds still. Same camera, same lighting, no cut."
  3. Połącz A i B. Ostatnia klatka A jest pierwszą klatką B, więc usuń pierwszą klatkę B:
bash
ffmpeg -i A.mp4 -i B.mp4 -filter_complex "[1:v]trim=start_frame=1,setpts=PTS-STARTPTS[b];[0:v][b]concat=n=2:v=1:a=0" -an AB.mp4

Płacisz za dwa klipy (2 x 1,6638 $ = 3,3276 $ przy 6 s, 720p) i sprawdzasz oba styki (A z B oraz koniec B z początkiem A, jak opisano poniżej), ale oba klipy są zakotwiczone w oryginalnej referencji w punkcie pętli.

Znajdź styk, obserwując ruch, nie tylko pozy

Umieść dwie kopie kandydata jedna po drugiej w edytorze i obejrzyj granicę z normalną prędkością. Następnie przejdź klatka po klatce przez około pięć klatek po obu stronach, śledząc punkt, na przykład zewnętrzną część barku. Czy nadal porusza się w zgodnym kierunku?

Nawet dwie identyczne pozycje barku powodują szarpnięcie, jeśli pierwsza kopia kończy ruch w lewo, a druga zaczyna w prawo z pełną prędkością. Dla gestu powrotnego wybierz styk przy spokojnym punkcie zwrotnym, gdzie ruch zwalnia. Dla ruchu ciągłego, jak obracający się obiekt, dopasuj i pozycję, i kierunek.

Użyj narożnika tła, aby odróżnić ruch kamery od gestu. Jeśli balustrada i twarz zmieniają skalę, przycięcie czasu nie usunie najazdu kamery. Jeśli na styku zmieniają się tylko powieki, przesuń cięcie poza mrugnięcie. Jeśli sukienka zmienia dekolt, wybierz nienaruszony odcinek albo wygeneruj ponownie; przenikanie miesza dwa różne stroje.

Zgodne pozy barku zestawiono ze strzałkami przeciwnego i zgodnego ruchu na styku pętli.

Ilustracja, nie klatka Seedance: podobne pozy mogą ukrywać niezgodny ruch.

Wyeksportuj tylko wybrany zakres. Ten przykład zachowuje sekundy od 1 do 5; zastąp je swoimi granicami:

bash
ffmpeg -i input.mp4 \
  -vf "trim=start=1:end=5,setpts=PTS-STARTPTS" \
  -an -c:v libx264 -crf 18 -pix_fmt yuv420p loop.mp4
ffmpeg -stream_loop 2 -i loop.mp4 -c copy review-three-cycles.mp4

Druga komenda tworzy tylko plik kontrolny trzech cykli. -an usuwa dźwięk; dodaj go po zatwierdzeniu obrazu. Przycisk Repeat lub Loop odtwarzacza tylko uruchamia odtwarzanie od nowa i nie ukryje widocznego styku, więc użyj loop.mp4 jako powtarzanej jednostki.

Zastosuj przenikanie, gdy pozostała drobna różnica

Krótkie przenikanie może złagodzić niewielką różnicę jasności lub pozy. Nie przywróci znikniętego obiektu ani nie powstrzyma podwójnej ekspozycji twarzy. Poniższa komenda łączy ostatnie 0,5 sekundy klipu o długości 6 sekund i 24 fps z jego pierwszymi 0,5 sekundy, aby ostatnia klatka pętli prowadziła wprost do pierwszej. Wynik ma 5,5 sekundy:

bash
ffmpeg -i input.mp4 -filter_complex \
"[0:v]split=3[a][b][c];\
[a]trim=start=5.5:end=6,setpts=PTS-STARTPTS[tail];\
[b]trim=start=0:end=0.5,setpts=PTS-STARTPTS[head];\
[c]trim=start=0.5:end=5.5,setpts=PTS-STARTPTS[mid];\
[tail][head]xfade=transition=fade:duration=0.5:offset=0[xf];\
[xf][mid]concat=n=2:v=1:a=0,format=yuv420p[v]" \
-map "[v]" -an -c:v libx264 -crf 18 blended-loop.mp4

Dla innej długości D i zakładki X użyj trim=start=D-X:end=D dla końca, trim=start=0:end=X dla początku i trim=start=X:end=D-X dla środka, z duration=X w xfade. Wpisz obliczone liczby do komendy. Zacznij od zakładki 8 do 12 klatek. Jeśli oczy stają się dwiema parami lub palce zostawiają przezroczyste smugi, skróć zakładkę albo zrezygnuj z przenikania.

Ostry, wyrównany portret porównano z niewyrównanym przenikaniem zawierającym podwójne rysy twarzy i dłonie.

Ilustracja, nie klatka Seedance: niewyrównane przenikanie podwaja rysy twarzy.

Przenikanie pasuje do niemal nieruchomego portretu. Nie sprawdza się przy dużym obrocie głowy, nakładających się dłoniach czy ruchu kamery. Jeśli problemem jest drobna zmiana ekspozycji, wyrównaj oba końce przed przenikaniem; jeśli zmienia się geometria, wróć do wyboru źródła.

Stwórz zamierzony boomerang, gdy odwrócenie pasuje

Pętla do przodu i do tyłu działa przy delikatnym przechyleniu głowy. Nie używaj jej do mowy, chodzenia do przodu, opadających włosów, nalewania wody czy ręki odkładającej przedmiot: odwrócona przyczynowość jest widoczna.

Komenda bierze pierwsze pięć sekund przy 24 fps, odtwarza klatki 0 do 119 do przodu, potem 118 do 1 wstecz, usuwając powtórzone klatki końcowe, które powodowałyby krótkie zatrzymanie:

bash
ffmpeg -i input.mp4 -filter_complex \
"[0:v]fps=24,trim=start_frame=0:end_frame=120,setpts=PTS-STARTPTS,split[f][r];[r]reverse,trim=start_frame=1:end_frame=119,setpts=PTS-STARTPTS[back];[f][back]concat=n=2:v=1:a=0,format=yuv420p[v]" \
-map "[v]" -an -c:v libx264 -crf 18 boomerang.mp4

Źródło potrzebuje co najmniej pięciu sekund wideo; wynik to 238 klatek, około 9,9 sekundy. Wybierz źródło poruszające się powoli na końcach, inaczej zmiana kierunku nadal będzie gwałtowna. Filtr reverse buforuje wszystko, co przetwarza, więc najpierw przytnij krótki odcinek (dokumentacja filtrów FFmpeg).

Dodaj dźwięk, gdy obraz już działa

Dla bezgłośnego podglądu profilu pozostaw pętlę wyciszoną. Dla atmosfery połóż osobną ścieżkę tła pomieszczenia lub miasta pod kilkoma cyklami, połącz jej końce przenikaniem niezależnie od obrazu i posłuchaj przejścia w słuchawkach. Aby stworzyć trzykrotnie dłuższe tło z płynnymi stykami, połącz kopie jednego pliku atmosfery (każdy styk skraca wynik o jedną sekundę):

bash
ffmpeg -i bed.wav -i bed.wav -i bed.wav -filter_complex "[0][1]acrossfade=d=1[x];[x][2]acrossfade=d=1" bed3.wav

Nie odwracaj mowy ani nie dodawaj wyraźnego zdarzenia dźwiękowego do każdego powtórzenia, chyba że taki jest zamiar.

Przed przekazaniem sprawdź plik trzech cykli w rozmiarze wyświetlania: reset kamery, skok ubrania, podwójna twarz lub trzask dźwięku. Jeśli portret jest stabilny, ale jeden szczegół tła nie chce się zapętlić, alternatywą jest cinemagraph z maską: zachowaj zatwierdzony nieruchomy portret i animuj tylko osobny obszar zasłony lub światła. To kompozycja wokół statycznej osoby, a nie płynnie zapętlona wygenerowana gra postaci.

Także w językach English · 日本語 · 한국어 · Deutsch · Français · Español · Português (Brasil) · Русский · Italiano

Wypróbuj samodzielnie

Płacisz tylko za to, co uruchomisz — bez planów i subskrypcji.

Zrobione w MiniMax H3 · ByteDance Seedance 2.0 Fast