Alternar tema

Prompts regionais no ComfyUI: separe vários sujeitos com Set Area, RegionalPrompt e Cutoff

Easton editorial illustration: one large rounded ComfyUI-style node canvas with a coordinate grid, two simplified 2.5D character silhouettes isolated in red-left and blue-right regions

"O código principal do ComfyUI define os parâmetros e o mapeamento para a área latente de ConditioningSetArea, ConditioningSetAreaPercentage e ConditioningCombine."

Você prepara uma imagem de 1024x768 com uma garota de cabelo curto e roupa vermelha à esquerda e um garoto de jaqueta azul à direita. O resultado coloca vermelho na jaqueta direita e azul no cabelo esquerdo; roupas e cores dos dois sujeitos se contaminam. Não é um problema de seed nem de modelo fraco. O codificador de texto CLIP lê a frase inteira como contexto: em “red hair, blue jacket”, red pode migrar para jacket e blue para hair. Nodes de conditioning regional limitam o prompt no espaço latente, mas o embedding continua carregando o contexto global. Há três rotas: regiões por coordenadas nativas com ConditioningSetArea + Combine, vinculação de atributos com Cutoff e amostragem regional por máscara com Impact Pack Regional. Cada rota resolve um problema diferente e tem limites próprios.

Por que prompts de vários sujeitos se misturam

O CLIP codifica o contexto global

O codificador de texto CLIP do Stable Diffusion não codifica cada palavra de forma independente; ele interpreta a frase inteira. Em “blue hair, yellow eyes”, blue pode influenciar eyes porque os tokens interagem durante a geração do embedding. ConditioningSetArea limita a condição a uma região latente, mas o embedding ainda vem do contexto global, então o azul pode chegar aos olhos. Prompts regionais reduzem a mistura espacial, como o vermelho da esquerda afetando a direita, mas não impedem a mistura de atributos no nível dos tokens.

Três tipos de mistura

TipoSintoma típicoSolução
Mistura espacialA roupa vermelha à esquerda afeta a direita; o azul do primeiro plano afeta o fundoConditioning regional (Set Area / RegionalPrompt)
Mistura de atributosEm “blue hair, yellow eyes”, blue afeta os olhosVinculação de atributos (Cutoff)
Identidade inconsistenteO mesmo personagem muda de rosto com outro seedFaceID / LoRA (não tratado aqui)

Tabela de escolha: problema → abordagem → ferramenta → uso inadequado

ProblemaAbordagem recomendadaNodesUso inadequado
Separar personagens à esquerda e à direitaRegiões por coordenadas nativasConditioningSetArea + ConditioningCombineMáscaras complexas, pois é preciso calcular coordenadas
Mistura de cores ou roupasVinculação de atributosCutoff BasePrompt + Set Region + Regions To ConditioningRegiões por coordenadas; SDXL exige testes porque o README relata resultado fraco com SDXL 0.9
Regiões de máscara complexasAmostragem regional por máscaraImpact Pack: RegionalPrompt + CombineRegionalPrompts + RegionalSamplerExige Impact Pack e pode causar nodes ausentes
Máscaras simples por blocosNodes regionais simplificadosInspire Pack: Regional Conditioning By Color MaskDepende de Impact Pack ou IPAdapter Plus
Pose incorretaControle de poseControlNet (OpenPose / Canny / Depth)Não resolve mistura de atributos
Identidade inconsistenteFixação de identidadeFaceID / ReActor / LoRANão resolve prompts regionais

Uma combinação útil segue esta ordem: prompts regionais para a posição → OpenPose para a pose → conditioning global com strength 0.3-0.5 para unificar o clima. As posições do OpenPose, ControlNet ou IPAdapter devem ser alinhadas manualmente às regiões. Os nodes não sabem que a pessoa OpenPose à esquerda pertence à região de prompt esquerda.

Rota nativa: ConditioningSetArea + Combine

Parâmetros de coordenadas

