Corriger n'importe quelle partie d'une image avec l'inpainting de Flux dans ComfyUI, une région à la fois

Peignez un masque doux, laissez Flux Dev rerendre uniquement cette zone en plus haute résolution avec le détailleur SEGS, puis enregistrez, renvoyez et passez à la partie suivante. Les réglages qui fonctionnent, et pourquoi les petits masques battent les grands.

Anton Tenitsky13 octobre 20266 min de lectureVersion vidéo plus bas

Ce guide a été traduit de l'anglais par IA et peut contenir des erreurs. Lire l'original.

Un comparateur d'images dans ComfyUI séparant un personnage avec une batte de baseball dans une rue de ville, avant et après l'inpainting de Flux sur le visage et les bras

La plupart des images IA sont presque justes. Le visage est décalé, une manche a fondu, une main est fausse. L’inpainting rerend uniquement la partie que vous masquez et laisse le reste tranquille. Ce workflow le fait avec Flux Dev et le détailleur SEGS de l’Impact Pack, qui agrandit la zone masquée avant de la rerendre, si bien que même une petite région revient avec un vrai niveau de détail.

La technique fonctionne sur n’importe quel sujet. Ici, je prends une image de personnage que j’ai générée à partir d’un croquis (voir du croquis à l’art avec Flux) et je la corrige partie par partie : visage, manches, jambes, buste et batte de baseball.

En bref

  • Masquez une région dans l’éditeur de masques, avec un pinceau doux (dureté proche de zéro).
  • MASK to SEGS → Detailer (SEGS) : la zone masquée est agrandie à 512 px, rerendue avec Flux Dev et refondue dans l’image.
  • Réglages : Flux guidance 3,5, 20 étapes, denoise 0,60–0,70.
  • Une partie à la fois. Enregistrez, téléchargez, renvoyez, masquez la partie suivante.
  • Attendez-vous à relancer : de 10 à 15 fois pour un visage, c’est normal.

Pour un examen plus détaillé de chaque node, et une astuce de repeint pour les mains les plus difficiles, voir corriger les mains d’IA dans ComfyUI. Ce guide traite de l’utilisation de la même configuration sur une image entière.

Le workflow

Le workflow d'inpainting dans ComfyUI : Load Image, MASK to SEGS, Load Diffusion Model, Load VAE, DualCLIPLoader, un prompt positif et FluxGuidance alimentant un node Detailer (SEGS)
Load Image et son masque passent par MASK to SEGS vers le détailleur, avec Flux Dev, son VAE et deux encodeurs de texte.
  • Load Image : envoyez l’image à corriger. Faites un clic droit dessus et choisissez Open in Mask Editor pour peindre le masque.
  • MASK to SEGS (Impact Pack) transforme le masque en segment, isolant cette zone pour pouvoir l’agrandir.
  • Detailer (SEGS) est le node principal où tout se rejoint. Il prend la zone masquée, qui ne fait peut-être que 100 × 100 pixels, l’agrandit à 512 × 512 et la rerend là. Plus de pixels permettent de créer un meilleur résultat. L’image d’origine le guide, vous n’avez donc pas besoin de beaucoup de prompt ; il lit déjà ce qui est là. Connectez aussi l’image d’origine, pas seulement les segments.
  • Load Diffusion Model : le modèle Flux Dev complet. La première génération prend environ une minute et demie pendant le chargement ; ensuite une exécution a pris environ 16 secondes.
  • Load VAE : le petit autoencodeur de Flux, qui décode l’image depuis l’espace latent.
  • DualCLIPLoader : Flux a besoin de deux encodeurs de texte, clip_l et t5xxl.
  • Prompt positif → FluxGuidance : la guidance de Flux définit avec quelle force le prompt contrôle l’image. 3,5 est la norme et fonctionne bien. Connectez aussi l’entrée négative, mais laissez-la vide : Flux ne fonctionne pas bien avec les prompts négatifs, décrivez donc tout dans le positif.
  • Image Comparer et Save Image à la fin.

Peindre un masque doux

Dans l’éditeur de masques, réglez la taille du pinceau avec le curseur, puis baissez la dureté à environ zéro. Le réglage par défaut est très dur, et un bord dur laisse des contours et des coutures visibles. Peignez sur la zone et cliquez sur Save.

L'éditeur de masques de ComfyUI avec un masque noir peint sur le buste du personnage et les réglages du pinceau à droite
Un masque uniquement sur le buste. Gardez chaque masque sur une seule partie de l'image.

Masquez une partie à la fois : bras, jambes, taille, buste, visage, cheveux, la batte. Si vous essayez de faire les bras et les jambes d’un coup, le masque devient trop grand et abîme l’image. Il ne fait tout simplement pas du bon travail.

Prompt et réglages

Le prompt peut être très simple. Pour le visage, j’ai tapé « young beautiful female face, red lips ». N’ajoutez du détail que s’il se trompe sans cesse.

