Arrêter le bavage des couleurs dans ComfyUI : poids de prompt, Conditioning Concat et Conditioning Average

Demandez un vase blanc avec des fleurs rouges et le rouge se répand dans le vase et l'arrière-plan. Voici pourquoi, et comment garder chaque partie du prompt séparée avec des poids, Conditioning (Concat) et ConditioningAverage.

Anton Tenitsky13 octobre 20265 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.

Deux prompts, gold crown et white skull isolated, joints par un node Conditioning (Concat), avec des crânes blancs aux couronnes dorées nettes dans la file

Demandez à Stable Diffusion « a white vase with red flowers » et vous obtiendrez souvent autre chose : des fleurs blanches, un arrière-plan rose, une table rouge. Les couleurs bavent les unes sur les autres, parce que chaque mot du prompt partage le même conditionnement. ComfyUI offre plusieurs moyens de les garder séparées. Ici, je passe de simples poids de prompt à deux nodes de conditionnement qui donnent des résultats bien plus prévisibles.

En bref

  • Poids : (red:1.5) rend un mot plus fort. Restez entre environ 0,5 et 1,5.
  • Choix aléatoire : {red|blue|yellow|pink} choisit une option par image, mais les couleurs bavent quand même.
  • Conditioning (Concat) : un prompt par objet, mis bout à bout. Les couleurs restent où elles doivent.
  • ConditioningAverage : mélange deux prompts ; le curseur de force règle l’équilibre.

Si vous débutez avec ComfyUI, commencez par les bases des nodes ComfyUI et le texte vers image.

Mise en place

Partez de Workflow → Browse Templates → Image generation. Pour le checkpoint, j’utilise epiCPhotoGasm, un modèle SD 1.5 aux images plus réalistes. Mon prompt de test est « white vase with red flowers ». Appuyez sur Ctrl+Entrée pour lancer, et sur Q pour afficher les résultats précédents dans le panneau de la file. Le nombre de lots à côté du bouton Queue définit combien d’images chaque exécution produit.

Pondérer un mot

Mettez le mot entre parenthèses avec deux-points et une valeur : white vase with (red:1.5) flowers. Cela rend le rouge plus rouge. Vous pouvez aussi sélectionner le mot et appuyer sur Ctrl+Haut ou Ctrl+Bas pour changer la valeur par petits pas. La documentation communautaire de ComfyUI explique la syntaxe complète, y compris l’imbrication et les choix {a|b} ci-dessous. Gardez les valeurs entre environ 0,5 et 1,5.

Un prompt disant white vase with (red:2.2) flowers, avec des résultats où le rouge se répand sur une table rouge
À 2,2, le rouge va trop loin : il se répand sur la table et ajoute des artefacts.

J’ai essayé des valeurs plus élevées. À 2,2, c’est devenu beaucoup trop rouge et des artefacts sont apparus.

Options aléatoires, et où le bavage apparaît

Des accolades avec des options séparées par | en choisissent une au hasard pour chaque image : white vase with {red|blue|yellow|pink} flowers. Lancez un lot de quatre et vous obtenez des couleurs différentes. Il n’y a pas de vraie boucle sur la liste ; c’est aléatoire. (Pour parcourir des prompts dans l’ordre, voir mon node Prompt Cycler.)

Un node CLIP Text Encode avec le prompt white vase with {red|blue|yellow|pink} flowers
Les accolades : une couleur est choisie au hasard par image.

C’est là que le problème devient évident. Le modèle calcule les couleurs ensemble et les mélange sur l’image : des fleurs bleues et blanches, un arrière-plan qui devient bleu ou rose. Il n’y a aucun contrôle sur l’endroit où va chaque couleur.

Conditioning (Concat) : un prompt par objet

Pour imposer ce contrôle, divisez le prompt :

  1. Ajoutez un second CLIP Text Encode et connectez le clip du checkpoint.
  2. Ajoutez Conditioning (Concat). Connectez les deux prompts à ses entrées conditioning_to et conditioning_from, et sa sortie à l’entrée positive du KSampler.
  3. Mettez white vase dans un prompt et red flowers dans l’autre.

Concat est l’abréviation de concaténation : mettre des morceaux côte à côte sans les fusionner. « Snow » et « ball » deviennent « snowball » ; les nombres 3, 5, 7, 8 deviennent la chaîne « 3,5,7,8 », pas leur somme. Les prompts restent séparés, le rouge ne se répand donc pas dans un arrière-plan rose ou une table rouge.

