Загрузить, обрезать и сохранить видео: VideoHelperSuite

<!-- lesson: video-vhs -->

Урок «video-vhs» в группе Паки и инструменты списка уроков. Шагов: 7.

Чему вы научитесь

Загрузите кусок видео с нужной частотой кадров и сохраните его вместе со звуком.

Что понадобится

  • Урок продолжает Видео на скромной видеокарте: Wan 2.2 5B. Карточка говорит об этом; это подсказка, а не замок.
  • Паки нод: ComfyUI-VideoHelperSuite. Их вы ставите в ComfyUI сами, потом выбираете Синхронизация ▸ Синхронизировать сейчас. До тех пор карточка говорит, что урок не подходит, и называет пак.
  • Ноды: Load Video (Upload) 🎥🅥🅗🅢, Video Combine 🎥🅥🅗🅢.
  • Приложение ничего не скачивает и не устанавливает. Тексты шагов ниже говорят, какие файлы, в какие папки и какой шаблон ComfyUI их называет.

Шаги

Слова каждого шага, как их показывает урок. Имена нод выделены.

  1. Зачем этот пак (чтение)

    Для урока нужен пак ComfyUI-VideoHelperSuite. Поставьте его сами через менеджер ComfyUI. Пак запускает на вашем компьютере чужой код, поэтому берите его с официальной страницы и обновляйте.

    Своя нода ComfyUI Load Video берёт видео целиком. Загрузчик пака берёт кусок: с какого кадра, сколько, с какой частотой и каким размером. Его нода Video Combine сохраняет кадры в mp4, webm или gif со звуком. Эти две ноды есть во многих опубликованных видеографах.

    Модель не нужна, и ничего тяжёлого не запускается: память занимают сами кадры, так что длинный кусок большого размера всё равно может её заполнить. Если на холсте уже есть другой граф, начните с пустого: «Файл ▸ Новый проект».

  2. Загрузите видео

    Добавьте ноду Load Video (Upload) 🎥🅥🅗🅢 и выберите видео в video. Список показывает видео из папки input; нода умеет и загрузить новое.

  3. Возьмите нужный кусок

    В ноде Load Video (Upload) 🎥🅥🅗🅢 поставьте:

    • force_rate 16: кадры берутся так, будто видео снято с частотой 16, как у больших моделей Wan;
    • skip_first_frames 16: первая секунда пропускается;
    • frame_load_cap 81: больше кадров не берётся.

    Кадры считаются уже после смены частоты. 0 в force_rate оставляет родную частоту видео, 0 в frame_load_cap берёт всё.

  4. Размер и каждый второй кадр (чтение)

    • custom_width и custom_height меняют размер кадров при загрузке; 0 оставляет размер, одно из двух сохраняет пропорции.
    • select_every_nth берёт каждый второй, третий… кадр: быстрый путь к меньшей частоте или к короткому куску.

    Видеомодели нужен свой размер и своя частота; подготовленные здесь кадры избавят от ноды изменения размера позже.

  5. Сохраните со звуком

    Добавьте ноду Video Combine 🎥🅥🅗🅢. Выход IMAGE ноды Load Video (Upload) 🎥🅥🅗🅢 подключите к её входу images, а audio к audio. Поставьте frame_rate 16, как force_rate, и format video/h264-mp4.

    Звук приходит обрезанным по тому же куску. С другой частотой видео и звук разойдутся.

  6. Что ещё есть в паке (чтение)

    • Video Info даёт частоту, длину и размер видео до и после загрузки.
    • Load Video (Path) берёт видео по пути, а не из папки input.
    • Meta Batch Manager делит длинное видео на части, которые помещаются в память.
    • У Video Combine есть loop_count и pingpong для gif, а его crf (в настройках mp4) меняет размер файла на качество.
  7. Граф готов (чтение)

    Сохраните граф через «Файл ▸ Сохранить workflow для ComfyUI…», откройте файл в ComfyUI и запустите там. Само приложение в ComfyUI ничего не запускает.

Что проверяет урок

Шаг для чтения сделан, когда вы нажимаете Понятно, дальше. Шаг с делом отмечается сам, когда на холсте есть:

  • Шаг 2, Загрузите видео:
    • нода Load Video (Upload) 🎥🅥🅗🅢.
    • video ноды Load Video (Upload) 🎥🅥🅗🅢: значение выбрано.
  • Шаг 3, Возьмите нужный кусок:
    • force_rate ноды Load Video (Upload) 🎥🅥🅗🅢: от 1 до 60; «Сделать за меня» ставит 16.
    • skip_first_frames ноды Load Video (Upload) 🎥🅥🅗🅢: от 1 до 100000; «Сделать за меня» ставит 16.
    • frame_load_cap ноды Load Video (Upload) 🎥🅥🅗🅢: от 1 до 1000; «Сделать за меня» ставит 81.
  • Шаг 5, Сохраните со звуком:
    • нода Video Combine 🎥🅥🅗🅢.
    • IMAGE ноды Load Video (Upload) 🎥🅥🅗🅢 во вход images ноды Video Combine 🎥🅥🅗🅢 (можно через Upscale Image или Upscale Image By или ImageFromBatch или ImageResizeKJv2 или Resize Image или GetImageRangeFromBatch или ResizeImageMaskNode).
    • audio ноды Load Video (Upload) 🎥🅥🅗🅢 во вход audio ноды Video Combine 🎥🅥🅗🅢.
    • frame_rate ноды Video Combine 🎥🅥🅗🅢 равно полю force_rate ноды Load Video (Upload) 🎥🅥🅗🅢.
    • format ноды Video Combine 🎥🅥🅗🅢: video/h264-mp4.

Что дальше

Этот урок продолжают: Видео крупнее и чётче: SeedVR2, Убрать предмет из видео: ProPainter.

См. также

Страница перенесена из wiki репозитория приложения (docs/wiki/lessons/VideoHelperSuite.ru.md, ревизия b8e3f71). То же руководство встроено в приложение: «Справка ▸ Руководство».

Чтобы обновить её, выполните npm run import, а затем npm run build в папке сайта.