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:
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:

Anfrageheader und Anfragekörper festlegen
Request Headers umfassen:accept: Gibt an, dass die Antwort im JSON-Format empfangen werden soll, hier eingetragen alsapplication/json.authorization: Der Schlüssel zur Nutzung der API, nach der Beantragung kann dieser direkt ausgewählt werden.
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.

Codebeispiel
Es ist zu erkennen, dass auf der rechten Seite der Seite bereits automatisch Code in verschiedenen Sprachen generiert wurde, wie im Bild gezeigt:
CURL
Python
Antwortbeispiel
Nach erfolgreicher Anfrage gibt die API Informationen über das Ergebnis des Gesichtstauschs zurück. Zum Beispiel: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.

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 Feldcallback_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:

Der Inhalt ist wie folgt:
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.

