KJNodes/imagegenerated

Декодирование и сохранение видео(DecodeAndSaveVideo)

Декодирует видеокадры и аудио из латентных представлений, объединяет их и сохраняет в видеофайл без хранения промежуточных изображений в памяти.

Decode And Save Video

video_latent
audio_latent
video_vae
audio_vae
tiling
fps
25.00
filename_prefix
video/ComfyUI
format
auto
codec
auto
tile_size
512
overlap
64
temporal_size
4096
temporal_overlap
16
KJNodes

Описание

Узел Декодирование и сохранение видео декодирует видеокадры и опциональное аудио из латентных представлений, объединяет их и сохраняет результирующее видео непосредственно в файл. Он разработан для эффективного использования памяти: декодированные кадры записываются на диск по мере создания без хранения всех промежуточных изображений в оперативной памяти. Это делает его подходящим для длинных видео или видео высокого разрешения, которые в противном случае превысили бы доступный объем памяти.

Узел ожидает латентное представление видеокадров (обычно создаваемое моделью диффузии видео) и опциональное латентное представление аудио. Необходимо предоставить две отдельные модели VAE: одну для декодирования видео-латентности (video_vae) и одну для декодирования аудио-латентности (audio_vae – требуется только если указан audio_latent). Узел также поддерживает плиточное декодирование (пространственное и временное) для дальнейшего снижения использования памяти, настраиваемое с помощью параметров плиток.

Используйте этот узел в качестве заключительного шага в конвейере генерации видео для экспорта результата в распространенный формат видео-контейнера.

Входы

ВходТипОбязательноПо умолчаниюПримечания
video_latentLATENTДаЛатентное представление видеокадров. Обычно получается из совместимой модели диффузии видео.
audio_latentLATENTНетЛатентное представление аудиокадров. Если указано, также должна быть прикреплена модель audio_vae. Оставьте отключенным для видео без звука.
fpsFLOATДа25.0Частота кадров выходного видео. Диапазон: 0 – 999 (шаг 0,01).
filename_prefixSTRINGДаvideo/ComfyUIПрефикс для сохраняемого видеофайла. Может включать токены форматирования, такие как %date:yyyy-MM-dd% или ссылки на значения узлов, например %Empty Latent Image.width%. Узел автоматически добавляет уникальный суффикс, чтобы избежать перезаписи.
formatCOMBOДаautoФормат выходного контейнера. Доступные варианты зависят от установленных в системе кодеков (например, mp4, avi, mkv, webm). auto выбирает наиболее широко поддерживаемый формат (обычно MP4).
codecCOMBOДаautoИспользуемый видеокодек. Доступные варианты зависят от установленных в системе кодеров (например, libx264, libx265, libvpx, libaom-av1). auto выбирает наиболее распространенный кодек (обычно H.264).
video_vaeVAEДаМодель VAE, используемая для декодирования video_latent в пиксельные кадры. Должна быть совместима с латентным представлением.
audio_vaeVAEНетМодель VAE, используемая для декодирования audio_latent в аудиосэмплы. Обязательно, если audio_latent подключен.
tilingDYNAMICCOMBOДаРежим плиточного декодирования видео. Динамические варианты могут включать disable (декодирование полного кадра), spatial (плитки только пространственно), temporal (плитки только временно) или both. Точный выбор зависит от реализации узла и подключенной VAE.
tile_sizeINTДа512Ширина/высота каждой пространственной плитки. Меньшие значения уменьшают пиковое использование памяти, но увеличивают время декодирования. Диапазон: 64 – 4096 (шаг 32). Используется только при активном пространственном плиточном декодировании.
overlapINTДа64Перекрытие (в пикселях) между соседними пространственными плитками. Более высокое перекрытие уменьшает видимые швы на границах плиток ценой увеличения памяти и времени обработки. Диапазон: 0 – 4096 (шаг 32).
temporal_sizeINTДа4096Количество кадров для одновременного декодирования при включенном временном плиточном декодировании. Значение, превышающее общее количество кадров, фактически отключает временное плиточное декодирование. Актуально только для видео VAE с поддержкой временного плиточного декодирования. Диапазон: 8 – 4096 (шаг 4).
temporal_overlapINTДа16Количество перекрывающихся кадров между последовательными временными блоками. Более высокое перекрытие может сгладить временные швы, но использует больше памяти и увеличивает время декодирования. Диапазон: 4 – 4096 (шаг 4).

Поведение плиточного декодирования

  • Когда tiling отключен, весь кадр декодируется сразу – это использует больше всего памяти.
  • Пространственное плиточное декодирование (tiling = "spatial" или "both") разбивает каждый кадр на более мелкие плитки размером tile_size×tile_size, декодирует их независимо и смешивает перекрывающиеся области.
  • Временное плиточное декодирование (tiling = "temporal" или "both") разбивает последовательность кадров на блоки по temporal_size кадров, каждый блок перекрывается на temporal_overlap кадров. Применимо только для VAE с поддержкой временного разложения (например, некоторые видео VAE).
  • Узел автоматически обрабатывает смешивание перекрывающихся областей и границ плиток.

Выходы

Этот узел не имеет выходных соединений. Декодированное видео записывается непосредственно на диск с использованием пути, сформированного из filename_prefix. Узел не возвращает никаких данных в рабочий процесс.

Примечания по использованию

  • Управление памятью: Узел передает декодированные кадры на диск по мере их создания. Даже при отключенном плиточном декодировании он не накапливает все кадры в памяти одновременно. Плиточное декодирование дополнительно снижает пиковое использование памяти ценой более медленного декодирования.
  • Аудио: Чтобы включить аудио, укажите как audio_latent, так и audio_vae. Аудио VAE должна соответствовать латентному пространству аудио (например, от модели диффузии аудио). Если аудио-латентность не подключена, выходное видео будет без звука.
  • Поддержка форматов и кодеков: Доступные форматы и кодеки зависят от установки FFmpeg (или другого кодера) в вашей системе. Используйте auto для простоты; если вам нужен конкретный кодек или контейнер, убедитесь, что требуемый кодер установлен.
  • Токены префикса имени файла: Вы можете использовать синтаксис форматирования ComfyUI для включения даты, времени или значений узлов. Например:
    video/ComfyUI_%empty_latent_image.width%x%empty_latent_image.height%_%date:yyyy-MM-dd%
    создаст имена файлов вида video/ComfyUI_512x512_2025-01-15_0001.mp4.
  • Настройка размера плитки: Для большинства случаев использования tile_size 512 и overlap 64 обеспечивают хороший компромисс между памятью и скоростью. Увеличьте tile_size, если позволяет память; уменьшите, если не хватает VRAM.
  • Временное плиточное декодирование: Это эффективно только для VAE, которые изначально поддерживают временное плиточное декодирование. Если ваша VAE не поддерживает, настройка временных параметров не даст эффекта.
  • Шаги приращения: Все целочисленные параметры плиток соблюдают размер шага, заданный в узле (32 для пространственного, 4 для временного). Значения, не кратные шагу, автоматически округляются.

Комментарии

Войдите через GitHub, чтобы участвовать в обсуждении.

Загрузка комментариев…
Декодирование и сохранение видео (DecodeAndSaveVideo) - ComfyUI-KJNodes | ComfyUI Wiki