Wrappers de condicionamento LoRA baseados em área e nós de agendamento LoRA para ComfyUI.
- ✨ Recursos
- 📦 Instalação
- ✅ Configuração recomendada (multiárea / multiassunto)
- 🔧 Nós
- 🧩 Dependências opcionais
- 🧭 Workflow de exemplo multiárea
- 🖼️ Galeria
- 💙 Financiamento e Apoio
- 📄 Licença
- Pipeline de condicionamento baseado em área para prompts multissujeitos e multirregionais.
- Controle de força LoRA agendado de um nó com uma saída de visualização de curva.
- Para uma composição consistente de vários assuntos em várias áreas, ControlNet + OpenPose é fortemente recomendado via comfyui-openpose-studio.
- Sem ControlNet/OpenPose, a composição de vários assuntos e áreas múltiplas costuma ser inconsistente e pode exigir muitas tentativas.
- Somente Python: não são necessárias dependências de JavaScript ou frontend.
- ComfyUI (compilação recente)
- Python 3.10+
- Deps opcionais por nó:
matplotlib
- Clone este repositório em
ComfyUI/custom_nodes/. - Reinicie ComfyUI.
- Confirme se os nós aparecem em
LoRA Pipeline/.
- Use ControlNet OpenPose (recomendado): comfyui-openpose-studio.
- Mantenha o prompt global mínimo e geral.
- Mantenha
global_strengthbaixo (regra geral: abaixo de0.5). - Equilibre a força por área, força
global_strengthe força LoRA; não maximize todas as forças. - Exemplos de valores de referência que funcionaram bem: intensidades de área em torno de
0.75, intensidades de LoRA em torno de0.90.
| Conditioning Pipeline (Combine) | Conditioning Pipeline (Set Area) | Load LoRA (Scheduled) |
|---|---|---|
![]() |
![]() |
![]() |
Defina uma entrada condicionada por área por vez. Este nó define uma região retangular com largura, altura, x e y e, em seguida, aplica um prompt de condicionamento dedicado e força a essa região como parte de um pipeline de condicionamento encadeado.
Em resumo:
- Use uma instância de nó por prompt de região/assunto.
- Encadeie várias instâncias para construir um pipeline de condicionamento regional.
- Permite um controle limpo de vários assuntos antes da combinação final.
Entradas:
conditioning(CONDITIONING, obrigatório)width,height,x,y(FLOAT,0.0-1.0normalizado)strength(FLOAT, padrão1.0)pipeline_in(CONDITIONING_PIPELINE, opcional)
Saídas:
pipeline_out(CONDITIONING_PIPELINE)
Notas de comportamento:
- Cria um novo pipeline se
pipeline_innão estiver conectado. - Acrescenta uma nova entrada regional quando
pipeline_inestá conectado. - Mantém as entradas ordenadas para que você possa criar pilhas regionais previsíveis.
- As intensidades de área mais baixas geralmente melhoram a qualidade geral da imagem, mas reduzem a autoridade de controle por área.
- Equilibre a força da área junto com global_strength e a força de LoRA em Create Hook Lora.
Erros comuns:
- Fornecendo coordenadas de pixel em vez de valores
0.0-1.0normalizados. - Definir
width/heightperto de0e esperar efeito visível. - Esquecendo de passar o pipeline final para
Conditioning Pipeline (Combine).
Combine o condicionamento positivo/negativo global com o pipeline de área para resultados conscientes da região. Juntamente com Set Area, este é o caminho principal para multi-LoRAs e condicionamentos separados por assunto/zona.
Em resumo:
- Converte seu pipeline regional em resultados finais positivos/negativos.
- Mantém o contexto de prompt global enquanto adiciona controle regional local.
Entradas:
global_positive(CONDITIONING, obrigatório)global_negative(CONDITIONING, obrigatório)pipeline(CONDITIONING_PIPELINE, obrigatório)global_strength(FLOAT, padrão0.3)
Saídas:
positive_out(CONDITIONING)negative_out(CONDITIONING)areas_out(CONDITIONING_AREAS)
Detalhes sobre areas_out:
areas_out expõe a lista de regiões de área configuradas como uma saída de dados estruturada. Cada entrada contém as coordenadas normalizadas (x, y, width, height) e strength definidas no pipeline via Conditioning Pipeline (Set Area). Conecte areas_out ao ComfyUI-OpenPose-Studio para espelhar automaticamente suas áreas de condicionamento no editor OpenPose — o posicionamento das poses se alinhará com as regiões exatas que você condicionou. Esta saída também pode ser consumida por qualquer outra extensão ou nó que aceite metadados de área para geração de máscaras ou processamento posterior com reconhecimento de região.
Notas de comportamento:
- Se o pipeline estiver vazio/inválido, as saídas voltam para as entradas globais e
areas_outé uma lista vazia. - Aplica entradas regionais e, em seguida, um passe combinado padrão para regiões descobertas.
global_strengthcontrola a intensidade com que o contexto global compete com as áreas locais.- Pressionar global_strength muito alto pode reduzir a influência do condicionamento por área e impactar negativamente a qualidade da imagem.
- Bons resultados geralmente vêm do equilíbrio da força global com a força por área e da força LoRA, em vez de maximizar todos os valores.
Erros comuns:
- Alimentando apenas um fluxo de condicionamento em vez de positivo e negativo.
- Forçar
global_strengthem excesso e perder detalhes da área. - Construindo entradas de área, mas esquecendo de conectar as saídas combinadas ao caminho do amostrador.
Aplique um LoRA com força constante ou uma curva programada sobre o progresso da difusão, em um nó limpo.
Em resumo:
- Substitui cadeias confusas de vários nós nativos LoRA/controle.
- Mantém o tempo, a interpolação e a visualização juntos.
- Fiação de gráfico mais limpa para comportamento LoRA temporal.
Entradas:
model(MODEL, obrigatório)clip(CLIP, obrigatório)lora_name(STRING, obrigatório)strength_start,strength_end(FLOAT)interpolation(STRING:linear,ease_in,ease_out,ease_in_out)start_percent,end_percent(FLOAT,0.0-1.0)keyframes_count(INT, padrão4)apply_to_conds(BOOLEAN, opcional)
Saídas:
model(MODEL)clip(CLIP)curve_preview(IMAGE)
Notas de comportamento:
- Se
lora_nameforNone, o modelo/clip passa e a visualização ainda é renderizada. - Se as forças inicial e final corresponderem, ele se comporta como um aplicativo LoRA constante.
- A visualização da curva ajuda a verificar rapidamente o tempo antes da renderização completa.
Erros comuns:
- Esquecendo
matplotlibao usarcurve_preview. - Usando uma janela de agendamento que não corresponde à intenção de tempo do amostrador.
- Esperando que este nó produza diretamente
CONDITIONING.
Instale apenas o que você precisa, no mesmo ambiente Python usado por ComfyUI.
ScheduledLoRALoadervisualização da curva:python -m pip install matplotlib
Você pode arrastar e soltar esta imagem de fluxo de trabalho em ComfyUI para importar/carregar o gráfico completo.
- Use
Create Hook Loranativo para carregar um LoRA e definir o prompt/condicionamento da área para a Área 1. - Conecte esse condicionamento em
Conditioning Pipeline (Set Area)e definawidth,height,x,yestrengthpara essa região.
- Repita exatamente o mesmo padrão: outro
Create Hook Lora+ outroConditioning Pipeline (Set Area). - Você pode continuar repetindo esse padrão para áreas adicionais.
- Encadeie
pipeline_outda Área 1 para a Área 2 (entradas de pipeline concatenadas). - Envie
pipeline_outda última área paraConditioning Pipeline (Combine), que mescla o pipeline da área com o condicionamento global. - Roteie a saída combinada para
KSamplerdiretamente ou paraControlNet; neste exemplo, ele é roteado paraControlNet.
- OpenPose/ControlNet é opcional em geral, mas para este fluxo de trabalho específico de composição multiassunto e multiárea é altamente recomendado para uma composição consistente.
- Consulte comfyui-openpose-studio do mesmo autor (repositório mais recente).
Estilo global significa aplicar Styler Pipeline uma vez a toda a imagem, além de (ou em vez de) condicionamento por área.
- Regra geral: conecte
Styler Pipelineantes deKSampler. - Ao usar ControlNet,
Styler Pipelinepode ser conectado antes de aplicar ControlNet ou depois de aplicar ControlNet. - Na prática, o resultado geralmente é equivalente, então escolha o posicionamento que for mais conveniente em seu gráfico.
- Aumentar muito
global_strengthreduz a influência relativa dos condicionamentos por área e pode enfraquecer a identidade de LoRA/estilo por área. - Uma maior força global também pode impactar negativamente a qualidade da imagem.
- Mantenha
global_strengthbaixo e mantenha o prompt global mínimo/geral. - Regra prática: use valores abaixo de
0.5em geral (testados até0.5) e evite confiar no condicionamento global além da orientação geral. - Reduzir a força de LoRA tende a reduzir a identidade de LoRA ou a fidelidade do personagem, enquanto diminuir a força da área tende a reduzir o controle por área.
- Não é recomendado maximizar tudo, porque altas forças combinadas podem sacrificar a qualidade da imagem. Isto é especialmente verdadeiro ao misturar LoRAs de autores diferentes, o que pode produzir qualidade inconsistente.
- Regra geral para LoRAs com vários caracteres: quando possível, use LoRAs do mesmo autor ou abordagem de treinamento semelhante para obter resultados combinados mais consistentes.
| Visualização | Descrição |
|---|---|
![]() |
Pipeline de condicionamento — Multiáreas com ControlNet OpenPose Demonstra múltiplas áreas verticais com múltiplos LoRAs sem sangramento de LoRA, usando ControlNet OpenPose. Requer comfyui-openpose-studio. |
![]() |
Pipeline de condicionamento — múltiplas áreas com ControlNet e estilo Demonstra múltiplas áreas e vários LoRAs com estilo por área aplicado a cada região independentemente. Requer comfyui-openpose-studio e comfyui-styler-pipeline. Este fluxo de trabalho usa estilo por área, o que significa que cada área tem seus próprios estilos configurados separadamente. O estilo global também é possível conectando o nó Styler logo antes de ControlNet. |
Veja este post para um workflow completo combinando múltiplas áreas de conditioning, OpenPose, ControlNet e Styler usados ao mesmo tempo.
Este plug-in é desenvolvido e mantido de forma independente, com uso regular de agentes de IA pagos para acelerar a depuração, testes e melhorias na qualidade de vida. Se você achar útil, o apoio financeiro ajudará a manter o desenvolvimento em andamento constante.
Sua contribuição ajuda:
- Financie ferramentas de IA para soluções mais rápidas e novos recursos
- Cubra o trabalho contínuo de manutenção e compatibilidade em ComfyUI atualizações
- Evite lentidão no desenvolvimento quando os limites de uso forem atingidos
Tip
Não está doando? Uma estrela do GitHub ⭐ ainda ajuda muito melhorando a visibilidade e ajudando mais usuários
Mostrar endereço USDC
0xe36a336fC6cc9Daae657b4A380dA492AB9601e73
[!WARNING] Envie USDC somente no Arbitrum One. As transferências enviadas em qualquer outra rede não chegarão e poderão ser perdidas permanentemente.
Licença MIT - consulte LICENSE para obter o texto completo.
Mantido por: andreszs Status: Desenvolvimento Ativo









