KJNodes/imagegenerated

Кодирование видео компонентов(EncodeVideoComponents)

Извлекает кадры видео, изменяет их размер и кодирует напрямую через VAE, избегая хранения полного тензора изображения.

Encode Video Components

video
vae
keep_proportion
latent
audio
fps
frame_count
width
768
height
512
max_frames
0
upscale_method
lanczos
KJNodes

Описание

Encode Video Components извлекает кадры из видео, изменяет их размер до заданного разрешения и кодирует напрямую через VAE в латентное представление. Кадры обрабатываются один за другим, что позволяет избежать затрат памяти на хранение полного тензора изображения для всего видео сразу. Нода также пропускает аудиодорожку из входного видео и выводит метаданные, такие как частота кадров и общее количество кадров.

Входы

  • video (VIDEO, обязательно) — Видеофайл или последовательность для обработки. Должен быть корректным видео, принимаемым ComfyUI-KJNodes.
  • vae (VAE, обязательно) — Модель VAE, используемая для кодирования кадров изменённого размера в латентное пространство.
  • width (INT, по умолчанию: 768, диапазон: 016384, шаг: 2) — Целевая ширина каждого кадра перед кодированием. Установите 0, чтобы сохранить исходную ширину видео.
  • height (INT, по умолчанию: 512, диапазон: 016384, шаг: 2) — Целевая высота каждого кадра перед кодированием. Установите 0, чтобы сохранить исходную высоту видео.
  • max_frames (INT, по умолчанию: 0, диапазон: 0999999, шаг: 1) — Максимальное количество кадров для обработки. 0 означает без ограничений — обрабатывается всё видео.
  • upscale_method (COMBO, по умолчанию: "lanczos") — Алгоритм интерполяции, используемый при изменении размера кадров. Варианты:
    • nearest-exact — Быстрый, интерполяция по ближайшему соседу; может давать блочные результаты.
    • bilinear — Сглаженный, хорошо подходит для общего масштабирования.
    • area — Изменение размера на основе площади; эффективен при уменьшении.
    • bicubic — Более высокое качество, чем билинейный, немного медленнее.
    • lanczos — Чёткая передискретизация, часто предпочтительна для высококачественного уменьшения.
  • keep_proportion (DYNAMICCOMBO, обязательно) — Управляет обработкой несоответствия соотношения сторон, когда целевая ширина/высота отличаются от исходного соотношения сторон кадра. Это динамический выпадающий список, адаптирующий доступные варианты в зависимости от других входов; общие режимы включают "crop", "pad", "stretch" или "fit". Подробнее см. в примечаниях по использованию.

Выходы

  • LATENT — Латентное представление всех обработанных кадров, закодированное VAE и объединённое в пакет. Форма соответствует ожидаемым латентным размерностям VAE.
  • AUDIO — Аудиодорожка, извлечённая из входного видео, если она присутствует. Этот выход может быть пустым или None, если видео не содержит звука.
  • FLOAT — Частота кадров (FPS) исходного видео в виде числа с плавающей точкой.
  • INT — Общее количество фактически обработанных кадров (с учётом ограничения max_frames).

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

  • Нода обрабатывает кадры последовательно и сразу передаёт каждый изменённый кадр в VAE, что значительно снижает пиковое использование памяти по сравнению с загрузкой целого видео в пакет изображений.
  • Установите width и/или height в 0, чтобы сохранить исходное значение. Если оба параметра не равны нулю, они задают целевое разрешение. Настройка keep_proportion определяет, как разрешаются несоответствия соотношения сторон.
  • Выпадающий список keep_proportion помечен во всплывающей подсказке как "How to handle aspect ratio mismatch when resizing". Конкретные варианты зависят от реализации ноды (например, "crop to fit", "pad", "ignore" или "fit"). Проверьте ноду в своём рабочем процессе, чтобы увидеть доступные варианты.
  • Параметр upscale_method влияет только на кадры, которые действительно изменяются (т.е. когда ширина или высота отличаются от исходной). Если оба измерения совпадают с оригиналом, изменение размера не происходит, и этот параметр игнорируется.
  • Используйте max_frames для ограничения обработки длинных видео или для отладки на подмножестве кадров. Установка 0 (по умолчанию) обрабатывает всё видео.
  • Выходной LATENT можно напрямую подавать в узлы выборки (например, KSampler), которые принимают пакеты латентов. Размер пакета латентов равен количеству кадров.
  • Если входное видео не содержит аудиодорожки, выход AUDIO будет пустым заполнителем; последующие ноды, ожидающие аудио, должны корректно это обрабатывать.
  • Выход FLOAT (частота кадров) и выход INT (количество кадров) могут быть полезны для синхронизации последующих шагов, зависящих от времени, или для целей отчёта.

Комментарии

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

Загрузка комментариев…
Кодирование видео компонентов (EncodeVideoComponents) - ComfyUI-KJNodes | ComfyUI Wiki