Serie ComfyUI (XXIII) — Secuencia de imágenes de un personaje con prompts y poses sincronizadas desde CSV
- 22 ago
- 13 min de lectura
En el artículo anterior usamos un CSV como Storyboard Plan para generar varias escenas del mismo personaje en ComfyUI. El sistema funcionaba bien, pero tenía una limitación clara: la pose dependía del prompt. Podíamos escribir que el personaje estaba saltando, escalando o atacando, pero era el modelo quien interpretaba esa acción.
En este artículo vamos a dar el siguiente paso: sincronizar cada prompt con una imagen de pose.
Para ello combinaremos:
SDXL
LoRA
IPAdapter
CSVToPrompts
OpenPose
ControlNet
Load Image Batch
un contador maestro
La idea central es sencilla:
cada escena tendrá su prompt y su pose asociada.
Así pasamos de una secuencia guiada por texto a un storyboard mucho más controlado.

Qué problema resolvemos respecto al artículo anterior
En el artículo XXII conseguimos que ComfyUI generara varias escenas leyendo los prompts desde un CSV. Eso nos permitía trabajar de forma más ordenada: cada fila del archivo representaba una escena distinta del storyboard.
Pero había una limitación importante.
El CSV controlaba el texto, pero no controlaba la pose. Si una escena decía que el personaje estaba saltando, atacando o escalando, el modelo intentaba interpretarlo, pero no tenía una referencia visual exacta de la postura.
En este artículo resolvemos ese problema añadiendo una imagen de pose para cada escena.
La diferencia es clara:
Artículo | Qué controlaba el CSV | Pose |
XXII | Prompt positivo y negativo | Interpretada por el modelo |
XXIII | Prompt positivo, negativo y pose asociada | Guiada con OpenPose |
Ahora cada escena queda mucho mejor definida:
prompt para indicar qué ocurre, pose para indicar cómo debe colocarse el personaje.
Este cambio convierte el workflow en un storyboard más dirigido y mucho menos dependiente de la interpretación libre del modelo.
La idea clave: una escena = un prompt + una pose
En este workflow cada escena se define con dos elementos principales:
un prompt
una imagen de pose
El prompt describe qué ocurre en la escena: el entorno, la acción, la iluminación, el estilo y los detalles visuales.
La imagen de pose define cómo debe colocarse el personaje: si está de pie, corriendo, saltando, escalando o en posición de combate. Esta separación es importante porque nos permite controlar mejor el resultado.
Elemento | Qué define |
Prompt | Qué ocurre en la escena |
Imagen de pose | Cómo se coloca el personaje |
IPAdapter | Quién es el personaje |
LoRA | Qué estilo visual mantiene |
De esta forma, cada fila del storyboard tiene una función muy clara. No estamos dejando que el modelo imagine libremente toda la escena. Le damos una dirección más precisa:
esta es la escena, este es el personaje, y esta es la postura que debe seguir.

