Passer au contenu principal
La principale fonctionnalité de l’API Face Swap est de remplacer le visage de l’image cible par celui de l’image source en entrant une image source et une image cible. Ce document détaillera les instructions d’intégration de l’API Face Swap, vous aidant à l’intégrer facilement et à tirer pleinement parti de ses puissantes fonctionnalités. Grâce à l’API Face Swap, vous pouvez facilement réaliser le remplacement du visage de l’image cible par celui de l’image source.

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 : Page de demande 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 :

L’image cible est :

Nous allons maintenant démontrer comment remplacer le visage de l’image cible par celui de l’image source.

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 avec application/json.
  • authorization : la clé d’API pour appeler l’API, que vous pouvez sélectionner directement après la demande.
Request Body inclut :
  • 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.
Configurez comme indiqué dans l’image ci-dessous :

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 :

Voici quelques exemples de code :

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)

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": "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"
}
On peut voir qu’il y a un champ 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.
Le résultat de l’image générée est :

On peut clairement voir que cette image a réussi à remplacer le visage de l’image cible par celui de l’image source.

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

En cliquant sur exécuter, vous pouvez constater que vous obtiendrez immédiatement un résultat, comme suit :
{
  "task_id": "9cba9d36-3b14-43c9-85b6-86f6dfc3b096"
}
Après un moment, vous pouvez observer le résultat de la génération de Face Swap sur https://webhook.site/3b76eba5-4573-432a-b607-3000b87afc06, comme indiqué dans l’image ci-dessous : Le contenu est le suivant :
{
  "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
}
On peut voir qu’il y a un champ 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.

Exemples de réponse d’erreur

{
  "success": false,
  "error": {
    "code": "api_error",
    "message": "échec de la récupération"
  },
  "trace_id": "2cf86e86-22a4-46e1-ac2f-032c0f2a4e89"
}

Conclusion

Grâce à ce document, vous avez compris comment utiliser l’API Face Swap pour échanger le visage de l’image cible avec celui de l’image source. Nous espérons que ce document vous aidera à mieux intégrer et utiliser cette API. Si vous avez des questions, n’hésitez pas à contacter notre équipe de support technique.