Видео по движению другого видео: Wan 2.2 Fun Control
Урок «video-control» в группе Видео списка уроков. Шагов: 16.
Сначала согласие
Оживлять так можно только того, кто на это согласен: себя, придуманного героя или человека, который разрешил. Получите разрешение на исходные материалы и учитывайте местные законы. Для взрослого (18+) содержимого получите согласие участников и учитывайте местные законы. См. Правила содержимого.
Чему вы научитесь
Ваша картинка оживает с движением другого видео: по его глубине, позе или контурам.
Что понадобится
- Урок продолжает Видео на скромной видеокарте: Wan 2.2 5B. Карточка говорит об этом; это подсказка, а не замок.
- Файлы моделей, которые урок проверяет:
- для поля
unet_nameноды Load Diffusion Model: файл, в имени которого естьfunиcontrolи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, Load Video, Get Video Components, Load Image, Wan22FunControlToVideo, KSampler, VAE Decode / VAE Decode (Tiled), Create Video, Save Video.
- Приложение ничего не скачивает и не устанавливает. Тексты шагов ниже говорят, какие файлы, в какие папки и какой шаблон ComfyUI их называет.
Шаги
Слова каждого шага, как их показывает урок. Имена нод выделены.
Прежде чем начать (чтение)
Оживлять так можно только того, кто на это согласен: себя, придуманного героя или человека, который разрешил. Получите разрешение на исходные материалы и учитывайте местные законы. Для взрослого (18+) содержимого получите согласие участников и учитывайте местные законы. Исключайте тех, кто младше 18 лет или так выглядит; обозначайте синтетические изображения, чтобы не вводить людей в заблуждение. Уроки учат технике без откровенных подробностей.
Модель берёт две вещи: картинку-образец, которая говорит, что рисовать, и управляющее видео, которое говорит, как это движется. Управляющее видео это карта глубины, скелет позы или контуры кадров обычного видео.
Цена: модель Fun Control 5B, около 10 ГБ в
models/diffusion_models, с текстовым энкодеромumt5_xxlиwan2.2_vae. Карта на 8 ГБ справляется, если ComfyUI переносит части в оперативную память; пятисекундный ролик делается минуты.Если на холсте уже есть другой граф, начните с пустого: «Файл ▸ Новый проект».
Загрузите модель Fun Control
Добавьте ноду Load Diffusion Model и выберите в
unet_nameфайлwan2.2_fun_control_5B.Если нужного файла в списке нет, значит, его нет в вашем ComfyUI. Приложение ничего не скачивает. Проще всего открыть в самом ComfyUI шаблон «Wan 2.2 5B Fun Control»: он покажет, каких файлов не хватает и куда их положить. Потом выберите здесь в меню «Синхронизация ▸ Синхронизировать сейчас», и файлы появятся в списках.
Загрузите текстовый энкодер
Добавьте ноду Load CLIP. В
clip_nameвыберите файлumt5_xxl, вtypeпоставьтеwan.Текстовый энкодер превращает промпт в то, что читает модель. Версия файла
fp8занимает вдвое меньше памяти, чем полная, и её берут официальные шаблоны.Загрузите VAE
Добавьте ноду Load VAE и выберите в
vae_nameфайлwan2.2_vae: у моделей 5B свой VAE.Напишите промпт
Добавьте две ноды CLIP Text Encode (Prompt) и подключите выход
CLIPноды Load CLIP ко входуclipкаждой. В полеtextодной опишите ролик: кто или что в кадре, что происходит, как движется камера. Вторая для негативного промпта: чего в ролике быть не должно.Для видео важнее всего действие. «Кошка запрыгивает на подоконник, камера следует за ней» работает лучше, чем «кошка на подоконнике».
Задайте сдвиг
Добавьте ноду ModelSamplingSD3 и подключите выход
MODELзагрузчика к её входуmodel. В полеshiftпоставьте 8.Сдвиг решает, какая часть работы уйдёт на ранние, шумные шаги, где складываются композиция и движение. При маленьком значении у Wan хуже держатся композиция и движение, ролик выходит вялым.
Слово SD3 в названии ноды осталось от другой модели: Wan настраивается той же нодой.
Загрузите управляющее видео
Добавьте ноды Load Video и Get Video Components. В
fileвыберите видео и подключите выход Load Video ко входуvideoноды Get Video Components: она отдаёт кадры, звук и частоту кадров по отдельности.Видео должно лежать в папке
inputComfyUI.Из чего получается управляющее видео (чтение)
- Видео, которое уже управляющее (глубина, скелет, контуры): его кадры идут как есть, как в шаблоне.
- Обычное видео: поставьте между ним и моделью ноду, которая делает из каждого кадра управление. Своя нода ComfyUI Canny рисует контуры; пак comfyui_controlnet_aux рисует глубину (Depth Anything) и позы (DWPose, OpenPose).
- Контуры строже всего держат формы, глубина держит пространство, поза двигает только тело.
Приложение принимает такую ноду на пути от Get Video Components к модели.
Загрузите картинку-образец
Добавьте ноду Load Image и выберите в
imageкартинку того, что должно двигаться: героя, предмет. Пропорции как у управляющего видео.Сведите всё вместе
Добавьте ноду Wan22FunControlToVideo и подключите к ней:
- к
positiveиnegativeдва промпта; - к
vaeвыход ноды Load VAE; - к
ref_imageкартинку-образец; - к
control_videoвыходimagesноды Get Video Components (или ноды, которая делает управление).
Поставьте width и height 704, length 121. В управляющем видео должно быть не меньше кадров.
- Добавьте сэмплер
Добавьте ноду KSampler. Её вход model берёт выход ноды ModelSamplingSD3; positive, negative и latent_image берут три выхода ноды Wan22FunControlToVideo.
- Настройте сэмплер
В ноде KSampler поставьте steps 20, cfg 5 и sampler_name uni_pc, как в шаблоне.
- Превратите результат в кадры
Добавьте ноду VAE Decode. Ко входу samples подключите выход сэмплера, ко входу vae выход ноды Load VAE.
Сэмплер выдаёт ролик в сжатом виде, латенте. Эта нода разворачивает его в кадры.
- Соберите и сохраните ролик
Добавьте ноды Create Video и Save Video. Кадры из ноды VAE Decode идут во вход images ноды Create Video, а её выход во вход video ноды Save Video. В поле fps поставьте 24.
Модель 5B рисует 24 кадра в секунду. С другим числом ролик пойдёт быстрее или медленнее, чем задумано.
- Если результат не тот (чтение)
- Движение верное, но герой меняется: картинка и управляющее видео слишком различаются пропорциями или позой; сблизьте их.
- Ролик слишком буквально повторяет управление (видны контуры исходника): возьмите глубину или позу вместо контуров.
- Движение слишком быстрое или медленное: управляющее видео было не 24 кадра в секунду. Загрузите его с частотой 24 (как, показывает урок про VideoHelperSuite).
- Граф готов (чтение)
Сохраните граф через «Файл ▸ Сохранить workflow для ComfyUI…», откройте файл в ComfyUI и запустите там. Само приложение в ComfyUI ничего не запускает.
Что проверяет урок
Шаг для чтения сделан, когда вы нажимаете Понятно, дальше. Шаг с делом отмечается сам, когда на холсте есть:
- Шаг 2, Загрузите модель Fun Control:
- нода Load Diffusion Model.
- в поле
unet_nameноды Load Diffusion Model стоит файл, в имени которого естьfunиcontrolи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, Загрузите управляющее видео:
- нода Load Video.
- нода Get Video Components.
VIDEOноды Load Video во входvideoноды Get Video Components.fileноды Load Video: значение выбрано.
- Шаг 9, Загрузите картинку-образец:
- нода Load Image.
imageноды Load Image: значение выбрано.
- Шаг 10, Сведите всё вместе:
- нода Wan22FunControlToVideo.
CONDITIONINGноды CLIP Text Encode (Prompt) (промпт) во входpositiveноды Wan22FunControlToVideo.CONDITIONINGноды CLIP Text Encode (Prompt) (негатив) во входnegativeноды Wan22FunControlToVideo.VAEноды Load VAE во входvaeноды Wan22FunControlToVideo.IMAGEноды Load Image во входref_imageноды Wan22FunControlToVideo (можно через Upscale Image или Upscale Image By или ImageFromBatch или ImageResizeKJv2 или Resize Image или GetImageRangeFromBatch или ResizeImageMaskNode).imagesноды Get Video Components во входcontrol_videoноды Wan22FunControlToVideo (можно через Upscale Image или Upscale Image By или ImageFromBatch или ImageResizeKJv2 или Resize Image или GetImageRangeFromBatch или ResizeImageMaskNode или Detect Edges (Canny) или Canny Edge или Depth Anything V2 - Relative или DWPreprocessor или OpenPose Pose или LineArtPreprocessor).widthноды Wan22FunControlToVideo: от 480 до 1280; «Сделать за меня» ставит 704.heightноды Wan22FunControlToVideo: от 480 до 1280; «Сделать за меня» ставит 704.lengthноды Wan22FunControlToVideo: от 49 до 121; «Сделать за меня» ставит 121.
- Шаг 11, Добавьте сэмплер:
- нода KSampler.
MODELноды ModelSamplingSD3 во входmodelноды KSampler (можно через LoraLoaderModelOnly или EasyCache).positiveноды Wan22FunControlToVideo во входpositiveноды KSampler.negativeноды Wan22FunControlToVideo во входnegativeноды KSampler.latentноды Wan22FunControlToVideo во входlatent_imageноды KSampler.
- Шаг 12, Настройте сэмплер:
stepsноды KSampler: от 10 до 30; «Сделать за меня» ставит 20.cfgноды KSampler: от 4 до 6; «Сделать за меня» ставит 5.sampler_nameноды KSampler:uni_pc.
- Шаг 13, Превратите результат в кадры:
- нода VAE Decode или VAE Decode (Tiled).
LATENTноды KSampler во входsamplesноды VAE Decode или VAE Decode (Tiled).VAEноды Load VAE во входvaeноды VAE Decode или VAE Decode (Tiled).
- Шаг 14, Соберите и сохраните ролик:
- нода Create Video.
- нода Save Video.
IMAGEноды VAE Decode или VAE Decode (Tiled) во входimagesноды Create Video.VIDEOноды Create Video во входvideoноды Save Video.fpsноды Create Video:24.