Cohérence des visages dans ComfyUI : InstantID, FaceID ou ReActor ?

"Le README de cubiq/ComfyUI_InstantID documente la portée SDXL actuelle, antelopev2 et les chemins des modèles, ainsi que les réglages CFG et les keypoints."
Vous disposez d’une photo de face d’un modèle dont les droits sont réglés et souhaitez créer la même personne dans plusieurs scènes. Ou bien une affiche est déjà terminée et vous voulez seulement remplacer son visage par celui d’un personnage virtuel original. Ces besoins relèvent de deux flux différents : le premier injecte l’identité pendant la génération, le second remplace le visage en post-traitement.
Dans ComfyUI, les trois options courantes sont InstantID, IPAdapter FaceID et ReActor. Leurs noms se ressemblent, mais leurs rôles diffèrent. Le nœud ComfyUI InstantID actuel cible SDXL et cumule le plus de dépendances. FaceID peut fonctionner avec SD1.5 et SDXL, mais son modèle et son LoRA doivent correspondre. ReActor réalise un face swap après la génération.
Commencez par déterminer si l’opération se déroule pendant la génération ou sur une image terminée. Vérifiez ensuite les dépendances, les réglages, les erreurs fréquentes et les limites liées aux contenus et aux licences.
1. Trois méthodes : identité pendant la génération ou face swap après coup
Souhaitez-vous générer plusieurs nouvelles images de la même personne, ou seulement remplacer le visage dans une image existante ? Cette décision fixe la méthode.
| Méthode | Rôle | Usage adapté | Entrée | Limites du modèle | Complexité des dépendances |
|---|---|---|---|---|---|
| InstantID | Préserver l’identité pendant la génération | Créer plusieurs images avec le même visage | Une référence faciale | Le nœud ComfyUI_InstantID actuel cible SDXL | Élevée (InsightFace + onnxruntime + antelopev2 + ControlNet + modèle principal InstantID) |
| IPAdapter FaceID | Préserver l’identité pendant la génération | Créer plusieurs images avec le même visage | Une ou plusieurs références faciales | SD1.5 + SDXL | Moyenne (InsightFace + modèle FaceID + LoRA correspondant) |
| ReActor | Face swap en post-traitement | Remplacer seulement le visage d’une image existante | Image cible + visage source | Indépendant du modèle de base de la génération | Selon la version (le cœur 0.7 alpha n’impose plus InsightFace, mais les modèles et licences restent à vérifier) |
Règles de choix
- Générer plusieurs nouvelles images de la même personne → InstantID ou FaceID
- Remplacer uniquement le visage dans une image terminée → ReActor
- Partir d’une seule référence faciale → les trois méthodes l’acceptent, mais InstantID et FaceID conviennent mieux à la génération
- Conserver la pose et la composition d’une image existante tout en changeant le visage → ReActor est plus direct
Vérifier d’abord les limites de licence
InstantID et FaceID utilisent généralement InsightFace pour extraire les caractéristiques du visage. Le code d’InsightFace est sous MIT License, mais ses données d’entraînement et les modèles créés avec ces données sont, par défaut, réservés à la recherche non commerciale. La model card FaceID limite elle aussi ces modèles à la recherche. ReActor se présente comme SFW-friendly et comprend un nudity detector ; son README exige également une utilisation responsable.
Avant tout usage commercial ou toute publication publique, vérifiez séparément le droit à l’image, les licences des poids et les règles de la plateforme. Les flux décrits ici concernent uniquement des contenus autorisés ou détenus par l’utilisateur, des personnages originaux et des tests internes conformes.
2. InstantID : préserver l’identité pendant une génération SDXL
2.1 Installation et chemins des modèles
InstantID comporte plus de dépendances que FaceID ou ReActor. Après l’installation du nœud, les chemins de modèles incorrects sont une source fréquente d’erreur.
Installation :
# 1. Cloner le nœud
cd ComfyUI/custom_nodes
git clone https://github.com/cubiq/ComfyUI_InstantID.git
# 2. Installer les dépendances
pip install insightface onnxruntime onnxruntime-gpu
Le paquet Python par défaut d’InsightFace 1.0 ne compile plus l’extension C++/Cython optionnelle face3d, ce qui réduit les besoins en compilateur local. Si un ancien environnement ou tutoriel provoque encore une erreur de build, vérifiez la version réellement utilisée et isolez l’environnement avant de conclure que Visual Studio C++ Build Tools est requis par la version actuelle.
| Modèle | Chemin cible | Source |
|---|---|---|
| antelopev2 | ComfyUI/models/insightface/models/antelopev2 | Modèle InsightFace |
| Modèle principal InstantID | ComfyUI/models/instantid | InstantX sur Hugging Face |
| InstantID ControlNet | ComfyUI/models/controlnet | InstantX sur Hugging Face |
Le README actuel de ComfyUI_InstantID indique que le nœud est réservé à SDXL. Pour un flux basé sur SD1.5, utilisez FaceID.
Le dépôt ComfyUI_InstantID est en mode maintenance only depuis le 14 avril 2025. Des correctifs importants peuvent encore être intégrés, mais le mainteneur ne promet plus de développement continu. Consultez le README actuel avant l’installation.
2.2 Flux et réglages
Flux de base :
- Charger un checkpoint SDXL
- Connecter Apply InstantID et fournir une référence faciale de face
- Relier les conditions du modèle InstantID et de ControlNet à la chaîne d’échantillonnage
- Générer l’image
La qualité de la référence agit directement sur la ressemblance. Une image nette, de face, sans obstruction et avec un éclairage uniforme est généralement plus fiable. Un profil, un petit visage, une image floue ou une forte occlusion peuvent provoquer un échec de détection ou une ressemblance faible.
| Symptôme | Réglage |
|---|---|
| Ressemblance insuffisante | Augmenter progressivement le poids du modèle InstantID ou de ControlNet |
| Image brûlée ou prompt moins influent | Réduire d’abord le poids du modèle InstantID, puis comparer à l’image de référence |
| CFG trop élevé | Suivre le README du nœud et descendre vers 4–5, ou utiliser RescaleCFG |
Le flux principal de l’implémentation InstantID en amont ne gère pas plusieurs personnes de référence et utilise le plus grand visage pour les landmarks. ComfyUI_InstantID propose un exemple Multi-ID plus complexe et plus lent, mais il ne faut pas le considérer comme une base simple et stable pour plusieurs personnes.
Fonctions avancées :
- Advanced InstantID : régler séparément le poids du modèle InstantID et celui de ControlNet
- Noise injection : réduire l’aspect brûlé et affiner la ressemblance
- Entrée
image_kps: employer les keypoints d’une autre image pour changer la pose et limiter le transfert de la pose de référence
Pour une pose plus stricte, ajoutez ControlNet OpenPose.
3. IPAdapter FaceID : identité avec SD1.5 et SDXL
FaceID est la variante d’IPAdapter spécialisée dans les visages. Elle remplace l’embedding d’image CLIP ordinaire par un face recognition embedding et peut ajouter un LoRA pour renforcer la cohérence d’identité.
3.1 Installation et association modèle-LoRA
Installez la dépendance dans l’environnement Python de ComfyUI :
pip install insightface
Placez les modèles FaceID dans ComfyUI/models/ipadapter et les LoRA correspondants dans ComfyUI/models/loras. Unified Loader FaceID se base sur les noms de fichiers officiels pour l’association automatique ; un fichier renommé peut ne pas être chargé automatiquement.
| Modèle FaceID | LoRA correspondant | Chemins |
|---|---|---|
ip-adapter-faceid_sd15.bin | ip-adapter-faceid_sd15_lora.safetensors | models/ipadapter + models/loras |
ip-adapter-faceid-plusv2_sd15.bin | ip-adapter-faceid-plusv2_sd15_lora.safetensors | Identiques |
ip-adapter-faceid_sdxl.bin | ip-adapter-faceid_sdxl_lora.safetensors | Identiques |
ip-adapter-faceid-plusv2_sdxl.bin | ip-adapter-faceid-plusv2_sdxl_lora.safetensors | Identiques |
La liste des modèles et leurs noms peuvent évoluer avec les mises à jour du nœud. Avant l’installation, consultez le README de ComfyUI_IPAdapter_plus et associez chaque modèle à son LoRA selon le modèle de base et la version. Un LoRA absent ou mal associé réduit nettement la cohérence d’identité.
Différences entre les variantes :
- PlusV2 : combine face ID embedding et CLIP image embedding réglable, avec un poids distinct pour face structure
- Portrait : conçu pour les portraits, sans LoRA ni ControlNet, et capable d’accepter plusieurs images de visage pour améliorer la ressemblance
- SDXL FaceID et PlusV2-SDXL : la model card les qualifie d’experimental ; ne les présentez pas comme inconditionnellement stables
Le dépôt ComfyUI_IPAdapter_plus est lui aussi en mode maintenance only depuis le 14 avril 2025.
3.2 Flux et réglages
FaceID ne doit pas nécessairement commencer avec un poids de 1.0. Un poids d’identité excessif peut rapprocher le résultat de la référence tout en réduisant l’influence du prompt textuel.
Directions de réglage :
- Créer une image de référence autour de 0.8, puis augmenter progressivement si la ressemblance reste insuffisante
- Pour mieux suivre le prompt, changer le weight type dans IPAdapter Advanced ou réduire le poids
- PlusV2 permet aussi de régler séparément un poids lié à face structure
FaceID et InstantID ajoutent tous deux une condition d’identité pendant la génération. FaceID couvre SD1.5 et SDXL, tandis que le nœud ComfyUI_InstantID actuel cible SDXL. La mémoire requise dépend du modèle de base, de la résolution, du GPU et de la version du nœud ; une valeur fixe serait trompeuse.
4. ReActor : face swap SFW en post-traitement
ReActor intervient à une étape différente des deux premières méthodes. Il ne participe pas à la génération par diffusion, mais échange un visage dans une image déjà générée ou existante.
4.1 Installation et évolution des dépendances
Le nouveau cœur de ReActor 0.7.0 alpha annonce qu’InsightFace et C++ Build Tools ne sont plus requis. Toutefois, la table des modèles et la section licence du README actuel citent encore buffalo_l, inswapper_128.onnx et d’autres modèles. Vérifiez la version utilisée avant de décider des étapes d’installation ou des droits d’usage.
| Modèle | Chemin dans le README actuel |
|---|---|
| buffalo_l | ComfyUI/models/insightface/models/buffalo_l |
| inswapper_128 | ComfyUI/models/insightface |
| reswapper | ComfyUI/models/reswapper |
| hyperswap | ComfyUI/models/hyperswap |
| Modèles Face Restore | ComfyUI/models/facerestore_models |
Les anciens tutoriels présentent souvent InsightFace et C++ Build Tools comme des prérequis fixes. En cas de contradiction, identifiez votre version de ReActor et suivez son README au lieu de mélanger d’anciennes dépendances avec le cœur actuel.
ReActor comprend un nudity detector. Son README demande d’obtenir le consentement de la personne lorsqu’un visage réel est utilisé et de signaler clairement la nature synthétique du contenu lors d’une publication. Les droits commerciaux de modèles comme buffalo_l et inswapper_128 restent à vérifier séparément.
4.2 Flux
Flux de base pour le face swap :
- Connecter l’image à traiter à
input_imageet le visage autorisé àsource_image - Commencer avec une force prudente dans ReActorSetWeight
- Facultatif : contrôler la ressemblance après l’échange avec Face Similarity
- Facultatif : réparer les contours et les détails avec Face Restoration
- Facultatif : enregistrer un face model et recharger directement le même embedding de visage
| Fonction | Rôle |
|---|---|
| ReActorSetWeight | Régler la force du swap de 0% à 100% selon les pas du nœud ; une force trop élevée peut produire un aspect plastique ou des contours artificiels |
| Face Similarity | Vérifier la ressemblance après l’échange |
| Face Restoration | Réparer contours et détails après le swap ; une force excessive peut aussi produire un aspect artificiel |
| Face Model | Enregistrer ou charger un embedding de visage pour réutiliser le même visage |
ReActor ne régénère ni la composition, ni les vêtements, ni la pose. Si l’objectif est de préserver l’image terminée et de ne traiter que la zone du visage, il est plus direct qu’InstantID ou FaceID.
5. Qualité de la référence et erreurs fréquentes
5.1 Liste de contrôle de l’image de référence
La qualité de la référence compte souvent plus qu’une hausse continue du poids. Une image nette, de face, sans obstruction et uniformément éclairée est plus facile à faire correspondre. Profil, flou, petit visage ou forte occlusion restent difficiles à compenser, même avec des poids élevés.
Ordre de priorité :
- Face > profil ou angle oblique
- Net > flou
- Sans obstruction > lunettes, masque ou cheveux devant le visage
- Éclairage uniforme > ombre forte ou contre-jour
Ces principes valent pour InstantID, FaceID et ReActor. Si la détection échoue, recadrez le visage ou remplacez la référence avant de pousser tous les poids au maximum.
5.2 Tableau des pannes courantes
| Problème | Cause probable | Solution |
|---|---|---|
Modèle introuvable (antelopev2 / buffalo_l / modèle principal InstantID) | Mauvais chemin ou modèle absent | Comparer models/insightface/models, models/instantid et les autres chemins au README actuel du nœud |
Échec de détection (no face detected) | Profil, petit visage, flou ou obstruction | Utiliser une référence nette, de face et non masquée, puis recadrer si nécessaire |
| Le visage ressemble, mais la pose ou l’expression dérive | La condition faciale transmet aussi certains traits structurels | Contrôler la pose avec ControlNet ou passer à ReActor pour une image déjà terminée |
| Ressemblance faible | LoRA FaceID absent, poids inadapté ou référence médiocre | Vérifier l’association modèle-LoRA, établir une base autour de 0.8, puis modifier une seule variable |
| Contours artificiels ou visage en plastique | Face swap ou Face Restoration trop fort | Réduire les forces de swap et de restauration ; vérifier taille, angle et éclairage du visage cible |
| Échec d’installation d’une dépendance | Mélange d’anciens tutoriels, de vieux nœuds et de l’environnement Python actuel | Vérifier les versions du nœud et d’InsightFace, puis installer dans un environnement isolé selon le README actuel |
Ordre de diagnostic :
- La détection échoue → examiner d’abord la qualité de la référence
- La ressemblance est faible → vérifier d’abord les modèles, les LoRA et les chemins
- La pose dérive → choisir entre condition d’identité pendant la génération, post-traitement ou ajout de ControlNet
6. Combiner ControlNet, Kontext et LoRA
Conserver le même visage ne fixe ni la pose, ni le corps, ni les vêtements, ni la composition. Quand InstantID ou FaceID fournit une condition d’identité, la pose, l’expression ou la coiffure de la référence peuvent encore influencer le résultat.
Combinaisons utiles :
- InstantID ou FaceID + ControlNet OpenPose → la condition faciale gère l’identité, ControlNet gère le corps et la pose
- FaceID + IPAdapter standard → FaceID stabilise le visage et IPAdapter contrôle le style ou la composition ; commencez avec des poids prudents pour les deux
- ReActor + agrandissement et réparation → générer la cible, échanger le visage, puis utiliser face restore ou un inpaint local si nécessaire
- Kontext → adapté aux changements de fond, de tenue ou de scène sur la même image d’entrée, mais pas au verrouillage spécialisé de l’identité faciale
- LoRA → adapté à un personnage original ou un avatar de marque réutilisé dans le temps avec un jeu de données d’entraînement
Lorsque la pose doit être exacte, fournissez la pose cible à ControlNet OpenPose. InstantID ou FaceID peut alors gérer le visage, et ControlNet le corps et la pose. Pour préserver une composition terminée et ne changer que le visage, ReActor est plus direct.
À lire aussi :
- Contrôler la composition et la pose avec ComfyUI ControlNet
- Réutiliser un workflow ComfyUI et corriger les nœuds ou modèles manquants
- Charger, pondérer et combiner des LoRA dans ComfyUI
7. Limites de conformité et de licence
Les licences et les droits sur les contenus source sont des limites strictes. Un flux techniquement fonctionnel ne signifie pas que le contenu, le modèle et le mode de publication sont tous autorisés.
Séparer la licence du code et celle des modèles InsightFace
Le code d’InsightFace utilise la MIT License et permet les usages académiques et commerciaux. Ses données d’entraînement et les modèles préentraînés dérivés de ces données sont toutefois, par défaut, réservés à la recherche non commerciale. Le README InsightFace actuel fournit aussi des contacts de licence distincts pour la série inswapper et les modèles ouverts de reconnaissance faciale.
La model card FaceID indique également qu’IP-Adapter-FaceID est destiné à la recherche, car il dépend des modèles préentraînés d’InsightFace. La licence du code d’un nœud n’accorde pas automatiquement un droit commercial sur chaque poids.
Responsabilité et signalement avec ReActor
La version actuelle de ReActor se présente comme SFW-friendly et comprend un nudity detector. Son README exige le respect du droit local, le consentement lors de l’utilisation d’un visage réel et un signalement clair du face swap ou de la synthèse par IA lors d’une publication publique.
Limites sur les contenus source
Les flux décrits ici concernent uniquement :
- Des photos de modèles avec autorisation explicite pour le visage et l’usage prévu
- Vos propres contenus, que vous avez le droit de traiter
- Des personnages virtuels originaux ne représentant pas une personne réelle
- Des tests internes conformes qui ne sont pas publiés
Avant un usage commercial ou public, vérifiez séparément le droit à l’image, la portée de la licence du modèle et les règles de la plateforme. Si l’un de ces points reste incertain, ne publiez ni ne commercialisez le résultat.
Résumé et prochaines étapes
Le choix se résume ainsi :
- Identité pendant la génération → InstantID (nœud ComfyUI actuel pour SDXL) ou FaceID (SD1.5 + SDXL)
- Face swap en post-traitement → ReActor
- Vérifier la référence, les chemins et les versions avant d’augmenter aveuglément les poids
- Une licence de code ne rend pas tous les modèles préentraînés utilisables commercialement ; un visage réel exige aussi une autorisation
InstantID convient aux flux SDXL et comporte davantage de dépendances, mais sépare les réglages d’identité et de keypoints. FaceID prend en charge plus de modèles de base, à condition d’associer correctement modèle et LoRA. ReActor ne participe pas à la diffusion et convient au traitement du visage dans une image existante.
Pour continuer :
- Pose instable ou composition précise → ComfyUI ControlNet en pratique
- Réutilisation durable d’un personnage original → ComfyUI LoRA en pratique
- Agrandissement ou réparation locale après le face swap → Agrandissement et inpainting dans ComfyUI
- Erreurs répétées de nœuds ou de chemins de modèles → Guide de réutilisation des workflows ComfyUI
Choisir et régler une méthode de cohérence faciale dans ComfyUI
Choisissez selon l’étape du flux, vérifiez la référence et les modèles, puis ne modifiez qu’un poids à la fois.
- 1
Step 1: Identifier l’étape du flux
Choisissez InstantID ou IPAdapter FaceID pour créer de nouvelles images depuis un visage. Utilisez ReActor lorsqu’une image existante nécessite seulement un remplacement de visage. - 2
Step 2: Préparer une référence adaptée et autorisée
Privilégiez une image nette, de face, sans obstruction, avec un éclairage uniforme et un visage assez grand, puis confirmez vos droits d’utilisation. - 3
Step 3: Installer les modèles et dépendances de la méthode
Pour InstantID, vérifiez antelopev2, le modèle principal et ControlNet. Pour FaceID, vérifiez insightface, le modèle FaceID et le LoRA associé. Installez ReActor selon le README de la version utilisée. - 4
Step 4: Créer une image de référence
Produisez un premier résultat avec les valeurs par défaut ou des poids prudents. Ne changez pas simultanément la pose, l’expression, la coiffure, le modèle de base et plusieurs poids d’identité. - 5
Step 5: Régler une cause à la fois
Si la ressemblance est faible, augmentez le poids d’identité ou corrigez l’association des modèles. Si le prompt perd de l’influence, réduisez le poids Adapter. Si le visage paraît artificiel, baissez les forces de swap et de restauration. - 6
Step 6: Ajouter la pose ou un personnage durable
Ajoutez ControlNet si la pose doit être précise. Pour un personnage original réutilisé dans le temps, évaluez l’entraînement d’un LoRA au lieu de confier tous les contrôles à une seule photo.
FAQ
Faut-il utiliser InstantID ou ReActor pour garder la même personne dans ComfyUI ?
Pourquoi IPAdapter FaceID a-t-il aussi besoin d’un LoRA ?
InstantID dans ComfyUI fonctionne-t-il uniquement avec SDXL ?
ReActor 0.7 exige-t-il encore InsightFace et C++ Build Tools ?
Le face swap avec ComfyUI est-il utilisable commercialement ?
Pourquoi le visage remplacé paraît-il en plastique ?
13 min de lecture · Publié le: 21 août 2026 · Mis à jour le: 21 août 2026
Guide pratique ComfyUI et Stable Diffusion
Si vous arrivez depuis la recherche, le plus rapide est de passer à l’article précédent ou suivant de cette série.
Précédent
FLUX.1 Kontext dans ComfyUI : retouches successives et personnages cohérents
Installez FLUX.1 Kontext Dev dans ComfyUI, formulez les éléments à préserver, enchaînez les retouches, revenez en arrière en cas de dérive et choisissez l’outil.
Partie 8 sur 13
Suivant
Agrandir et retoucher une image dans ComfyUI : Hires Fix, FaceDetailer et inpainting
Comparez upscaling pixel, rééchantillonnage latent, FaceDetailer, inpainting et tuiles, puis corrigez dérive du visage, raccords et débordement du masque.
Partie 10 sur 13



Commentaires
Connectez-vous avec GitHub pour laisser un commentaire