Prompt Cycler: ejecuta una lista de prompts en ComfyUI, uno por imagen

Mi nodo personalizado gratuito convierte cada línea de un cuadro de texto en su propio prompt y pasa al siguiente en cada ejecución. Cómo instalarlo, conectarlo, mostrar el prompt actual y añadir un sujeto fijo a cada línea con un nodo Concatenate.

Anton Tenitsky13 de octubre de 20264 min de lecturaVersión en vídeo más abajo

Esta guía se tradujo del inglés con IA y puede contener errores. Leer el original.

El nodo Prompt Cycler en ComfyUI con una lista de prompts, el modo de ciclo en sequential, junto a una imagen generada de formaciones rocosas del desierto al atardecer

Recorrer una lista de prompts era sorprendentemente incómodo en ComfyUI, así que construí mi propio nodo. En el Prompt Cycler, cada línea de texto es su propio prompt. Ejecuta el flujo y obtienes el siguiente. Pon en cola unos cientos de ejecuciones y obtendrás unos cientos de imágenes distintas.

Funciona con cualquier modelo, porque lo único que hace es producir texto. Yo normalmente lo uso con Flux; aquí lo demuestro con Stable Diffusion 1.5 normal, que es un modelo muy básico, así que las imágenes no son excelentes.

En resumen

  • Consíguelo: tenitsky/tenitsky-prompt-cycler-simple en GitHub, gratis. Descomprime o clona en ComfyUI/custom_nodes y reinicia.
  • Úsalo: un prompt por línea; su salida prompt va a CLIP Text Encode.
  • Modos: sequential o random; reset_cycle vuelve a empezar desde la primera línea.
  • Extras: Display Any de rgthree muestra el prompt actual; un nodo Concatenate añade un sujeto fijo a cada línea.

Instalación

El nodo todavía no está en el ComfyUI Manager. Instálalo desde GitHub, de cualquiera de estas dos maneras:

  • ZIP: haz clic en Code → Download ZIP y descomprímelo en tu carpeta ComfyUI/custom_nodes.
  • git:
    cd ComfyUI/custom_nodes
    git clone https://github.com/tenitsky/tenitsky-prompt-cycler-simple.git

Si tu ComfyUI está actualizado, no necesitas ejecutar pip install -r requirements.txt. Reinicia ComfyUI.

La página del repositorio de GitHub con el menú Code abierto y Download ZIP resaltado
Code → Download ZIP, y luego descomprime en custom_nodes.

¿Nuevo en ComfyUI? Empieza por fundamentos de nodos de ComfyUI y texto a imagen.

Conéctalo

  1. Haz doble clic en el lienzo y busca Prompt Cycler (aparece como Tenitsky Prompt Cycler Simple). Viene con prompts de ejemplo ya cargados.
  2. Conecta su salida prompt a la entrada de texto de un nodo CLIP Text Encode, y ese al positive del KSampler como de costumbre.
  3. Ejecuta. Cada ejecución toma la siguiente línea.

Sus ajustes:

Ajuste Qué hace
seed / control after generate Déjalo en increment para que cada ejecución avance
cycle_mode sequential recorre la lista en orden; random elige una línea al azar
reset_cycle Vuelve a empezar desde la primera línea
Cuadro de texto Tus prompts, uno por línea, tantos como quieras

El nodo también da cycle_index, el número de la línea actual.

Ver el prompt actual

Me gusta añadir Display Any de rgthree y conectarle el prompt, para ver qué línea se está ejecutando.

Un nodo Display Any (rgthree) mostrando el texto: cat posing in front a space station orbiting a distant planet
Display Any muestra el prompt que se está usando. Aquí, el espacio que falta es el problema del delimitador que se describe más abajo.

Añadir el mismo sujeto a cada prompt

Para poner un personaje concreto en cada escena, añade un nodo Concatenate:

  1. Escribe en él el sujeto, por ejemplo cat posing in front.
  2. Conecta el prompt del cycler como string_b.
  3. Conecta la salida STRING al codificador de texto y a Display Any.
  4. Fija el delimiter en un espacio. Al principio me olvidé y obtuve «in fronta space station».
Un nodo Concatenate con cat posing in front como primera cadena, el cycler conectado como string_b y un campo de delimitador vacío
Concatenate pone el sujeto fijo delante de cada línea. Fija el delimitador en un espacio.

Ahora el gato aparece en cada imagen, sea cual sea la escena.

Una imagen de SD 1.5 de un gato blanco y negro sentado sobre una roca frente a un lago de montaña, con la lista de prompts a la izquierda
«Cat posing in front» más la siguiente línea de la lista: un gato en un lago de montaña. SD 1.5 normal, así que la calidad es básica.

Combinando la concatenación con una lista larga puedes ejecutar miles de prompts.

Por qué lo construí

Esto ha sido un salvavidas para mí. Antes, usaba toda una cadena de nodos para hacer el mismo trabajo: archivos de texto, listas de prompts, un nodo de concatenación aparte con varias entradas y una vista previa. En aquel momento no sabía cómo comprimirlo y simplificarlo.

Un flujo por lotes antiguo de SDXL con Text Concatenate, nodos de cadena, un nodo Bind del paquete Inspire y notas
Lo que usaba antes: muchos nodos para lo que ahora hace un solo nodo.

Para una forma barata de ejecutar listas grandes de prompts, mira miles de imágenes de IA por menos de 0,001 $ cada una. Para el enfoque anterior, de varios nodos, aplicado a renders 3D, mira listas de prompts: un render 3D en muchos estilos artísticos.

Si tienes ideas para otros nodos, déjalas en los comentarios del vídeo. Si fueran útiles, puede que los construya y los comparta.

Ver la versión en vídeo (3:17)

Todo lo anterior también está en el vídeo, si prefieres seguirlo en pantalla. El vídeo está en inglés.

Preguntas frecuentes

¿Cómo ejecuto un prompt distinto para cada imagen en ComfyUI?

Pon un prompt por línea en el nodo Prompt Cycler y conecta su salida prompt a un nodo CLIP Text Encode. Cada ejecución usa la siguiente línea; pon en cola tantas ejecuciones como líneas tengas.

¿Puedo añadir el mismo sujeto a todos los prompts de la lista?

Sí. Pon el sujeto en un nodo Concatenate, conecta el prompt del cycler como la otra cadena, fija un espacio como delimitador y envía el resultado al codificador de texto.

¿Está el Prompt Cycler en el ComfyUI Manager?

Todavía no. Instálalo desde GitHub, bien descargando el ZIP en custom_nodes o con git clone.

¿Funciona con Flux o SDXL?

Funciona con cualquier modelo, porque solo produce texto. Yo normalmente lo uso con Flux; la demostración usa SD 1.5.

Anton Tenitsky es artista 3D con más de 15 años en gráficos por ordenador, que ha trabajado con Nickelodeon, Gameloft, Marvel Rivals y muchos otros clientes. Más sobre mí

Guías relacionadas