🎯Qué vamos a construir
En este artículo vamos a construir un workflow para generar una secuencia de imágenes donde cada escena tiene su propio prompt y su propia pose.
Para ello utilizaremos una estructura basada en:
Elemento | Función |
SDXL | Modelo base de generación |
LoRA | Estética cyberpunk industrial |
IPAdapter | Identidad visual del personaje |
CSVToPrompts | Lectura de prompts desde CSV |
Load Image Batch | Carga secuencial de imágenes de pose |
OpenPose | Extracción de la postura |
ControlNet | Aplicación de la pose al resultado |
Number Counter | Sincronización entre prompt y pose |
La clave del workflow está en el contador. Ese contador hace que la fila del CSV y la imagen de pose avancen juntas. Así conseguimos que la escena 0 use el prompt 0 y la pose 0, que la escena 1 use el prompt 1 y la pose 1, y así sucesivamente.
Requisitos
Para seguir este artículo y ejecutar correctamente el workflow SDXL + LoRA + IPAdapter + OpenPose + CSV, necesitamos tener preparados varios elementos.
💻 Entorno
Necesitamos tener:
ComfyUI instalado y funcionando correctamente
GPU recomendada para trabajar con SDXL
El workflow JSON del artículo
El archivo CSV con las escenas
La carpeta con las imágenes de pose
👉 Incluiremos al final del artículo un paquete descargable con el workflow, el CSV/Excel y las imágenes de pose para que el lector pueda probarlo con mayor facilidad.
🧠 Modelo SDXL
En este workflow utilizamos como modelo base:
SDXL\juggernautXL_v8Rundiffusion.safetensors
🎨 LoRA utilizado
Para mantener una estética común durante toda la secuencia utilizamos:
SDXL\cyberpunk_xl_v1.safetensors
👤 IPAdapter
IPAdapter será el encargado de mantener la identidad visual del personaje.
En este workflow utilizamos:
ip-adapter-plus_sdxl_vit-h.safetensors
Y como modelo visual:
CLIP-ViT-H-14-laion2B-s32B-b79K.safetensors
La imagen de referencia del personaje se cargará una sola vez y se reutilizará durante toda la secuencia.
🧍 OpenPose y ControlNet
Para controlar la postura de cada escena utilizaremos:
SDXL\t2i-adapter-openpose-sdxl-1.0.safetensors
La imagen de pose se carga automáticamente desde una carpeta, se procesa con OpenPosePreprocessor y después se aplica mediante ControlNetApplyAdvanced.
📄 Nodos personalizados
Además de los nodos básicos de ComfyUI, este workflow utiliza varios custom nodes:
Nodo | Función |
CSVToPrompts | Leer prompts desde el CSV |
Load Image Batch | Cargar imágenes de pose desde una carpeta |
Number Counter | Sincronizar prompt y pose |
Show Text | Mostrar el prompt y la pose activa |
ComfyMath | Ayudar al reseteo del contador |
El más importante a nivel de lógica es Number Counter, porque actúa como índice maestro de la secuencia.
📁 Archivos del storyboard
El lector necesitará preparar o copiar estos elementos:
Workflow de ComfyUI
wf_ComfyUI_XXIII_Storyboard_IPAdapter_OpenPose_LoRA_CSV_PoseSequence.json
CSV con las prompts
Storyboard_wf_ComfyUI_XXIII_Storyboard_IPAdapter_OpenPose_LoRA_CSV_001.csv
carpeta de poses: carpeta donde ponderemos las imágenes de las poses. La carpeta de poses ha de tener las imágenes ordenadas de forma secuencial (Pose_00_Entrada, Pose_01_Alarma...)
Poses_CSV
🗂️ Crear o cargar el workflow en ComfyUI
Tienes dos maneras de trabajar con este flujo:
🅰️ Opción A — Cargar el workflow ya creado
1️⃣ Descarga el archivo JSON adjunto:
📁 wf_ComfyUI_XXIII_Storyboard_IPAdapter_OpenPose_LoRA_CSV_PoseSequence.json
2️⃣ Abre ComfyUI.
3️⃣ En el menú superior selecciona:Workflow → Load
4️⃣ Carga el archivo JSON. Verás en el lienzo todos los nodos conectados y listos para funcionar.

🅱️ Opción B — Crear el workflow desde cero
Si prefieres entenderlo pieza a pieza, puedes recrearlo manualmente. En la siguiente sección explicamos qué hace cada bloque del flujo.

