Processus de demande
Pour utiliser l’API Face Swap, vous devez d’abord vous rendre sur la page de demande Face Swap API pour demander le service correspondant. Une fois sur la page, cliquez sur le bouton « Acquire », comme indiqué dans l’image ci-dessous :
Si vous n’êtes pas encore connecté ou inscrit, vous serez automatiquement redirigé vers la page de connexion pour vous inviter à vous inscrire et à vous connecter. Après vous être connecté ou inscrit, vous serez automatiquement renvoyé à la page actuelle.
Lors de votre première demande, un quota gratuit sera offert, vous permettant d’utiliser l’API gratuitement.
Exemples de requêtes
Prenons deux images comme exemple pour démontrer comment utiliser cette API. Supposons que l’image source soit celle-ci :

Configuration des en-têtes de requête et du corps de la requête
Request Headers inclut :accept: spécifie que la réponse doit être au format JSON, ici rempli avecapplication/json.authorization: la clé d’API pour appeler l’API, que vous pouvez sélectionner directement après la demande.
source_image_url: le lien de l’image source téléchargée.target_image_url: le lien de l’image cible téléchargée.timeout: optionnel, le temps d’attente pour le traitement (en secondes), un dépassement de délai renverra directement.

Exemples de code
Vous pouvez constater que divers langages de code ont déjà été générés automatiquement sur le côté droit de la page, comme indiqué dans l’image ci-dessous :
CURL
Python
Exemples de réponse
Après une demande réussie, l’API renverra des informations sur le résultat de l’image après le remplacement du visage. Par exemple :image_url dans le résultat, qui contient le lien de l’image après que le visage de l’image cible a remplacé celui de l’image source, les autres informations sont comme suit :
image_url, le lien de l’image générée.image_width, la largeur de l’image générée.image_height, la hauteur de l’image générée.image_size, la taille de l’image générée.task_id, l’ID de la tâche de génération.

Rappel asynchrone
Étant donné que le temps de génération de Face Swap est relativement long, environ 1 à 2 minutes, si l’API ne répond pas pendant longtemps, la requête HTTP maintiendra la connexion, entraînant une consommation supplémentaire de ressources système. C’est pourquoi cette API propose également un support pour les rappels asynchrones. Le processus global est le suivant : lorsque le client initie une demande, il spécifie un champcallback_url supplémentaire. Après que le client ait lancé la demande API, l’API renverra immédiatement un résultat contenant un champ task_id, représentant l’ID de la tâche actuelle. Lorsque la tâche est terminée, le résultat de la génération de Face Swap sera envoyé au callback_url spécifié par le client sous forme de POST JSON, incluant également le champ task_id, permettant ainsi de lier le résultat de la tâche par ID.
Voyons maintenant un exemple pour comprendre comment procéder.
Tout d’abord, le rappel Webhook est un service capable de recevoir des requêtes HTTP, les développeurs doivent le remplacer par l’URL de leur propre serveur HTTP. Ici, pour des raisons de démonstration, nous utilisons un site Web de Webhook public https://webhook.site/, en ouvrant ce site, vous obtiendrez une URL Webhook, comme indiqué dans l’image ci-dessous :
Copiez cette URL, vous pouvez l’utiliser comme Webhook, l’exemple ici est https://webhook.site/3b76eba5-4573-432a-b607-3000b87afc06.
Ensuite, nous pouvons définir le champ callback_url sur l’URL Webhook ci-dessus, tout en remplissant les paramètres correspondants, comme indiqué dans l’image ci-dessous :

Le contenu est le suivant :
task_id dans le résultat, les autres champs sont similaires à ceux mentionnés précédemment, permettant d’associer la tâche via ce champ.
Gestion des erreurs
Lors de l’appel de l’API, si une erreur se produit, l’API renverra le code d’erreur et les informations correspondantes. Par exemple :400 token_mismatched: Mauvaise requête, probablement en raison de paramètres manquants ou invalides.400 api_not_implemented: Mauvaise requête, probablement en raison de paramètres manquants ou invalides.401 invalid_token: Non autorisé, jeton d’autorisation invalide ou manquant.429 too_many_requests: Trop de requêtes, vous avez dépassé la limite de taux.500 api_error: Erreur interne du serveur, quelque chose s’est mal passé sur le serveur.

