Agrandir et retoucher une image dans ComfyUI : Hires Fix, FaceDetailer et inpainting

"Le tutoriel officiel ComfyUI sur l’upscaling décrit Load Upscale Model, Upscale Image (Using Model) et le dossier upscale_models."
Vous avez généré un personnage en 768×1024. La composition et la lumière conviennent, mais le visage au loin est flou. Un agrandissement direct en 4x durcit les détails ; FaceDetailer change l’identité ; un inpaint sur un petit défaut du fond modifie la couleur de tout l’arrière-plan.
Upscaling pixel, rééchantillonnage latent, FaceDetailer et inpainting manuel répondent à des problèmes différents. Les sections suivantes détaillent les connexions, le sens des paramètres, un premier essai pour chaque chemin et le dépannage du flou, des changements hors masque et de la dérive du visage.
Quatre chemins de post-traitement aux rôles différents
Après une génération satisfaisante, il reste généralement trois problèmes : résolution insuffisante, détails trop mous ou défaut local. ComfyUI propose quatre chemins principaux, chacun avec ses limites.
L’upscaling pixel utilise ESRGAN ou un modèle similaire pour augmenter les dimensions. Il ne rééchantillonne normalement pas le prompt et ne change pas volontairement la composition, mais le modèle de super-résolution peut reconstruire ou inventer des textures. Il convient quand l’image source est correcte et doit seulement être plus grande.
Le rééchantillonnage latent agrandit le latent puis le sample de nouveau. Il autorise des changements structurels et sert à recréer matière ou détails.
FaceDetailer détecte un visage et le répare localement. Il convient à un petit visage flou. Les mains et autres objets nécessitent le Detector et le Detailer adaptés, ou un masque manuel ; FaceDetailer n’est pas un outil universel.
L’inpainting manuel utilise Mask Editor pour indiquer la zone à modifier en priorité. Il sert pour un bord de logo, un petit défaut de fond ou un objet précis, mais sampling et compositing peuvent aussi changer l’aspect hors masque.
Ces chemins ne sont pas interchangeables. L’upscaling pixel ne garantit pas l’identité, FaceDetailer n’est pas un face swap et l’inpainting ne promet pas des pixels identiques hors masque. Commencez par classer le besoin : taille, nouveaux détails, zone détectée ou modification locale.
Upscaling pixel : UpscaleModelLoader + Upscale Image using Model
L’upscaling pixel est le post-traitement le plus simple. Si l’image est correcte et doit seulement gagner en dimensions, c’est généralement le point de départ le moins destructeur.
Premier agrandissement
Partons d’une image de 768×1024 à produire en plus grand.
Téléchargez d’abord un modèle adapté au type d’image depuis Real-ESRGAN ou une autre source fiable, par exemple RealESRGAN_x4plus.pth ou RealESRGAN_x4plus_anime_6B.pth.
Placez ensuite le fichier dans ComfyUI/models/upscale_models/.
Actualisez l’interface ComfyUI ou redémarrez afin de rescanner la liste. Si le modèle reste absent, vérifiez chemin, extension et extra_model_paths.yaml.
Connectez les nœuds. UpscaleModelLoader sélectionne le modèle. Upscale Image (Using Model) reçoit upscale_model et image ; reliez l’image générée à son entrée image.
Exécutez puis contrôlez les dimensions. Un modèle 4x produit généralement quatre fois la largeur et la hauteur, mais la sortie du nœud reste la référence pour la taille et les ressources.
Choisir un modèle d’upscaling
| Modèle | Bon point de départ | Caractéristiques |
|---|---|---|
| 4x-ESRGAN | Usage général | Exemple du tutoriel officiel et base de comparaison utile |
| RealESRGAN_x4plus | Photos et scènes réalistes | Modèle général de restauration à tester sur les textures naturelles |
| RealESRGAN_x4plus_anime_6B | Anime et illustration | Orientation anime à tester sur les lignes et aplats |
| realesr-general-x4v3 | Usage général léger | Option plus légère pour comparer plusieurs images |
Il n’existe pas de meilleur modèle universel. Le résultat dépend du type d’image, du style du modèle de base, des artefacts de compression et du facteur. Testez d’abord un modèle anime sur une illustration et un modèle général sur une photo, puis comparez contours, peau, cheveux et textures fines.
Rappel sur le dossier des modèles
Les modèles se placent normalement dans upscale_models, pas upscale_model. UpscaleModelLoader lit aussi les dossiers supplémentaires de extra_model_paths.yaml. Si la liste ne change pas, vérifiez d’abord fichier et chemin, puis actualisez ou redémarrez.
Agrandir le latent et resampler : LatentUpscale + KSampler
L’upscaling pixel ne réinterprète pas le prompt. Pour recréer matière ou détails après agrandissement, augmentez le latent puis relancez un sampling. denoise décide combien conserver et combien redessiner.
Paramètres de LatentUpscale
| Paramètre | Rôle | Attention |
|---|---|---|
upscale_method | Algorithme d’agrandissement | Options courantes : nearest-exact, bilinear, bislerp |
width / height | Dimensions cibles | Mettre un côté à 0 calcule le ratio depuis l’autre |
crop | Recadrage | Options courantes : disabled et center |
LatentUpscale sort un latent agrandi, ensuite envoyé à KSampler. Un denoise proche de 1,0 régénère davantage : les détails peuvent augmenter, mais composition, visage et vêtements dérivent plus facilement. Près de 0,0, l’image source est mieux préservée et les nouveaux détails sont limités.
Aucune valeur ne convient à tous les modèles. Pour une petite amélioration, commencez bas. Fixez seed, sampler, steps, CFG, checkpoint et poids LoRA, puis changez une seule variable. Dès que le visage ou les vêtements dérivent, revenez à la dernière valeur stable.
Différence avec l’upscaling pixel
| Chemin | Changement de structure ? | Détails ajoutés ? | Usage |
|---|---|---|---|
| Upscaling pixel | Normalement pas de changement volontaire de composition | Reconstruit les détails pixel | La source est correcte et demande plus de résolution |
| Rééchantillonnage latent | Oui, selon denoise | Régénère les détails | Une variation est acceptable et matière ou structure locale doit être reprise |
Le rééchantillonnage latent n’est pas un simple resize. Si le workflow utilise ControlNet, IPAdapter ou regional prompting, un second passage peut affaiblir ces contraintes. Enregistrez source et workflow avant de tester une branche séparée.
Réparer un visage avec FaceDetailer dans Impact Pack
Un petit visage flou est courant. FaceDetailer combine détection faciale et Detailer dans Impact Pack : il détecte une zone puis applique detail ou inpainting au crop. Il améliore les petits visages, sans fournir de cohérence d’identité ni de face swap.
Installer Impact Pack
Impact Pack est un paquet de custom nodes tiers. Son maintainer recommande ComfyUI Manager. Ouvrez l’installation des custom nodes, cherchez ComfyUI-Impact-Pack, installez puis redémarrez ComfyUI.
Impact Pack évolue souvent, y compris sa structure et ses exigences. Le README actuel précise aussi que certains Ultralytics Detector Provider demandent Impact Subpack séparément. Pour des nœuds rouges, un detector manquant ou des paramètres différents, vérifiez README, Subpack et Manager actuels au lieu de reproduire une ancienne capture.
Première réparation de visage
Prenons une image dont le visage éloigné manque de netteté.
Ajoutez FaceDetailer depuis le menu Impact Pack.
Reliez image, model, clip, vae, detector et les autres entrées requises. Celles-ci peuvent changer selon la version ; fiez-vous au nœud installé et au README actuel.
Regardez d’abord la zone détectée, guide_size, max_size, noise_mask, inpaint_model et cycle. guide_size fixe la taille de référence pour détailler une petite zone ; max_size limite son grand côté et l’usage VRAM.
Commencez avec un denoise prudent. 0,3–0,5 est un point de départ pratique, pas une valeur officielle. Plus le visage source est petit et la boîte grande, plus le réglage doit rester conservateur.
Comparez original et résultat. Le visage doit être plus net sans changement inutile d’identité, expression, cheveux ou arrière-plan.
Paramètres de FaceDetailer
| Paramètre | Rôle | Réglage conseillé |
|---|---|---|
guide_size | Taille de référence de la zone traitée | Commencer moyen ; une valeur élevée augmente redessin et VRAM |
max_size | Taille maximale de la zone | Limiter les grandes boîtes et la VRAM |
noise_mask | Active ou non un noise mask sur la zone | Le traiter comme un switch et vérifier la version installée |
inpaint_model | Utilise le chemin d’un modèle inpaint | Le configurer avec un checkpoint inpaint dédié |
cycle | Nombre de passages Detailer | Commencer à 1 ; les répétitions peuvent éloigner du visage source |
Le detector détermine la zone traitée. Si le visage se dégrade, vérifiez la bonne détection puis réduisez zone, denoise ou guide size. Une main déformée demande un detector de main et un Detailer ou un inpainting manuel ; FaceDetailer ne la réparera pas automatiquement.
Limites de FaceDetailer
FaceDetailer améliore des détails faciaux sans garantir l’identité initiale. Pour la cohérence d’identité, utilisez FaceID, InstantID, ReActor ou LoRA. Sur une personne réelle, n’utilisez que vos contenus ou des contenus autorisés.
Inpainting manuel : changer une zone sans tout reconstruire
Pour un bord de logo, un petit défaut de fond ou une main, l’inpainting manuel offre plus de contrôle. Le masque fixe la priorité, mais la zone réellement affectée dépend encore de l’encoding, du conditioning, du denoise et du compositing.
Étapes dans Mask Editor
Prenons une image produit avec un petit défaut d’arrière-plan.
Chargez la source dans Load Image, cliquez avec le bouton droit et choisissez Open in MaskEditor.
Peignez uniquement la zone à corriger.
Effacez le surplus et conservez une marge de transition raisonnable.
Cliquez sur Save pour renvoyer le masque au nœud image et l’utiliser dans l’inpainting.
Deux connexions d’inpainting courantes
Les workflows natifs utilisent généralement l’un de deux chemins de conditioning. Il n’est pas nécessaire de les chaîner mécaniquement.
Le premier utilise VAE Encode (for Inpainting). Il reçoit pixels, vae, mask et grow_mask_by, puis sort un latent avec noise mask. Reliez ce latent à KSampler, puis décodez avec VAE Decode.
Le second utilise InpaintModelConditioning. Il reçoit positive, negative, vae, pixels et mask, puis sort positive et negative modifiés ainsi qu’un latent pour KSampler. Ce chemin convient aux workflows demandant un conditioning inpaint dédié.
KSampler reçoit lui-même model, positive, negative, latent et les autres paramètres de sampling. La VAE appartient aux nœuds d’encodage et de décodage avant et après, sans connexion directe à KSampler.
Rôle de grow_mask_by
grow_mask_by étend le masque pour créer une zone de transition dans le latent. Un masque trop serré produit un bord dur ; trop large, il redessine des éléments déjà corrects. Commencez par une petite extension, inspectez raccord et fond, puis augmentez progressivement.
Corriger les raccords visibles
En cas de couture, luminosité différente ou effet de patch, augmentez modérément grow_mask_by, baissez le denoise et adoucissez le masque. Des nœuds tiers ajoutent Expand Mask ou Blur Masked, mais vérifiez noms et comportement dans la version installée.
Options avancées : Ultimate SD Upscale et comfyui-inpaint-nodes
Upscaling pixel et latent couvrent la base. Un très grand passage complet peut épuiser la VRAM, tandis que des raccords difficiles demandent une préparation plus précise. Les custom nodes suivants sont avancés et ne sont pas requis pour un premier workflow.
Ultimate SD Upscale : renforcer les détails par tuiles
Passer une image de 1024×1536 à 4096×6144 rend un second passage complet coûteux. Ultimate SD Upscale découpe en tuiles, applique une diffusion image-to-image à chacune et assemble le résultat.
Les tuiles maintiennent chaque traitement près de la taille d’entraînement du modèle et réduisent la charge d’un passage global. En échange, le traitement ralentit et peut produire raccords, textures répétées ou style local incohérent.
Recherchez ComfyUI_UltimateSDUpscale dans ComfyUI Manager. Le point d’installation, le menu et les paramètres peuvent évoluer ; vérifiez le README et l’interface actuels.
comfyui-inpaint-nodes : préparer les masques
comfyui-inpaint-nodes fournit Fooocus inpaint, LaMa, MAT et des outils pour agrandir, réduire, flouter et remplir les masques. Les modèles Fooocus inpaint vont généralement dans ComfyUI/models/inpaint, mais contrôlez compatibilité et chemin de conditioning dans le README actuel.
| Besoin | Prétraitement à tester |
|---|---|
| Raccord visible autour de la modification | Expand Mask avec Blur Masked |
| Étendue du masque plus précise | Shrink Mask ou Expand Mask |
| Meilleur remplissage initial dans le masque | Fill Masked |
| Suppression d’objet ou outpainting | LaMa, MAT ou workflow outpaint adapté |
Le denoise ne résout pas tout. Près de 1,0, la zone masquée est davantage redessinée ; plus bas, elle conserve plus de source, mais le comportement dépend aussi du modèle et du conditioning. Si l’extérieur bouge, vérifiez connexions et compositing avant de réduire masque, denoise ou transition.
Tableau de décision : scénario et post-traitement
| Scénario | Chemin recommandé | Pourquoi | Alternative |
|---|---|---|---|
| La source est correcte et demande plus de résolution | Upscaling pixel | Conserve normalement la composition et améliore les pixels | Rééchantillonnage latent pour régénérer des détails |
| Matière ou détails doivent être régénérés | Rééchantillonnage latent | Denoise règle conservation et redessin | Ultimate SD Upscale pour une très grande image |
| Un visage éloigné est flou | FaceDetailer | Détecte le visage et le détaille localement | Inpainting manuel si la détection est fausse |
| Main, objet ou logo a un défaut local | Inpainting manuel ou Detailer adapté | Masque ou detector limite la zone | Revenir à la génération si la structure est fausse |
| La cible dépasse la VRAM disponible | Ultimate SD Upscale | Tiled img2img réduit la charge par tuile | Réduire la cible et utiliser l’upscaling pixel |
| La modification a une couture visible | Étendre et adoucir le masque | Ajoute une transition au redessin local | Réduire la force et le denoise |
Forces et limites
| Chemin | Forces | Limites | Besoin VRAM |
|---|---|---|---|
| Upscaling pixel | Rapide, conserve normalement la composition, nombreux modèles | Ne corrige pas la structure et peut créer une texture artificielle | Faible à moyen |
| Rééchantillonnage latent | Régénère matière et détails, réglage souple | Denoise à calibrer et dérive possible | Moyen à élevé |
| FaceDetailer | Détecte automatiquement les visages sans masque manuel | Ne préserve pas l’identité et peut surcorriger | Moyen à élevé |
| Inpainting manuel | Zone définie et contrôle clair | Demande masque, raccord et conditioning correct | Moyen |
| Ultimate SD Upscale | Traite de très grandes images par tuiles | Plus lent et risque de raccords | Selon tuile et modèle |
N’activez pas tous les nœuds à la fois. Utilisez le chemin le moins destructeur qui résout le problème, enregistrez le résultat intermédiaire, puis décidez si un autre sampling ou une réparation locale se justifie.
Ordre conseillé : agrandir, réparer le visage, puis inpaint
L’ordre modifie le résultat. Pour un personnage, commencez par un agrandissement prudent, réparez les zones détectées, puis effectuez une modification locale manuelle. C’est un bon point de départ, pas une recette fixe.
Pourquoi cet ordre fonctionne
Enregistrez d’abord source et workflow. Si le seul problème est la taille, utilisez l’upscaling pixel, qui ne resample normalement pas le prompt.
Inspectez ensuite visage, mains et petites zones. FaceDetailer convient au visage ; une main ou un objet demande Detector et Detailer adaptés ou un masque manuel. Une source plus grande facilite l’évaluation d’une réparation excessive.
Terminez par l’inpainting manuel sur logo, bord, défaut de fond ou autre zone exacte, afin qu’une opération globale antérieure n’annule pas la correction.
Risques d’un second passage
Avec ControlNet, IPAdapter ou regional prompting, le rééchantillonnage latent et le sampling local d’un Detailer peuvent affaiblir les conditions amont. Pose, lignes, couleur des cheveux, vêtements et identité de référence peuvent dériver.
Si un second passage est nécessaire, gardez les conditions d’origine, fixez seed et paramètres, puis commencez avec un denoise faible. Si le résultat amont compte plus que les nouveaux détails, testez d’abord l’upscaling pixel.
Lectures associées
- Débuter avec ComfyUI : interface, dossiers de modèles et première génération.
- Réutiliser un workflow ComfyUI : import, nœuds manquants et reproductibilité.
- Choisir un modèle Stable Diffusion : modèles de base, VAE, VRAM et licences.
Échecs fréquents : flou, dérive du visage, raccords et débordement
| Symptôme | Cause fréquente | Solution |
|---|---|---|
| Upscaling flou ou artificiellement dur | Modèle inadapté ou répétitions excessives | Comparer modèles généraux, photo et anime, puis réduire les passages |
| Le visage ne ressemble plus à la personne | Denoise trop haut ou zone Detailer trop grande | Baisser denoise et réduire la zone ; utiliser une méthode d’identité dédiée si nécessaire |
| Des textures arbitraires apparaissent | Tiled upscale ou denoise élevé redessine trop | Baisser denoise, retirer les nouvelles informations du prompt et tester plus petit |
| Le bord du masque forme une couture | Masque trop serré, transition absente ou luminosité locale modifiée | Régler grow_mask_by, adoucir et réduire la force |
| L’extérieur du masque change | Masque, noise mask, conditioning ou compositing incorrect | Vérifier les connexions, réduire le masque et le denoise |
| FaceDetailer ne trouve pas le visage | Visage trop petit, angle inhabituel ou detector inadapté | Agrandir prudemment ou changer de detector, sans forcer avec un denoise élevé |
| Le modèle d’upscaling manque | Chemin ou extension incorrect, liste non actualisée | Le placer dans upscale_models ou ajouter un chemin, puis actualiser ou redémarrer |
| Ultimate SD Upscale est rouge | Custom node absent ou versions incompatibles | Contrôler installation et mises à jour dans Manager ; isoler les conflits complexes |
| Le workflow manque de VRAM | Résolution, tuile, batch ou zone Detailer trop grande | Réduire taille et batch, limiter max_size, réduire la tuile ou utiliser l’upscaling pixel |
Continuer la réparation ou revenir à la génération ?
Continuez le post-traitement si composition, identité, pose et forme du produit sont correctes et qu’il ne reste que résolution, petit visage, main ou défaut local. La modification idéale tient dans une petite boîte de détection ou un masque.
Revenez à la génération si identité, pose, vêtements, nombre de sujets ou structure du produit sont faux. Ajouter denoise et inpainting augmente alors l’incertitude sans corriger la contrainte. Modifiez prompt, ControlNet, image de référence ou modèle.
Un personnage ou produit stable sur plusieurs sorties exige aussi plus que des inpaintings répétés. Le post-traitement finalise une image déjà presque correcte ; il ne remplace ni assets d’identité, ni contrôle structurel, ni entraînement.
Conclusion
Le post-traitement ComfyUI a quatre chemins : upscaling pixel, rééchantillonnage latent, réparation faciale avec FaceDetailer et inpainting manuel. Si la source est correcte, commencez par les pixels. Utilisez un second passage latent à faible denoise uniquement pour régénérer des détails. FaceDetailer corrige un petit visage flou sans garantir l’identité ; pour un défaut précis, utilisez un masque et un chemin de conditioning inpaint.
Pour un personnage, un ordre pratique est agrandissement prudent, réparation des zones détectées, puis modification manuelle. Si le second passage complet dépasse la VRAM, Ultimate SD Upscale peut travailler par tuiles, mais chaque raccord et transition locale doit être contrôlé. Comparer chaque étape à la source aide à repérer dérive du visage, texture artificielle et changements hors masque.
Choisir et exécuter un chemin de post-traitement ComfyUI
Classez le problème entre taille, détail à régénérer, petit défaut détecté et modification locale précise, puis commencez par le chemin le moins destructeur.
- 1
Step 1: Conserver la sortie d’origine
Enregistrez l’image, le workflow, le seed, le checkpoint, le sampler, les steps et le CFG afin de ne changer qu’une variable par test. - 2
Step 2: Déterminer si l’image doit seulement être plus grande
Si composition, identité et texture sont correctes, commencez par UpscaleModelLoader et Upscale Image (Using Model). - 3
Step 3: Décider d’un rééchantillonnage
N’utilisez LatentUpscale et KSampler que pour régénérer matière ou détails, en commençant avec un denoise faible. - 4
Step 4: Réparer un petit visage ou une zone détectée
Utilisez FaceDetailer ou un autre couple Detector-Detailer, en limitant guide_size, max_size et denoise pour ne pas redessiner le fond. - 5
Step 5: Dessiner un masque pour une modification précise
Couvrez uniquement la cible dans Mask Editor, gardez une petite transition et reliez VAE Encode (for Inpainting) ou InpaintModelConditioning. - 6
Step 6: Contrôler les raccords et le débordement
En cas de bord dur, décalage de couleur ou effet de patch, ajustez grow_mask_by, le feathering et le denoise, puis contrôlez mask et noise mask. - 7
Step 7: Réduire la pression VRAM des grandes images
Réduisez la taille cible ou utilisez Ultimate SD Upscale par tuiles, puis inspectez chaque bord de tuile et transition de texture. - 8
Step 8: Garder la modification minimale qui fonctionne
Comparez source, upscaling pixel, rééchantillonnage et réparation locale, puis gardez la version qui atteint l’objectif avec le moins de dérive structurelle.
FAQ
Comment construire un Hires Fix dans ComfyUI ?
Quelle différence entre Latent Upscale et Upscale Image (Using Model) ?
Où placer les modèles d’upscaling ComfyUI ?
FaceDetailer est-il un outil de face swap ?
Pourquoi l’inpainting modifie-t-il l’extérieur du masque ?
Que régler si FaceDetailer dégrade le visage ?
Quand utiliser Ultimate SD Upscale ?
15 min de lecture · Publié le: 22 juil. 2026 · Mis à jour le: 21 juil. 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
Utiliser les LoRA dans ComfyUI : poids, empilement et cohérence du personnage
Chargez un LoRA dans ComfyUI, réglez strength_model et strength_clip, empilez plusieurs LoRA, vérifiez le modèle de base et réduisez la dérive du personnage.
Partie 6 sur 8
Suivant
Optimiser ComfyUI avec peu de VRAM : SDXL, FLUX et vidéo sur un GPU de 6 à 8 Go
Exécutez ComfyUI avec 6 à 8 Go de VRAM en maîtrisant modèle, T5, VAE, résolution et batch, puis diagnostiquez les OOM et les workflows FLUX ou vidéo trop lents.
Partie 8 sur 8



Commentaires
Connectez-vous avec GitHub pour laisser un commentaire