El Storyboard Plan avanzado
En el artículo anterior el CSV funcionaba como una lista de prompts. Ahora el storyboard no solo define qué ocurre en cada escena, sino también qué pose debe utilizarse.
La lógica es sencilla:
Elemento | Función |
scene_id | Identifica la escena |
scene_name | Describe la escena |
positive | Prompt positivo |
negative | Prompt negativo |
pose_image | Imagen de pose asociada |
output_prefix | Nombre de salida |
comments | Notas internas |
Aunque el workflow no carga directamente la columna pose_image, sí utilizamos esa información para organizar la carpeta de poses. Es decir, el CSV actúa como documento maestro del storyboard, y la carpeta de poses debe seguir el mismo orden.
Por ejemplo:
scene_id | Prompt | Pose |
0 | Entrada en la fábrica | Pose_00_Entrada.png |
1 | Alarma | Pose_01_Alarma.png |
2 | Espada | Pose_02_Espada.png |
3 | Combate | Pose_03_Combate.png |
La clave es que el número de la fila y el número de la imagen coincidan. De esta forma, cuando el contador indique 0, el workflow leerá el prompt 0 y cargará la pose 0. Cuando indique 1, leerá el prompt 1 y cargará la pose 1, y así sucesivamente.
👉 El CSV deja de ser solo una tabla de prompts y se convierte en un pequeño plan de producción para generar toda la secuencia.
Preparar la carpeta de poses
En este workflow las imágenes de pose se cargan desde una carpeta. Esto significa que no basta con tener las imágenes guardadas en cualquier sitio: deben estar ordenadas de forma clara y seguir la misma secuencia que las filas del CSV.
La lógica que buscamos es esta:
Índice | Fila del CSV | Imagen de pose |
0 | Escena 0 | Pose_00_Entrada.png |
1 | Escena 1 | Pose_01_Alarma.png |
2 | Escena 2 | Pose_02_Espada.png |
3 | Escena 3 | Pose_03_Combate.png |
De esta forma, cuando el nodo Load Image Batch ordena los archivos por nombre, la imagen 0 coincide con la escena 0, la imagen 1 con la escena 1, y así sucesivamente.
En nuestro caso, las imágenes de pose se colocan en una carpeta dentro de input.
Por ejemplo:
C:\pinokio\api\comfy.git\app\input\Poses\Poses_CSV
El nodo Load Image Batch apunta a esa carpeta y va cargando las imágenes según el índice que recibe del contador.
El contador maestro dentro del workflow
En el workflow usamos un nodo Number Counter como índice de escena. No es un nodo especialmente espectacular, pero en este caso es el que permite que todo el sistema funcione de forma ordenada.
Su configuración es:
Parámetro | Valor |
Tipo | integer |
Operación | increment |
Inicio | -1 |
Máximo | 7 |
Paso | 1 |
La razón de empezar en -1 es práctica. Al ejecutar el workflow, el contador incrementa y el primer valor útil pasa a ser 0. Así la primera ejecución coincide con la primera fila del CSV y con la primera imagen de la carpeta de poses.
La salida int del contador se conecta a tres puntos:
Conexión | Función |
CSVToPrompts | Indica qué fila del CSV debe leer |
Load Image Batch | Indica qué imagen de pose debe cargar |
PreviewAny | Muestra el índice activo |
Este último nodo no es imprescindible, pero resulta muy útil para comprobar rápidamente en qué escena estamos.
🔁 El reset
Para poder volver al inicio de la secuencia sin reiniciar ComfyUI, el contador recibe una señal de reset mediante un nodo auxiliar. No es la solución más elegante, pero sí es práctica: permite reiniciar la cuenta y volver a generar la secuencia desde la escena 0.
En un workflow de pruebas esto es suficiente, porque evita tener que cerrar y abrir ComfyUI cada vez que queremos repetir el storyboard desde el principio.
El workflow: estructura general
El workflow puede entenderse como varios bloques que trabajan en paralelo y se unen antes de la generación final. La estructura general es esta:
Bloque | Función |
Modelo base + LoRA | Define la base visual de la imagen |
IPAdapter | Mantiene la identidad del personaje |
CSVToPrompts | Lee el prompt positivo y negativo de cada escena |
Number Counter | Marca qué escena se está generando |
Load Image Batch | Carga la imagen de pose correspondiente |
OpenPosePreprocessor | Extrae la estructura corporal de la pose |
ControlNetApplyAdvanced | Aplica esa pose a la generación |
KSampler | Genera la imagen final |
La lógica del workflow es bastante limpia. Por un lado, el CSV define el contenido de la escena, por otro, la carpeta de poses define la postura. El contador une ambas partes. Después, IPAdapter mantiene el personaje y ControlNet fuerza la pose antes de llegar al KSampler.
Podemos resumirlo así:
CSV + contador → prompt de escena
poses + contador → imagen de pose → OpenPose → ControlNet
personaje de referencia → IPAdapter
modelo + LoRA → KSampler → imagen final
Entendiendo el workflow paso a paso
Aunque el workflow parece grande, en realidad se entiende mejor si lo leemos de izquierda a derecha. No es un único bloque complejo, sino varias ramas que se combinan antes de generar la imagen final.
1. Modelo base y estilo
El primer bloque carga el modelo SDXL:
SDXL\juggernautXL_v8Rundiffusion.safetensors
Después se aplica el LoRA:
SDXL\cyberpunk_xl_v1.safetensors
Con una fuerza de 0.60 tanto en modelo como en CLIP. Este bloque define la base estética de toda la secuencia.

