Listas de prompts en ComfyUI: renderiza un bloqueo 3D en decenas de estilos artísticos durante la noche

Carga cientos de prompts desde un archivo de texto con el Inspire Pack, añade un sujeto y un fondo fijos con Text Concatenate y empareja una carpeta de capturas 3D con prompts a juego para que cada imagen reciba el correcto.

Anton Tenitsky13 de octubre de 20266 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.

Un soldado con armadura de camuflaje rosa y gris y una visera oscura, una de las variaciones de estilo renderizadas a partir de una lista de prompts

Una lista de prompts te permite renderizar muchas variaciones del mismo sujeto mientras duermes: 50, 300 o 500 prompts, según cómo la estructures. Yo la usé para distintos estilos y colores de mis bloqueos 3D. Funciona con Flux, SDXL o Stable Diffusion; Flux suele dar resultados más bonitos.

Esta guía cubre tres configuraciones, de la más simple a la más compleja: una lista contra una imagen, la misma lista con un sujeto y un fondo fijos añadidos, y una carpeta de capturas recorrida junto con prompts a juego. La parte del ControlNet de profundidad, que convierte la captura 3D en la estructura de la imagen, se explica en el proceso automatizado de 3D a concept art. Aquí me concentro en los prompts.

En resumen

  • Paquetes: Inspire Pack, rgthree, WAS Node Suite y WWAA custom nodes.
  • El archivo: línea positive:, línea negative:, ---, repetido. Solo minúsculas.
  • Ubicación: dentro de la carpeta del Inspire Pack en custom_nodes.
  • Concatena un sujeto («tank») y un fondo a cada estilo.
  • Imágenes + prompts: mismo número, mismo orden, un solo contador que controla ambos.

Opción más sencilla: si solo necesitas un prompt por línea, sin negativos ni imágenes, mi nodo Prompt Cycler lo hace con un solo nodo.

Instala los nodos

Necesitas el Inspire Pack, rgthree, el WAS Node Suite y los WWAA custom nodes (para el contador de bucle anidado), todos desde el ComfyUI Manager. Es una instalación algo compleja. Cuando busqué, otras opciones te permiten ejecutar tres o cinco prompts a la vez, pero no encontré ninguna para 50 o 100.

Escribe la lista de prompts

La lista es un archivo .txt sencillo. Describo estilos, no objetos: nada de tanque, soldado o robot, solo una descripción genérica del aspecto. El objeto se añade después con la concatenación.

Un archivo de texto con una lista de prompts en el Bloc de notas con entradas formadas por una línea positive, una línea negative y tres guiones
Cada entrada: una línea positive, una línea negative y luego tres guiones.

El formato es muy importante:

positive: ornate sci-fi style with gilded armor segments, embedded gemstones, ...
negative: glossy surfaces, ornamental engravings, glowing decorative elements, ...

---

positive: sci-fi ork style, heavily armored with jagged welded metal plates, ...
negative: bulky shape, exposed wiring, analog dials, scratched paint, retro features

---
  • Empieza las líneas con positive: y negative: en minúsculas. Con una mayúscula, la lista no funciona; es muy sensible a esto.
  • Separa las entradas con tres guiones (más también vale).

Escribir listas con ChatGPT: pega una entrada con este formato y pide, por ejemplo, 10 estilos de ciencia ficción. Normalmente tienes que retocarlo y pedirle que mantenga los guiones y no añada texto aleatorio. Una molestia: no puedes saber fácilmente cuántas entradas obtuviste. Pedí 50 y obtuve 47; solo lo descubrí al pegarlo en un Google Doc y buscar «positive». Si conoces una forma mejor, dímela en los comentarios.

Un LLM dentro de ComfyUI también puede generar prompts. Suena genial, pero es más lento, menos predecible, y un buen modelo puede ocupar unos 10 GB. Una lista de prompts tarda milisegundos.

Dónde va el archivo: dentro de la carpeta del Inspire Pack en custom_nodes (yo uso su carpeta de ejemplos). Las subcarpetas funcionan, y lee todos los archivos de texto que haya en ellas, pero no leerá ninguna otra ubicación.

Configuración 1: una lista de prompts sencilla

El nodo Load Single Prompt From File (Inspire) con un archivo de prompts seleccionado y una entrada de índice, sobre una nota que explica el formato del archivo
Load Single Prompt From File: elige una entrada por índice.
  1. Load Single Prompt From File (Inspire) carga la lista. Elige el archivo; su entrada index selecciona la entrada.
  2. Su ZIPPED_PROMPT va al nodo Unzip Prompt / Bind, que da positive y negative. Ese nodo también tiene campos de prompt y una entrada de imagen. Lo que escribas ahí no se transmite, y en mi configuración la entrada de imagen tenía que estar rellena para que el nodo funcionara aunque la imagen no vaya a ningún sitio.
  3. Positive va a un nodo Preview Text (para ver la línea actual) y al CLIP Text Encode positivo.
  4. Un Nested Loop Counter (WWAA) alimenta el índice: fija su máximo en el número de entradas, aquí 10. Un Display Int muestra qué entrada se está ejecutando.
