Wprowadzenie
Video Head Swap Analysis czyta ujęcie i zwraca po jednej klatce podglądu na każdą głowę, którą potrafi poprowadzić, w stałej kolejności: pierwszy obraz to pozycja 0, drugi to pozycja 1, i tak dalej. To właśnie te pozycje przyjmuje wywołanie podmiany: oglądasz obrazy i odsyłasz numery.
Nic tu nie powstaje, a ujęcie pozostaje nietknięte. To wywołanie tworzy listę celów, na której pracuje wywołanie podmiany, i jest jedynym sposobem, żeby się dowiedzieć, ile głów jest w ujęciu i która należy do kogo.
Najważniejsze funkcje
Wybierasz z obrazów, nie ze współrzędnych
Większość endpointów podmiany każe opisywać, o kogo ci chodzi, albo zgaduje. Tutaj analiza podaje kandydatów w postaci ponumerowanych obrazów. Wątpliwość co do tego, kto zostanie podmieniony, znika, zanim cokolwiek powstanie – czyli w momencie, w którym pomyłka jeszcze nic nie kosztuje.
Jedna analiza obsługuje kilka podmian
Wynik pozostaje użyteczny przez 24 godziny. Obsadź jedną osobę, obejrzyj wynik, a potem wyślij inny zestaw zdjęć referencyjnych do tej samej analizy – za analizę płacisz raz. Po 24 godzinach referencje wygasają i ujęcie trzeba przeanalizować od nowa.
Czyta materiał takim, jaki został nakręcony
Śledzenie prowadzi każdą głowę przez cięcia, obroty i częściowe zasłonięcia. Przyjmowane są ujęcia od 5 do 30 sekund, a analiza zgłasza każdą głowę, którą potrafi utrzymać przez całą długość ujęcia, nie tylko tę z pierwszego planu.
Parametry żądania
| Parametr | Wymagane | Uwaga |
|---|---|---|
video_url | Tak | Ujęcie do analizy, od 5 do 30 sekund. Zachowaj dokładnie ten adres: wywołanie podmiany musi działać na tym samym wideo i przepisuje go stąd automatycznie, jeśli tam go pominiesz. od 1 znaków |
resolution | Nie | Rozdzielczość śledzenia. Wywołanie podmiany musi użyć tej samej wartości, więc wybierz rozdzielczość, którą ma mieć gotowe ujęcie. |
Cennik
$0.08 / analiza
Analiza i podmiana są rozliczane osobno.
Zastosowania
Sprawdź ujęcie, zanim zapłacisz za podmianę
Wywołanie podmiany kosztuje więcej niż analiza. Wcześniejsza analiza mówi ci, czy głowy, na których ci zależy, rzeczywiście dają się śledzić w tym materiale: mocne rozmycie, długie zasłonięcia i postacie wychodzące poza kadr widać jako brakujący albo niestabilny podgląd.
Wskaż jedną osobę w tłumie
Przeanalizuj scenę, w której w kadrze jest kilka osób, przeczytaj podglądy i odeślij tylko tę pozycję, o którą ci chodziło. Podmiana nie rusza żadnej z pozostałych.
Utrzymaj tę samą obsadę w całej serii
Wygeneruj partię ujęć dowolnym modelem wideo, przeanalizuj każde z nich i na podstawie podglądów ustaw ten sam cel w każdym ujęciu, żeby seria czytała się jako całość.
Dowolna tematyka, za zgodą wykonawcy
Niezależnie od tego, co pokazuje materiał, w żądaniu nic się nie zmienia. Nie zmienia się też wymóg autoryzacji z ograniczeń poniżej: to twardy warunek, a nie klasyfikacja treści.
Wskazówki
Użyj tej samej rozdzielczości w obu wywołaniach
Wybierz rozdzielczość, którą ma mieć gotowe ujęcie, i ustaw ją także tutaj: wywołanie podmiany musi działać na tej samej wartości. Nie zmienia ona tego, co wykrywa to wywołanie, a tylko kadr, w którym pracuje podmiana.
Odczytaj kolejność podglądów, nie zakładaj jej
Obrazy wracają uporządkowane, ale kolejność bierze się ze śledzenia, a nie z miejsca na ekranie ani z tego, kto jest najbardziej widoczny. Osoba stojąca najbardziej po lewej nie musi być pozycją 0. Obejrzyj obrazy.
Wyślij to samo wideo do obu wywołań
Wywołanie podmiany potrzebuje identycznego ujęcia: tego samego pliku, tego samego kodowania. Pomiń video_url w żądaniu podmiany, a adres zostanie przepisany z analizy – to najpewniejszy sposób, żeby oba na pewno się zgadzały.
Przeanalizuj ponownie, jeśli materiał się zmienił
Ponowne kodowanie, przycięcie albo ponowny eksport unieważniają analizę: pozycje nie wskazują już tych samych głów. Przeanalizuj ten plik, który naprawdę pójdzie do podmiany.
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-analyze",
"input": {
"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.


