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

"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
| Tipo | Sintoma típico | Solução |
|---|---|---|
| Mistura espacial | A roupa vermelha à esquerda afeta a direita; o azul do primeiro plano afeta o fundo | Conditioning regional (Set Area / RegionalPrompt) |
| Mistura de atributos | Em “blue hair, yellow eyes”, blue afeta os olhos | Vinculação de atributos (Cutoff) |
| Identidade inconsistente | O mesmo personagem muda de rosto com outro seed | FaceID / LoRA (não tratado aqui) |
Tabela de escolha: problema → abordagem → ferramenta → uso inadequado
| Problema | Abordagem recomendada | Nodes | Uso inadequado |
|---|---|---|---|
| Separar personagens à esquerda e à direita | Regiões por coordenadas nativas | ConditioningSetArea + ConditioningCombine | Máscaras complexas, pois é preciso calcular coordenadas |
| Mistura de cores ou roupas | Vinculação de atributos | Cutoff BasePrompt + Set Region + Regions To Conditioning | Regiões por coordenadas; SDXL exige testes porque o README relata resultado fraco com SDXL 0.9 |
| Regiões de máscara complexas | Amostragem regional por máscara | Impact Pack: RegionalPrompt + CombineRegionalPrompts + RegionalSampler | Exige Impact Pack e pode causar nodes ausentes |
| Máscaras simples por blocos | Nodes regionais simplificados | Inspire Pack: Regional Conditioning By Color Mask | Depende de Impact Pack ou IPAdapter Plus |
| Pose incorreta | Controle de pose | ControlNet (OpenPose / Canny / Depth) | Não resolve mistura de atributos |
| Identidade inconsistente | Fixação de identidade | FaceID / ReActor / LoRA | Nã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âmetro | Significado | Unidade | Faixa | Observação |
|---|---|---|---|---|
| x / y | Coordenada superior esquerda | Pixels | 0 - MAX_RESOLUTION | A origem fica no canto superior esquerdo |
| width / height | Largura e altura da região | Pixels | 64 - MAX_RESOLUTION, passo 8 | A UI usa passo 8 porque o código divide por 8 ao gravar no latent |
| strength | Peso do conditioning regional | Flutuante | 0 - 10, padrão 1.0 | Pesos 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_Cutoffno ComfyUI-Manager - Ou clone
git clone https://github.com/BlenderNeko/ComfyUI_Cutoffparacustom_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
| Node | Entrada | Saída | Função |
|---|---|---|---|
| RegionalPrompt | mask + advanced_sampler + variation_seed/strength/method | REGIONAL_PROMPTS | Vincula uma máscara a um sampler e cria um prompt regional |
| CombineRegionalPrompts | Vários REGIONAL_PROMPTS | REGIONAL_PROMPTS | Combina vários prompts regionais |
| RegionalSampler | base_sampler + REGIONAL_PROMPTS + overlap_factor + restore_latent | latent | Aplica amostragem às regiões em cada etapa |
| RegionalSamplerAdvanced | Entradas do RegionalSampler + controle de etapas | latent | Controla por etapas em vez de denoise |
Parâmetros:
overlap_factor: controla a faixa de transição fora da regiãorestore_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 Packno ComfyUI-Manager - Reinicie o ComfyUI e atualize o navegador após instalar
Problemas comuns:
- Node vermelho ou ausente → importar workflows e instalar nodes ausentes
- Erro de dependência Python → consulte o futuro artigo sobre solução de problemas e manutenção do ComfyUI
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:
| Node | Funçã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 Mask | Nodes 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
| Ferramenta | O que controla | O que não resolve |
|---|---|---|
| Prompt regional (Set Area / Regional) | Posição e atribuição do prompt | Consistência de identidade; mistura de atributos, que Set Area não resolve |
| ControlNet (OpenPose / Canny / Depth) | Pose e estrutura | Mistura de atributos; atribuição de posição |
| IPAdapter | Influência de imagem de referência em estilo ou composição | Isolamento regional; identidade fixa, pois IPAdapter influencia o estilo geral |
| FaceID / LoRA | Consistência de identidade ou estilo | Prompts 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:
- Importar workflows e instalar nodes ausentes: resolve instalação de custom nodes e nodes ausentes
- Modelos de prompt para Stable Diffusion: base para casos em que um prompt descreve mal vários sujeitos
- Guia do ComfyUI ControlNet: controla pose e estrutura junto ao posicionamento regional
- Guia do ComfyUI LoRA: mantém personagens ou estilos e separa mistura de múltiplos LoRA da mistura de prompts regionais
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
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
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
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
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
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
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
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
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?
Por que as coordenadas do Set Area devem ser múltiplos de 8?
Cutoff é uma ferramenta de prompt regional?
Quando devo usar RegionalPrompt em vez de Set Area?
Como ajustar strength quando as regiões se sobrepõem?
Por que o prompt não corresponde às duas pessoas do OpenPose?
O que fazer quando um node fica vermelho ou não aparece?
9 min de leitura · Publicado em: 28 ago 2026 · Atualizado em: 28 ago 2026
Guia prático de ComfyUI e Stable Diffusion
Se você chegou pela busca, o caminho mais rápido é ir para o post anterior ou próximo desta série.
Anterior
Treinar seu próprio LoRA com ComfyUI: dados, tags e validação
Prepare o dataset e as captions, ajuste dim, alpha, learning rates, steps e opções de VRAM, identifique overfitting e valide o LoRA no ComfyUI.
Parte 10 de 16
Próximo
Ampliar e reparar imagens no ComfyUI: Hires Fix, FaceDetailer e inpainting
Compare upscaling de pixels, reamostragem latente, FaceDetailer, inpainting e tiles, e corrija mudança de rosto, emendas visíveis e alterações fora da máscara.
Parte 12 de 16



Comentários
Entre com GitHub para comentar