Evite o vazamento de cor no ComfyUI: pesos de prompt, Conditioning Concat e Conditioning Average

Peça um vaso branco com flores vermelhas e o vermelho vaza para o vaso e para o fundo. Eis o porquê, e como manter cada parte do prompt separada com pesos, Conditioning (Concat) e ConditioningAverage.

Anton Tenitsky13 de outubro de 20265 min de leituraVersão em vídeo abaixo

Este guia foi traduzido do inglês com IA e pode conter erros. Leia o original.

Dois prompts, gold crown e white skull isolated, unidos por um nó Conditioning (Concat), com caveiras brancas usando coroas douradas limpas na fila

Peça ao Stable Diffusion «a white vase with red flowers» e muitas vezes você recebe outra coisa: flores brancas, um fundo rosa, uma mesa vermelha. As cores vazam umas para as outras, porque todas as palavras do prompt compartilham o mesmo condicionamento. O ComfyUI tem algumas formas de mantê-las separadas. Aqui vou de simples pesos de prompt a dois nós de condicionamento que dão resultados muito mais previsíveis.

Em resumo

  • Pesos: (red:1.5) deixa uma palavra mais forte. Fique entre cerca de 0,5 e 1,5.
  • Escolha aleatória: {red|blue|yellow|pink} escolhe uma opção por imagem, mas as cores ainda vazam.
  • Conditioning (Concat): um prompt por objeto, unidos de ponta a ponta. As cores ficam onde devem.
  • ConditioningAverage: mistura dois prompts; o controle deslizante de força define o equilíbrio.

Se você é novo no ComfyUI, comece por noções básicas do ComfyUI e texto para imagem.

Configuração

Comece por Workflow → Browse Templates → Image generation. Para o checkpoint uso o epiCPhotoGasm, um modelo SD 1.5 com imagens mais realistas. Meu prompt de teste é «white vase with red flowers». Aperte Ctrl+Enter para executar e Q para mostrar resultados anteriores no painel da fila. A contagem do lote ao lado do botão Queue define quantas imagens cada execução faz.

Dando peso a uma palavra

Coloque a palavra entre parênteses com dois pontos e um valor: white vase with (red:1.5) flowers. Isso deixa o vermelho mais vermelho. Você também pode selecionar a palavra e apertar Ctrl+Cima ou Ctrl+Baixo para mudar o valor em pequenos passos. A documentação da comunidade do ComfyUI explica a sintaxe completa, incluindo aninhamento e as escolhas {a|b} abaixo. Mantenha os valores entre cerca de 0,5 e 1,5.

Um prompt dizendo white vase with (red:2.2) flowers, com resultados em que o vermelho se espalha para uma mesa vermelha
Em 2,2 o vermelho vai longe demais: espalha-se pela mesa e acrescenta artefatos.

Testei valores mais altos. Em 2,2 ficou vermelho demais e surgiram artefatos.

Opções aleatórias, e onde o vazamento aparece

Chaves com opções separadas por | escolhem uma ao acaso para cada imagem: white vase with {red|blue|yellow|pink} flowers. Rode um lote de quatro e você obtém cores diferentes. Não há um loop de verdade pela lista; é aleatório. (Para percorrer prompts em ordem, veja meu nó Prompt Cycler.)

Um nó CLIP Text Encode com o prompt white vase with {red|blue|yellow|pink} flowers
Chaves: uma cor é escolhida ao acaso por imagem.

É aqui que o problema fica óbvio. O modelo calcula as cores juntas e as mistura pela imagem: flores azuis e brancas, um fundo que vira azul ou rosa. Não há controle sobre onde vai cada cor.

Conditioning (Concat): um prompt por objeto

Para impor esse controle, divida o prompt:

  1. Adicione um segundo CLIP Text Encode e conecte o clip do checkpoint.
  2. Adicione o Conditioning (Concat). Conecte os dois prompts às entradas conditioning_to e conditioning_from dele, e a saída à entrada positive do KSampler.
  3. Coloque white vase num prompt e red flowers no outro.

Concat é abreviação de concatenação: pôr peças lado a lado sem fundi-las. «Snow» e «ball» viram «snowball»; os números 3, 5, 7, 8 viram a string «3,5,7,8», não a soma deles. Os prompts ficam separados, então o vermelho não vaza para um fundo rosa nem para uma mesa vermelha.

Um vaso de vidro transparente com tulipas vermelhas contra uma parede branca lisa, gerado com prompts concatenados
Prompts concatenados: flores vermelhas e um fundo limpo. Aqui o vaso ficou transparente.

