Prosisz o ujęcie z pierwszej osoby, a klip pokazuje drugą osobę zza ramienia obserwatora albo kamera zbliża się do jej twarzy. Najpierw poszukaj sprzecznych wskazówek dotyczących kamery w klatce początkowej i opisie ruchu. Zbliżenie, bezpośredni kontakt wzrokowy i etykieta „POV” nie tworzą punktu widzenia. Ujęcie z góry określa wysokość kamery; pierwsza osoba określa, czyje oczy kamera reprezentuje.
W tym układzie na wysokości oczu klatka początkowa pochodzi z pozycji obserwatora. Trzymaj jego głowę i tułów poza kadrem; dłonie lub przedramiona mogą wchodzić od dołu, ale nie są niezbędne do ustanowienia pierwszej osoby. Opisz zachowanie drugiej osoby oddzielnie od ruchu kamery.
Poniżej znajdziesz ustawienie przy stoliku w restauracji dla Seedance 2.5 image-to-video, a następnie poprawki widocznych błędów, działania dłoni, ruchomy POV i łączenie ujęć. Wszystkie przedstawione osoby to fikcyjni dorośli. Ilustracje pokazują pozycję kamery, a nie wygenerowane wideo.
Zbuduj pierwszą klatkę z miejsca zajmowanego przez widza
Obraz referencyjny powinien wyglądać jak zdjęcie zrobione oczami siedzącego obserwatora. Naprzeciwko, przy małym stoliku, siedzi dorosły mężczyzna w granatowej marynarce i białej koszuli z rozpiętym kołnierzykiem; jego oczy są mniej więcej na wysokości obiektywu. Bliższa krawędź stołu biegnie wzdłuż dołu kadru, a przedramiona obserwatora wchodzą z dolnych rogów. Nie widać tyłu jego głowy, zarysu ramienia ani oddzielnego operatora kamery.
Użyj tego opisu w narzędziu do obrazów lub odtwórz scenę za pomocą fotografii, na których wykorzystanie masz zgodę:
Photographic first-person view from a seated adult observer at a restaurant table beside a large window at dusk. A fictional adult man in a navy blazer over an open-collared white shirt sits directly across the small table at conversational distance, hands loosely clasped. Camera at the seated observer's eye height. His face and upper torso are unobstructed. Only the observer's relaxed forearms in dark sleeves enter from the lower corners, resting near the near table edge beside a white coffee cup. A candle in a glass holder and a small vase of flowers stand between them. Warm lamp light against a blue-hour city view through the window. The observer's head, face, shoulders and torso are outside the frame. One continuous room, no mirrors, no over-the-shoulder composition.
Ramię przy krawędzi nie jest niewinnym szczegółem: sugeruje modelowi, że kamera może być za obserwatorem. Wytnij je, jeśli pozostały obraz nadal tworzy spójny widok z pozycji siedzącej. Jeśli po kadrowaniu zostaje kąt boczny lub podwyższony, zbuduj klatkę na nowo, ponieważ animacja nie przestawi za Ciebie kamery.

