Wprowadzenie
Przenosi rysy twarzy z jednego obrazu na osobę na innym. Przenoszą się tylko rysy: fryzura, linia włosów, sylwetka głowy, poza, strój, światło i tło obrazu docelowego zostają bez zmian. Właśnie dlatego wynik osadza się w oryginalnym zdjęciu, a nie leży na nim jak naklejka.
Face Swap Pro to precyzyjny poziom linii Face Swap. Silnik sam znajduje punkty kluczowe twarzy na obu zdjęciach i nakłada jeden zestaw na drugi, a potem nic już nie jest nakładane na wynik. Całe żądanie to dwa URL-e obrazów — image_url dla zdjęcia, które zmieniasz, i reference_image_url dla twarzy — wysłane do spicyapi/face-swap-pro-v1/edit. Wywołanie jest asynchroniczne: zwraca identyfikator zadania, ty odpytujesz to zadanie, a każde żądanie zwraca jeden obraz, rozliczany za obraz wyjściowy.
Najważniejsze funkcje
Silnik dopasowuje twarz po punktach kluczowych
Pro powstał do precyzyjnej pracy. Zamiast przeklejać obszar, znajduje punkty kluczowe twarzy na obu zdjęciach i nakłada jeden zestaw na drugi, dzięki czemu oczy, nos i usta trafiają tam, gdzie umieszcza je geometria twarzy docelowej. Na tym endpoincie wykrywanie jest automatyczne: wysyłasz dwa obrazy i nic więcej. Nie ma też późniejszego upiększania, więc pory, drobne zmarszczki i ziarno zostają, a twarz jest tak samo ostra jak wszystko wokół. Z tego samego powodu wynik może wyglądać mniej pochlebnie niż zamiana z filtrem — dokładność i upiększanie to różne cele.
Dwa URL-e obrazów i nic więcej, co można zepsuć
To jedyny endpoint zamiany twarzy w tym katalogu, który przyjmuje wyłącznie dwa obrazy: bez promptu do sformułowania, bez obszaru do zamalowania, bez siły do ustawienia i bez seeda do przypięcia. Znika cała klasa błędów wynikających z niejasnych poleceń, a przetwarzanie wsadowe staje się banalne, bo lista par przechodzi bez decyzji dla każdego elementu. Nieznane klucze są odrzucane, a nie ignorowane, więc literówka w nazwie pola kończy się błędem przy wysyłaniu, zamiast po cichu przejść na wartość domyślną. Naprawdę liczy się tylko to, który URL trafia do którego pola: oba pola nie są symetryczne, a po zamianie żądanie nadal jest poprawne, tylko wynik jest zupełnie inny.
Zdjęcie docelowe przetrwa zamianę
| Pochodzi z referencji | Zostaje w obrazie docelowym |
|---|---|
| Oczy, nos, usta, brwi | Fryzura, linia włosów, sylwetka głowy |
| Proporcje samej twarzy | Poza, spojrzenie, ciało, strój |
| Szczegóły skóry w obszarze twarzy | Tło, kadr, światło, ziarno |
Nie ma tu proporcji ani rozdzielczości do ustawienia, bo obraz nie jest generowany od nowa — podmienia się jeden obszar istniejącego zdjęcia. Dlatego endpoint nadaje się do ujęcia, które już zatwierdziłeś: nic poza twarzą nie wraca do gry.
Parametry żądania
| Parametr | Wymagane | Uwaga |
|---|---|---|
image_url | Tak | Obraz, który się zmienia. Kształt głowy, włosy, linia włosów, poza, kierunek spojrzenia, ubiór i tło tej osoby zostają zachowane — podmieniane są wyłącznie rysy jej twarzy. od 1 znaków |
reference_image_url | Tak | Obraz dostarczający rysy twarzy. Brana jest tylko twarz, nie kształt głowy i nie włosy, więc kadr, tło i ubiór tego zdjęcia są pomijane. od 1 znaków |
face_enhance | Nie | Uruchamia na podmienionej twarzy przebieg poprawy, który daje twarz w wyższej rozdzielczości. Domyślnie wyłączone. Domyślnie: |
Cennik
$0.16 / obraz
Zastosowania
Kadry redakcyjne i kampanijne do druku
Wygładzona twarz rozpada się w rozmiarze druku: obok ostrego ubrania i ostrego tła skóra wygląda jak plastik. Zachowana oryginalna tekstura sprawia, że kadr broni się, gdy ktoś ogląda go z bliska, a nie jako miniaturę.
Zmiana osoby w zatwierdzonym ujęciu
Światło, poza i scenografia już działają, a generowanie całego kadru od nowa znów otworzyłoby wszystkie te kwestie. Przenieś do ujęcia tylko twarz, a wszystko, co zatwierdziłeś, zostanie dokładnie na swoim miejscu.
Spójne postacie w serii
Wygeneruj sceny dowolnym modelem, a potem przenieś jedną twarz na wszystkie, żeby seria czytała się jako ta sama osoba. Włosy i strój zostają przy każdym obrazie docelowym, więc wygenerowana różnorodność przetrwa ten krok.
Kadry bez cenzury: granicą jest zgoda, nie temat
SpicyAPI nie dodaje własnego filtra treści i nie wymaga flagi treści, więc treść żądania to zawsze te same dwa pola, cokolwiek pokazuje kadr. Nie luzuje się autoryzacja: potrzebna jest wyraźna, świadoma zgoda przedstawionej osoby na to konkretne podobieństwo w tym konkretnym materiale, a zgody nigdy nie domniemuje się z faktu, że zdjęcie jest publiczne.
Wskazówki
Nie ma promptu, więc strojenie odbywa się przed wywołaniem
W większości endpointów obrazowych, gdy wynik rozczarowuje, przepisujesz zdanie. Tu nie: żądanie to dwa URL-e, więc jedyne zmienne to wysyłane zdjęcia. Łatwo więc analizować iteracje — zmieniasz jeden obraz, drugi zostawiasz i wiesz dokładnie, co się ruszyło — ale złej pary nie uratuje lepsze polecenie.
Wybór obrazu docelowego i referencji
image_url to zdjęcie, które zmieniasz; reference_image_url dostarcza twarz. Oba powinny pokazywać jedną wyraźnie widoczną twarz, mniej więcej na wprost, ostrą i na tyle dużą w kadrze, żeby rysy były czytelne, w formacie JPEG, PNG lub WebP. Zdjęcie grupowe najpierw przytnij do jednej osoby. Najwięcej daje kierunek światła: wybierz referencję oświetloną mniej więcej z tej samej strony co obraz docelowy, bo zamiana nie zmienia jego światła, a niezgodność widać jako szew wzdłuż żuchwy.
Gdy wynik nie jest taki, jak chciałeś
| Co widzisz | Co zmienić najpierw |
|---|---|
| Szew wzdłuż żuchwy lub szyi | Użyj referencji oświetlonej z tego samego kierunku |
| Rysy są miękkie lub przybliżone | Użyj referencji z większą i ostrzejszą twarzą |
| Zmieniła się niewłaściwa osoba | Przytnij obraz docelowy do jednej osoby |
| Żądanie w ogóle się nie powiodło | Sprawdź, czy oba URL-e wciąż zwracają plik obrazu |
| Mniej wygładzone niż w innym narzędziu | To normalne — nie ma retuszu; nałóż własny później |
Wybór właściwego endpointu
| Czego potrzebujesz | Endpoint |
|---|---|
| Precyzji punktów twarzy i oryginalnej tekstury, bez ustawień | Ten endpoint |
| Dopasowania odcienia skóry i wyboru formatu pliku | Face Swap Plus |
| Prostej zamiany z seedem, włosy zawsze nietknięte | Face Swap |
| Całej głowy razem z włosami | Head Swap |
| Jednej twarzy w całym ruchomym klipie | Video Face Swap |
Uruchamianie wsadowe
Skoro nic nie jest rozstrzygane dla pojedynczych elementów, wsad to pętla po parach. Wysyłaj każde wywołanie tworzące z nagłówkiem Idempotency-Key i zapisuj identyfikator zadania obok rekordu, który je wywołał; gdy połączenie się zerwie, powtórzenie żądania z tym samym kluczem zwróci pierwotne zadanie zamiast uruchamiać drugie z drugą opłatą. Odpytuj co kilka sekund, a każdy wynik kopiuj do własnego magazynu — wygenerowane pliki są usuwane po 14 dniach, a przesłane obrazy źródłowe po jednym dniu.
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/face-swap-pro-v1/edit",
"input": {
"image_url": "https://example.com/reference.png",
"reference_image_url": "https://example.com/reference.png"
}
}'
# 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.









