Skip to content

Latest commit

 

History

History
352 lines (259 loc) · 17.9 KB

File metadata and controls

352 lines (259 loc) · 17.9 KB

Version Last Commit License


ComfyUI LoRA Pipeline

Wrappers de condicionamento LoRA baseados em área e nós de agendamento LoRA para ComfyUI.


Índice


Características

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

Instalação

Requisitos

  • ComfyUI (compilação recente)
  • Python 3.10+
  • Deps opcionais por nó: matplotlib

Passos

  1. Clone este repositório em ComfyUI/custom_nodes/.
  2. Reinicie ComfyUI.
  3. Confirme se os nós aparecem em LoRA Pipeline/.

Configuração recomendada (multiárea/multiassunto)

  • Use ControlNet OpenPose (recomendado): comfyui-openpose-studio.
  • Mantenha o prompt global mínimo e geral.
  • Mantenha global_strength baixo (regra geral: abaixo de 0.5).
  • Equilibre a força por área, força global_strength e 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 de 0.90.

Nós

Conditioning Pipeline (Combine) Conditioning Pipeline (Set Area) Load LoRA (Scheduled)
Conditioning Pipeline (Combine) Conditioning Pipeline (Set Area) Load LoRA (Scheduled)

Conditioning Pipeline (Set Area)

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.0 normalizado)
  • strength (FLOAT, padrão 1.0)
  • pipeline_in (CONDITIONING_PIPELINE, opcional)

Saídas:

  • pipeline_out (CONDITIONING_PIPELINE)

Notas de comportamento:

  • Cria um novo pipeline se pipeline_in não estiver conectado.
  • Acrescenta uma nova entrada regional quando pipeline_in está 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.0 normalizados.
  • Definir width/height perto de 0 e esperar efeito visível.
  • Esquecendo de passar o pipeline final para Conditioning Pipeline (Combine).

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ão 0.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_strength controla 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_strength em excesso e perder detalhes da área.
  • Construindo entradas de área, mas esquecendo de conectar as saídas combinadas ao caminho do amostrador.

ScheduledLoRALoader

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ão 4)
  • apply_to_conds (BOOLEAN, opcional)

Saídas:

  • model (MODEL)
  • clip (CLIP)
  • curve_preview (IMAGE)

Notas de comportamento:

  • Se lora_name for None, 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 matplotlib ao usar curve_preview.
  • Usando uma janela de agendamento que não corresponde à intenção de tempo do amostrador.
  • Esperando que este nó produza diretamente CONDITIONING.

Dependências opcionais

Instale apenas o que você precisa, no mesmo ambiente Python usado por ComfyUI.

  • ScheduledLoRALoader visualização da curva: python -m pip install matplotlib

Workflow de exemplo multiárea

Fluxo de trabalho completo

Você pode arrastar e soltar esta imagem de fluxo de trabalho em ComfyUI para importar/carregar o gráfico completo.

Configuração da área 1

Condicionamento da área 1

  • Use Create Hook Lora nativo para carregar um LoRA e definir o prompt/condicionamento da área para a Área 1.
  • Conecte esse condicionamento em Conditioning Pipeline (Set Area) e defina width, height, x, y e strength para essa região.

Configuração da área 2

Condicionamento da área 2

  • Repita exatamente o mesmo padrão: outro Create Hook Lora + outro Conditioning Pipeline (Set Area).
  • Você pode continuar repetindo esse padrão para áreas adicionais.

Encadeamento de pipeline e combinação

Combinação de condicionamento

  • Encadeie pipeline_out da Área 1 para a Área 2 (entradas de pipeline concatenadas).
  • Envie pipeline_out da última área para Conditioning Pipeline (Combine), que mescla o pipeline da área com o condicionamento global.
  • Roteie a saída combinada para KSampler diretamente ou para ControlNet; neste exemplo, ele é roteado para ControlNet.

Orientação OpenPose / ControlNet

  • 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).

Posicionamento global do Styler Pipeline

Colocação Styler Pipeline global com condicionamento de área + ControlNet

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 Pipeline antes de KSampler.
  • Ao usar ControlNet, Styler Pipeline pode 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.

global_strength compensações

  • Aumentar muito global_strength reduz 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_strength baixo e mantenha o prompt global mínimo/geral.
  • Regra prática: use valores abaixo de 0.5 em 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.

Galeria

Visualização Descrição
condicionamento_pipeline_area 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.
condicionamento_pipeline_styled 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.


Financiamento e Apoio

Por que seu apoio é importante

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

💙 Apoie este projeto

USDC (somente Arbitrum ⚠️)

USDC Badge

Mostrar endereço

Prefere digitalizar? Mostrar códigos QR
Ko-fi
Ko-fi QR Code
PayPal
PayPal QR Code
USDC (Arbitrum) ⚠️
USDC (Arbitrum) QR Code

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

Licença MIT - consulte LICENSE para obter o texto completo.


Mantido por: andreszs Status: Desenvolvimento Ativo