Видео на скромной видеокарте: Wan 2.2 5B

<!-- lesson: video-small -->

Урок «video-small» в группе Видео списка уроков. Шагов: 13.

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

Соберёте граф Wan 2.2 из одной модели, который делает пятисекундный ролик 720p из промпта или из картинки.

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

  • Урок продолжает Видео из текста. Карточка говорит об этом; это подсказка, а не замок.
  • Файлы моделей, которые урок проверяет:
    • для поля unet_name ноды Load Diffusion Model: файл, в имени которого есть ti2v и 5b;
    • для поля clip_name ноды Load CLIP: файл, в имени которого есть umt5;
    • для поля vae_name ноды Load VAE: файл, в имени которого есть wan2.2_vae.
  • Ноды: Load Diffusion Model, Load CLIP, Load VAE, CLIP Text Encode (Prompt), ModelSamplingSD3, Wan22ImageToVideoLatent, KSampler, VAE Decode / VAE Decode (Tiled), Create Video, Save Video.
  • Приложение ничего не скачивает и не устанавливает. Тексты шагов ниже говорят, какие файлы, в какие папки и какой шаблон ComfyUI их называет.

Шаги

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

  1. Сначала о цене (чтение)

    У Wan 2.2 есть малая модель, 5B (пять миллиардов параметров), сделанная для обычных видеокарт. Она рисует 24 кадра в секунду и берёт промпт, картинку или и то и другое.

    Что нужно:

    • файл модели, около 10 ГБ, в models/diffusion_models;
    • текстовый энкодер umt5_xxl, около 7 ГБ в варианте fp8, в models/text_encoders;
    • файл wan2.2_vae в models/vae.

    Память: ComfyUI сам переносит части модели в оперативную память, когда видеопамяти мало, и с этим справляется карта на 8 ГБ. Время: пятисекундный ролик делается минуты, а не секунды, первый запуск дольше, потому что файлы читаются с диска.

    В графе одна модель и один сэмплер, а не пара больших моделей 14B. Если на холсте уже есть другой граф, начните с пустого: «Файл ▸ Новый проект».

  2. Загрузите модель

    Добавьте ноду Load Diffusion Model и выберите в unet_name файл wan2.2_ti2v_5B. ti2v значит, что модель берёт текст, картинку или и то и другое.

    Если нужного файла в списке нет, значит, его нет в вашем ComfyUI. Приложение ничего не скачивает. Проще всего открыть в самом ComfyUI шаблон «Wan 2.2 5B Video Generation»: он покажет, каких файлов не хватает и куда их положить. Потом выберите здесь в меню «Синхронизация ▸ Синхронизировать сейчас», и файлы появятся в списках.

  3. Загрузите текстовый энкодер

    Добавьте ноду Load CLIP. В clip_name выберите файл umt5_xxl, в type поставьте wan.

    Текстовый энкодер превращает промпт в то, что читает модель. Версия файла fp8 занимает вдвое меньше памяти, чем полная, и её берут официальные шаблоны.

  4. Загрузите VAE малой модели

    Добавьте ноду Load VAE и выберите в vae_name файл wan2.2_vae.

    Модель 5B сжимает видео сильнее, чем модели 14B, и у неё свой VAE. Файл wan_2.1_vae больших моделей даёт здесь сломанные кадры.

  5. Напишите промпт

    Добавьте две ноды CLIP Text Encode (Prompt) и подключите выход CLIP ноды Load CLIP ко входу clip каждой. В поле text одной опишите ролик: кто или что в кадре, что происходит, как движется камера. Вторая для негативного промпта: чего в ролике быть не должно.

    Для видео важнее всего действие. «Кошка запрыгивает на подоконник, камера следует за ней» работает лучше, чем «кошка на подоконнике».

  6. Задайте сдвиг

    Добавьте ноду ModelSamplingSD3 и подключите выход MODEL загрузчика к её входу model. В поле shift поставьте 8.

    Сдвиг решает, какая часть работы уйдёт на ранние, шумные шаги, где складываются композиция и движение. При маленьком значении у Wan хуже держатся композиция и движение, ролик выходит вялым.

    Слово SD3 в названии ноды осталось от другой модели: Wan настраивается той же нодой.

  7. Задайте размер и длину

    Добавьте ноду Wan22ImageToVideoLatent и подключите выход Load VAE к её входу vae. Поставьте width 1280, height 704 и length 121.

    121 кадр при 24 кадрах в секунду дают пять секунд. У Wan число кадров имеет вид 4n + 1: 49, 81, 121. Модель обучена на этом размере 720p; меньший размер быстрее и менее чёткий.

  8. Старт с картинки, если хотите (чтение)

    У той же ноды есть вход start_image. Подключите к нему ноду загрузки картинки, и ролик начнётся с вашей картинки; оставьте пустым, и ролик нарисуется только по промпту. В шаблоне такая нода стоит и выключена.

    С картинкой промпт описывает, что происходит, а не что в кадре. Пропорции картинки держите близкими к 1280 × 704.

  9. Добавьте сэмплер

    Добавьте ноду KSampler и подключите к ней:

    • к model выход ноды ModelSamplingSD3;
    • к positive и negative два промпта;
    • к latent_image выход ноды Wan22ImageToVideoLatent.
  10. Настройте сэмплер

