Updated README.md and README_EN.md to version 1.1.0. Documented the new Anti-Cache Injection mechanism in the Loop Trigger, progressive keyframe and MP4 saving features, and audio multiplexing using torchaudio and FFmpeg. Also updated the setup instructions with the new wiring requirements.
5.4 KiB
ComfyUI Sequential Batcher (v1.1.0)
Una suite altamente especializada de nodos personalizados para ComfyUI diseñada para el Auto-Encolado Recursivo (Recursive Self-Queuing) y el procesamiento secuencial autónomo. Esta arquitectura minimiza el uso de VRAM procesando tareas pesadas (como la generación de vídeo) de forma secuencial, lote por lote, orquestadas completamente desde dentro del propio grafo.
Read in English: README_EN.md
La Arquitectura "Motor de Fórmula 1"
A partir de la versión 1.0.0, este repositorio ha pivotado exclusivamente hacia la arquitectura de bucles secuenciales autónomos y memoria global. Toda la deuda técnica de los antiguos nodos (lotes, secuencias, depuración) ha sido eliminada, dejando un código base limpio y fácil de mantener enfocado en los 6 fantásticos.
En la v1.1.0, hemos introducido capacidades de guardado a disco progresivo, soporte para multiplexado de audio y un hackeo profundo a nivel de JSON para vencer la agresiva caché de ComfyUI.
Los 6 Nodos Principales
El sistema se construye alrededor de tres categorías principales:
🔁 Loop (Orquestación Autónoma)
- 🏁 Loop Start (Index) (
SequentialLoopStart): Inicia el bucle, gestiona el índice global y provee el índice actual a los nodos de imagen y vídeo del flujo. - 🚀 Loop Trigger (Auto-Queue) (
SequentialLoopTrigger): Se coloca al final del flujo de trabajo. Incrementa el contador y auto-encola el siguiente ciclo mediante un POST a la propia API de ComfyUI (/prompt).- Mutador de Semillas: Escanea el lienzo, localiza nodos con una semilla (
seedonoise_seed) y les inyecta una nueva (32 bits), rompiendo la caché hacia adelante en los samplers. - 💉 Inyección Anti-Caché (¡Nuevo en v1.1.0!): Busca específicamente al nodo
Loop Startdentro de la carga útil (payload) JSON y le inyecta forzosamente el nuevo índice. Esto rompe el infame "caché inverso" (bottom-up) de ComfyUI que congelaba los nodos iniciales durante el Auto-Queue, garantizando un avance ininterrumpido.
- Mutador de Semillas: Escanea el lienzo, localiza nodos con una semilla (
🖼️ Image (Memoria de Sesión)
- 📥 Session Image Receiver (
SessionImageReceiver): Proporciona la imagen inicial o la última generada del ciclo anterior, detectando inteligentemente el inicio de una sesión en la memoria RAM. - 📤 Session Image Sender (
SessionImageSender): Extrae la última imagen del lote y la asegura en la memoria del sistema para el siguiente ciclo.- 💾 Guardado de Keyframes (¡Nuevo en v1.1.0!): Ahora recibe el índice actual y realiza un volcado de seguridad en el disco duro, guardando progresivamente
keyframe_XXX.pngen cada ciclo para prevenir pérdidas de datos.
- 💾 Guardado de Keyframes (¡Nuevo en v1.1.0!): Ahora recibe el índice actual y realiza un volcado de seguridad en el disco duro, guardando progresivamente
🎞️ Video (Ensamblaje y Validación)
- 🛡️ Wan Frame Validator (
WanFrameValidator): Valida y corrige el número objetivo de fotogramas para asegurar que encajen en la fórmula4k+1requerida por modelos específicos (ej. Wan). - 🎞️ Incremental Auto-Stitcher (
IncrementalVideoStitcher): Ensambla secuencialmente los fragmentos de vídeo generados usando FFmpeg.- 📦 Historial Progresivo (¡Nuevo en v1.1.0!): Ya no sobrescribe el vídeo anterior. Ahora guarda MP4s acumulativos (
SCAIL_Final_0001.mp4,SCAIL_Final_0002.mp4), protegiendo tu trabajo de cuelgues del servidor. - 🎵 Multiplexado de Audio (¡Nuevo en v1.1.0!): Acepta una entrada estándar
AUDIO. Captura el sonido contorchaudioy emplea el comando-shortestde FFmpeg. Esto hace que el audio se sincronice a la perfección y se corte exactamente a la duración del ensamblaje del ciclo actual.
- 📦 Historial Progresivo (¡Nuevo en v1.1.0!): Ya no sobrescribe el vídeo anterior. Ahora guarda MP4s acumulativos (
Configuración y Uso
Prerrequisitos
- FFmpeg: Debe estar instalado y disponible en el PATH del sistema para que el
Incremental Auto-Stitcherfuncione correctamente. - Torchaudio: (Generalmente incluido en los entornos ComfyUI) es necesario para extraer la pista de audio antes del multiplexado.
Instalación
- Ve a la carpeta
custom_nodesde ComfyUI. - Clona este repositorio:
git clone https://github.com/your-repo/ComfyUI-Sequential-Batcher.git - Reinicia ComfyUI.
Cómo Conectar tu Nueva Máquina Autónoma
- El Inicio: Añade el nodo
🏁 Loop Start (Index).- Conecta su salida
current_loop_indexa las entradas de índice de tuSessionImageReceiver,SessionImageSender, y tuIncremental Auto-Stitcher. ¡No olvides conectar el Sender para el guardado de los keyframes! - Asegúrate de que su interruptor
reset_loopestá enFalse.
- Conecta su salida
- Conectando el Audio (Opcional): Si tu flujo tiene sonido, saca un cable de la salida de audio de tu nodo inicial (ej.
VHS_LoadVideo) y conéctalo al puertoaudioazul de tuIncremental Auto-Stitcher. - El Final: Añade el nodo
🚀 Loop Trigger (Auto-Queue). Crucial: Conecta la salida de texto (final_video_path) de tuIncremental Auto-Stitcheren la entradatrigger_dependency. Esto obliga al trigger a esperar a que el vídeo se haya guardado físicamente antes de disparar. Configura la cantidad de lotes que quieres entarget_loops. - Ejecución: Ya no tienes que marcar la casilla "Auto Queue" nunca más. Pulsa "Queue Prompt" 1 sola vez. El lote 0 arranca y, al llegar al final, el nodo
Triggerenvía una señal invisible al servidor. Gracias a la Inyección Anti-Caché, la caché se destruye en cada iteración y el progreso fluye hasta completar tu vídeo.
Creado para llevar los límites de la automatización en ComfyUI un paso más allá.