Hoppa till huvudinnehåll
Face Swap API:s huvudfunktion är att byta ansiktet i en målbild med ansiktet i en källbild genom att mata in en källbild och en målbild. Detta dokument kommer att ge en detaljerad beskrivning av integrationen av Face Swap API, vilket hjälper dig att enkelt integrera och fullt utnyttja API:ets kraftfulla funktioner. Genom Face Swap API kan du enkelt byta ansiktet i målbilden med ansiktet i källbilden.

Ansökningsprocess

För att använda Face Swap API måste du först gå till ansökningssidan Face Swap API för att ansöka om den aktuella tjänsten. När du kommer till sidan klickar du på knappen “Acquire”, som visas i bilden nedan: Ansökningssidan Om du inte har loggat in eller registrerat dig kommer du automatiskt att omdirigeras till inloggningssidan där du uppmanas att registrera dig och logga in. Efter att du har loggat in eller registrerat dig kommer du automatiskt att återvända till den aktuella sidan. Vid första ansökan får du en gratis kvot som gör att du kan använda API:et kostnadsfritt.

Begärningsexempel

Vi använder två bilder som exempel för att demonstrera hur man använder API:et. Anta att källbilden är den som visas nedan:

Målbilden är:

Näst kommer vi att demonstrera hur man byter ansiktet i målbilden med ansiktet i källbilden.

Ställ in begärningshuvuden och begärningskropp

Begärningshuvuden inkluderar:
  • accept: anger att du tar emot svar i JSON-format, här anges som application/json.
  • authorization: nyckeln för att anropa API:et, som kan väljas direkt efter ansökan.
Begärningskropp inkluderar:
  • source_image_url: länken till den uppladdade källbilden.
  • target_image_url: länken till den uppladdade målbilden.
  • timeout: valfritt, bearbetningens tidsgräns (sekunder), vid tidsgräns returneras direkt.
Inställningarna visas som på bilden nedan:

Kodexempel

Det kan noteras att olika språkets kod redan har genererats automatiskt på höger sida av sidan, som visas i bilden nedan:

Några kodexempel är som följer:

CURL

curl -X POST 'https://api.acedata.cloud/face/swap' \
-H 'accept: application/json' \
-H 'authorization: Bearer {token}' \
-H 'content-type: application/json' \
-d '{
  "source_image_url": "https://cdn.acedata.cloud/n1lmd8.png",
  "target_image_url": "https://cdn.acedata.cloud/3np95r.png"
}'

Python

import requests

url = "https://api.acedata.cloud/face/swap"

headers = {
    "accept": "application/json",
    "authorization": "Bearer {token}",
    "content-type": "application/json"
}

payload = {
    "source_image_url": "https://cdn.acedata.cloud/n1lmd8.png",
    "target_image_url": "https://cdn.acedata.cloud/3np95r.png"
}

response = requests.post(url, json=payload, headers=headers)
print(response.text)

Svarsexempel

När begäran lyckas kommer API:et att returnera information om resultatet av ansiktsbytet. Till exempel:
{
  "image_url": "https://platform.cdn.acedata.cloud/face/4b13bdeb-1b19-4ea5-bddf-c2da14ba72e3.png",
  "image_width": 2008,
  "image_height": 1942,
  "image_size": 4006213,
  "task_id": "4b13bdeb-1b19-4ea5-bddf-c2da14ba72e3"
}
Det kan ses att resultatet innehåller ett image_url-fält, som innehåller länken till bilden där ansiktet i målbilden har bytts ut mot ansiktet i källbilden. Övrig information visas som på bilden nedan:
  • image_url, länken till den genererade bilden.
  • image_width, bredden på den genererade bilden.
  • image_height, längden på den genererade bilden.
  • image_size, storleken på den genererade bilden.
  • task_id, ID för den aktuella genereringsuppgiften.
Resultatet av den genererade bilden är:

Det kan tydligt ses att bilden framgångsrikt har bytt ansiktet i målbilden med ansiktet i källbilden.

Asynkron återkoppling

Eftersom tiden för att generera Face Swap är relativt lång, cirka 1-2 minuter, om API:et inte svarar under en längre tid kommer HTTP-begäran att hålla anslutningen öppen, vilket leder till extra systemresursförbrukning. Därför erbjuder detta API också stöd för asynkron återkoppling. Den övergripande processen är: när klienten initierar en begäran, specificerar den ett extra callback_url-fält. Efter att klienten har initierat API-begäran kommer API:et omedelbart att returnera ett resultat som innehåller ett task_id-fält, vilket representerar det aktuella uppgifts-ID:t. När uppgiften är klar kommer resultatet av Face Swap att skickas till klientens angivna callback_url i POST JSON-format, vilket också inkluderar task_id-fältet, så att uppgiftsresultatet kan kopplas ihop med ID:t. Nedan kommer vi att förstå hur man gör detta genom ett exempel. Först är Webhook-återkopplingen en tjänst som kan ta emot HTTP-begärningar, utvecklaren bör ersätta med URL:en till sin egen HTTP-server. Här för att underlätta demonstration använder vi en offentlig Webhook-exempelsida https://webhook.site/, öppna denna webbplats för att få en Webhook-URL, som visas i bilden nedan: Kopiera denna URL så kan den användas som Webhook, exemplet här är https://webhook.site/3b76eba5-4573-432a-b607-3000b87afc06. Därefter kan vi ställa in fältet callback_url till ovanstående Webhook-URL och fylla i motsvarande parametrar, som visas i bilden nedan:

Klicka på kör, och du kan omedelbart få ett resultat, som följer:
{
  "task_id": "9cba9d36-3b14-43c9-85b6-86f6dfc3b096"
}
Vänta en stund, så kan vi observera resultatet av Face Swap på https://webhook.site/3b76eba5-4573-432a-b607-3000b87afc06, som visas i bilden nedan: Innehållet är som följer:
{
  "success": true,
  "task_id": "9cba9d36-3b14-43c9-85b6-86f6dfc3b096",
  "image_url": "https://platform.cdn.acedata.cloud/face/9cba9d36-3b14-43c9-85b6-86f6dfc3b096.png",
  "image_width": 2008,
  "image_height": 1942,
  "image_size": 4006481
}
Det kan ses att resultatet innehåller ett task_id-fält, och övriga fält liknar de som nämnts ovan, vilket gör att uppgiften kan kopplas ihop med detta fält.

Felhantering

Vid anrop av API:et, om ett fel uppstår, kommer API:et att returnera motsvarande felkod och information. Till exempel:
  • 400 token_mismatched:Dålig begäran, möjligtvis på grund av saknade eller ogiltiga parametrar.
  • 400 api_not_implemented:Dålig begäran, möjligtvis på grund av saknade eller ogiltiga parametrar.
  • 401 invalid_token:Obehörig, ogiltig eller saknad auktoriseringstoken.
  • 429 too_many_requests:För många begärningar, du har överskridit hastighetsgränsen.
  • 500 api_error:Intern serverfel, något gick fel på servern.

Felrespons exempel

{
  "success": false,
  "error": {
    "code": "api_error",
    "message": "hämtning misslyckades"
  },
  "trace_id": "2cf86e86-22a4-46e1-ac2f-032c0f2a4e89"
}

Slutsats

Genom detta dokument har du fått en förståelse för hur du använder Face Swap API för att byta ansiktet på målbilder med ansiktet på källbilder. Vi hoppas att detta dokument kan hjälpa dig att bättre integrera och använda API:et. Om du har några frågor, tveka inte att kontakta vårt tekniska supportteam.