Wprowadzenie
Video Head Swap przyjmuje identyfikator zadania analizy, pozycje wybrane spośród jej podglądów oraz od jednego do trzech zdjęć referencyjnych dla każdej i zwraca ujęcie z podmienionymi głowami. Włosy, kształt głowy i tożsamość się zmieniają; ciało, kostium, ruch, kadr i oryginalna ścieżka dźwiękowa zostają takie, jakie zostały nakręcone. Głowy, których nie wymienisz, pozostają nietknięte.
Video Head Swap działa w dwóch wywołaniach. Pierwsze śledzi każdą głowę w ujęciu trwającym od 5 do 30 sekund i zwraca po jednej klatce podglądu na głowę, w stałej kolejności. Drugie przyjmuje wskazane pozycje oraz od jednego do trzech zdjęć referencyjnych dla każdej z nich i zwraca ujęcie z podmienionymi głowami, z nienaruszoną oryginalną ścieżką dźwiękową.
Najważniejsze funkcje
To ty decydujesz, kto się zmienia
Większość endpointów tego rodzaju musi zgadywać, którą osobę miałeś na myśli. Tutaj pierwsze wywołanie pokazuje każdą znalezioną głowę z numerem, a drugie rusza wyłącznie te numery, które odeślesz. W ujęciu z czterema osobami zmieniasz jedną, a pozostałe trzy zostają dokładnie takie, jakie zostały nakręcone.
Trzymaj wideo i rozdzielczość identyczne
Video Head Swap to nie jeden endpoint, lecz para. Pierwsze wywołanie, video-analyze, śledzi wszystkie głowy w ujęciu od 5 do 30 sekund i zwraca po jednym podglądzie na głowę w stałej kolejności; opłata jest ryczałtowa za żądanie, niezależnie od długości ujęcia i liczby znalezionych głów. Drugie wywołanie, video-edit, przyjmuje identyfikator zadania tej analizy, wskazane pozycje oraz od jednego do trzech zdjęć referencyjnych dla każdej i zwraca jedno ujęcie z zachowaną oryginalną ścieżką dźwiękową, rozliczane za sekundę materiału w 480p albo 720p. Same dane śledzenia nigdy do ciebie nie trafiają: pracujesz z własnym identyfikatorem zadania i z pozycjami numerowanymi od zera, które odpowiadają dokładnie pokazanym podglądom. Oba wywołania muszą działać na tym samym wideo i w tej samej rozdzielczości, a przy rozbieżności drugie zostaje odrzucone, zamiast przejść po cichu.
Parametry żądania
| Parametr | Wymagane | Uwaga |
|---|---|---|
analysis_task_id | Tak | Identyfikator zadania wywołania analizy dla tego ujęcia. Jej podglądy są wypisane w tej samej kolejności co |
swap_targets | Tak | Po jednym wpisie na każdą podmienianą głowę; głowy pominięte nie są ruszane. |
video_url | Nie | Opcjonalny. Jeśli go pominiesz, użyte zostanie wideo z analizy. od 1 znaków |
resolution | Nie | Musi zgadzać się z rozdzielczością, w której działała analiza. To także pole, które wyznacza próg cenowy. |
seed | Nie | Ziarno losowe; zero prosi o wartość losową. |
Cennik
Rozliczenie następuje w pełnych 5-sekundowych blokach klipu źródłowego, więc klip 6-sekundowy kosztuje tyle co 10 sekund. Szacunek przed wysłaniem przyjmuje faktyczną długość przesłanego klipu albo, dla adresu URL wideo, maksimum 30 sekund; ewentualna różnica zostaje zwolniona przy rozliczeniu.
| Specyfikacja | Cena |
|---|---|
| $0.064 / sekundę |
| $0.12 / sekundę |
Zastosowania
Zmiana obsady w ujęciu, które już działa
Dubel z zatwierdzonym światłem, ustawieniem i ruchem kamery zostaje na miejscu: podmieniasz głowę, zamiast generować całe ujęcie od nowa i tracić grę aktorską.
Dowolna tematyka, za zgodą wykonawcy
Niezależnie od tego, co pokazuje materiał, w żądaniu nie zmienia się nic. Wymóg praw opisany niżej też się nie zmienia: to twardy warunek, a nie formalność.
Ta sama osoba w całej wygenerowanej serii
Wygeneruj partię ujęć dowolnym modelem wideo, przeanalizuj każde z osobna i przeprowadź tę samą uzgodnioną głowę przez wszystkie, żeby seria czytała się jako jedna osoba.
Tłum, w którym zmienia się jedna osoba
Przeanalizuj scenę z kilkoma osobami w kadrze, obejrzyj podglądy i odeślij tylko tę pozycję, o którą ci chodziło. Wszystkie pozostałe zostają nietknięte.
Wskazówki
Potwierdź prawa do każdej głowy w grze
Zarówno materiał, jak i zdjęcia referencyjne przedstawiają ludzi. Potrzebujesz zgody na wizerunek, który przenosisz, i na materiał, do którego go wstawiasz. Trzymaj zgodę razem z zapisem zlecenia.
Najpierw analiza, potem kolejność podglądów
Analiza zwraca podglądy w stałej kolejności. Pierwszy obraz to object_index 0, drugi to 1, i tak dalej. Ta pozycja jest jedynym uchwytem, jakiego potrzebujesz: odsyłasz ją w swap_targets.
Trzymaj wideo i rozdzielczość identyczne
Oba wywołania muszą działać na tym samym wideo w tej samej rozdzielczości. Jeśli pominiesz video_url w drugim, zostanie przepisany z analizy; jeśli go wyślesz, musi się zgadzać. Inna rozdzielczość jest odrzucana, a nie po cichu śledzona od nowa.
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": "spicyapi/head-swap-video-v1/video-edit",
"input": {
"analysis_task_id": "example",
"resolution": "720p",
"swap_targets": [
{
"image_urls": [
"example"
],
"object_index": 0
}
]
}
}'
# 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.