Ilustracja: przedramiona na pierwszym planie mogą wzmacniać pierwszą osobę; widoczna głowa i ramię ustanawiają widok z zewnątrz.
Cena Seedream 5.0 Flash wynosi około 0,029 $ za obraz, więc pięć lub sześć ponownych prób kosztuje mniej niż jedno zmarnowane wideo. Zadanie edit pozwala poprawić pojedynczą wadę, na przykład zbędne ramię lub zbyt dużą dłoń, bez odtwarzania sceny. Przed wysłaniem do Seedance 2.5 image-to-video sprawdź limity: każdy bok od 300 do 6000 pikseli, do 10 MB, JPG, PNG, WEBP lub GIF. Wynik zachowuje kształt nieruchomego obrazu, więc najpierw przytnij go do docelowych proporcji. Użyj fikcyjnej osoby lub osoby, na której wykorzystanie masz zgodę; kontrola wejścia Seedance może odrzucić zdjęcie prawdziwej, rozpoznawalnej twarzy.
Przygotuj próbę z jednym małym gestem
W Seedance 2.5 image-to-video Playground prześlij zatwierdzoną klatkę, wybierz pięć sekund w 480p, wyłącz dźwięk i wklej prompt ruchu. W pierwszym podejściu pozostaw obraz końcowy pusty. Wynik zachowuje kształt nieruchomego obrazu; punkt widzenia wynika z obrazu i słów, a nie z przełącznika POV.
Skopiuj ten prompt:
One continuous five-second first-person shot from the seated observer's eyes. The adult man across the table looks toward the observer, gives one small smile and tilts his head slightly. The observer remains seated and still. Keep the camera position, eye height and framing unchanged. The man's hands stay on his side of the table. The observer's forearms remain low in the foreground. Stable warm lamp light. One take, no cut, no orbit, no zoom, no external view, no dialogue.
Seedance 2.5 image-to-video kosztuje 0,1234 $ za sekundę w 480p, więc pięciosekundowa próba kosztuje 0,617 $. W 720p stawka to 0,2773 $ za sekundę, czyli 1,3865 $ za ten sam klip, a w 1080p — 0,6823 $ za sekundę (3,4115 $). Włączenie lub wyłączenie audio nie zmienia ceny. Aby uzyskać końcowy render z dźwiękiem, włącz generate_audio i dodaj "Sound: quiet restaurant ambience, cutlery, low voices; no music or captions." Sprawdź kompozycję i ruch tanio w 480p; kiedy klatka i opis są gotowe, renderowanie w 720p lub 1080p zwiększa rozdzielczość, a nie zmienia pozycji kamery. Pobierz nową wycenę dla rzeczywistego zadania.
Unikaj "camera circles him", "cinematic reveal", "pull back to show the couple" i "over his shoulder". Każda z tych fraz wymaga innego punktu widzenia. Postać może spojrzeć na filiżankę przy nieruchomej kamerze; opisanie tego spojrzenia jako ruchu kamery tworzy konflikt, który później trzeba rozwiązać.

Ilustracja: zmiana spojrzenia postaci i ruch kamery dają różne ujęcia.
Popraw widoczny objaw zamiast dodawać synonimy POV
| Co pojawia się w wyniku | Prawdopodobny konflikt instrukcji lub obrazu referencyjnego | Wypróbuj tę poprawkę |
|---|---|---|
| Pojawia się głowa lub plecy obserwatora | Źródło albo opis odsłonięcia sugeruje kamerę z zewnątrz | Zastąp źródło widokiem z pozycji oczu; usuń odsłanianie sceny i opisy zza ramienia |
| Stół widać z góry | Kamera referencyjna jest za wysoko | Zbuduj klatkę na nowo na wysokości oczu siedzącej osoby; oczy mężczyzny trzymaj blisko wysokości obiektywu |
| Kamera przesuwa się ku twarzy | Zbliżenie lub najazd koliduje z nieruchomym obserwatorem | Usuń te wskazówki; zachowaj krawędź stołu i ramę okna jako stałe punkty kompozycji |
| Kontakt wzrokowy znika, ale kadr pozostaje stały | Postać zmieniła spojrzenie, nie punkt widzenia | Określ, kiedy patrzy na obserwatora; nie generuj od nowa tylko dlatego, że zamierzone spojrzenie jest poza osią |
| Wchodzą dłonie niewłaściwej osoby | Obie osoby dostają niejednoznaczne instrukcje "you reach" | Oddzielnie nazwij "the man across the table" i "the observer's right hand"; najpierw animuj tylko jedną parę dłoni |
| Filiżanka zasłania twarz | Rekwizyt zaczyna wysoko albo gest podnosi go na linię wzroku | Zostaw filiżankę na stole; przesuń ją lekko zamiast podnosić w stronę obiektywu |
| Pojawia się telefon, kamera lub odbicie obserwatora | "Selfie", "vlog", opis lustra lub odbijająca powierzchnia w kadrze | Usuń te słowa, unikaj szkła i luster za postacią oraz określ, że kamera ani telefon nie pojawiają się na ekranie |
| Dłoń obserwatora znika po pierwszej sekundzie | Postać puściła ją lub znalazła się poza zasięgiem | Zapisz ciągły kontakt w prompcie ("keeps hold of the observer's hand") albo zaplanuj cięcie po zniknięciu dłoni |
Zmień sprzeczne dane wejściowe przed próbą z innym seed; inaczej kolejne żądanie powtórzy tę samą niejednoznaczność przestrzenną.