ParâmetroSignificadoUnidadeFaixaObservação
x / yCoordenada superior esquerdaPixels0 - MAX_RESOLUTIONA origem fica no canto superior esquerdo
width / heightLargura e altura da regiãoPixels64 - MAX_RESOLUTION, passo 8A UI usa passo 8 porque o código divide por 8 ao gravar no latent
strengthPeso do conditioning regionalFlutuante0 - 10, padrão 1.0Pesos de regiões sobrepostas são normalizados durante a amostragem

O passo é 8 porque ConditioningSetArea.append() grava a área latente como (height // 8, width // 8, y // 8, x // 8). Uma imagem 512x512 vira 64x64 no espaço latente, então as coordenadas devem se alinhar a múltiplos de 8. ConditioningSetAreaPercentage aceita valores de 0 a 1 se você preferir porcentagens.

Conexão do prompt ao sampler

Este exemplo divide uma tela 1024x768 entre dois sujeitos:

Passo 1: região do prompt esquerdo

  • Prompt do sujeito esquerdo → CLIP Text Encode (saída conditioning)
  • Conditioning → ConditioningSetArea (x=0, y=0, width=512, height=768, strength=1.0)
  • Saída do conditioning marcado com região

Passo 2: região do prompt direito

  • Prompt do sujeito direito → CLIP Text Encode (saída conditioning)
  • Conditioning → ConditioningSetArea (x=512, y=0, width=512, height=768, strength=1.0)
  • Saída do conditioning marcado com região

Passo 3: combinar conditionings

  • Saída Set Area esquerda → ConditioningCombine (entrada 1)
  • Saída Set Area direita → ConditioningCombine (entrada 2)
  • Saída Combine → conditioning positive do KSampler

Passo opcional: conditioning global do fundo

  • Prompt de fundo → CLIP Text Encode
  • Conditioning → ConditioningSetArea (x=0, y=0, width=1024, height=768, strength=0.3-0.5)
  • Combinar com os conditionings regionais em baixa strength para unificar o clima

Ponto principal: strength não é “opacidade”, mas o peso da previsão de ruído. Quando regiões se sobrepõem, os pesos são normalizados antes da amostragem, portanto não é preciso calcular o total manualmente.

Regiões sobrepostas e ajuste de strength

Quando regiões se sobrepõem, strength controla a mistura dos conditionings. A amostragem normaliza os pesos automaticamente. Comece com strength=1.0 para sujeitos em primeiro plano e strength=0.3-0.5 para o fundo global. Reduzir o fundo limita a interferência, mas não a elimina: cores contraditórias nos prompts ainda podem interagir pelo contexto global do CLIP.

Vinculação de atributos: Cutoff

Quando usar e como funciona

O caso típico é blue influenciar eyes em “blue hair, yellow eyes”, pois o CLIP codifica a frase inteira. Cutoff tenta limitar um atributo a uma parte específica do prompt. Ele oculta os target tokens, gera o embedding novamente e usa a direção resultante para isolar melhor as relações de atributos.

Cutoff não é um prompt regional baseado em coordenadas. Ele trata relações entre tokens, não posições. Seus nodes são Cutoff BasePrompt, Cutoff Set Region, Cutoff Regions To Conditioning e Cutoff Regions To Conditioning (ADV), em conditioning > cutoff.

Aviso sobre SDXL: o README relata resultados ruins com SDXL 0.9. Versões atuais de SDXL ou FLUX exigem testes; Cutoff não é uma solução universal estável.

Instalação e uso

Instalação:

  • Procure ComfyUI_Cutoff no ComfyUI-Manager
  • Ou clone git clone https://github.com/BlenderNeko/ComfyUI_Cutoff para custom_nodes
  • Reinicie o ComfyUI após instalar

Fluxo básico:

  • Informe o prompt completo no BasePrompt, como “blue hair, yellow eyes”
  • Defina a vinculação no Set Region, como “blue” para “hair”
  • Gere conditioning com Regions To Conditioning
  • Passe esse conditioning pelo Set Area se também precisar limitar a posição

Limites e cuidados

Cutoff não serve para divisão por coordenadas. Ele vincula atributos de tokens, mas não posiciona “roupa vermelha à esquerda e roupa azul à direita”. Para resolver ambos, vincule primeiro os atributos com Cutoff e depois limite a região com Set Area.

O efeito com SDXL é incerto. O README menciona resultado fraco com SDXL 0.9, e versões atuais precisam de testes. Se você usa principalmente SDXL, teste Cutoff em um exemplo simples de cores antes de depender dele.

Amostragem regional por máscara: Impact Pack Regional

Nodes RegionalPrompt e RegionalSampler

NodeEntradaSaídaFunção
RegionalPromptmask + advanced_sampler + variation_seed/strength/methodREGIONAL_PROMPTSVincula uma máscara a um sampler e cria um prompt regional
CombineRegionalPromptsVários REGIONAL_PROMPTSREGIONAL_PROMPTSCombina vários prompts regionais
RegionalSamplerbase_sampler + REGIONAL_PROMPTS + overlap_factor + restore_latentlatentAplica amostragem às regiões em cada etapa
RegionalSamplerAdvancedEntradas do RegionalSampler + controle de etapaslatentControla por etapas em vez de denoise

Parâmetros:

  • overlap_factor: controla a faixa de transição fora da região
  • restore_latent: restaura o base latent fora da máscara durante a amostragem regional para reduzir ruído extra

RegionalSampler aplica amostragem regional em cada etapa. Já TwoSamplersForMask faz amostragem global e depois combina pela máscara. O primeiro oferece controle mais fino sobre o processo de cada região.

Instalação e solução de problemas

Instalação:

  • Procure ComfyUI Impact Pack no ComfyUI-Manager
  • Reinicie o ComfyUI e atualize o navegador após instalar

Problemas comuns:

Rota simplificada: Inspire Pack Regional Conditioning (opcional)

Se você não quiser calcular coordenadas do Set Area, uma máscara por blocos de cor simplifica o fluxo. O Inspire Pack fornece:

NodeFunção
Regional Prompt Simple (Inspire)Entrada simplificada de prompt regional
Regional Prompt By Color Mask (Inspire)Define regiões com máscara de cores
Regional Conditioning Simple (Inspire)Conditioning regional simplificado
Regional Conditioning By Color Mask (Inspire)Define regiões de conditioning por cores
Regional IPAdapter Mask / By Color Mask / Encoded MaskNodes regionais relacionados ao IPAdapter

Alguns nodes dependem do Impact Pack ou IPAdapter Plus. Verifique as dependências no README antes de usar.

Essa rota serve quando você já tem uma máscara por blocos, como vermelho à esquerda e azul à direita, e quer evitar cálculos manuais de pixels.

Limites das combinações e riscos do segundo passe

Combinação com ControlNet, IPAdapter e LoRA

FerramentaO que controlaO que não resolve
Prompt regional (Set Area / Regional)Posição e atribuição do promptConsistência de identidade; mistura de atributos, que Set Area não resolve
ControlNet (OpenPose / Canny / Depth)Pose e estruturaMistura de atributos; atribuição de posição
IPAdapterInfluência de imagem de referência em estilo ou composiçãoIsolamento regional; identidade fixa, pois IPAdapter influencia o estilo geral
FaceID / LoRAConsistência de identidade ou estiloPrompts regionais; mistura de atributos

A ordem prática é: prompts regionais para posição → OpenPose para pose → conditioning global fraco para um clima comum. Alinhe OpenPose, ControlNet ou IPAdapter manualmente às regiões; eles não vinculam automaticamente “a pessoa da esquerda”.

Mistura de cores no segundo passe, upscale ou inpaint

Se o segundo passe, upscale ou reparo facial omitir o conditioning regional, o modelo pode buscar consistência global outra vez e misturar cores de cabelo ou roupa separadas na primeira fase. O exemplo Area Composition alerta que as cores de cabelo podem se unir quando o segundo passe não tem prompt regional.

Decida se os passes posteriores devem manter o conditioning regional ou se um Inpaint local é melhor. Se o primeiro passe usou Set Area, considere redefinir as regiões durante o upscale para que a consistência global não destrua a separação.

Próximos passos e leituras relacionadas

Prompts regionais são apenas uma parte da composição com vários sujeitos. Controle de pose, consistência de identidade, imagens de referência e reparo em alta resolução exigem outras ferramentas.

Publicados:

Outros artigos abordarão IPAdapter, FaceID e consistência facial, treinamento de LoRA, reparo em alta resolução e Inpainting. Combinadas aos prompts regionais, essas ferramentas reduzem a incerteza em cenas com vários sujeitos.

Criar regiões esquerda e direita com Set Area

Em uma tela de 1024×768, atribua o positive conditioning de cada sujeito a uma metade e unifique o clima com conditioning global de strength baixa.

⏱️ Estimated time: 20 min

  1. 1

    Step 1: Defina a tela final

    Configure o latent ou Empty Latent Image como 1024×768 e calcule todas as coordenadas a partir desse tamanho final.
  2. 2

    Step 2: Escreva o prompt do sujeito esquerdo

    Use um CLIP Text Encode separado para o sujeito esquerdo. Mantenha cor, roupa e penteado apenas nesse ramo local.
  3. 3

    Step 3: Defina a região esquerda

    Conecte o conditioning esquerdo ao ConditioningSetArea e use x=0, y=0, width=512, height=768 e strength=1.0.
  4. 4

    Step 4: Defina a região direita

    Crie outro CLIP Text Encode e ConditioningSetArea para o sujeito direito com x=512, y=0, width=512, height=768 e strength=1.0.
  5. 5

    Step 5: Combine os conditionings locais

    Una os dois ramos marcados por região com ConditioningCombine e conecte a saída ao positive do KSampler.
  6. 6

    Step 6: Adicione conditioning global fraco

    Para unificar iluminação ou fundo, adicione conditioning de tela inteira com strength 0.3-0.5 sem encobrir os ramos locais.
  7. 7

    Step 7: Alinhe o controle de pose

    Para posições ou gestos de duas pessoas, adicione OpenPose, Depth ou Canny e alinhe a pose manualmente às regiões.
  8. 8

    Step 8: Revise os passes posteriores

    Antes de upscale, segundo passe ou inpaint, decida se manterá o conditioning regional para impedir que cores e atributos voltem a se misturar.

FAQ

x, y, width e height são pixels ou porcentagens?
O ConditioningSetArea nativo usa coordenadas em pixels da tela final. ConditioningSetAreaPercentage usa valores de 0 a 1.
Por que as coordenadas do Set Area devem ser múltiplos de 8?
O ComfyUI grava height, width, y e x na área latente depois de dividir cada valor por 8. Múltiplos de 8 alinham os limites à grade latente.
Cutoff é uma ferramenta de prompt regional?
Não. Cutoff isola relações entre atributos de tokens, como cores e roupas, não coordenadas espaciais. Use Set Area ou RegionalPrompt para regiões esquerda-direita.
Quando devo usar RegionalPrompt em vez de Set Area?
Use Set Area em divisões retangulares simples. RegionalPrompt e RegionalSampler do Impact Pack servem para formas complexas, máscaras existentes ou amostragem regional em cada etapa.
Como ajustar strength quando as regiões se sobrepõem?
Comece com 1.0 para sujeitos locais e 0.3-0.5 para o fundo global. Reduza o ramo secundário quando a sobreposição aumentar e compare com seed fixo.
Por que o prompt não corresponde às duas pessoas do OpenPose?
OpenPose controla a pose e prompts regionais controlam a atribuição espacial. Você precisa alinhá-los manualmente; os nodes não sabem qual esqueleto pertence a cada região.
O que fazer quando um node fica vermelho ou não aparece?
Instale ou atualize Impact Pack, Inspire Pack ou Cutoff com o ComfyUI-Manager, reinicie e atualize o navegador. Depois verifique a versão do workflow e as dependências Python.

9 min de leitura · Publicado em: 28 ago 2026 · Atualizado em: 28 ago 2026

Comentários

Entre com GitHub para comentar

Easton BlogEaston Blog