Introduction
Face Swap transpose les traits du visage d’une image sur la personne d’une autre. Seuls les traits voyagent : coiffure, implantation des cheveux, silhouette de la tête, pose, tenue, lumière et arrière-plan de l’image cible restent tels quels, et c’est ce qui fait que le résultat s’intègre à la photo d’origine au lieu d’être posé dessus.
La requête se compose de deux URL d’image et d’un seed facultatif : image_url est la photo à modifier et reference_image_url fournit le visage. Il n’y a aucun champ de prompt à rédiger, et chaque requête renvoie une image.
Fonctionnalités et points forts
Le plan reste, l’identité change
C’est le choix ciblé quand la photo cible a déjà les bons cheveux, la bonne pose, la bonne tenue, le bon cadrage et le bon décor. L’identité du visage est transférée et le reste de la composition validée est protégé ; changer de personne ne devient donc pas une génération d’image complète.
Conçu pour des paires d’images reproductibles
Le déroulé est volontairement simple : préparez une cible et une référence dont les droits sont réglés, avec un angle et une lumière compatibles, puis vérifiez la mâchoire, les yeux et la transition de la peau. Cela le rend utile pour des variantes maîtrisées d’avatars, de catalogues et de campagnes où le plan doit rester reconnaissable.
Choisir l’étendue de l’échange avant de commencer
Utilisez Face Swap quand la coiffure et la silhouette de la tête de la cible font partie de la composition. Si la nouvelle identité doit apporter ses cheveux et toute la forme de sa tête, confiez le travail à Head Swap : choisir la bonne étendue évite un passage de plus.
Paramètres de requête
| Paramètre | Obligatoire | Description |
|---|---|---|
image_url | Oui | L’image que l’on modifie. La forme de crâne, la coiffure, la pose, la tenue et l’arrière-plan de cette personne sont préservés — seuls ses traits de visage sont remplacés. 1 caractères minimum |
reference_image_url | Oui | L’image qui fournit les traits du visage. Seul le visage est prélevé, pas la forme du crâne ni les cheveux. 1 caractères minimum |
face_mapping | Non | Pour les photos de groupe : indiquez quel visage de la référence va sur quel visage de la cible, une paire par entrée, visages numérotés à partir de 0 dans l’ordre de détection. 10 éléments maximum |
style | Non | Finition du visage échangé : realistic (par défaut) garde le teint et le grain naturels, beautify lisse et éclaircit la peau, lossless conserve le plus de détails du visage. |
face_enhance | Non | Applique une passe d’amélioration au visage échangé pour lui donner une résolution plus élevée. Désactivé par défaut. Valeur par défaut: |
seed | Non | Réutilisez une seed pour comparer deux appels sur la même paire d’images à partir d’un tirage identique ; laissez-la vide ou à 0 pour un tirage aléatoire à chaque fois. |
Tarification
$0.013 / image
Cas d’utilisation
Un nouveau visage pour un portrait dont la coiffure fonctionne déjà
Utilisez ce point de terminaison quand la coiffure, l’implantation des cheveux et la silhouette de la tête de la photo cible font partie de la composition et que seuls les traits doivent changer. Envoyez la cible en image_url et le visage en reference_image_url, puis comparez les yeux et la mâchoire à la source en taille réelle avant de valider le résultat.
Changer le visage d’une image de banque ou générée
Prenez une image dont la lumière, la pose et le décor fonctionnent déjà et placez-y un autre visage, au lieu de régénérer toute l’image et de perdre la composition déjà validée.
Chaînes d’avatars et de photos de profil en volume
Sans prompt à rédiger, une liste de paires cible-référence peut passer par le point de terminaison de façon programmatique. Fixez un seed par paire quand une nouvelle tentative doit rester comparable à la première.
Des personnages cohérents sur toute une séance
Générez une série de scènes avec le modèle de votre choix, puis reportez un même visage sur toutes pour que la série se lise comme une seule personne. Comme les cheveux et la tenue restent propres à chaque image cible, la variété générée survit au passage.
Guide de prompt et conseils pratiques
Vérifier que vous avez les droits sur les deux visages
Avant toute question technique : la cible et la référence représentent des personnes, et il vous faut une autorisation pour le visage que vous déplacez comme pour l’image dans laquelle vous le placez. Conservez l’autorisation avec la fiche du travail.
Héberger les deux images et envoyer la paire
image_url est l’image à modifier ; reference_image_url fournit le visage. Aucun prompt n’intervient. Un éditeur généraliste aurait besoin d’une consigne comme : « Face swap: take the face and hairline of the woman in the second image and place it onto the woman in the first image. Keep the first image's pose, outfit, magazine layout, lighting, framing and colour grade completely unchanged. Match skin tone and lighting so the result reads as one photograph. » Ce point de terminaison n’a besoin ni de l’un ni de l’autre.
Vérifier le résultat avant d’itérer
Les deux images doivent montrer un visage bien visible, plutôt de face et bien éclairé ; les profils marqués, le flou de bougé, les masquages importants et les très petits visages sont les cas où le transfert se dégrade ou échoue. Un gros écart de direction de la lumière ou de teint entre les deux images se voit à la mâchoire ; choisissez donc une référence dont la lumière ressemble à celle de la cible. Par défaut, un seul visage est échangé par image ; pour une photo de groupe, listez les paires dans face_mapping (quel visage de la référence va sur quel visage de la cible, numérotés à partir de 0). Il n’y a ni prompt, ni masque, ni réglage d’intensité : si le résultat ne convient pas, la solution est une autre paire d’images, pas une requête reformulée.
Démarrage rapide de l’API
# Generate the idempotency key once; reuse it when retrying after a lost response.
export SPICY_IDEMPOTENCY_KEY="${SPICY_IDEMPOTENCY_KEY:-$(uuidgen)}"
curl -X POST https://api.spicyapi.ai/api/v1/jobs/createTask \
-H "Authorization: Bearer $SPICY_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $SPICY_IDEMPOTENCY_KEY" \
-d '{
"model": "spicyapi/face-swap-v1/edit",
"input": {
"image_url": "https://example.com/reference.png",
"reference_image_url": "https://example.com/reference.png",
"style": "realistic"
}
}'
# Copy data.taskId from the response into TASK_ID, then poll the status.
TASK_ID="TASK_ID_FROM_RESPONSE"
curl "https://api.spicyapi.ai/api/v1/jobs/recordInfo?taskId=$TASK_ID" \
-H "Authorization: Bearer $SPICY_API_KEY"
La référence API détaille l’authentification, le schéma complet, le polling et la gestion des erreurs.











