Описание
Узел Декодирование и сохранение видео декодирует видеокадры и опциональное аудио из латентных представлений, объединяет их и сохраняет результирующее видео непосредственно в файл. Он разработан для эффективного использования памяти: декодированные кадры записываются на диск по мере создания без хранения всех промежуточных изображений в оперативной памяти. Это делает его подходящим для длинных видео или видео высокого разрешения, которые в противном случае превысили бы доступный объем памяти.
Узел ожидает латентное представление видеокадров (обычно создаваемое моделью диффузии видео) и опциональное латентное представление аудио. Необходимо предоставить две отдельные модели VAE: одну для декодирования видео-латентности (video_vae) и одну для декодирования аудио-латентности (audio_vae – требуется только если указан audio_latent). Узел также поддерживает плиточное декодирование (пространственное и временное) для дальнейшего снижения использования памяти, настраиваемое с помощью параметров плиток.
Используйте этот узел в качестве заключительного шага в конвейере генерации видео для экспорта результата в распространенный формат видео-контейнера.
Входы
| Вход | Тип | Обязательно | По умолчанию | Примечания |
|---|---|---|---|---|
video_latent | LATENT | Да | – | Латентное представление видеокадров. Обычно получается из совместимой модели диффузии видео. |
audio_latent | LATENT | Нет | – | Латентное представление аудиокадров. Если указано, также должна быть прикреплена модель audio_vae. Оставьте отключенным для видео без звука. |
fps | FLOAT | Да | 25.0 | Частота кадров выходного видео. Диапазон: 0 – 999 (шаг 0,01). |
filename_prefix | STRING | Да | video/ComfyUI | Префикс для сохраняемого видеофайла. Может включать токены форматирования, такие как %date:yyyy-MM-dd% или ссылки на значения узлов, например %Empty Latent Image.width%. Узел автоматически добавляет уникальный суффикс, чтобы избежать перезаписи. |
format | COMBO | Да | auto | Формат выходного контейнера. Доступные варианты зависят от установленных в системе кодеков (например, mp4, avi, mkv, webm). auto выбирает наиболее широко поддерживаемый формат (обычно MP4). |
codec | COMBO | Да | auto | Используемый видеокодек. Доступные варианты зависят от установленных в системе кодеров (например, libx264, libx265, libvpx, libaom-av1). auto выбирает наиболее распространенный кодек (обычно H.264). |
video_vae | VAE | Да | – | Модель VAE, используемая для декодирования video_latent в пиксельные кадры. Должна быть совместима с латентным представлением. |
audio_vae | VAE | Нет | – | Модель VAE, используемая для декодирования audio_latent в аудиосэмплы. Обязательно, если audio_latent подключен. |
tiling | DYNAMICCOMBO | Да | – | Режим плиточного декодирования видео. Динамические варианты могут включать disable (декодирование полного кадра), spatial (плитки только пространственно), temporal (плитки только временно) или both. Точный выбор зависит от реализации узла и подключенной VAE. |
tile_size | INT | Да | 512 | Ширина/высота каждой пространственной плитки. Меньшие значения уменьшают пиковое использование памяти, но увеличивают время декодирования. Диапазон: 64 – 4096 (шаг 32). Используется только при активном пространственном плиточном декодировании. |
overlap | INT | Да | 64 | Перекрытие (в пикселях) между соседними пространственными плитками. Более высокое перекрытие уменьшает видимые швы на границах плиток ценой увеличения памяти и времени обработки. Диапазон: 0 – 4096 (шаг 32). |
temporal_size | INT | Да | 4096 | Количество кадров для одновременного декодирования при включенном временном плиточном декодировании. Значение, превышающее общее количество кадров, фактически отключает временное плиточное декодирование. Актуально только для видео VAE с поддержкой временного плиточного декодирования. Диапазон: 8 – 4096 (шаг 4). |
temporal_overlap | INT | Да | 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_size512 иoverlap64 обеспечивают хороший компромисс между памятью и скоростью. Увеличьтеtile_size, если позволяет память; уменьшите, если не хватает VRAM. - Временное плиточное декодирование: Это эффективно только для VAE, которые изначально поддерживают временное плиточное декодирование. Если ваша VAE не поддерживает, настройка временных параметров не даст эффекта.
- Шаги приращения: Все целочисленные параметры плиток соблюдают размер шага, заданный в узле (32 для пространственного, 4 для временного). Значения, не кратные шагу, автоматически округляются.
Комментарии
Войдите через GitHub, чтобы участвовать в обсуждении.