Los nodos | Mejoras y características | Reparador de enlaces
Una colección de nodos y mejoras creadas mientras jugaba con ComfyUI. Los hice yo mismo para que mi flujo de trabajo sea más limpio, más fácil y más rápido. Eres bienvenido a probarlos. Pero recuerda, los hice para mis propios casos de uso :)
custom_modules
: cd ComfyUI/custom_nodes
git clone https://github.com/rgthree/rgthree-comfy.git
Puede configurar ciertos aspectos de rgtres-comfy. Por ejemplo, tal vez un cambio futuro de ComfyUI rompa rgtres-comfy, o ya tenga otra extensión que haga algo similar y quiera desactivarla para rgtres-comfy.
Puede acceder a rgtres-configuraciones haciendo clic derecho en la parte vacía del gráfico y seleccionando rgthree-comfy > Settings (rgthree-comfy)
o haciendo clic en la rgthree-comfy settings
en el cuadro de diálogo de configuración de ComfyUI.
(Tenga en cuenta que las configuraciones se almacenan en rgthree_config.json
en el directorio rgthree-comfy
. Hay otras configuraciones avanzadas que solo se pueden configurar allí; puede copiar las configuraciones predeterminadas de rgthree_config.json.default
antes de rgthree_config.json
antes de modificarlas) .
Tenga en cuenta que puede hacer clic derecho en varios de los nodos rgtres cómodos y seleccionar ? Node Help
Elemento del menú ? Node Help
para obtener ayuda dentro de la aplicación cuando esté disponible.
Un nodo de control de semillas intuitivo para ComfyUI que funciona de manera muy similar al control de semillas de Automatic1111.
Ver más información
- Establezca el valor de semilla en "-1" para usar una semilla aleatoria cada vez
- Establezca cualquier otro número allí para usarlo como semilla estática/fija
- Acciones rápidas para aleatorizar o (re)utilizar la última semilla en cola.
- Los metadatos de las imágenes almacenarán el valor inicial (por lo que, al arrastrar una imagen, el campo inicial ya estará fijo en su semilla) .
- Funciones secretas : puede configurar manualmente el valor inicial en "-2" o "-3" para incrementar o disminuir el último valor inicial. Si no hubo el último valor inicial, se usará aleatoriamente el primero.
Mantenga su flujo de trabajo ordenado con este nodo Reroute muy mejorado con redireccionamiento real con múltiples direcciones y tamaños.
Más información
- Utilice el menú contextual del botón derecho para cambiar el ancho, el alto y el diseño de la conexión.
- También alterne el cambio de tamaño (el tamaño mínimo es 40x43 si se cambia el tamaño) y la visualización de título/tipo.
Coloque el nodo de marcador en cualquier lugar de la pantalla para navegar rápidamente hasta él con una tecla de acceso directo.
Ver más información
- Defina la
shortcut_key
que debe presionar para ir directamente a ese nodo de marcador, anclado en la parte superior izquierda.- ¡También puedes definir el nivel de zoom!
- Consejo profesional:
shortcut_key
pueden ser varias teclas. Por ejemplo "alt + mayús +!" requeriría presionar la tecla alt, la tecla Mayús y el "!" (como en la tecla "1", pero con Mayús presionada) para activar.
Transmita propiedades de flujo generales y combine nuevos datos. Similar a otras "tuberías" de conjuntos de nodos, pero con una fusión más sencilla, es más fácilmente interoperable con nodos estándar combinando y explotando todo en un solo nodo.
Más información
- Context y Context Big son compatibles entre sí. Es decir, una entrada conectada a un Context Big pasará a través de las salidas de CONTEXT a través de nodos de Context normales y estará disponible como salida en cualquiera de ellos (o Context Big si la salida está solo en ese nodo, como "pasos").
- Consejo profesional: al arrastrar una salida de Contexto sobre otro nodo, mantenga presionada la tecla "ctrl" y suéltela para conectar automáticamente las otras salidas de Contexto al nodo sobre el que se encuentra.
- Consejo profesional: puedes cambiar entre los nodos Context y Context Big desde el menú.
El nodo Image Comparer compara dos imágenes una encima de la otra.
Más información
- Nota: El menú contextual puede mostrar opciones de imagen (Abrir imagen, Guardar imagen, etc.) que corresponderán a la primera imagen (image_a) si se hace clic en la mitad izquierda del nodo, o a la segunda imagen si se hace clic en la mitad izquierda del nodo. la mitad del nodo.
- Entradas:
image_a
Obligatorio. La primera imagen que se utilizará para comparar. Si no se proporciona image_b e image_a es un lote, el comparador utilizará las dos primeras imágenes de image_a.image_b
Opcional. La segunda imagen a utilizar para comparar. Opcional solo si image_a es un lote con dos imágenes.- Propiedades: puede cambiar las siguientes propiedades (haciendo clic derecho en el nodo y seleccionando "Propiedades" o "Panel de propiedades" en el menú):
comparer_mode
: elija entre "Deslizar" y "Hacer clic". El valor predeterminado es "Diapositiva".
El nodo que le permite recortar una imagen de entrada ya sea por valor de píxel o por valor de porcentaje.
Muestra casi cualquier fragmento de datos de texto del backend después de la ejecución .
Un nodo Lora Loader súper simple que puede cargar múltiples Loras a la vez y alternar rápidamente cada uno, todo en un nodo ultracondensado.
Más información
- Agregue tantas Lora como desee haciendo clic en el botón "+ Agregar Lora". ¡No hay límite real!
- Haga clic derecho en un widget de Lora para obtener opciones especiales para mover el lora hacia arriba o hacia abajo (sin efecto en la imagen, solo la presentación) , activarlo/desactivarlo o eliminar la fila por completo.
- desde las propiedades, cambie
Show Strengths
para elegir entre mostrar un valor de fuerza único y simple (que se usará tanto para el modelo como para el clip), o una vista más avanzada con las fortalezas del modelo y del clip modificables.
En desuso. En su lugar, usé el
Power Lora Loader
.Una pila de Lora Loader simplificada. Muy parecido a otras suites, pero más interoperable con entradas/salidas estándar.
Encienda su mensaje y obtenga menús desplegables para agregar sus incrustaciones, loras e incluso guardar fragmentos de mensaje.
Más información
- En esencia, puede usar Power Prompt casi como un nodo String Primitive con características adicionales de menús desplegables para elegir sus incrustaciones, e incluso loras, sin procesamiento adicional. Esto enviará solo el
TEXT
sin formato a otro nodo para cualquier procesamiento lora, codificación CLIP, etc.- Conecte un
CLIP
a la entrada para codificar el texto, con la salidaCLIP
yCONDITIONING
directamente desde el nodo.- Conecte un
MODEL
a la entrada para analizar y cargar cualquier etiqueta<lora:...>
en el texto automáticamente, sin necesidad de Lora Loaders por separado.
Igual que el Power Prompt anterior, pero sin soporte LORA; hecho para un mensaje negativo ligeramente más limpio (ya que los mensajes negativos no admiten loras) .
El hermano SDXL del indicador de encendido anterior. Contiene text_g y text_l como entradas de texto independientes, así como un par de ranuras de entrada más necesarias para garantizar una codificación de clip adecuada. combinar con
Al igual que el nodo
Power Prompt - Simple
, este es esencialmente el mismo que el Power Prompt SDXL pero sin soporte de lora para mensajes positivos no lora o mensajes negativos SDXL (ya que los mensajes negativos no admiten loras) .
Solo algunos campos de configuración para solicitudes SDXL. Honestamente, también podría usarse para modelos que no sean SDXL.
Un nodo potente para ramificar su flujo de trabajo. Funciona eligiendo la primera entrada de contexto que no sea nula/vacía.
Más información
- Pase varios nodos de contexto y el cambio de contexto elegirá automáticamente el primer contexto no nulo para continuar.
- ¿Se pregunta cómo alternar contextos a nulos? Úselo junto con Fast Silenciador o Fast Groups Silenciador
Un nodo potente similar al cambio de contexto anterior, que elige la primera entrada que no es nula/vacía.
Más información
- Pase varias entradas del mismo tipo y Any Switch elegirá automáticamente el primer valor no nulo para continuar.
- ¿Se pregunta cómo alternar contextos a nulos? Úselo junto con Fast Silenciador o Fast Groups Silenciador
Fast Groups Muter es un nodo sin entrada que recopila automáticamente todos los grupos en su flujo de trabajo actual y le permite silenciar y reactivar rápidamente todos los nodos dentro del grupo.
Más información
Los grupos se mostrarán automáticamente, aunque puede filtrar, ordenar y más desde las Propiedades del nodo (haciendo clic derecho en el nodo y seleccionando "Propiedades" o "Panel de propiedades" en el menú) . Las propiedades incluyen:
matchColors
: agregue solo grupos que coincidan con los colores proporcionados. Pueden ser colores ComfyUI (rojo, azul pálido) o códigos hexadecimales (#a4d399). Se pueden agregar varios, delimitados por comas.
matchTitle
: filtra la lista de opciones por coincidencia de título (coincidencia de cadena o expresión regular).
showNav
: agrega o elimina una flecha de navegación rápida para llevarte al grupo. (predeterminado: verdadero)
sort
: ordena los botones por "alfanumérico", "posición" del gráfico o "alfabeto personalizado". (predeterminado: "posición")
customSortAlphabet
: cuando la propiedad de clasificación es "alfabeto personalizado", puede definir el alfabeto a usar aquí, que coincidirá con el comienzo de cada nombre de grupo y se ordenará según él. Si los títulos de los grupos no coinciden con ninguna entrada alfabética personalizada, se colocarán después de los grupos que sí lo hagan, ordenados alfanuméricamente.Puede ser una lista de caracteres individuales, como "zyxw..." o cadenas delimitadas por comas para mayor control, como "sdxl,pro,sd,n,p".
Tenga en cuenta que cuando el título de dos grupos coincide con la misma entrada del alfabeto personalizado, el alfabeto alfanumérico normal rompe el empate. Por ejemplo, un alfabeto personalizado de "e,s,d" ordenará nombres de grupos como "SDXL, SEGS, Detailer" aunque el alfabeto personalizado tenga una "e" antes de "d" (donde se puede esperar que "SE" esté antes "DAKOTA DEL SUR").
Para que "SEGS" aparezca antes de "SDXL", puede utilizar cadenas más largas. Por ejemplo, el valor alfabético personalizado de "se,s,f" funcionaría aquí.
toggleRestriction
: opcionalmente, intente restringir la cantidad de widgets que se pueden habilitar a un máximo de uno, o siempre a uno.Nota: Si usa "máximo uno" o "siempre uno", esto solo se aplica al hacer clic en un interruptor en este nodo; Si los nodos dentro de los grupos se cambian fuera del clic de alternancia inicial, entonces estas restricciones no se aplicarán y podrían resultar en un estado en el que se habilite más de una alternancia. Esto también podría suceder si los nodos se superponen con varios grupos.
Igual que el silenciador de grupos rápidos anterior, pero configura los nodos conectados en "Bypass" en lugar de "Mute"
Un potente nodo de 'panel de control' para alternar rápidamente los nodos conectados, lo que les permite silenciarlos o habilitarlos rápidamente.
Más información
- Agregue una colección de todos los nodos conectados permitiendo un único punto como "panel de control" para habilitar y deshabilitar nodos rápidamente. Dos nodos distintos; uno para "silenciar" los nodos conectados y otro para "evitar" los nodos conectados.
Igual que Fast Muter pero configura los nodos conectados en "Bypass"
Vaya, este nodo te permite semiautomatizar los nodos conectados y/o ConfyUI.
Más información
- Conecte nodos y, al menos, silenciarlos, omitirlos o habilitarlos cuando se presiona el botón.
- Ciertos nodos exponen acciones adicionales. Por ejemplo, en el nodo
Seed
puede configurarRandomize Each Time
oUse Last Queued Seed
cuando se presiona el botón.- Además, desde las propiedades del nodo, configure una tecla de acceso directo para alternar las acciones del botón, ¡sin necesidad de hacer clic!
Usado para limpiar fideos, aceptará cualquier número de nodos de entrada y los pasará a otro nodo.
️ Actualmente, esto solo debería estar conectado a Fast Muter , Fast Bypasser o Mute/Bypass Relay .
Un nodo potente que enviará su modo Silencio/Bypass/Activo a todos los nodos de entrada conectados o, si está en un grupo sin entradas conectadas, enviará su modo Silencio/Bypass/Activo a todos los nodos de ese grupo.
Más información
Consejo profesional n.º 1: conecte la salida de este nodo a un Fast Muter o Fast Bypasser para tener un único interruptor que pueda silenciar/evitar/habilitar muchos nodos con un solo clic.
Consejo profesional n.º 2: conecte un nodo de relé de silencio/desvío a las entradas de este nodo para que el relé envíe automáticamente un cambio de silencio/desvío/habilitación al repetidor.
Un nodo avanzado que, cuando trabaja con un repetidor Mute/Bypass , transmitirá los modos de sus nodos de entrada (Mute, Bypass o Activo) a un repetidor conectado (que luego repetirá ese cambio de modo en todas sus entradas).
Más información
- Cuando todos los nodos de entrada conectados estén silenciados, el relé configurará un repetidor conectado para silenciarlo (de forma predeterminada).
- Cuando se omiten todos los nodos de entrada conectados, el relé configurará un repetidor conectado para que se omita (de forma predeterminada).
- Cuando cualquier nodo de entrada conectado esté activo, el relé configurará un repetidor conectado como activo (de forma predeterminada).
- Nota: Si no hay entradas conectadas, el relé configurará un repetidor conectado en su modo cuando se cambie su propio modo . Tenga en cuenta que si hay alguna entrada conectada, se producirán los puntos anteriores y el modo del relé no importa.
- Consejo profesional: puede cambiar qué señales se envían en lo anterior en
Properties
. Por ejemplo, podría configurar un relé inverso que enviará un MUTE cuando cualquiera de sus entradas esté activa (en lugar de enviar una señal ACTIVA), y enviará una señal ACTIVA cuando todas sus entradas estén silenciadas (en lugar de enviar una señal MUTE) , etc.
Un nodo avanzado utilizado para reactivar el silencio de una de sus entradas aleatoriamente cuando el gráfico está en cola (y volver a silenciarlo inmediatamente).
Más información
- Nota: Todos los nodos de entrada DEBEN estar silenciados para comenzar; de lo contrario, este nodo no activará el silencio de otro aleatoriamente. (Esto es poderoso, ya que la imagen generada se puede arrastrar y la entrada elegida ya se activará y funcionará sin ninguna acción adicional).
- Consejo: conecte la salida de un repetidor a la entrada de este nodo y coloque ese repetidor en un grupo sin ninguna otra entrada, y silenciará/activará el silencio de todo el grupo.
Un nodo puramente visual que le permite agregar una etiqueta flotante a su flujo de trabajo.
Más información
- El texto que se muestra es el "Título" del nodo y puede ajustar el tamaño de fuente, la familia de fuentes, el color de fuente, la alineación del texto, así como el color de fondo, el relleno y el radio del borde del fondo desde las propiedades del nodo. Puede hacer doble clic en el nodo para abrir el panel de propiedades.
- Consejo profesional n.° 1: puede agregar texto de varias líneas desde el panel de propiedades (porque ComfyUI solo le permite cambiar + ingresar allí).
- Consejo profesional n.º 2: puede utilizar la opción "fijar" nativa de ComfyUI en el menú contextual para que la etiqueta se adhiera al flujo de trabajo y haga clic para "continuar". Puedes hacer clic derecho en cualquier momento para desanclarlo.
- Consejo profesional n.º 3: los valores de color son cadenas hexadecimales, como "#FFFFFF" para blanco o "#660000" para rojo oscuro. Puede proporcionar un valor séptimo y octavo (o quinto si usa taquigrafía) para crear un color translúcido. Por ejemplo, "#FFFFFF88" es de color blanco semitransparente.
Gran parte del poder de estos nodos proviene del silenciamiento . El silenciamiento es la base para implementar correctamente múltiples rutas para un flujo de trabajo que utiliza el nodo Cambio de contexto.
Si bien otras extensiones pueden proporcionar modificadores, a menudo se equivocan, lo que hace que su flujo de trabajo realice más trabajo del necesario. Si bien otros conmutadores pueden tener un selector para elegir qué entrada pasar, no detienen la ejecución de las otras entradas, lo que resultará en un desperdicio de trabajo. En cambio, Context Switch funciona eligiendo el primer contexto no vacío para transmitirlo correctamente. Silenciar es una forma de dejar vacío un nodo anterior y no provoca que se realice ningún trabajo adicional cuando se configura correctamente.
Silenciar y, por lo tanto, usar interruptores, a menudo puede confundir a las personas al principio porque parece que silenciar un nodo o usar un interruptor debería poder detener o dirigir el flujo de avance del gráfico. Sin embargo, este no es el caso y, de hecho, el gráfico comienza a funcionar al revés.
Si tiene un flujo de trabajo que tiene una ruta como ... > Context > KSampler > VAE Decode > Save Image
inicialmente puede parecer que debería poder silenciar ese primer nodo de contexto y el gráfico se detendría allí al avanzar y omitir el resto de ese flujo de trabajo.
Pero descubrirá rápidamente que eso provocará un error, porque el gráfico en realidad no avanza. Cuando se procesa un flujo de trabajo, primero retrocede comenzando en cada "Nodo de salida" (Imagen previa, Guardar imagen, incluso "Cadena de visualización", etc.) y luego retrocede hasta todas las rutas posibles para llegar allí.
Entonces, con ese ejemplo ... > Context > KSampler > VAE Decode > Save Image
de arriba, en realidad queremos silenciar el nodo Save Image
para detener esta ruta. Una vez que lo hagamos, dado que el nodo de salida desapareció, ninguno de estos nodos se ejecutará.
Echemos un vistazo a un ejemplo.
El uso del interruptor de contexto (color aguamarina en la captura de pantalla) alimenta las entradas de contexto en orden de preferencia. En el flujo de trabajo anterior, el contexto Upscale Out
es el primero, por lo que si está habilitado, se elegirá para la salida. De lo contrario, se elegirá la segunda ranura de entrada que proviene del contexto redirigido desde arriba (antes del stand de Upscaler).
Upscale Preview
se encuentra después del nodo contextual Upscale Out
y utiliza la imagen del mismo en lugar de la imagen del VAE Decoder
exclusivo. Esto es a propósito, cuando deshabilitamos el contexto Upscale Out
, ninguno de los nodos Upscaler se ejecutará, lo que ahorra valiosos ciclos de GPU. Si tuviéramos la vista previa conectada directamente al VAE Decoder
el escalador siempre se ejecutaría para generar la vista previa, incluso si tuviéramos el nodo contextual Upscale Out
deshabilitado. Ahora podemos desactivar el nodo contextual Upscale Out
silenciandolo . Resaltarlo y presionar ctrl + m
funcionará. Al hacerlo, su salida será Ninguna y no pasará nada a los nodos adicionales. En el diagrama puedes ver que la Upscale Preview
está en rojo, pero está bien; no hay errores reales para detener la ejecución.
Ahora, conectémoslo al nodo Fast Muter
. The Fast Muter
funciona como panel agregando alternancias rápidas para cualquier nodo conectado (ignorando redirecciones). En el diagrama, tenemos conectados el nodo de contexto Upscaler Out
y el nodo de contexto Save File
. Entonces, podemos habilitarlos y deshabilitarlos rápidamente.
Por último, y de forma opcional, podrás ver el Node Collector
. Úselo para limpiar los fideos si lo desea y conéctelo al silenciador. Puede conectarle cualquier cosa, pero hacerlo puede interrumpir la ejecución de su flujo de trabajo.
rgtres-comfy agrega varias mejoras, características y optimizaciones a ComfyUI que no están directamente vinculadas a los nodos.
Una barra de progreso mínima que se extiende a lo largo de la parte superior de la ventana de la aplicación y que muestra el tamaño de la cola, el progreso actual de la ejecución de un aviso (dentro de la misma ventana) y también el progreso de los nodos de varios pasos.
Puede eliminar/habilitar desde la configuración de rgtres-comfy, así como configurar la altura/tamaño.
? ¡La versión más nueva de ComfyUI ya no sufre de recursividad de ejecución deficiente! Esta característica se ha eliminado de rgtres-comfy.
A veces desea simplemente poner en cola una o dos rutas a nodos de salida específicos sin ejecutar todo el flujo de trabajo. Bueno, ahora puedes hacerlo haciendo clic derecho en un nodo de salida y seleccionando
Queue Selected Output Nodes (rgthree)
.Más información
Seleccione los nodos de salida que desea ejecutar.
Nota: Solo se capturan y atraviesan los nodos de salida, no todos los nodos seleccionados. Entonces, si selecciona una salida Y un nodo de una ruta diferente, solo se ejecutará la ruta conectada a la salida y no los nodos que no sean de salida, incluso si fueron seleccionados.
Nota: Todo el flujo de trabajo se serializa y luego recortamos lo que no queremos para el backend. Entonces, cosas como todas las semillas aleatorias/incrementadas/decrementadas se ejecutarán incluso si ese nodo no se envía al final, etc.
(Desactivado de forma predeterminada mientras experimentas, actívalo en configuraciones cómodas de rgtres) .
Detecta automáticamente subdirectorios de nivel superior en largas listas combinadas (como Load Checkpoint) y divídelos en subdirectorios.
(Desactivado de forma predeterminada mientras experimentas, actívalo en configuraciones cómodas de rgtres) .
Agrega íconos de alternancia para silenciar y/o omitir en la parte superior derecha de los encabezados de grupo para alternar con un solo clic los grupos que puede estar viendo actualmente.
(Desactivado de forma predeterminada mientras experimentas, actívalo en configuraciones cómodas de rgtres) .
Permite arrastrar y soltar un flujo de trabajo de imagen/JSON de una generación anterior y anular los widgets del mismo nodo (que coinciden con la misma identificación y tipo). Esto es útil si tiene varias generaciones que utilizan el mismo flujo de trabajo general y desea importar solo algunos datos, como la semilla o el mensaje de una generación anterior, etc.
Al hacer clic derecho en un nodo que tiene una imagen, debería tener un elemento de menú contextual de "Copiar imagen" que le permitirá copiar la imagen directamente a su portapapeles.
? Creo que esto se ha graduado, y ComfyUI también agregó recientemente esta configuración. No obtendrá dos elementos del menú; mi código verifica que no haya un elemento "Copiar imagen" allí antes de agregarlo.
Si a sus flujos de trabajo a veces les faltan conexiones, o incluso errores durante la carga, inicie ComfyUI y vaya a http://127.0.0.1:8188/rgtwo/link_fixer, lo que le permitirá colocar una imagen o un archivo json de flujo de trabajo y verificar y arregle los enlaces malos.
También puede habilitar una verificación de reparación de enlaces en la configuración de rgtwo-comfy para recibir una alerta si carga un flujo de trabajo con datos de enlaces incorrectos para comenzar.