2. Identidad del personaje
La identidad visual se controla con IPAdapter. El workflow carga una imagen de referencia del personaje y la combina con:
ip-adapter-plus_sdxl_vit-h.safetensors
En este caso usamos un peso moderado, alrededor de 0.40, para que el personaje se mantenga reconocible sin bloquear demasiado la pose ni contaminar la ropa de cada escena.

3. Prompts desde CSV
El nodo CSVToPrompts lee el archivo del storyboard y extrae:
prompt positivo
prompt negativo
Estos textos se envían a los nodos CLIPTextEncode, que preparan el condicionamiento para la generación.
Además, añadimos nodos Show Text para ver en pantalla qué prompt se está usando en cada ejecución.

4. Poses desde carpeta
La pose no se escribe en el prompt. Se carga como imagen mediante Load Image Batch desde una carpeta preparada previamente. El índice que recibe este nodo indica qué imagen de pose debe utilizar en cada escena.
Después, esa imagen pasa por OpenPosePreprocessor, que extrae la estructura corporal.

5. Aplicación de la pose
La pose procesada se aplica con ControlNetApplyAdvanced.
Aquí se combina:
el prompt positivo
el prompt negativo
el modelo de ControlNet/OpenPose
la imagen procesada de la pose
El resultado es un condicionamiento más dirigido, que ayuda al modelo a respetar la postura definida para cada escena.