Num lote de quatro, na maioria obtive flores vermelhas num vaso sobre um fundo limpo. Às vezes deu defeito e virou um campo de flores ou deixou o vaso transparente. Acrescentar transparency ao prompt negativo impediu a maioria dos vasos transparentes, mas não todas as vezes.

Com tudo num só prompt, o peso se distribui por todos os tokens, então você obtém flores vermelhas e brancas misturadas. Às vezes funciona, mas é imprevisível.

Acrescentando um terceiro prompt

Copie um nó de prompt com Ctrl+C, Ctrl+Shift+V (colando com suas conexões) e encadeie um segundo nó Concat: a saída do primeiro Concat mais um terceiro prompt, black background, na entrada positive do KSampler.

Três prompts, white vase, red flowers e black background, encadeados por nós Conditioning Concat, com flores vermelhas em vasos sobre preto na fila
Três prompts, três conceitos: as cores quase sempre ficam onde devem.

Depois de corrigir um erro de digitação, obtive vasos brancos com flores vermelhas sobre fundo preto. Ainda dá defeito de vez em quando (um vaso saiu preto), mas no geral os prompts ficam muito mais previsíveis, e você escolhe a dedo o que serve. Sem isso, as cores se misturam por toda parte.

ConditioningAverage: um controle deslizante entre dois prompts

O ConditioningAverage recebe as mesmas duas entradas e as mistura. O conditioning_to_strength dele define o equilíbrio:

  • Em 1,0: sobretudo flores vermelhas, o lado mais forte.
  • Em 0,5: uma imagem equilibrada de um vaso branco com flores vermelhas.
  • Em cerca de 0,21: flores brancas num vaso branco.
ConditioningAverage com força 0,53 misturando gold crown e white skull, com resultados que vão de uma caveira com coroa dourada a uma mulher com um adorno de cabeça dourado
Average em 0,53: uma caveira dourada com uma coroa, um manequim e uma mulher que ninguém pediu.

Com «white skull» e «gold crown», e man, woman, female, male no prompt negativo, ele ainda me deu algumas pessoas. Com um valor baixo, pegou quase só a caveira branca e nada da coroa. Mais alto, tudo ficou dourado, caveira incluída, ou mostrou só a coroa. Em algum ponto intermediário obtive uma caveira dourada com uma coroa dourada, e um defeito: uma mulher com algo como uma caveira em cima. Gosto muito de mudar esses valores; os resultados aleatórios podem ser fascinantes. Mais um pouco de trabalho no prompt («white skull isolated», mais face no negativo) mostrou menos rostos.

Para resultados limpos, use o Concat

Para este tipo de prompt, o Concat funciona muito melhor. Com gold crown e white skull isolated unidos por Conditioning (Concat), o dourado parou de se fundir com a caveira.

Prompts concatenados gold crown e white skull isolated, com caveiras brancas limpas usando coroas douradas
Concat: uma caveira branca e uma coroa dourada, sem dourado vazando para o osso.

Escolhi a imagem de que gostei e a ampliei quatro vezes com o fluxo de upscaling de IA gratuito com o SD 1.5.

Assista à versão em vídeo (7:46)

Tudo o que está acima também está no vídeo, se você preferir acompanhar na tela. O vídeo está em inglês.

Perguntas frequentes

O que é vazamento de cor no Stable Diffusion?

Quando um prompt menciona várias cores ou materiais, o modelo os mistura: um «white vase with red flowers» pode sair com flores brancas, um fundo rosa ou uma mesa vermelha. As palavras compartilham um só condicionamento, então a influência delas se espalha pela imagem.

Como mudo o peso de uma palavra num prompt do ComfyUI?

Coloque-a entre parênteses com um valor, como (red:1.5), ou selecione a palavra e aperte Ctrl+Cima / Ctrl+Baixo. Valores entre cerca de 0,5 e 1,5 são seguros; em 2,2 a imagem ficou vermelha demais e com artefatos.

Qual a diferença entre Conditioning Concat e Conditioning Average?

O Concat mantém os prompts como peças separadas lado a lado, então não se misturam. O Average os mistura, e o controle deslizante de força decide qual prompt domina.

Anton Tenitsky é artista 3D com mais de 15 anos em computação gráfica, que trabalhou com Nickelodeon, Gameloft, Marvel Rivals e muitos outros clientes. Mais sobre mim

Guias relacionados