Ilustracja: wysokość oczu zmienia relację między widzem, twarzą a blatem.
Daj dłoniom obserwatora coś do zrobienia
Ujęcie POV daje poczucie obecności, gdy dłonie obserwatora działają. Zasada jest taka sama jak przy punkcie widzenia: ustaw sytuację w pierwszej klatce i użyj promptu tylko do następnego ruchu. Jeśli obserwator ma trzymać filiżankę, umieść ją w jego dłoni już w klatce, z przedramieniem wchodzącym od dołu, i poproś o jeden powolny ruch:
From the seated observer's fixed eye position, the observer's right hand lifts the white coffee cup a few centimeters and sets it back on the saucer. The man across the table watches, then smiles. One continuous shot, unchanged camera height and distance, no cuts.
Przekazywanie przedmiotów wymaga jasnego przypisania działań. Zacznij od działania drugiej osoby, łatwiejszego do opisania przestrzennie niż skoordynowana wymiana. Wymaga to innej pierwszej klatki: filiżanka musi stać po jego stronie stołu, blisko dłoni, jak na ilustracji poniżej. Edytuj zatwierdzoną klatkę lub zbuduj ją na nowo, aby przestawić filiżankę przed animacją. Następnie użyj tego promptu:
From the seated observer's fixed eye position, the adult man across the table uses his right hand to slide the white cup a short distance toward the observer, then releases it. The cup stays on the tabletop throughout. The observer's hands remain resting at the near edge and do not touch the cup. The man briefly glances at the cup, then back toward the observer. One continuous shot, unchanged camera height and distance, no cuts.
W pierwszej próbie nie każ obserwatorowi chwytać filiżanki: nowa dłoń musi wejść, nawiązać kontakt i przejąć przedmiot, gdy druga go puszcza. Jeśli historia wymaga takiej wymiany, ustaw ją jako drugie działanie po zatrzymaniu filiżanki, z klatki pokazującej już poprawnie obie dłonie.