El nodo bind del Inspire Pack con las salidas image, positive, negative y prompt_label
El nodo que descomprime separa cada entrada en positive y negative.

Pruébalo antes de renderizar: desactiva los nodos de imagen (selecciónalos, Ctrl+B) y ejecuta con Ctrl+Enter. Si el nombre del archivo es incorrecto, da un error. Si no, el texto de vista previa y el contador se actualizan en cada ejecución a medida que avanza por la lista. Mantén activo el nodo de texto de vista previa mientras resuelves problemas.

Configuración 2: añade un sujeto y un fondo

Añade un nodo Text Concatenate (WAS). La lista de prompts entra en text_a, y text_b es una cadena más larga que pego con más estilo. Normalmente pongo ahí el objeto real («tank») más un entorno: «background winter landscape», «alien planet» o «desert».

Un nodo Text Concatenate que une el estilo cíclico con una cadena fija, y un nodo Preview Text que muestra far-future military style terminando en tank, background winter landscape
El estilo de la lista más «tank, background winter landscape» en cada ejecución.

Algunos estilos funcionaron mejor que otros: «clean medical tech» no dio buenos resultados; un estilo «high empire sci-fi» (piensa en El destino de Júpiter) dio las mejores imágenes; «industrial cyberpunk» también fue bueno.

El orden importa. Pon primero las palabras más importantes. Para dar más peso al sujeto, intercambia las entradas para que «tank» vaya primero. Esto importa sobre todo en SDXL, pero también ayuda con Flux.

Configuración 3: una carpeta de imágenes con prompts a juego

Aquí 18 capturas de distintos objetos se recorren junto con los prompts. Lo difícil es mantenerlos sincronizados: cuando se carga la captura del APC, el prompt tiene que decir «military APC».

  • Escribe la lista para la carpeta. 18 imágenes, 18 prompts, en el mismo orden: si la imagen 5 es un cuchillo, el prompt 5 es un cuchillo; el 8 es un dron; el 12 es una nave espacial. Estos prompts nombran solo el objeto, sin estilo, porque el estilo viene del nodo de concatenación (aquí con «blue background» para aislar los objetos).
  • Un solo contador controla ambos. El entero del contador entra en el índice del prompt y en el index de Load Image Batch (WAS), así que la quinta ejecución carga la quinta imagen y el quinto prompt.
  • Fija el contador en 18. Al principio lo había dejado en 10.
El nodo WAS Load Image Batch en modo single_image con una entrada de índice conectada y la ruta de una carpeta de capturas
Load Image Batch elige la imagen por índice, desde el mismo contador que los prompts.

Reinicia el contador

Para empezar de nuevo desde la primera entrada, pon el reset del contador en true y ejecuta una vez (el número vuelve a cero), luego vuelve a ponerlo en false y ejecuta otra vez.

Qué configuración usar

Sinceramente, normalmente ejecuto la lista simple con concatenación contra un único objeto: 50 estilos de un mismo tanque. Cuando necesito probar muchas ideas de concepto durante la noche, emparejar una carpeta de capturas con una lista es muy útil. Mi versión final de este flujo también ordena las imágenes en verticales y horizontales (mira ordenar imágenes por relación de aspecto) y ejecuta 18 objetos contra 54 entradas de estilo.

Un gran flujo de ComfyUI visto de lejos, con grupos para la carga de imágenes, la ordenación, las listas de prompts y la concatenación
La versión completa: ordenación de imágenes, 18 prompts y estilo adicional.

El sistema es algo complicado. Un custom node que leyera el número de imágenes de una carpeta y ayudara con los prompts lo haría más fácil; más tarde construí un Prompt Cycler más sencillo para la parte de los prompts. Los flujos están en mi Patreon para SDXL y para Flux.

Ver la versión en vídeo (10:48)

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 doy formato a un archivo de lista de prompts para el Inspire Pack?

Cada entrada es una línea que empieza por «positive:», una línea que empieza por «negative:» y una línea separadora de tres guiones (---). Usa «positive» y «negative» en minúsculas; con mayúsculas la lista no se carga.

¿Dónde van los archivos de listas de prompts?

En la propia carpeta del Inspire Pack dentro de custom_nodes (por ejemplo, su carpeta prompts/example). Lee cualquier subcarpeta de ahí, pero no otras ubicaciones.

¿Cómo emparejo una carpeta de imágenes con una lista de prompts?

Escribe la lista de prompts en el mismo orden que las imágenes, con el mismo número de entradas, y controla tanto el índice del prompt como el índice de Load Image Batch con un mismo contador.

¿Por qué no usar un LLM dentro de ComfyUI para escribir los prompts?

Funciona, pero es más lento y menos predecible, y un buen modelo puede ocupar unos 10 GB. Una lista de prompts se carga en milisegundos.

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