Alternar tema

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

Easton editorial illustration: central orange ControlNet node with visible input and output sockets, three compact reference tiles showing a pose skeleton, Canny edges, and depth contours, one framed output portrait whose pose and composition match the reference tiles

"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.

ObjetivoTipo de controlePré-processadorPesos SD1.5 comuns
Gerar uma pessoa em uma pose definidaPoseOpenPose / DWPosecontrol_v11p_sd15_openpose
Seguir as linhas da referênciaBordasCannycontrol_v11p_sd15_canny
Preservar planos e composiçãoProfundidadeDepth (MiDaS / LeReS)control_v11f1p_sd15_depth
Usar um esboço como guiaEsboçoScribblecontrol_v11p_sd15_scribble
Preservar contornos suavesBorda suaveSoftEdge (HED / PiDiNet)control_v11p_sd15_softedge

Considere dois detalhes:

  1. 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.

  2. 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âmetroIntervaloInícioEfeitoComo testar
strength0–101.0Influência do mapaMantenha o seed e varie perto de 1.0; 0.5–1.5 é o intervalo de teste comum citado oficialmente
start_percent0–10Início da atuaçãoPose e composição normalmente começam em 0; atrase só depois de validar a base
end_percent0–11Fim da atuaçãoSe 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, CLIP e VAE.

Etapa 2: carregue o modelo ControlNet

Nó: Load ControlNet Model

  • Selecione pesos compatíveis com arquitetura e tipo de mapa.
  • A saída CONTROL_NET segue 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_aux pelo 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:

  1. positive e negative passam pelo Apply ControlNet.
  2. image recebe o mapa pré-processado.
  3. 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é-processadorSD1.5 comumRegra SDXLRegra FLUX
Cannycontrol_v11p_sd15_cannyPesos SDXL que aceitem CannyPesos documentados para o FLUX alvo e Canny
OpenPose / DWPosecontrol_v11p_sd15_openposePesos SDXL que aceitem posePesos documentados para o FLUX alvo e Pose
Depth (MiDaS / LeReS)control_v11f1p_sd15_depthPesos SDXL que aceitem DepthPesos documentados para o FLUX alvo e Depth
Scribblecontrol_v11p_sd15_scribblePesos SDXL que aceitem ScribbleConfira a ficha; nem todo Union aceita Scribble
SoftEdge (HED / PiDiNet)control_v11p_sd15_softedgePesos SDXL que aceitem SoftEdgeConfira 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

BaseSeleçãoPastaAtenção
SD1.5A família control_v11*_sd15_* é comumComfyUI/models/controlnetsd15 indica SD1.5, não SDXL
SDXLUse pesos marcados para SDXLComfyUI/models/controlnetExistem várias implementações; siga a ficha
FLUXUse ControlNet ou Union compatível com o FLUX alvoComfyUI/models/controlnetNó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.

  1. Primeiro ControlNet:

    • Carregue OpenPose e um mapa de pose.
    • Teste strength=1.0, start_percent=0, end_percent=0.7.
  2. Segundo ControlNet:

    • Carregue Depth e um mapa de profundidade.
    • Comece com strength=0.6, start_percent=0, end_percent=0.6.
  3. 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_percent em 0 inicialmente.
  • Use end_percent diferentes, 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:

  1. Dois controles iguais não são proibidos, mas mapas da mesma estrutura costumam aumentar conflito.
  2. Prefira sinais complementares como OpenPose + Depth ou OpenPose + Canny.
  3. Fixe o seed e compare um controle com dois.
  4. Não comece com dois strengths altos.
  5. Altere um parâmetro e salve um workflow reproduzível.
  6. Não adicione o segundo até observar o efeito do primeiro.

Lista de solução de problemas

ProblemaCausa provávelVerificação
Imagem igual sem ControlNetMapa desconectado, strength perto de 0, conditioning original ou arquitetura erradaVisualize o mapa; revise image e conditioning; compare seed fixo; confirme arquitetura
Pose ou linhas não coincidemPré-processador incorreto, mapa incompleto ou pouca influênciaRevise esqueleto/bordas; teste DWPose ou Canny; aumente strength gradualmente
Imagem rígida ou deformadaForça alta, mapa com ruído ou controle até o fimReduza strength; limpe o mapa; mude end_percent de 1 para 0.8 ou menos
Pré-processador ausenteCustom node não instalado ou dependência falhouInstale comfyui_controlnet_aux; reinicie; revise erros de importação
SDXL/FLUX não carrega ou não atuaPesos incompatíveis com arquitetura ou nóConfira base, nós e exemplo da ficha; não confie apenas no nome
Apply ControlNet(Old) ausenteNó obsoleto ocultoUse Apply ControlNet padrão; mostre obsoletos apenas em workflows antigos
Vários ControlNets entram em conflitoMapas opostos, auxiliar forte ou muitas mudançasTeste separados; fixe seed; reduza auxiliar; encurte intervalo; altere um valor
Mudanças não aparecemSeed variável, mapa pobre ou cadeia desviando do ControlNetFixe 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:

Montar um workflow básico de ControlNet no ComfyUI

Pré-processar uma referência e adicionar seu sinal estrutural à cadeia de amostragem.

  1. 1

    Step 1: Identifique a arquitetura base

    Verifique se o checkpoint é SD1.5, SDXL ou FLUX e escolha pesos explicitamente compatíveis.
  2. 2

    Step 2: Carregue e pré-processe a referência

    Gere um mapa de pose, borda ou profundidade com OpenPose, Canny ou Depth.
  3. 3

    Step 3: Carregue o ControlNet

    Coloque os pesos em ComfyUI/models/controlnet e selecione o modelo correspondente no Load ControlNet Model.
  4. 4

    Step 4: Conecte o Apply ControlNet

    Conecte positive, negative, control_net e a imagem pré-processada; envie o conditioning ao KSampler.
  5. 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. 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?
Ambos convertem uma pessoa em um mapa de pontos-chave. O DWPose costuma oferecer mais detalhes do corpo, mãos e rosto; o OpenPose pode bastar para a pose geral. Confirme o formato esperado na documentação do modelo.
Qual valor de strength devo usar?
Comece perto de 1.0 com o mesmo seed. Aumente aos poucos se o controle estiver fraco e reduza se a imagem ficar rígida ou deformada. O intervalo oficial de 0.5–1.5 é uma referência de teste, não uma faixa segura universal.
O que significam start_percent e end_percent?
Eles definem o trecho da difusão em que o ControlNet atua. 0.0–0.8 significa do início até 80%. Pose e composição normalmente começam em 0; terminar antes dá mais liberdade aos detalhes finais.
Posso usar vários ControlNets juntos?
Sim. Conecte as saídas positive e negative de um Apply ControlNet às entradas equivalentes do próximo e envie as últimas saídas ao sampler. Valide cada controle separadamente antes de combinar.
Qual ControlNet usar com FLUX?
Use pesos com compatibilidade explícita com seu modelo FLUX e o workflow atual do ComfyUI. Modelos Union são uma opção, mas modos, nós e faixas de força dependem de cada model card.

8 min de leitura · Publicado em: 19 jul 2026 · Atualizado em: 19 jul 2026

Comentários

Entre com GitHub para comentar

Easton BlogEaston Blog