Образец на весь ролик: Wan VACE
Урок «anchor-reference» в группе Видео: опорная картинка списка уроков. Шагов: 16.
Сначала согласие
Оживлять так можно только того, кто на это согласен: себя, придуманного героя или человека, который разрешил. Получите разрешение на исходные материалы и учитывайте местные законы. Для взрослого (18+) содержимого получите согласие участников и учитывайте местные законы. См. Правила содержимого.
Чему вы научитесь
Человек или предмет с вашей картинки остаётся собой в каждом кадре, а не только в первом.
Что понадобится
- Урок продолжает Две опоры: первый и последний кадр. Карточка говорит об этом; это подсказка, а не замок.
- Файлы моделей, которые урок проверяет:
- для поля
unet_nameноды Load Diffusion Model: файл, в имени которого естьvace; - для поля
lora_nameноды LoraLoaderModelOnly или Load LoRA: файл, в имени которого естьcausvid; - для поля
clip_nameноды Load CLIP: файл, в имени которого естьumt5; - для поля
vae_nameноды Load VAE: файл, в имени которого естьwan_2.1_vae.
- для поля
- Ноды: Load Diffusion Model, LoraLoaderModelOnly / Load LoRA, ModelSamplingSD3, Load CLIP, Load VAE, CLIP Text Encode (Prompt), Load Image, WanVaceToVideo, KSampler, TrimVideoLatent, VAE Decode / VAE Decode (Tiled), Create Video, Save Video.
- Приложение ничего не скачивает и не устанавливает. Тексты шагов ниже говорят, какие файлы, в какие папки и какой шаблон ComfyUI их называет.
Шаги
Слова каждого шага, как их показывает урок. Имена нод выделены.
Прежде чем начать (чтение)
Оживлять так можно только того, кто на это согласен: себя, придуманного героя или человека, который разрешил. Получите разрешение на исходные материалы и учитывайте местные законы. Для взрослого (18+) содержимого получите согласие участников и учитывайте местные законы. Исключайте тех, кто младше 18 лет или так выглядит; обозначайте синтетические изображения, чтобы не вводить людей в заблуждение. Уроки учат технике без откровенных подробностей.
Стартовая картинка закрепляет первый кадр. Вход образца модель читает на каждом кадре: герой с картинки появляется в ролике и сохраняет облик, а сцена, поза и камера могут быть совсем другими. Wan VACE делает это на нодах самого ComfyUI.
Цена: модель VACE 14B, около 33 ГБ в
fp16(файлfp8вдвое меньше), вmodels/diffusion_models, с LoRA CausVid вmodels/loras,umt5_xxlиwan_2.1_vae. Рассчитывайте на 24 ГБ видеопамяти или на медленный запуск с переносом в оперативную память. С LoRA хватает 4 шагов, и ролик из 81 кадра на большой карте делается минуты.Если на холсте уже есть другой граф, начните с пустого: «Файл ▸ Новый проект».
Загрузите модель VACE
Добавьте ноду Load Diffusion Model и выберите в
unet_nameфайлwan2.1_vace_14B.Если нужного файла в списке нет, значит, его нет в вашем ComfyUI. Приложение ничего не скачивает. Проще всего открыть в самом ComfyUI шаблон «Wan VACE Reference to Video»: он покажет, каких файлов не хватает и куда их положить. Потом выберите здесь в меню «Синхронизация ▸ Синхронизировать сейчас», и файлы появятся в списках.
Добавьте LoRA CausVid
Добавьте ноду LoraLoaderModelOnly и подключите выход Load Diffusion Model к её входу
model. Вlora_nameвыберите файл CausVid и поставьтеstrength_model0.3.Она даёт модели закончить за 4 шага; на полной силе она делает движение плоским.
Задайте сдвиг
Добавьте ноду ModelSamplingSD3 и подключите выход LoraLoaderModelOnly к её входу
model. В полеshiftпоставьте 8.Загрузите текстовый энкодер
Добавьте ноду Load CLIP. В
clip_nameвыберите файлumt5_xxl, вtypeпоставьтеwan.Текстовый энкодер превращает промпт в то, что читает модель. Версия файла
fp8занимает вдвое меньше памяти, чем полная, и её берут официальные шаблоны.Загрузите VAE
Добавьте ноду Load VAE и выберите в
vae_nameфайлwan_2.1_vae. VACE построена на Wan 2.1.Напишите промпт
Добавьте две ноды CLIP Text Encode (Prompt) и подключите выход
CLIPноды Load CLIP ко входуclipкаждой. В полеtextодной опишите ролик: кто или что в кадре, что происходит, как движется камера. Вторая для негативного промпта: чего в ролике быть не должно.Для видео важнее всего действие. «Кошка запрыгивает на подоконник, камера следует за ней» работает лучше, чем «кошка на подоконнике».
Загрузите картинку-образец
Добавьте ноду Load Image и выберите в
imageкартинку героя: человека, персонажа, предмет.Лучше всего простой фон: всё, что на картинке, модель считает частью героя.
Сведите всё вместе
Добавьте ноду WanVaceToVideo и подключите к ней два промпта, VAE и картинку ко входу
reference_image. Поставьтеwidthиheight768,length81 иstrength1.strengthэто то, насколько крепко держит образец. Остальные входы (control_video,control_masks) здесь пустые; в других уроках по ним приходит движение.Добавьте сэмплер
Добавьте ноду KSampler. Её вход model берёт выход ноды ModelSamplingSD3; positive, negative и latent_image берут одноимённые выходы ноды WanVaceToVideo.
- Настройте сэмплер
Поставьте steps 4, cfg 1 и sampler_name uni_pc, как в шаблоне. Без LoRA модели нужно около 20 шагов и cfg около 6.
- Отрежьте образец
Добавьте ноду TrimVideoLatent и подключите выход KSampler к её входу samples. Выход trim_latent ноды WanVaceToVideo подключите к её входу trim_amount.
VACE кладёт образец в начало ролика лишними кадрами; эта нода их отрезает, и картинка не мелькает в начале.
- Превратите результат в кадры
Добавьте ноду VAE Decode. Ко входу samples подключите выход TrimVideoLatent, к vae VAE.
- Соберите и сохраните ролик
Добавьте ноды Create Video и Save Video. Кадры из ноды VAE Decode идут во вход images ноды Create Video, а её выход во вход video ноды Save Video. В поле fps поставьте 16.
Wan VACE рисует 16 кадров в секунду. С другим числом ролик пойдёт быстрее или медленнее, чем задумано.
- Что держит образец и что ещё делает то же (чтение)
- Он держит облик героя: лицо, волосы, одежду, цвета. Позу и место с картинки он не держит, и это не первый кадр.
- Лицо, мелкое на образце, выходит размытым; крупная чёткая картинка держит лучше.
- Другие способы держать героя во всех кадрах: Wan Animate берёт картинку-образец и движение из видео (урок «Анимация по позе: Wan Animate»); HuMo держит человека, пока он говорит (урок «Портрет, который говорит: HuMo»).
- Цена: образец заставляет модель читать больше на каждом шаге, а модель VACE большая. Ролик делается дольше, чем простая «картинка в видео».
- Граф готов (чтение)
Сохраните граф через «Файл ▸ Сохранить workflow для ComfyUI…», откройте файл в ComfyUI и запустите там. Само приложение в ComfyUI ничего не запускает.
Дальше в этой линии: «Длинное видео частями».
Что проверяет урок
Шаг для чтения сделан, когда вы нажимаете Понятно, дальше. Шаг с делом отмечается сам, когда на холсте есть:
- Шаг 2, Загрузите модель VACE:
- нода Load Diffusion Model.
- в поле
unet_nameноды Load Diffusion Model стоит файл, в имени которого естьvace(заглавные буквы, точки и дефисы не важны).
- Шаг 3, Добавьте LoRA CausVid:
- нода LoraLoaderModelOnly или Load LoRA.
MODELноды Load Diffusion Model во входmodelноды LoraLoaderModelOnly или Load LoRA.- в поле
lora_nameноды LoraLoaderModelOnly или Load LoRA стоит файл, в имени которого естьcausvid(заглавные буквы, точки и дефисы не важны). strength_modelноды LoraLoaderModelOnly или Load LoRA: от 0.2 до 1; «Сделать за меня» ставит 0.3.
- Шаг 4, Задайте сдвиг:
- нода ModelSamplingSD3.
MODELноды LoraLoaderModelOnly или Load LoRA во входmodelноды ModelSamplingSD3 (можно через LoraLoaderModelOnly или EasyCache).shiftноды ModelSamplingSD3: от 5 до 8; «Сделать за меня» ставит 8.
- Шаг 5, Загрузите текстовый энкодер:
- нода Load CLIP.
- в поле
clip_nameноды Load CLIP стоит файл, в имени которого естьumt5(заглавные буквы, точки и дефисы не важны). typeноды Load CLIP:wan.
- Шаг 6, Загрузите VAE:
- нода Load VAE.
- в поле
vae_nameноды Load VAE стоит файл, в имени которого естьwan_2.1_vae(заглавные буквы, точки и дефисы не важны).
- Шаг 7, Напишите промпт:
- нода 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 знаков.
- Шаг 8, Загрузите картинку-образец:
- нода Load Image.
imageноды Load Image: значение выбрано.
- Шаг 9, Сведите всё вместе:
- нода WanVaceToVideo.
CONDITIONINGноды CLIP Text Encode (Prompt) (промпт) во входpositiveноды WanVaceToVideo.CONDITIONINGноды CLIP Text Encode (Prompt) (негатив) во входnegativeноды WanVaceToVideo.VAEноды Load VAE во входvaeноды WanVaceToVideo.IMAGEноды Load Image во входreference_imageноды WanVaceToVideo (можно через Upscale Image или Upscale Image By или ImageFromBatch или ImageResizeKJv2 или Resize Image или GetImageRangeFromBatch или ResizeImageMaskNode).widthноды WanVaceToVideo: от 480 до 1280; «Сделать за меня» ставит 768.heightноды WanVaceToVideo: от 480 до 1280; «Сделать за меня» ставит 768.lengthноды WanVaceToVideo: от 49 до 121; «Сделать за меня» ставит 81.strengthноды WanVaceToVideo: от 0.5 до 1.5; «Сделать за меня» ставит 1.
- Шаг 10, Добавьте сэмплер:
- нода KSampler.
MODELноды ModelSamplingSD3 во входmodelноды KSampler (можно через LoraLoaderModelOnly или EasyCache).positiveноды WanVaceToVideo во входpositiveноды KSampler.negativeноды WanVaceToVideo во входnegativeноды KSampler.latentноды WanVaceToVideo во входlatent_imageноды KSampler.
- Шаг 11, Настройте сэмплер:
stepsноды KSampler: от 4 до 30; «Сделать за меня» ставит 4.cfgноды KSampler: от 1 до 6; «Сделать за меня» ставит 1.sampler_nameноды KSampler:uni_pc.
- Шаг 12, Отрежьте образец:
- нода TrimVideoLatent.
LATENTноды KSampler во входsamplesноды TrimVideoLatent.trim_latentноды WanVaceToVideo во входtrim_amountноды TrimVideoLatent.
- Шаг 13, Превратите результат в кадры:
- нода VAE Decode или VAE Decode (Tiled).
LATENTноды TrimVideoLatent во вход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:16.