Zum Hauptinhalt springen
Die Hauptfunktion der Face Swap API besteht darin, durch Eingabe eines Quellbildes und eines Zielbildes das Gesicht im Zielbild auf das Gesicht im Quellbild zu übertragen. Dieses Dokument wird die Integrationsanleitung der Face Swap API detailliert beschreiben, um Ihnen zu helfen, diese API einfach zu integrieren und ihre leistungsstarken Funktionen voll auszuschöpfen. Mit der Face Swap API können Sie das Gesicht im Zielbild problemlos auf das Gesicht im Quellbild übertragen.

Antragsprozess

Um die Face Swap API zu nutzen, müssen Sie zunächst auf die Anmeldeseite Face Swap API gehen und den entsprechenden Dienst beantragen. Nachdem Sie die Seite betreten haben, klicken Sie auf die Schaltfläche „Acquire“, wie im Bild gezeigt: Anmeldeseite Wenn Sie noch nicht angemeldet oder registriert sind, werden Sie automatisch zur Anmeldeseite weitergeleitet, um sich zu registrieren und anzumelden. Nach der Anmeldung werden Sie automatisch zur aktuellen Seite zurückgeleitet. Bei der ersten Beantragung erhalten Sie ein kostenloses Kontingent, mit dem Sie die API kostenlos nutzen können.

Anfragebeispiel

Wir verwenden zwei Bilder als Beispiel, um zu demonstrieren, wie man die API nutzt. Angenommen, das Quellbild ist wie folgt dargestellt:

Das Zielbild ist:

Nun zeigen wir, wie man das Gesicht im Zielbild auf das Gesicht im Quellbild überträgt.

Anfrageheader und Anfragekörper festlegen

Request Headers umfassen:
  • accept: Gibt an, dass die Antwort im JSON-Format empfangen werden soll, hier eingetragen als application/json.
  • authorization: Der Schlüssel zur Nutzung der API, nach der Beantragung kann dieser direkt ausgewählt werden.
Request Body umfasst:
  • source_image_url: Der Link zum hochgeladenen Quellbild.
  • target_image_url: Der Link zum hochgeladenen Zielbild.
  • timeout: Optional, die Bearbeitungszeitüberschreitung (Sekunden), bei Überschreitung wird direkt zurückgegeben.
Einstellung wie im folgenden Bild gezeigt:

Codebeispiel

Es ist zu erkennen, dass auf der rechten Seite der Seite bereits automatisch Code in verschiedenen Sprachen generiert wurde, wie im Bild gezeigt:

Einige Codebeispiele sind wie folgt:

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)

Antwortbeispiel

Nach erfolgreicher Anfrage gibt die API Informationen über das Ergebnis des Gesichtstauschs zurück. Zum Beispiel:
{
  "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"
}
Es ist zu sehen, dass das Ergebnis ein Feld image_url enthält, das den Link zum Bild enthält, in dem das Gesicht im Zielbild durch das Gesicht im Quellbild ersetzt wurde. Weitere Informationen sind wie im folgenden Bild gezeigt:
  • image_url, der Link zum generierten Bild.
  • image_width, die Breite des generierten Bildes.
  • image_height, die Höhe des generierten Bildes.
  • image_size, die Größe des generierten Bildes.
  • task_id, die ID der aktuellen Generierungsaufgabe.
Das generierte Bild sieht wie folgt aus:

Es ist deutlich zu erkennen, dass das Bild erfolgreich das Gesicht im Zielbild auf das Gesicht im Quellbild übertragen hat.

Asynchrone Rückrufe

Da die Generierung des Face Swaps relativ lange dauert, etwa 1-2 Minuten, bleibt die HTTP-Anfrage bei langer Nichtantwort verbunden, was zu einem zusätzlichen Verbrauch von Systemressourcen führt. Daher bietet diese API auch Unterstützung für asynchrone Rückrufe. Der gesamte Prozess ist: Wenn der Client die Anfrage stellt, gibt er zusätzlich ein Feld callback_url an. Nachdem der Client die API-Anfrage gestellt hat, gibt die API sofort ein Ergebnis zurück, das ein Feld task_id enthält, das die aktuelle Aufgaben-ID darstellt. Wenn die Aufgabe abgeschlossen ist, wird das Ergebnis der Face Swap-Generierung in Form eines POST-JSON an die vom Client angegebene callback_url gesendet, das ebenfalls das Feld task_id enthält, sodass das Aufgabenergebnis über die ID verknüpft werden kann. Lassen Sie uns anhand eines Beispiels verstehen, wie dies konkret funktioniert. Zunächst ist der Webhook-Rückruf ein Dienst, der HTTP-Anfragen empfangen kann. Entwickler sollten dies durch die URL ihres eigenen HTTP-Servers ersetzen. Hier verwenden wir zur Demonstration eine öffentliche Webhook-Beispielseite https://webhook.site/, auf der Sie eine Webhook-URL erhalten können, wie im Bild gezeigt: Kopieren Sie diese URL, um sie als Webhook zu verwenden. Das Beispiel hier ist https://webhook.site/3b76eba5-4573-432a-b607-3000b87afc06. Als nächstes können wir das Feld callback_url auf die oben genannte Webhook-URL setzen und die entsprechenden Parameter eingeben, wie im Bild gezeigt:

Klicken Sie auf Ausführen, und Sie werden sofort ein Ergebnis erhalten, wie folgt:
{
  "task_id": "9cba9d36-3b14-43c9-85b6-86f6dfc3b096"
}
Nach kurzer Wartezeit können wir auf https://webhook.site/3b76eba5-4573-432a-b607-3000b87afc06 das Ergebnis der Face Swap-Generierung beobachten, wie im Bild gezeigt: Der Inhalt ist wie folgt:
{
  "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
}
Es ist zu sehen, dass das Ergebnis ein Feld task_id enthält, und die anderen Felder sind ähnlich wie oben beschrieben. Über dieses Feld kann die Aufgabe verknüpft werden.

Fehlerbehandlung

Bei der Verwendung der API, wenn ein Fehler auftritt, gibt die API den entsprechenden Fehlercode und die Informationen zurück. Zum Beispiel:
  • 400 token_mismatched:Ungültige Anfrage, möglicherweise aufgrund fehlender oder ungültiger Parameter.
  • 400 api_not_implemented:Ungültige Anfrage, möglicherweise aufgrund fehlender oder ungültiger Parameter.
  • 401 invalid_token:Unbefugt, ungültiger oder fehlender Autorisierungstoken.
  • 429 too_many_requests:Zu viele Anfragen, Sie haben das Rate-Limit überschritten.
  • 500 api_error:Interner Serverfehler, etwas ist auf dem Server schiefgelaufen.

Fehlerantwort Beispiel

{
  "success": false,
  "error": {
    "code": "api_error",
    "message": "Abruf fehlgeschlagen"
  },
  "trace_id": "2cf86e86-22a4-46e1-ac2f-032c0f2a4e89"
}

Fazit

Durch dieses Dokument haben Sie gelernt, wie Sie die Face Swap API verwenden, um die Gesichter im Zielbild mit den Gesichtern im Quellbild auszutauschen. Wir hoffen, dass dieses Dokument Ihnen hilft, die API besser zu integrieren und zu nutzen. Bei Fragen wenden Sie sich bitte jederzeit an unser technisches Support-Team.