ControlNet no ComfyUI: controle poses e composição com OpenPose, Canny e Depth

"A documentação oficial do Apply ControlNet descreve as entradas, o intervalo de strength e o comportamento de start_percent e end_percent."
Você tem uma imagem de referência e quer preservar pose, linhas e composição. Mesmo assim, a figura se deforma, os contornos perdem definição e o enquadramento muda.
O ControlNet fornece essa orientação estrutural: OpenPose para pose, Canny para bordas e Depth para relações espaciais. Depois surgem as dúvidas práticas: qual strength usar, como interpretar start_percent e end_percent e como evitar conflitos entre vários controles?
Escolha primeiro o pré-processador e os pesos conforme o objetivo. Ajuste depois a força e o intervalo de atuação. Se o resultado ainda divergir, verifique conexões, compatibilidade do modelo base e sinais concorrentes nessa ordem.
Tabela rápida por objetivo de controle
A primeira decisão é qual estrutura preservar, não o valor de strength.
| Objetivo | Tipo de controle | Pré-processador | Pesos SD1.5 comuns |
|---|---|---|---|
| Gerar uma pessoa em uma pose definida | Pose | OpenPose / DWPose | control_v11p_sd15_openpose |
| Seguir as linhas da referência | Bordas | Canny | control_v11p_sd15_canny |
| Preservar planos e composição | Profundidade | Depth (MiDaS / LeReS) | control_v11f1p_sd15_depth |
| Usar um esboço como guia | Esboço | Scribble | control_v11p_sd15_scribble |
| Preservar contornos suaves | Borda suave | SoftEdge (HED / PiDiNet) | control_v11p_sd15_softedge |
Considere dois detalhes:
-
OpenPose e DWPose geram pontos de pose. O DWPose costuma detalhar melhor corpo, mãos e rosto, sendo útil quando gestos e expressão importam.
-
A saída do pré-processador precisa corresponder aos pesos. Um mapa OpenPose exige um modelo de pose. Se mapa, pesos ou arquitetura não coincidirem, o efeito será mínimo ou ocorrerá erro.
Os pesos normalmente ficam em ComfyUI/models/controlnet. Reinicie o ComfyUI ou atualize a lista e selecione-os no Load ControlNet Model.
Tabela de parâmetros do ControlNet
strength, start_percent e end_percent definem influência e momento de atuação. Use os limites oficiais e estes valores iniciais como base reproduzível.
| Parâmetro | Intervalo | Início | Efeito | Como testar |
|---|---|---|---|---|
strength | 0–10 | 1.0 | Influência do mapa | Mantenha o seed e varie perto de 1.0; 0.5–1.5 é o intervalo de teste comum citado oficialmente |
start_percent | 0–1 | 0 | Início da atuação | Pose e composição normalmente começam em 0; atrase só depois de validar a base |
end_percent | 0–1 | 1 | Fim da atuação | Se o resultado ficar rígido, teste 0.8 ou menos para liberar detalhes tardios |
Como entender start_percent e end_percent
Esses valores definem um intervalo, não uma espera. Com start_percent=0.2 e end_percent=0.8, o ControlNet atua apenas entre 20% e 80% da difusão.
Pose e composição se formam cedo. Para fixá-las, comece em 0. Se o resultado ficar rígido, mantenha start_percent=0 e reduza end_percent de 1 para 0.8.
O intervalo completo (start_percent=0, end_percent=1) é uma boa referência. Confirme o efeito e altere um parâmetro por vez.
Como escolher strength
strength controla a influência. Em 0, a orientação é desativada. Valores maiores geralmente impõem mais o mapa, embora cada modelo responda de forma diferente.
Comece perto de 1.0. Aumente em pequenos passos se o mapa for ignorado e reduza se anatomia ou linhas ficarem deformadas. 0.5–1.5 é uma referência oficial, não uma faixa segura universal.
Montar o workflow
A cadeia essencial carrega modelo base e ControlNet, processa a referência, aplica o controle aos conditionings positive e negative e os envia ao KSampler.
Etapa 1: carregue o modelo base
Nó: Load Checkpoint
- Selecione o checkpoint do Stable Diffusion.
- Identifique se é SD1.5, SDXL ou outra arquitetura.
- Continue o grafo com
MODEL,CLIPeVAE.
Etapa 2: carregue o modelo ControlNet
Nó: Load ControlNet Model
- Selecione pesos compatíveis com arquitetura e tipo de mapa.
- A saída
CONTROL_NETsegue para Apply ControlNet.
Etapa 3: carregue e pré-processe a referência
Nós: Load Image e um pré-processador como OpenPose Preprocessor.
Load Image: envie a referência.- Pré-processador: transforme-a em pose, bordas ou profundidade.
- O Comfy Core não inclui todos; instale
comfyui_controlnet_auxpelo ComfyUI Manager quando necessário.
O ControlNet lê o mapa pré-processado. Visualize-o para encontrar membros, bordas ou profundidade ausentes antes da geração.
Etapa 4: conecte o Apply ControlNet
Nó: Apply ControlNet
control_net: do Load ControlNet Model.image: do pré-processador, não da imagem original.positive: conditioning positivo.negative: conditioning negativo.strength: comece em 1.0.start_percent: comece em 0.end_percent: comece em 1.
O Apply ControlNet produz novos conditionings. Conecte ambos ao KSampler. Se o sampler ainda recebe os originais, o ControlNet ficou fora da cadeia.
Etapa 5: gere e compare
Nó: KSampler
model: do Load Checkpoint.positive/negative: do Apply ControlNet.latent_image: do Empty Latent Image ou outra fonte.- Fixe o seed para comparar; a variação aleatória pode esconder o efeito.
Revise três conexões:
- positive e negative passam pelo Apply ControlNet.
imagerecebe o mapa pré-processado.Apply ControlNet(Old)está obsoleto; use o nó padrão.
Compatibilidade com o modelo base
SD1.5, SDXL e FLUX não compartilham pesos automaticamente. Identifique o modelo base e escolha compatibilidade documentada.
Compatibilidade entre pré-processador e modelo
| Pré-processador | SD1.5 comum | Regra SDXL | Regra FLUX |
|---|---|---|---|
| Canny | control_v11p_sd15_canny | Pesos SDXL que aceitem Canny | Pesos documentados para o FLUX alvo e Canny |
| OpenPose / DWPose | control_v11p_sd15_openpose | Pesos SDXL que aceitem pose | Pesos documentados para o FLUX alvo e Pose |
| Depth (MiDaS / LeReS) | control_v11f1p_sd15_depth | Pesos SDXL que aceitem Depth | Pesos documentados para o FLUX alvo e Depth |
| Scribble | control_v11p_sd15_scribble | Pesos SDXL que aceitem Scribble | Confira a ficha; nem todo Union aceita Scribble |
| SoftEdge (HED / PiDiNet) | control_v11p_sd15_softedge | Pesos SDXL que aceitem SoftEdge | Confira ficha e workflow para essa entrada |
Modelos Union reúnem vários modos e são uma opção para FLUX. Modos, nós e forças úteis dependem do modelo e da versão do workflow.
Tabela de compatibilidade da base
| Base | Seleção | Pasta | Atenção |
|---|---|---|---|
| SD1.5 | A família control_v11*_sd15_* é comum | ComfyUI/models/controlnet | sd15 indica SD1.5, não SDXL |
| SDXL | Use pesos marcados para SDXL | ComfyUI/models/controlnet | Existem várias implementações; siga a ficha |
| FLUX | Use ControlNet ou Union compatível com o FLUX alvo | ComfyUI/models/controlnet | Nós, modos e força são específicos; não copie SD1.5 |
Escolher o modelo base
Se ainda não escolheu, consulte o guia de seleção de modelos Stable Diffusion. Ele compara recursos e características; aqui tratamos apenas de compatibilidade.
Onde salvar o modelo
Os pesos normalmente ficam em ComfyUI/models/controlnet. Reinicie ou atualize a lista e selecione-os no Load ControlNet Model.
Com muitos arquivos, use subpastas compatíveis. Preserve a origem e o model card: um prefixo inventado não comprova compatibilidade.
Ajustar vários ControlNets
Você pode encadear Apply ControlNet para pose e composição. Teste cada controle sozinho antes de misturar dois problemas.
Encadear Apply ControlNet
Conecte as saídas positive e negative do primeiro às entradas equivalentes do segundo.
-
Primeiro ControlNet:
- Carregue OpenPose e um mapa de pose.
- Teste
strength=1.0,start_percent=0,end_percent=0.7.
-
Segundo ControlNet:
- Carregue Depth e um mapa de profundidade.
- Comece com
strength=0.6,start_percent=0,end_percent=0.6.
-
Ordem:
- Conditioning → primeiro Apply ControlNet → segundo Apply ControlNet → KSampler.
- Mantenha a mesma ordem em positive e negative.
Esses são valores de diagnóstico, não ótimos. Pose e profundidade são estruturas iniciais; comece em 0 e separe funções por força e término.
Princípios de ajuste
Comece por prioridade e intervalo.
Defina a prioridade:
- Teste o principal perto de 1.0.
- Comece o auxiliar em 0.5–0.7.
- Se puxarem em direções opostas, reduza o auxiliar antes de aumentar ambos.
Defina o intervalo:
- Pose e composição atuam cedo; deixe
start_percentem 0 inicialmente. - Use
end_percentdiferentes, por exemplo 0.7 e 0.6. - Para liberar detalhes tardios, termine antes em vez de mover o controle para a segunda metade.
Depois verifique:
- Dois controles iguais não são proibidos, mas mapas da mesma estrutura costumam aumentar conflito.
- Prefira sinais complementares como OpenPose + Depth ou OpenPose + Canny.
- Fixe o seed e compare um controle com dois.
- Não comece com dois strengths altos.
- Altere um parâmetro e salve um workflow reproduzível.
- Não adicione o segundo até observar o efeito do primeiro.
Lista de solução de problemas
| Problema | Causa provável | Verificação |
|---|---|---|
| Imagem igual sem ControlNet | Mapa desconectado, strength perto de 0, conditioning original ou arquitetura errada | Visualize o mapa; revise image e conditioning; compare seed fixo; confirme arquitetura |
| Pose ou linhas não coincidem | Pré-processador incorreto, mapa incompleto ou pouca influência | Revise esqueleto/bordas; teste DWPose ou Canny; aumente strength gradualmente |
| Imagem rígida ou deformada | Força alta, mapa com ruído ou controle até o fim | Reduza strength; limpe o mapa; mude end_percent de 1 para 0.8 ou menos |
| Pré-processador ausente | Custom node não instalado ou dependência falhou | Instale comfyui_controlnet_aux; reinicie; revise erros de importação |
| SDXL/FLUX não carrega ou não atua | Pesos incompatíveis com arquitetura ou nó | Confira base, nós e exemplo da ficha; não confie apenas no nome |
| Apply ControlNet(Old) ausente | Nó obsoleto oculto | Use Apply ControlNet padrão; mostre obsoletos apenas em workflows antigos |
| Vários ControlNets entram em conflito | Mapas opostos, auxiliar forte ou muitas mudanças | Teste separados; fixe seed; reduza auxiliar; encurte intervalo; altere um valor |
| Mudanças não aparecem | Seed variável, mapa pobre ou cadeia desviando do ControlNet | Fixe seed e sampler; revise mapa; confira positive e negative do KSampler |
Próximos passos
O ControlNet controla estruturas difíceis de expressar apenas com prompt. Quando o grafo funcionar, continue com:
- Instalar o ComfyUI e conhecer a interface: ponto de partida se ainda não instalou.
- Reutilizar e corrigir workflows do ComfyUI: salvar, carregar e resolver nós ausentes.
- Criar templates de prompt para Stable Diffusion: ControlNet para estrutura e prompt para tema, estilo e detalhes.
Montar um workflow básico de ControlNet no ComfyUI
Pré-processar uma referência e adicionar seu sinal estrutural à cadeia de amostragem.
- 1
Step 1: Identifique a arquitetura base
Verifique se o checkpoint é SD1.5, SDXL ou FLUX e escolha pesos explicitamente compatíveis. - 2
Step 2: Carregue e pré-processe a referência
Gere um mapa de pose, borda ou profundidade com OpenPose, Canny ou Depth. - 3
Step 3: Carregue o ControlNet
Coloque os pesos em ComfyUI/models/controlnet e selecione o modelo correspondente no Load ControlNet Model. - 4
Step 4: Conecte o Apply ControlNet
Conecte positive, negative, control_net e a imagem pré-processada; envie o conditioning ao KSampler. - 5
Step 5: Ajuste com seed fixo
Teste primeiro strength 1.0, start_percent 0 e end_percent 1; depois altere um valor por vez. - 6
Step 6: Valide antes de encadear
Teste cada ControlNet sozinho e reduza força ou intervalo do controle auxiliar.
FAQ
Qual é a diferença entre OpenPose e DWPose?
Qual valor de strength devo usar?
O que significam start_percent e end_percent?
Posso usar vários ControlNets juntos?
Qual ControlNet usar com FLUX?
8 min de leitura · Publicado em: 19 jul 2026 · Atualizado em: 19 jul 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
Guia de prompts para Stable Diffusion: modelos para produtos, avatares, pôsteres e assets de jogo
Não sabe como escrever um modelo de prompt para Stable Diffusion? Este guia usa produtos, avatares, pôsteres e assets de jogo para explicar prompt positivo, Negative prompt, pesos, iteração no ComfyUI e revisão comercial.
Parte 4 de 5
Próximo
Este é o post mais recente da série até agora.



Comentários
Entre com GitHub para comentar