Os nós | Melhorias e recursos | Fixador de links
Uma coleção de nós e melhorias criadas enquanto você brinca com o ComfyUI. Eu os criei para tornar meu fluxo de trabalho mais limpo, fácil e rápido. Você está convidado a experimentá-los. Mas lembre-se, eu os criei para meus próprios casos de uso :)
custom_modules
: cd ComfyUI/custom_nodes
git clone https://github.com/rgthree/rgthree-comfy.git
Você pode configurar certos aspectos do rgtwo-comfy. Por exemplo, talvez uma alteração futura do ComfyUI interrompa o rgtwo-comfy, ou você já tenha outra extensão que faça algo semelhante e queira desativá-la para o rgtwo-comfy.
Você pode acessar as configurações do rgtrês clicando com o botão direito na parte vazia do gráfico e selecionando rgthree-comfy > Settings (rgthree-comfy)
ou clicando nas rgthree-comfy settings
na caixa de diálogo de configurações do ComfyUI.
(Observe que as configurações são armazenadas em rgthree_config.json
no diretório rgthree-comfy
. Existem outras configurações avançadas que só podem ser configuradas lá; você pode copiar as configurações padrão de rgthree_config.json.default
antes de rgthree_config.json
antes de modificar) .
Observe que você pode clicar com o botão direito em vários nós rgtwo-comfy e selecionar ? Node Help
Item de menu ? Node Help
para ajuda no aplicativo, quando disponível.
Um nó de controle de sementes intuitivo para ComfyUI que funciona de maneira muito semelhante ao controle de sementes do Automatic1111.
Veja mais informações
- Defina o valor da semente como "-1" para usar uma semente aleatória sempre
- Defina qualquer outro número para usar como semente estática/fixa
- Ações rápidas para randomizar ou (re)usar a última semente na fila.
- Os metadados das imagens armazenarão o valor da semente (portanto, arrastar uma imagem terá o campo da semente já fixado em sua semente) .
- Recursos secretos : você pode definir manualmente o valor inicial como "-2" ou "-3" para aumentar ou diminuir o último valor inicial. Se não houver o último valor inicial, ele será usado aleatoriamente no primeiro.
Mantenha seu fluxo de trabalho organizado com este nó de redirecionamento muito aprimorado, com redirecionamento real com múltiplas direções e tamanhos.
Mais informações
- Use o menu de contexto do botão direito para alterar a largura, a altura e o layout da conexão
- Alterne também a capacidade de redimensionamento (o tamanho mínimo é 40x43 se for redimensionado) e a exibição do título/tipo.
Coloque o nó do marcador em qualquer lugar da tela para navegar rapidamente até ele com uma tecla de atalho.
Veja mais informações
- Defina a
shortcut_key
a ser pressionada para ir direto para o nó do marcador, ancorado no canto superior esquerdo.- Você também pode definir o nível de zoom!
- Dica profissional:
shortcut_key
pode ter várias teclas. Por exemplo "alt + shift +!" exigiria pressionar a tecla alt, a tecla shift e o "!" (como na tecla “1”, mas com shift pressionado) para acionar.
Passe adiante as propriedades gerais do fluxo e mescle novos dados. Semelhante a alguns outros "pipes" de conjuntos de nós, mas com fusão mais fácil, é mais facilmente interoperável com nós padrão, combinando e explodindo tudo em um único nó.
Mais informações
- Contexto e Contexto Grande são compatíveis entre si. Ou seja, uma entrada conectada a um Context Big será passada pelas saídas CONTEXT através de nós Context normais e estará disponível como saída em qualquer um deles (ou, Context Big se a saída estiver apenas naquele nó, como "etapas").
- Dica profissional: ao arrastar uma saída de contexto sobre outro nó, mantenha pressionado "ctrl" e solte para conectar automaticamente as outras saídas de contexto ao nó pairado.
- Dica profissional: você pode alternar entre os nós Context e Context Big no menu.
O nó Image Comparer compara duas imagens uma sobre a outra.
Mais informações
- Nota: O menu do botão direito pode mostrar opções de imagem (Abrir Imagem, Salvar Imagem, etc.) que corresponderão à primeira imagem (image_a) se clicada na metade esquerda do nó, ou à segunda imagem se estiver à direita metade do nó.
- Entradas:
image_a
Obrigatório. A primeira imagem a ser usada para comparação. Se image_b não for fornecido e image_a for um lote, o comparador usará as duas primeiras imagens de image_a.image_b
Opcional. A segunda imagem a ser usada para comparar. Opcional somente se image_a for um lote com duas imagens.- Propriedades: Você pode alterar as seguintes propriedades (clicando com o botão direito no nó e selecionando "Propriedades" ou "Painel de Propriedades" no menu):
comparer_mode
- Escolha entre "Slide" e "Clique". O padrão é "Deslizar".
O nó que permite cortar uma imagem de entrada por valor de pixel ou valor percentual.
Exibe quase todos os dados de texto do back-end após a execução .
Um nó Lora Loader super simples que pode carregar vários Loras de uma vez e alternar rapidamente cada um, tudo em um nó ultracondensado.
Mais informações
- Adicione quantas Lora desejar clicando no botão "+ Adicionar Lora". Não há limite real!
- Clique com o botão direito em um widget Lora para obter opções especiais para mover o lora para cima ou para baixo (sem efeito na imagem, apenas apresentação) , ativá-lo/desativá-lo ou excluir a linha por completo.
- nas propriedades, altere
Show Strengths
para escolher entre mostrar um valor de resistência único e simples (que será usado para o modelo e o clipe) ou uma visualização mais avançada com as intensidades do modelo e do clipe sendo modificáveis.
Obsoleto. Em vez disso, usei o
Power Lora Loader
.Uma pilha Lora Loader simplificada. Muito parecido com outras suítes, mas mais interoperável com entradas/saídas padrão.
Aumente seu prompt e obtenha menus suspensos para adicionar seus embeddings, loras e até mesmo salvar trechos de prompt.
Mais informações
- Basicamente, você pode usar o Power Prompt quase como um nó String Primitive com recursos adicionais de menus suspensos para escolher seus embeddings, e até mesmo loras, sem processamento adicional. Isso produzirá apenas o
TEXT
bruto para outro nó para qualquer processamento lora, codificação CLIP, etc.- Conecte um
CLIP
à entrada para codificar o texto, com a saídaCLIP
eCONDITIONING
diretamente do nó.- Conecte um
MODEL
à entrada para analisar e carregar quaisquer tags<lora:...>
no texto automaticamente, sem a necessidade de Lora Loaders separados
Igual ao Power Prompt acima, mas sem suporte LORA; feito para um prompt negativo um pouco mais limpo (já que os prompts negativos não suportam loras) .
O irmão SDXL do Power Prompt acima. Ele contém text_g e text_l como entradas de texto separadas, bem como mais alguns slots de entrada necessários para garantir a codificação adequada do clipe. Combine com
Como o nó
Power Prompt - Simple
não SDXL, este é essencialmente o mesmo que o Power Prompt SDXL, mas sem suporte lora para prompts positivos não lora ou prompts negativos SDXL (uma vez que prompts negativos não suportam loras) .
Apenas alguns campos de configuração para solicitação do SDXL. Honestamente, também poderia ser usado para não SDXL.
Um nó poderoso para ramificar seu fluxo de trabalho. Funciona escolhendo a primeira entrada de contexto que não seja nula/vazia.
Mais informações
- Passe vários nós de contexto e o Context Switch escolherá automaticamente o primeiro contexto não nulo para continuar.
- Quer saber como alternar contextos para nulos? Use em conjunto com o Fast Muter ou Fast Groups Muter
Um nó poderoso semelhante ao Context Switch acima, que escolhe a primeira entrada que não é nula/vazia.
Mais informações
- Passe várias entradas do mesmo tipo e Any Switch escolherá automaticamente o primeiro valor não nulo para continuar.
- Quer saber como alternar contextos para nulos? Use em conjunto com o Fast Muter ou Fast Groups Muter
O Fast Groups Muter é um nó sem entrada que coleta automaticamente todos os grupos em seu fluxo de trabalho atual e permite ativar e desativar rapidamente todos os nós do grupo.
Mais informações
Os grupos serão mostrados automaticamente, embora você possa filtrar, classificar e muito mais nas Propriedades do nó (clicando com o botão direito do mouse no nó e selecionando "Propriedades" ou "Painel de Propriedades" no menu) . As propriedades incluem:
matchColors
- Adicione apenas grupos que correspondam às cores fornecidas. Podem ser cores ComfyUI (red, pale_blue) ou códigos hexadecimais (#a4d399). Vários podem ser adicionados, delimitados por vírgula.
matchTitle
- Filtre a lista de alternâncias por correspondência de título (correspondência de string ou expressão regular).
showNav
- Adicione/remova uma seta de navegação rápida para levá-lo ao grupo. (padrão: verdadeiro)
sort
- Classifique a ordem das alternâncias por "alfanumérico", gráfico "posição" ou "alfabeto personalizado". (padrão: "posição")
customSortAlphabet
- Quando a propriedade sort é "alfabeto personalizado", você pode definir o alfabeto a ser usado aqui, que corresponderá ao início de cada nome de grupo e classificará com base nele. Se os títulos dos grupos não corresponderem a nenhuma entrada alfabética personalizada, eles serão colocados depois dos grupos que o fizerem, ordenados alfanumericamente.Pode ser uma lista de caracteres únicos, como "zyxw..." ou strings delimitadas por vírgulas para maior controle, como "sdxl,pro,sd,n,p".
Observe que quando dois títulos de grupos correspondem à mesma entrada do alfabeto personalizado, o alfabeto alfanumérico normal desfaz o empate. Por exemplo, um alfabeto personalizado de "e,s,d" ordenará nomes de grupos como "SDXL, SEGS, Detailer", mesmo que o alfabeto personalizado tenha um "e" antes de "d" (onde se pode esperar que "SE" esteja antes "SD").
Para que "SEGS" apareça antes de "SDXL", você pode usar strings mais longas. Por exemplo, o valor do alfabeto personalizado "se,s,f" funcionaria aqui.
toggleRestriction
- Opcionalmente, tente restringir o número de widgets que podem ser ativados a no máximo um ou sempre um.Nota: Se estiver usando "máx. um" ou "sempre um", isso só será aplicado ao clicar em um botão de alternância neste nó; se os nós dentro dos grupos forem alterados fora do clique de alternância inicial, essas restrições não serão aplicadas e poderão resultar em um estado em que mais de uma alternância será ativada. Isso também pode acontecer se os nós estiverem sobrepostos a vários grupos.
Igual ao Fast Groups Muter acima, mas define os nós conectados como "Bypass" em vez de "Mute"
Um poderoso nó de 'painel de controle' para alternar rapidamente os nós conectados, permitindo que eles sejam rapidamente silenciados ou ativados
Mais informações
- Adicione uma coleção de todos os nós conectados, permitindo um único ponto como um "painel" para ativar e desativar rapidamente os nós. Dois nós distintos; um para "silenciar" nós conectados e outro para "ignorar" nós conectados.
Igual ao Fast Muter, mas define os nós conectados como "Ignorar"
Nossa, este nó permite que você semiautomatize nós conectados e/ou ConfyUI.
Mais informações
- Conecte nós e, pelo menos, silencie, ignore ou habilite-os quando o botão for pressionado.
- Certos nós expõem ações adicionais. Por exemplo, no nó
Seed
você pode definirRandomize Each Time
ouUse Last Queued Seed
quando o botão for pressionado.- Além disso, nas propriedades do nó, defina uma tecla de atalho para alternar as ações do botão, sem precisar de um clique!
Usado para limpar macarrão, aceitará qualquer número de nós de entrada e os transmitirá para outro nó.
️ Atualmente, isso só deve ser conectado a Fast Muter , Fast Bypasser ou Mute/Bypass Relay .
Um nó poderoso que despachará seu modo Mudo/Bypass/Ativo para todos os nós de entrada conectados ou, se estiver em um grupo sem quaisquer entradas conectadas, despachará seu modo Mudo/Bypass/Ativo para todos os nós desse grupo.
Mais informações
Dica profissional nº 1: conecte a saída deste nó a um Fast Muter ou Fast Bypasser para ter um único botão de alternância que pode silenciar/ignorar/ativar vários nós com um clique.
Dica profissional nº 2: Conecte um nó de relé de mudo/desvio às entradas deste nó para que o relé despache automaticamente uma alteração de mudo/desvio/habilitação para o repetidor.
Um nó avançado que, ao trabalhar com um repetidor Mute/Bypass , retransmitirá os modos de seus nós de entrada (Mute, Bypass ou Active) para um repetidor conectado (que então repetiria essa mudança de modo para todas as suas entradas).
Mais informações
- Quando todos os nós de entrada conectados estiverem silenciados, o relé definirá um repetidor conectado para silenciar (por padrão).
- Quando todos os nós de entrada conectados forem ignorados, o relé configurará um repetidor conectado para ignorar (por padrão).
- Quando qualquer nó de entrada conectado estiver ativo, o relé definirá um repetidor conectado como ativo (por padrão).
- Nota: Se nenhuma entrada estiver conectada, o relé colocará um repetidor conectado em seu modo quando seu próprio modo for alterado . Observe que se alguma entrada estiver conectada, os marcadores acima ocorrerão e o modo do relé não importa.
- Dica profissional: você pode alterar quais sinais são enviados acima em
Properties
. Por exemplo, você pode configurar um relé inverso que enviará um MUTE quando qualquer uma de suas entradas estiver ativa (em vez de enviar um sinal ATIVO) e enviará um sinal ATIVO quando todas as suas entradas estiverem silenciadas (em vez de enviar um sinal MUTE). , etc.
Um nó avançado usado para ativar o som de uma de suas entradas aleatoriamente quando o gráfico está na fila (e imediatamente desativá-lo novamente).
Mais informações
- Nota: Todos os nós de entrada DEVEM ser silenciados para iniciar; caso contrário, este nó não ativará aleatoriamente o som de outro. (Isso é poderoso, pois a imagem gerada pode ser arrastada e a entrada escolhida já será ativada e funcionará sem qualquer ação adicional.)
- Dica: Conecte a saída de um Repetidor à entrada deste nó e coloque esse Repetidor em um grupo sem quaisquer outras entradas, e ele irá ativar/desativar o som de todo o grupo.
Um nó puramente visual, que permite adicionar um rótulo flutuante ao seu fluxo de trabalho.
Mais informações
- O texto mostrado é o "Título" do nó e você pode ajustar o tamanho da fonte, família da fonte, cor da fonte, alinhamento do texto, bem como cor de fundo, preenchimento e raio da borda de fundo nas propriedades do nó. Você pode clicar duas vezes no nó para abrir o painel de propriedades.
- Dica profissional nº 1: você pode adicionar texto multilinha no painel de propriedades (porque o ComfyUI permite que você mude + entre apenas lá).
- Dica profissional nº 2: você pode usar a opção "pin" nativa do ComfyUI no menu do botão direito para fazer o rótulo aderir ao fluxo de trabalho e clicar para "passar". Você pode clicar com o botão direito a qualquer momento para liberar.
- Dica profissional nº 3: os valores das cores são strings hexadecimais, como "#FFFFFF" para branco ou "#660000" para vermelho escuro. Você pode fornecer um 7º e 8º valor (ou 5º se estiver usando uma abreviatura) para criar uma cor translúcida. Por exemplo, "#FFFFFF88" é branco semitransparente.
Muito do poder desses nós vem do Muting . O silenciamento é a base para implementar corretamente vários caminhos para um fluxo de trabalho que utiliza o nó Context Switch.
Embora outras extensões possam fornecer opções, elas geralmente erram, fazendo com que seu fluxo de trabalho execute mais trabalho do que o necessário. Embora outros switches possam ter um seletor para escolher qual entrada transmitir, eles não interrompem a execução das outras entradas, o que resultará em desperdício de trabalho. Em vez disso, Context Switch funciona escolhendo o primeiro contexto não vazio para transmitir e corretamente. O silenciamento é uma maneira de tornar um nó anterior vazio e não faz com que nenhum trabalho extra seja feito quando configurado corretamente.
O silenciamento e, portanto, o uso de switches, muitas vezes pode confundir as pessoas no início, porque parece que silenciar um nó ou usar um switch deve ser capaz de interromper ou direcionar o fluxo direto do gráfico. No entanto, este não é o caso e, de facto, o gráfico começa a funcionar ao contrário.
Se você tiver um fluxo de trabalho que tenha um caminho como ... > Context > KSampler > VAE Decode > Save Image
inicialmente pode parecer que você deveria ser capaz de silenciar o primeiro nó Context e o gráfico pararia aí ao avançar e pularia o resto desse fluxo de trabalho.
Mas você descobrirá rapidamente que isso causará um erro, porque o gráfico na verdade não avança. Quando um fluxo de trabalho é processado, ele primeiro retrocede começando em cada "Nó de saída" (Visualizar imagem, Salvar imagem, até mesmo "Exibir string" etc.) e depois retrocede em todos os caminhos possíveis para chegar lá.
Então, com aquele exemplo ... > Context > KSampler > VAE Decode > Save Image
acima, na verdade queremos silenciar o nó Save Image
para interromper esse caminho. Assim que fizermos isso, como o nó de saída desapareceu, nenhum desses nós será executado.
Vejamos um exemplo.
Usando a opção Context Switch (cor azul na captura de tela), alimente as entradas de contexto em ordem de preferência. No fluxo de trabalho acima, o contexto Upscale Out
é o primeiro, portanto, se estiver habilitado, será escolhido para a saída. Caso contrário, será escolhido o segundo slot de entrada que vem do contexto redirecionado de cima (antes da cabine do Upscaler).
Upscale Preview
está após o nó de contexto Upscale Out
, usando a imagem dele em vez da imagem do VAE Decoder
sofisticado. Isso é proposital, então, quando desabilitarmos o contexto Upscale Out
, nenhum dos nós do Upscaler será executado, economizando preciosos ciclos de GPU. Se tivéssemos a visualização conectada diretamente ao VAE Decoder
o upscaler sempre seria executado para gerar a visualização, mesmo se tivéssemos o nó de contexto Upscale Out
desabilitado. Agora podemos desabilitar o nó de contexto Upscale Out
silenciando -o. Destacá-lo e pressionar ctrl + m
funcionará. Ao fazer isso, a saída será None e não passará nada para os outros nós. No diagrama você pode ver que o Upscale Preview
está vermelho, mas tudo bem; não há erros reais para interromper a execução.
Agora, vamos conectá-lo ao nó Fast Muter
. The Fast Muter
funciona como painel, adicionando alternâncias rápidas para qualquer nó conectado (ignorando redirecionamentos). No diagrama, temos o nó de contexto Upscaler Out
e o nó de contexto Save File
conectados. Assim, podemos ativá-los e desativá-los rapidamente.
Por último, e opcionalmente, você pode ver o Node Collector
. Use-o para limpar macarrão se quiser e conecte-o ao silenciador. Você pode conectar qualquer coisa a ele, mas isso pode interromper a execução do seu fluxo de trabalho.
rgtrês-comfy adiciona várias melhorias, recursos e otimizações ao ComfyUI que não estão diretamente vinculados aos nós.
Uma barra de progresso mínima exibida na parte superior da janela do aplicativo que mostra o tamanho da fila, o progresso atual da execução de um prompt (dentro da mesma janela) e também o progresso dos nós de várias etapas.
Você pode remover/ativar as configurações do rgtwo-comfy, bem como configurar a altura/tamanho.
? A versão mais recente do ComfyUI não sofre mais com recursão de execução inadequada! Este recurso foi removido do rgtwo-comfy.
Às vezes, você deseja apenas enfileirar um ou dois caminhos para nós de saída específicos sem executar todo o fluxo de trabalho. Bem, agora você pode fazer exatamente isso clicando com o botão direito em um nó de saída e selecionando
Queue Selected Output Nodes (rgthree)
.Mais informações
Selecione os nós de saída que deseja executar.
Nota: Somente os nós de saída são capturados e percorridos, e nem todos os nós selecionados. Portanto, se você selecionar uma saída E um nó de um caminho diferente, apenas o caminho conectado à saída será executado e não os nós que não são de saída, mesmo que tenham sido selecionados.
Observação: todo o fluxo de trabalho é serializado e então cortamos o que não queremos para o backend. Portanto, coisas como todas as sementes aleatórias/incrementos/decrementos serão executadas mesmo que esse nó não esteja sendo enviado no final, etc.
(Desativado por padrão durante a experiência, ative nas configurações rgtwo-comfy) .
Detecte automaticamente subdiretórios de nível superior em longas listas combinadas (como Load Checkpoint) e divida-os em subdiretórios.
(Desativado por padrão durante a experiência, ative nas configurações rgtwo-comfy) .
Adiciona ícones de alternância para silenciar e/ou ignorar no canto superior direito dos cabeçalhos de grupo para alternar com um clique os grupos que você pode estar vendo no momento.
(Desativado por padrão durante a experiência, ative nas configurações rgtwo-comfy) .
Permite arrastar e soltar um fluxo de trabalho de imagem/JSON de uma geração anterior e substituir os widgets do mesmo nó (que correspondem ao mesmo ID e tipo). Isso é útil se você tiver várias gerações usando o mesmo fluxo de trabalho geral e quiser importar apenas alguns dados, como a semente ou prompt de uma geração anterior, etc.
Clicar com o botão direito em um nó que possui uma imagem deve ter um item de menu de contexto "Copiar imagem" permitirá que você copie a imagem diretamente para sua área de transferência
? Acredito que isso tenha evoluído, com o ComfyUI adicionando recentemente essa configuração também. Você não receberá dois itens de menu; meu código verifica se ainda não existe um item "Copiar imagem" antes de adicioná-lo.
Se seus fluxos de trabalho às vezes apresentam conexões ausentes ou até mesmo erros no carregamento, inicie o ComfyUI e vá para http://127.0.0.1:8188/rgtwo/link_fixer, que permitirá que você insira uma imagem ou arquivo json de fluxo de trabalho e verifique e corrija quaisquer links ruins.
Você também pode ativar uma verificação do fixador de link nas configurações do rgtwo-comfy para fornecer um alerta se você carregar um fluxo de trabalho com dados de vinculação incorretos no início.