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.
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.)
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 :
- Ajoutez un second CLIP Text Encode et connectez le clip du checkpoint.
- Ajoutez Conditioning (Concat). Connectez les deux prompts à ses entrées conditioning_to et conditioning_from, et sa sortie à l’entrée positive du KSampler.
- 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.
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.
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.
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.
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.