Un vase en verre transparent avec des tulipes rouges contre un mur blanc uni, généré avec des prompts concaténés
Prompts concaténés : des fleurs rouges et un arrière-plan net. Ici, le vase est devenu transparent.

Dans un lot de quatre, j’ai obtenu surtout des fleurs rouges dans un vase sur un arrière-plan net. Parfois cela dérapait vers un champ de fleurs ou rendait le vase transparent. Ajouter transparency au prompt négatif a stoppé la plupart des vases transparents, mais pas à chaque fois.

Avec tout dans un seul prompt, le poids est réparti sur tous les jetons, vous obtenez donc des fleurs rouges et blanches mélangées. Parfois ça marche, mais c’est imprévisible.

Ajouter un troisième prompt

Copiez un node de prompt avec Ctrl+C, Ctrl+Maj+V (collage avec ses connexions) et chaînez un second node Concat : la sortie du premier Concat plus un troisième prompt, black background, dans l’entrée positive du KSampler.

Trois prompts, white vase, red flowers et black background, chaînés par des nodes Conditioning Concat, avec des fleurs rouges dans des vases sur fond noir dans la file
Trois prompts, trois concepts : les couleurs restent le plus souvent où elles doivent.

Après avoir corrigé une faute de frappe, j’ai obtenu des vases blancs avec des fleurs rouges sur un fond noir. Il y a encore des défauts de temps en temps (un vase est sorti noir), mais globalement les prompts deviennent bien plus prévisibles, et vous triez ce qui convient. Sans cela, les couleurs se mélangent un peu partout.

ConditioningAverage : un curseur entre deux prompts

ConditioningAverage prend les deux mêmes entrées et les mélange. Son conditioning_to_strength règle l’équilibre :

  • À 1,0 : surtout des fleurs rouges, le côté le plus fort.
  • À 0,5 : une image équilibrée d’un vase blanc avec des fleurs rouges.
  • À environ 0,21 : des fleurs blanches dans un vase blanc.
ConditioningAverage à la force 0,53 mélangeant gold crown et white skull, avec des résultats allant d'un crâne à couronne dorée à une femme portant une coiffe dorée
Average à 0,53 : un crâne doré avec une couronne, un mannequin, et une femme qu'on n'avait pas demandée.

Avec « white skull » et « gold crown », et man, woman, female, male dans le prompt négatif, j’ai quand même obtenu quelques personnes. À une valeur basse, il a surtout pris le crâne blanc et rien de la couronne. Plus haut, tout est devenu doré, crâne compris, ou il n’a montré que la couronne. Quelque part entre les deux, j’ai obtenu un crâne doré avec une couronne dorée, et un défaut : une femme avec quelque chose comme un crâne dessus. J’aime vraiment changer ces valeurs ; les résultats aléatoires peuvent être fascinants. Un peu plus de travail sur le prompt (« white skull isolated », plus face dans le négatif) a montré moins de visages.

Pour des résultats nets, utilisez Concat

Pour ce genre de prompt, Concat fonctionne bien mieux. Avec gold crown et white skull isolated joints par Conditioning (Concat), l’or a cessé de se fondre dans le crâne.

Prompts concaténés gold crown et white skull isolated, avec des crânes blancs nets portant des couronnes dorées
Concat : un crâne blanc et une couronne dorée, sans or qui bave dans l'os.

J’ai choisi l’image qui me plaisait et l’ai agrandie quatre fois avec le workflow de l’upscaling IA gratuit avec SD 1.5.

Voir la version vidéo (7:46)

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

Qu'est-ce que le bavage des couleurs dans Stable Diffusion ?

Quand un prompt mentionne plusieurs couleurs ou matières, le modèle les mélange : un « white vase with red flowers » peut sortir avec des fleurs blanches, un arrière-plan rose ou une table rouge. Les mots partagent un seul conditionnement, leur influence se répand donc sur l'image.

Comment changer le poids d'un mot dans un prompt ComfyUI ?

Mettez-le entre parenthèses avec une valeur, comme (red:1.5), ou sélectionnez le mot et appuyez sur Ctrl+Haut / Ctrl+Bas. Des valeurs entre environ 0,5 et 1,5 sont sûres ; à 2,2, l'image est devenue beaucoup trop rouge avec des artefacts.

Quelle différence entre Conditioning Concat et Conditioning Average ?

Concat garde les prompts comme des morceaux séparés côte à côte, ils ne se mélangent donc pas. Average les mélange, et son curseur de force décide quel prompt domine.

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