Dans le détailleur :

  • Seed : aléatoire à chaque exécution. Gardez une seed si vous voulez recréer une image : avec le même prompt et les mêmes réglages, quelqu’un d’autre obtient exactement le même résultat.
  • Étapes : 20. La plage habituelle est 20–50, avec des rendements décroissants au-delà de 50. Flux est plutôt lent, et 20 est rapide et de haute qualité.
  • CFG : 1,0. La guidance vient déjà du node FluxGuidance, le CFG n’a donc aucun effet ici ; laissez-le.
  • Denoise : 0,60–0,70. De combien la zone peut changer. Cette plage donne au modèle assez de liberté sans la changer trop ou trop peu. J’y suis arrivé par l’expérience, après des centaines ou des milliers de générations.
Réglages du détailleur : steps 20, cfg 1.0, sampler euler, scheduler normal, denoise 0.70, feather 5, noise_mask et force_inpaint activés
Les réglages du détailleur : 20 étapes, CFG 1,0, denoise 0,70.

Lancer, enregistrer, renvoyer, recommencer

Chaque exécution donne un visage différent, alors relancez jusqu’à ce qu’un convienne. Les résultats vont dans le dossier output de ComfyUI ; le préfixe de nom de fichier du node de sauvegarde (j’ai utilisé flux_gen) les rend faciles à repérer.

Pour travailler sur la partie suivante, le résultat actuel doit devenir l’entrée. Je télécharge l’image et la renvoie dans Load Image. (Si vous connaissez un meilleur moyen de la réutiliser dans RunComfy, dites-le-moi.) Envoyer une nouvelle image supprime le masque, ouvrez donc l’éditeur de masques et peignez la zone suivante.

Le comparateur sur un bras retouché par inpainting, avec un côté gauche meilleur, un côté droit inégal et des tatouages indésirables sur la jambe
Une passe sur les manches : bonne d'un côté, fausse de l'autre, et des tatouages que personne n'avait demandés.

Sur les manches, le premier essai était bon d’un côté et mauvais de l’autre. Le masque était un peu trop grand ; un masque plus étroit le long du bras a mieux fonctionné, tout en ajoutant des tatouages que je n’avais pas demandés. Un prompt plus précis (« white cotton sleeves ») aiderait probablement. Parfois il faut repeindre le masque parce qu’il a pris des parties que vous ne vouliez pas.

Comment l’image complète a pris forme

  • Jambes : « smooth legs, high heels, red boots ». La première génération était superbe.
  • Buste et manches ensemble : un grand masque, et des ennuis. La taille a fusionné avec le bras, je l’ai donc divisé en masques séparés.
  • Bras seuls : plutôt bon dès le premier essai. Pas le blanc-argent que je voulais, mais assez bien.
  • Visage : 10 à 15 générations.
  • Buste et taille : une dizaine d’itérations de plus.
  • Batte de baseball : un masque vraiment petit et quelques itérations.
L'image finale dans le comparateur : le personnage avec une batte de baseball sur l'épaule, avec un visage et des bras plus nets
L'image finale après toutes les passes, comparée à l'original.

C’est pas mal de travail : télécharger, renvoyer, relancer. Refaire beaucoup d’une image peut prendre une heure. Si ce n’est que le visage et les mains, c’est bien plus rapide.

Où l’exécuter

Flux Dev demande un GPU puissant. J’ai enregistré ceci sur RunComfy, où le workflow est configuré et prêt, avec environ 15 minutes gratuites pour l’essayer. Aujourd’hui, je fais tourner ce genre de travail sur RunPod ; voir mon introduction à RunPod. Le workflow est aussi sur mon Patreon.

Le lien RunComfy est un lien de parrainage. Si vous essayez RunPod, mon lien de parrainage offre aux nouveaux comptes inscrits avec Google entre 5 et 500 $ de crédit après leurs 10 premiers dollars, et je touche une petite commission.

Voir la version vidéo (10:15)

Tout ce qui précède est aussi dans la vidéo, si vous préférez suivre à l’écran. La vidéo est en anglais.

Questions fréquentes

Quel denoise utiliser pour l'inpainting avec Flux ?

Entre 0,60 et 0,70. Cela donne au modèle assez de liberté pour interpréter la zone sans la changer trop ou trop peu ; j'y suis arrivé après des centaines de générations.

Pourquoi mon inpainting tourne-t-il mal quand je masque une grande zone ?

Un grand masque couvrant plusieurs parties (bras, buste et jambes d'un coup) donne trop à changer au modèle et il abîme l'image. Travaillez une partie à la fois avec un petit masque doux.

Dois-je écrire un prompt négatif pour Flux ?

Non. Flux n'utilise pas bien les prompts négatifs. Décrivez ce que vous voulez dans le prompt positif, et restez simple ; n'ajoutez du détail que s'il se trompe sans cesse.

Anton Tenitsky est artiste 3D avec plus de 15 ans d'expérience en infographie, qui a travaillé avec Nickelodeon, Gameloft, Marvel Rivals et de nombreux autres clients. En savoir plus sur moi

Guides associés