Ilustracja: dotknięcie, przesunięcie i puszczenie wykonuje mężczyzna naprzeciwko; dłonie obserwatora pozostają oddzielone.
Gdy kamera musi się poruszać
Ujęcie z pierwszej osoby może się poruszać, jeśli porusza się obserwator. Dobrym punktem odniesienia jest przykład na stronie Seedance 2.5 Spicy image-to-video: w pierwszej klatce kobieta trzyma dłoń obserwatora, a prompt każe jej zacisnąć dłoń wokół dłoni widza i pociągnąć, "breaking into a run and towing the camera after her", z ruchem pierwszoosobowym kamery z ręki.
Kamera podąża mniej więcej na wysokości oczu człowieka, kołysząc się jak przy filmowaniu z ręki; kobieta odwraca się ze śmiechem do obiektywu. Nie ma oblotu ani widoku z powietrza. Dłoń obserwatora pojawia się tylko na początku; przykład nie pokazuje ciągłego trzymania za rękę. Jeśli kontakt jest ważny, poproś, by nie puszczała dłoni, i sprawdź cały klip.
Dla POV podczas chodzenia przygotuj klatkę z wyraźną drogą i poproś o ruch naprzód wzdłuż niej. Oddziel instrukcje ruchu od wskazówki dźwiękowej:
One continuous first-person shot at standing eye height. The observer walks forward along the lit corridor at an easy pace; the camera advances at walking speed with a slight handheld sway and keeps the corridor centered. No one enters the frame from behind and the observer's body stays out of the frame. Sound: footsteps on tile and faint room tone.
Nie dodawaj instrukcji zablokowanej kamery do promptu chodzenia; są sprzeczne. Chodzenie to inne zadanie kamery, a nie mocniejsza wersja zbliżenia na siedząco. Unikaj proszenia o oblot, ruch postaci do tyłu i interakcję dłoni w tym samym ujęciu.
Dla powitania na stojąco zmień całe ustawienie: kamera na wysokości oczu stojącej dorosłej osoby w drzwiach, druga dorosła osoba dwa kroki w głębi pokoju, bez krzesła lub przedramion siedzącej osoby na pierwszym planie. Poproś drugą osobę o lekkie otwarcie drzwi i uśmiech, gdy obserwator stoi nieruchomo. Ponowne użycie klatki z restauracji z "standing doorway POV" zmusza model do rozwiązania dwóch niezgodnych przestrzeni.
Połącz kolejne działanie z ostatnią klatką
Gdy nieruchome ujęcie działa, buduj sekwencję z krótkich podejść. Każde zaczyna od klatki z właściwą pozycją kamery, więc punkt widzenia jest zachowany przez samą konstrukcję.
- W Seedance 2.5 ustaw
return_last_framenatrue; odpowiedź zawiera ostatnią klatkę klipu jako osobny obraz. Użyj go jako następnegoimage_url. - W posiadanym klipie wyeksportuj ostatnią klatkę samodzielnie:
ffmpeg -sseof -0.2 -i input.mp4 -update 1 -q:v 2 last-frame.png. - Aby ujęcie skończyło się w wybranym miejscu, wyślij drugi nieruchomy obraz jako
last_image_url, zawsze zimage_url, i opisz przejście między nimi. Przygotuj oba w tych samych proporcjach, ponieważ niezgodne kadrowanie może zniekształcić końcową kompozycję. Seedance 2.5 Spicy akceptuje tę samą parę. Możesz podać ten sam obraz na obu końcach, aby poprosić o powrót do kompozycji; sprawdź wyrenderowane zakończenie zamiast zakładać dokładną zgodność.
Dłużej nie oznacza bezpieczniej. Strona modelu radzi potwierdzić ruch przy pięciu sekundach przed wydłużeniem, ponieważ anatomia i scenografia zmieniają się wraz z długością ujęcia sterowanego klatką. Kilka krótkich ujęć zmontowanych razem trzyma się lepiej niż jedno 30-sekundowe.
Sprawdź klip, potem przytnij lub wyrenderuj ponownie
Jeśli pierwsze cztery sekundy pozostają pierwszoosobowe, a ostatnia oddala kamerę, tnij przed zmianą punktu widzenia. Jeśli niechciane ramię stale zajmuje krawędź, kadrowanie pomoże tylko wtedy, gdy centralna scena nadal wygląda jak z pozycji obserwatora. Nie odtworzy brakującego widoku z oczu ani nie naprawi perspektywy stołu.
Sprawdź pobrany plik oryginalny, nie miniaturę odtwarzacza, która może ukryć krótką zmianę punktu widzenia. To polecenie wyodrębnia cztery równomiernie rozmieszczone obrazy kontrolne z pięciosekundowego klipu:
ffmpeg -i input.mp4 \
-vf "fps=4/5,scale=480:-2,tile=2x2" \
-frames:v 1 pov-review.jpgNa stykówce znajdź zmiany kadrowania, a potem odtwórz cały klip, by ocenić ruch i kontakt dłoni; krótki defekt może wypaść między próbkami. Aby usunąć bezużyteczne zakończenie, to polecenie eksportuje tylko pierwsze cztery sekundy i zachowuje ścieżkę audio, jeśli istnieje:
ffmpeg -i input.mp4 -t 4 -map 0:v:0 -map 0:a? \
-c:v libx264 -crf 18 -pix_fmt yuv420p -c:a aac pov-trimmed.mp4Filtry są opisane w dokumentacji FFmpeg.
Jeśli scena potrzebuje przeciwnego kąta, zrób świadome cięcie do innego ujęcia. Ujęcie zza obserwatora może dobrze opowiadać historię, ale jest trzecioosobowe. Zachowaj spójność przestrzenną fragmentu pierwszoosobowego, a potem przejdź do nowego punktu widzenia w oddzielnym ujęciu. Przewodnik planowania ujęć pokazuje, jak rozmieścić takie cięcia w krótkiej scenie.
Wybierz sposób wykonania ujęcia
- Masz zatwierdzoną klatkę: Seedance 2.5 image-to-video, jak wyżej. Zakotwicza zbudowaną kompozycję początkową; sprawdź, czy klip ją utrzymuje.
- Masz tylko słowa: text-to-video przyjmuje opis pierwszoosobowy, ale model wybiera pozycję kamery, więc masz mniej kontroli nad kompozycją początkową. Zacznij od jej miejsca ("the camera is a person seated at a table"), zanim opiszesz akcję.
- Ta sama postać występuje w kilku ujęciach POV: użyj reference-to-video z nieruchomymi obrazami lub przepływu pracy dla spójnej postaci.
- Stała pozycja oczu wciąż się przesuwa: niektóre modele mają rzeczywisty parametr blokady kamery; przewodnik stałej kamery je wymienia i wyjaśnia opis blokady w modelach bez tego parametru.
- Pierwszoosobowe sceny dla dorosłych: Seedance 2.5 Spicy to wersja bez cenzury dostrojona z LoRA, wymieniająca pierwszą osobę w zastosowaniach. Stosuje tę samą logikę obrazu najpierw, nie ma wejść
aspect_ratioanireturn_last_framei kosztuje 0,216 $ za sekundę w 480p, 0,432 $ w 720p i 1,08 $ w 1080p. Przewodnik promptów wideo bez cenzury zawiera prompty pierwszoosobowe, a przewodnik obraz na wideo bez cenzury omawia przygotowanie obrazu.
Użyj zatwierdzonego ujęcia POV w aplikacji
Ustaw SPICY_API_KEY w środowisku, a SPICY_IMAGE_URI na dostępny URL obrazu początkowego lub przesłane URI spicy://. Ten przykład w Python 3 wysyła jedno nowe ujęcie po potwierdzeniu ceny.
import json
import os
import urllib.request
import uuid
base = "https://api.spicyapi.ai/api/v1"
headers = {"Authorization": "Bearer " + os.environ["SPICY_API_KEY"],
"Content-Type": "application/json", "User-Agent": "SpicyAPI-Blog/1.0"}
settings = {
"duration_seconds": 5,
"resolution": "480p",
"generate_audio": False
}
settings["prompt"] = 'One continuous fixed-camera first-person shot from a seated observer. The man across the table gives one small smile. Keep the camera height, framing, room and clothing unchanged.'
settings["image_url"] = os.environ["SPICY_IMAGE_URI"]
payload = {"model": "bytedance/seedance-2.5/image-to-video", "input": settings}
def post(path, body):
request = urllib.request.Request(base + path, json.dumps(body).encode(), headers)
with urllib.request.urlopen(request, timeout=60) as response:
result = json.load(response)
if result.get("code") != 200:
raise RuntimeError(result)
return result["data"]
quote = post("/jobs/quote", payload)
if input(f"Maximum charge ${quote['maxCharge']}. Type yes to generate: ") != "yes":
raise SystemExit("Stopped before generation")
headers["Idempotency-Key"] = str(uuid.uuid4())
print("Request key:", headers["Idempotency-Key"], flush=True)
task = post("/jobs/createTask", {**payload, "quoteId": quote["quoteId"],
"expectedCost": quote["estimatedCost"]})
print("Task ID:", task["taskId"])Zachowaj wypisany klucz żądania do odzyskania tego samego żądania; nowe ujęcie dostaje nowy klucz. Dokumentacja Task API opisuje dostarczanie wyników i odzyskiwanie.
Przy powtarzanych ujęciach pozwól Agentowi użyć zatwierdzonego pliku wejściowego: CLI spicyapi tasks create --model bytedance/seedance-2.5/image-to-video --input-file input.json --wait; MCP poproś o wywołanie spicyapi_task_create z tym modelem i wejściem; Skill poproś “Use the spicyapi Skill to generate this approved shot and return the result.” CLI i MCP pokazują cenę przed utworzeniem. Zobacz dokumentację integracji Agent.