В ноде KSampler поставьте steps 20, cfg 5, sampler_name uni_pc и scheduler simple.

Это числа официального шаблона. Меньше шагов быстрее и размытее; cfg намного выше 5 пережигает цвета.

  1. Превратите результат в кадры

Добавьте ноду VAE Decode. Ко входу samples подключите выход сэмплера, ко входу vae выход ноды Load VAE.

Сэмплер выдаёт ролик в сжатом виде, латенте. Эта нода разворачивает его в кадры.

  1. Соберите и сохраните ролик

Добавьте ноды Create Video и Save Video. Кадры из ноды VAE Decode идут во вход images ноды Create Video, а её выход во вход video ноды Save Video. В поле fps поставьте 24.

Модель 5B рисует 24 кадра в секунду, большие модели Wan 16. С другим числом ролик пойдёт быстрее или медленнее, чем задумано.

  1. Граф готов (чтение)

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

Если видеопамяти не хватит, урок «Когда видео не помещается в память» продолжает этот самый граф.

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

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

  • Шаг 2, Загрузите модель:
    • нода Load Diffusion Model.
    • в поле unet_name ноды Load Diffusion Model стоит файл, в имени которого есть ti2v и 5b (заглавные буквы, точки и дефисы не важны).
  • Шаг 3, Загрузите текстовый энкодер:
    • нода Load CLIP.
    • в поле clip_name ноды Load CLIP стоит файл, в имени которого есть umt5 (заглавные буквы, точки и дефисы не важны).
    • type ноды Load CLIP: wan.
  • Шаг 4, Загрузите VAE малой модели:
    • нода Load VAE.
    • в поле vae_name ноды Load VAE стоит файл, в имени которого есть wan2.2_vae (заглавные буквы, точки и дефисы не важны).
  • Шаг 5, Напишите промпт:
    • нода CLIP Text Encode (Prompt).
    • нода CLIP Text Encode (Prompt).
    • CLIP ноды Load CLIP во вход clip ноды CLIP Text Encode (Prompt) (промпт).
    • CLIP ноды Load CLIP во вход clip ноды CLIP Text Encode (Prompt) (негатив).
    • text ноды CLIP Text Encode (Prompt) (промпт): не меньше 3 знаков.
  • Шаг 6, Задайте сдвиг:
    • нода ModelSamplingSD3.
    • MODEL ноды Load Diffusion Model во вход model ноды ModelSamplingSD3 (можно через LoraLoaderModelOnly или EasyCache).
    • shift ноды ModelSamplingSD3: от 5 до 8; «Сделать за меня» ставит 8.
  • Шаг 7, Задайте размер и длину:
    • нода Wan22ImageToVideoLatent.
    • VAE ноды Load VAE во вход vae ноды Wan22ImageToVideoLatent.
    • width ноды Wan22ImageToVideoLatent: от 640 до 1280; «Сделать за меня» ставит 1280.
    • height ноды Wan22ImageToVideoLatent: от 352 до 1280; «Сделать за меня» ставит 704.
    • length ноды Wan22ImageToVideoLatent: от 49 до 121; «Сделать за меня» ставит 121.
  • Шаг 9, Добавьте сэмплер:
    • нода KSampler.
    • MODEL ноды ModelSamplingSD3 во вход model ноды KSampler (можно через LoraLoaderModelOnly или EasyCache).
    • CONDITIONING ноды CLIP Text Encode (Prompt) (промпт) во вход positive ноды KSampler.
    • CONDITIONING ноды CLIP Text Encode (Prompt) (негатив) во вход negative ноды KSampler.
    • LATENT ноды Wan22ImageToVideoLatent во вход latent_image ноды KSampler.
  • Шаг 10, Настройте сэмплер:
    • steps ноды KSampler: от 10 до 30; «Сделать за меня» ставит 20.
    • cfg ноды KSampler: от 4 до 6; «Сделать за меня» ставит 5.
    • sampler_name ноды KSampler: uni_pc.
    • scheduler ноды KSampler: simple.
  • Шаг 11, Превратите результат в кадры:
    • нода VAE Decode или VAE Decode (Tiled).
    • LATENT ноды KSampler во вход samples ноды VAE Decode или VAE Decode (Tiled).
    • VAE ноды Load VAE во вход vae ноды VAE Decode или VAE Decode (Tiled).
  • Шаг 12, Соберите и сохраните ролик:
    • нода Create Video.
    • нода Save Video.
    • IMAGE ноды VAE Decode или VAE Decode (Tiled) во вход images ноды Create Video.
    • VIDEO ноды Create Video во вход video ноды Save Video.
    • fps ноды Create Video: 24.

Что дальше

Этот урок продолжают: Когда видео не помещается в память, Видео по движению другого видео: Wan 2.2 Fun Control, Видео со звуком: LTX-2.5, Видео из текста: HunyuanVideo 1.5, Видео из текста: Kandinsky 5 Lite, Плавнее движение: кадры между кадрами, Стартовая картинка как опора, Загрузить, обрезать и сохранить видео: VideoHelperSuite.

См. также

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

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