6. Generación final
Por último, todo llega al KSampler:
modelo base con LoRA e IPAdapter
prompt positivo
prompt negativo
pose aplicada con ControlNet
latent inicial de 768 x 1152
Después, VAEDecode convierte el resultado en imagen y SaveImage guarda cada escena generada. El resultado final es una secuencia donde el personaje mantiene su identidad, sigue una estética común y adopta una pose distinta en cada escena.
Ajustes clave: IPAdapter vs OpenPose
En este workflow hay dos fuerzas que influyen mucho en el resultado final:
Elemento | Qué intenta controlar |
IPAdapter | La identidad visual del personaje |
OpenPose + ControlNet | La postura de la escena |
Si IPAdapter tiene demasiado peso, el personaje mantiene mejor la identidad, pero puede resistirse a cambiar de postura.
Si ControlNet tiene más presencia, la pose se respeta mejor, pero la identidad puede perder algo de fuerza.
👤 Peso de IPAdapter
En este workflow usamos IPAdapter con un peso aproximado de:
0.40
Es un valor moderado. Funciona bien cuando la imagen de referencia del personaje puede arrastrar detalles no deseados, como ropa, encuadre o postura original.
Si queremos reforzar más la identidad, podemos probar valores como:
0.50 - 0.65
Pero conviene hacerlo con cuidado, porque cuanto más fuerte sea IPAdapter, más puede condicionar la composición final.
🧍 Fuerza de ControlNet
Para la pose usamos ControlNetApplyAdvanced con una fuerza de:
1.20
Y una influencia aproximada desde el inicio hasta casi el final de la generación:
start: 0
end: 0.9
Esto ayuda a que la postura tenga bastante peso sin bloquear completamente la creatividad del modelo.
🎛️ Regla práctica
La forma más sencilla de ajustar el workflow es esta:
Problema | Ajuste recomendado |
El personaje no se parece suficiente | Subir IPAdapter |
La pose no se respeta | Subir ControlNet o bajar IPAdapter |
La ropa de la referencia contamina la escena | Bajar IPAdapter |
La imagen queda demasiado rígida | Bajar un poco ControlNet |
La escena pierde estilo | Revisar LoRA y prompt |
No hay un valor perfecto para todos los casos. Lo importante es entender qué controla cada parte del workflow y ajustar solo una cosa cada vez. Así es mucho más fácil saber qué cambio ha mejorado o empeorado la imagen.
Generando la secuencia completa
Una vez configurado el CSV, la carpeta de poses y el contador, ya podemos generar la secuencia. La idea es ejecutar el workflow varias veces, dejando que el contador avance escena por escena.
En nuestro caso trabajamos con 8 escenas, así que le indicaremos que se ejecute 8 veces seguidas:

