Descripción
El Decodificar y Guardar Video decodifica fotogramas de video y audio opcional a partir de representaciones latentes, los combina y guarda el video resultante directamente en un archivo. Está diseñado para eficiencia de memoria: los fotogramas decodificados se escriben en disco sobre la marcha sin almacenar todas las imágenes intermedias en RAM. Esto lo hace adecuado para videos largos o de alta resolución que de otro modo excederían la memoria disponible.
El nodo espera una representación latente de los fotogramas de video (generalmente producida por un modelo de difusión de video) y una representación latente opcional del audio. Se deben proporcionar dos modelos VAE separados: uno para decodificar el latente de video (video_vae) y otro para decodificar el latente de audio (audio_vae – requerido solo si se suministra un audio_latent). El nodo también admite decodificación en mosaico (espacial y temporal) para reducir aún más el uso de memoria, configurable a través de los parámetros de mosaico.
Use este nodo como el paso final en un pipeline de generación de video para exportar el resultado a un formato de contenedor de video común.
Entradas
| Entrada | Tipo | Requerido | Predeterminado | Notas |
|---|---|---|---|---|
video_latent | LATENT | Sí | – | La representación latente de los fotogramas de video. Generalmente obtenida de un modelo de difusión de video compatible. |
audio_latent | LATENT | No | – | La representación latente de los fotogramas de audio. Si se proporciona, también debe conectarse un audio_vae. Déjelo desconectado para obtener video silencioso. |
fps | FLOAT | Sí | 25.0 | Velocidad de fotogramas del video de salida. Rango: 0 – 999 (paso 0.01). |
filename_prefix | STRING | Sí | video/ComfyUI | Prefijo para el archivo de video guardado. Puede incluir tokens de formato como %date:yyyy-MM-dd% o referencias a valores de nodo como %Empty Latent Image.width%. El nodo agrega automáticamente un sufijo único para evitar sobrescrituras. |
format | COMBO | Sí | auto | Formato del contenedor de salida. Las opciones dependen de los codificadores disponibles del sistema (ej., mp4, avi, mkv, webm). auto selecciona el formato más ampliamente compatible (generalmente MP4). |
codec | COMBO | Sí | auto | Códec de video a utilizar. Las opciones dependen de los codificadores instalados en el sistema (ej., libx264, libx265, libvpx, libaom-av1). auto elige un códec comúnmente disponible (generalmente H.264). |
video_vae | VAE | Sí | – | El modelo VAE utilizado para decodificar el video_latent en fotogramas de píxeles. Debe ser compatible con la representación latente. |
audio_vae | VAE | No | – | El modelo VAE utilizado para decodificar el audio_latent en muestras de audio. Requerido cuando audio_latent está conectado. |
tiling | DYNAMICCOMBO | Sí | – | Modo de mosaico para la decodificación de video. Las opciones dinámicas pueden incluir disable (decodificación de fotograma completo), spatial (mosaico solo espacial), temporal (mosaico solo temporal) o both. Las opciones exactas dependen de la implementación del nodo y del VAE conectado. |
tile_size | INT | Sí | 512 | Ancho/alto de cada mosaico espacial. Valores más pequeños reducen el uso máximo de memoria pero aumentan el tiempo de decodificación. Rango: 64 – 4096 (paso 32). Solo se usa cuando el mosaico espacial está activo. |
overlap | INT | Sí | 64 | Superposición (en píxeles) entre mosaicos espaciales adyacentes. Una superposición mayor reduce las costuras visibles en los bordes de los mosaicos, a costa de más memoria y tiempo de procesamiento. Rango: 0 – 4096 (paso 32). |
temporal_size | INT | Sí | 4096 | Número de fotogramas a decodificar a la vez cuando el mosaico temporal está habilitado. Un valor mayor que el recuento total de fotogramas desactiva efectivamente el mosaico temporal. Solo es relevante para VAEs de video que admiten mosaico temporal. Rango: 8 – 4096 (paso 4). |
temporal_overlap | INT | Sí | 16 | Número de fotogramas superpuestos entre fragmentos temporales consecutivos. Una superposición mayor puede suavizar las costuras temporales, pero usa más memoria y aumenta el tiempo de decodificación. Rango: 4 – 4096 (paso 4). |
Comportamiento del mosaico
- Cuando
tilingestá desactivado, el fotograma completo se decodifica de una vez – esto usa la mayor cantidad de memoria. - El mosaico espacial (
tiling = "spatial"o"both") divide cada fotograma en mosaicos más pequeños de tamañotile_size×tile_size, los decodifica de forma independiente y combina las regiones superpuestas. - El mosaico temporal (
tiling = "temporal"o"both") divide la secuencia de fotogramas en fragmentos detemporal_sizefotogramas, cada fragmento superpuesto portemporal_overlapfotogramas. Solo es aplicable para VAEs que admiten descomposición temporal (ej., algunos VAEs de video). - El nodo maneja automáticamente la combinación de regiones superpuestas y bordes de mosaicos.
Salidas
Este nodo no tiene conexiones de salida. El video decodificado se escribe directamente en disco usando la ruta construida a partir de filename_prefix. El nodo no devuelve ningún dato al flujo de trabajo.
Notas de uso
- Gestión de memoria: El nodo transmite fotogramas decodificados al disco a medida que se producen. Incluso con el mosaico desactivado, no acumulará todos los fotogramas en memoria simultáneamente. El mosaico reduce aún más el pico de memoria a costa de una decodificación más lenta.
- Audio: Para incluir audio, proporcione tanto un
audio_latentcomo unaudio_vae. El VAE de audio debe coincidir con el espacio latente de audio (ej., de un modelo de difusión de audio). Si no se conecta ningún latente de audio, el video de salida será silencioso. - Soporte de formato y códec: Los formatos y códecs disponibles dependen de la instalación de FFmpeg (u otro codificador) en su sistema. Use
autopara una experiencia sin complicaciones; si necesita un códec o contenedor específico, asegúrese de que el codificador requerido esté instalado. - Tokens de prefijo de nombre de archivo: Puede usar la sintaxis de formato de ComfyUI para incluir fecha, hora o valores de nodo. Por ejemplo:
video/ComfyUI_%Empty Latent Image.width%x%Empty Latent Image.height%_%date:yyyy-MM-dd%
producirá nombres de archivo comovideo/ComfyUI_512x512_2025-01-15_0001.mp4. - Ajuste del tamaño de mosaico: Para la mayoría de los casos de uso, un
tile_sizede 512 y unoverlapde 64 proporcionan un buen equilibrio entre memoria y velocidad. Aumentetile_sizesi la memoria lo permite; disminúyalo si se queda sin VRAM. - Mosaico temporal: Esto solo es efectivo con VAEs que admitan nativamente el mosaico temporal. Si su VAE no lo hace, establecer parámetros temporales no tendrá efecto.
- Incrementos de paso: Todos los parámetros enteros de mosaico aplican el tamaño del paso definido en el nodo (32 para espacial, 4 para temporal). Los valores no alineados con el paso se redondean automáticamente.
Comentarios
Inicia sesión con GitHub para unirte a la conversación.