Índice | Escena |
0 | Entrada en la fábrica |
1 | Alarma en la línea de producción |
2 | Activación de espada de energía |
3 | Preparada para el combate |
4 | Saltando |
5 | Escalando |
6 | Con metralleta |
7 | Atacando con rodillazo |
Antes de revisar la imagen final, conviene comprobar tres cosas:
qué índice está activo;
qué prompt se está leyendo;
qué imagen de pose se ha cargado.
Para eso añadimos nodos de previsualización dentro del workflow.
El nodo PreviewAny muestra el índice actual.
Los nodos Show Text muestran el prompt positivo, el prompt negativo y el nombre del archivo de pose cargado.
Esto permite detectar rápidamente si algo se ha desincronizado.
🧪 Prueba recomendada
Antes de lanzar todas las escenas, lo mejor es hacer una prueba con las tres primeras.
Si el índice, el prompt y la pose coinciden, podemos continuar con el resto de la secuencia.
Si algo no encaja, normalmente el problema estará en uno de estos puntos:
el contador no ha empezado en el valor correcto;
la carpeta de poses no está ordenada como esperábamos;
el CSV tiene una fila desplazada;
hay imágenes extra dentro de la carpeta de poses.
Cuando todo está alineado, cada ejecución genera una escena distinta, pero manteniendo el mismo personaje, la misma estética general y una postura definida previamente.
Qué puedes probar a continuación
Una vez que el workflow funciona, lo interesante es empezar a experimentar.
La estructura ya está preparada para generar una secuencia controlada, así que podemos modificar diferentes partes sin rehacer todo desde cero.
Prueba | Qué permite explorar |
Cambiar las poses | Crear una secuencia con acciones diferentes |
Añadir más escenas al CSV | Ampliar el storyboard |
Usar otro personaje de referencia | Mantener la misma estructura con otra identidad visual |
Cambiar el LoRA | Probar otro estilo artístico |
Ajustar IPAdapter | Reforzar o suavizar la identidad del personaje |
Ajustar ControlNet | Dar más o menos peso a la pose |
Cambiar el seed | Generar variaciones de una misma escena |
Crear varias carpetas de poses | Preparar diferentes versiones del storyboard |
Una mejora interesante sería hacer que el workflow leyera directamente desde el CSV la ruta exacta de cada imagen de pose. En esta versión hemos optado por una solución más sencilla y estable: mantener el mismo orden entre el CSV y la carpeta de poses. No es la opción más sofisticada, pero sí es práctica y fácil de entender.
🗺️Conclusión
Con este workflow damos un paso más en la creación de secuencias narrativas dentro de ComfyUI. En el artículo anterior usamos un CSV para organizar los prompts. En este, añadimos una segunda capa de control: las poses.
La clave ha sido sincronizar ambas partes mediante un contador maestro.
Gracias a eso, cada escena puede tener:
su prompt positivo;
su prompt negativo;
su imagen de pose;
su posición dentro del storyboard.
IPAdapter mantiene la identidad visual del personaje.
LoRA ayuda a conservar una estética común.
OpenPose y ControlNet guían la postura.
Y el CSV permite trabajar la secuencia de forma mucho más ordenada.
No estamos ante un sistema perfecto ni completamente automatizado, pero sí ante una base muy útil para construir storyboards visuales, escenas de acción, pruebas de personaje o secuencias narrativas generadas con IA. La idea importante es esta:
cuanto más estructuramos el proceso,menos dependemos de la casualidad del modelo.
Y ese es precisamente el valor de este workflow: convertir una generación aislada en una pequeña producción visual controlada escena por escena.
Si quieres seguir aprendiendo a dominar la IA en local y construir workflows realmente útiles:
🌐 Recursos útiles
🌍 Hugging Face: uno de los mayores repositorios de IA del mundo, donde encontrarás miles de modelos —incluidos los compatibles con Stable Diffusion y ComfyUI— listos para descargar y usar.
🎨CivitAI: plataforma comunitaria donde los usuarios comparten modelos, estilos, LoRAs y nodos específicos para ComfyUI, clasificados por categoría, versión y nivel de complejidad.
🧠 En Lozkorp:
Descubre el artículo previo donde introdujimos ComfyUI dentro del ciclo “Generación de imágenes con IA en local (IV)”:🔗 Generación de imágenes con IA en local (IV) — ComfyUI
Serie ComfyUI (V) -- Generar imágenes a partir de prompts guardados en un archivo de texto
Serie ComfyUI (VI) — Extraer prompts desde una carpeta de imágenes (WD14 Tagger)
Serie ComfyUI (VII) — Img2Img simple: mejorar o modificar una imagen en local
Serie ComfyUI (VIII) — Upscale de imágenes: qué es, cómo funciona y workflow comparativo
Serie ComfyUI (IX) — Upscale y normalización automática de imágenes
Serie ComfyUI (XI) — Introducción a ControlNet: control real sobre la forma
Serie ComfyUI (XII) — ¿Qué es un LoRA y cómo usarlo en Stable Diffusion?
Serie ComfyUI (XIII) — Multi-LoRA: cómo combinar estilos sin romper la imagen
Serie Comfy-UI (XIV): ControlNet + LoRA: control total de forma y estilo
Serie ComfyUI (XV) — ControlNet + LoRA en FLUX: nuevas opciones para control de forma y estilo
Serie ComfyUI (XVI) — Multi-ControlNet: combinando varios controles en un mismo workflow
Serie ComfyUI (XVII) — Multi-ControlNet para personajes: controlando pose y detalle
Serie ComfyUI (XVIII) — FLUX Turbo: generación rápida y nuevos workflows
Serie ComfyUI (XIX) — FLUX + Multi-LoRA: combinando estilos con Power Lora Loader
Serie ComfyUI (XX) — Consistencia de personajes con ControlNet, LoRA y prompts
Serie ComfyUI (XXI) - Consistencia de personajes con IPAdapter
Archivo JSON de este ejemplo
📁 wf_ComfyUI_XXIII_Storyboard_IPAdapter_OpenPose_LoRA_CSV_PoseSequence.json
Otros archivos necesarios para ejecutar el workflow
📁 SerieComfyUI(XXIII).zip





















Comentarios