Видео на WanVideoWrapper
Урок «wrapper» в группе WanVideoWrapper списка уроков. Шагов: 17.
Чему вы научитесь
Соберёте граф Wan 2.2 на нодах пака WanVideoWrapper и поймёте, чем он отличается от встроенного.
Что понадобится
- Файлы моделей, которые урок проверяет:
- половина high_noise модели Wan 2.2:
models/diffusion_models, напримерWan2_2-T2V-A14B-HIGH_fp8_e4m3fn_scaled_KJ.safetensors; - половина low_noise модели Wan 2.2:
models/diffusion_models, напримерWan2_2-T2V-A14B-LOW_fp8_e4m3fn_scaled_KJ.safetensors; - чтение текста Wan, umt5-xxl:
models/text_encoders, напримерumt5_xxl_fp8_e4m3fn_scaled.safetensors; - VAE от Wan 2.1 (wan_2.1_vae):
models/vae, напримерwan_2.1_vae.safetensors.
- половина high_noise модели Wan 2.2:
- Ноды: WanVideo Model Loader, WanVideo T5 Text Encoder Loader, WanVideo VAE Loader, WanVideo TextEncode, WanVideo Empty Embeds / WanVideo ImageToVideo Encode / WanVideo VACE Encode, WanVideo Sampler, WanVideo Decode, Create Video, Save Video.
- Приложение ничего не скачивает и не устанавливает. Тексты шагов ниже говорят, какие файлы, в какие папки и какой шаблон ComfyUI их называет.
Шаги
Слова каждого шага, как их показывает урок. Имена нод выделены.
Что такое WanVideoWrapper (чтение)
Пак нод WanVideoWrapper написал автор по имени Kijai. Он запускает те же модели Wan, что и встроенные ноды ComfyUI, но по-своему. Его любят за две вещи: он умеет держать большую модель частями то в видеокарте, то в обычной памяти, и в нём раньше всего появляются новые возможности Wan.
Важно: его ноды не соединяются со встроенными. Модель из его загрузчика имеет свой тип, и вход
modelвстроенного сэмплера её не примет. Поэтому граф собирают целиком на одном или на другом.Этот урок повторяет урок «Видео из текста», только на нодах пака. Если на холсте уже есть другой граф, начните с пустого: «Файл ▸ Новый проект».
Загрузите две модели
Добавьте две ноды WanVideo Model Loader. В поле
modelодной выберите файл со словамиhigh_noise, в другой файл со словамиlow_noise.Поле
quantizationоставьтеdisabled: нода сама поймёт формат файла. Полеload_deviceоставьтеoffload_device, если модель больше памяти видеокарты.Если нужного файла в списке нет, значит, его нет в вашем ComfyUI. Приложение ничего не скачивает. Проще всего открыть в самом ComfyUI пример графа из папки
example_workflowsсамого пака: он покажет, каких файлов не хватает и куда их положить. Потом выберите здесь в меню «Синхронизация ▸ Синхронизировать сейчас», и файлы появятся в списках.Загрузите чтение текста
Добавьте ноду WanVideo T5 Text Encoder Loader и выберите в поле
model_nameфайлumt5-xxl-enc.У пака своё чтение текста. Ему нужен файл из набора автора пака, его выкладывают на Hugging Face в Kijai/WanVideo_comfy. Файл из шаблонов ComfyUI этой ноде может не подойти: тогда ComfyUI скажет об ошибке при запуске.
Загрузите VAE
Добавьте ноду WanVideo VAE Loader и выберите в поле
model_nameфайлwan_2.1_vae.Как и во встроенном графе, большим моделям Wan 2.2 нужен VAE от версии 2.1.
Напишите промпт
Добавьте ноду WanVideo TextEncode. Ко входу
t5подключите выход ноды WanVideo T5 Text Encoder Loader.Здесь оба текста в одной ноде: в поле
positive_promptпромпт ролика, в полеnegative_promptто, чего быть не должно. Пишите так же, как в уроке «Промпт для видео».Задайте размер и длину
Добавьте ноду WanVideo Empty Embeds. Поставьте
width832,height480 иnum_frames81.Эта нода заменяет пустую заготовку из встроенного графа. 81 кадр при 16 кадрах в секунду даёт пять секунд.
Первый проход
Добавьте ноду WanVideo Sampler и подключите к ней:
- ко входу
modelвыход ноды WanVideo Model Loader с модельюhigh_noise; - ко входу
text_embedsвыход ноды WanVideo TextEncode; - ко входу
image_embedsвыход ноды WanVideo Empty Embeds.
Отдельной ноды для сдвига шума здесь нет: он задаётся полем
shiftсамого сэмплера.- ко входу
Второй проход
Добавьте вторую ноду WanVideo Sampler и подключите к ней:
- ко входу
modelмодельlow_noise; - ко входам
text_embedsиimage_embedsте же выходы, что у первого; - ко входу
samplesвыходsamplesпервого сэмплера.
Так второй сэмплер получает недорисованный ролик и доводит его.
- ко входу
Разделите шаги
В обоих сэмплерах поставьте
steps20. В первом поставьтеend_step10, во второмstart_step10.Первый делает шаги с нулевого по десятый, второй с десятого до конца. Значение
end_step-1 значит «до конца»: с ним первый сэмплер сделал бы всё сам.Отдельных полей для шума, как во встроенном сэмплере, здесь нет: пак сам понимает, что ролик пришёл недорисованным.
Строгость и сдвиг шума
В обоих сэмплерах поставьте cfg 3.5 и shift 8.
Это те же числа, что во встроенном графе. По умолчанию в сэмплере пака стоит cfg 6: для Wan 2.2 это слишком строго, ролик выгорает.
- Превратите результат в кадры
Добавьте ноду WanVideo Decode. Ко входу samples подключите выход второго сэмплера, ко входу vae выход ноды WanVideo VAE Loader.
- Соберите и сохраните ролик
Добавьте ноды Create Video и Save Video. Кадры из ноды WanVideo Decode идут во вход images ноды Create Video, а её выход во вход video ноды Save Video. В поле fps поставьте 16.
Для сохранения пак своих нод не требует: подходят встроенные.
- Если не хватает памяти видеокарты (чтение)
Модель Wan 2.2 14B весит больше, чем помещается в большинство видеокарт. Пак решает это так: часть блоков модели лежит в обычной памяти и переезжает в видеокарту, только когда нужна.
Для этого добавьте ноду WanVideo BlockSwap и подключите её выход ко входу block_swap_args каждого загрузчика модели. В её поле blocks_to_swap число блоков, которые держатся вне видеокарты: начните с 20 и прибавляйте, пока ролик не перестанет падать с нехваткой памяти. Чем больше число, тем медленнее.
Ещё два способа сэкономить память: файл модели в формате fp8 и поле quantization со значением fp8_e4m3fn.
- LoRA в этом паке (чтение)
LoRA здесь не встаёт на пути модели, а подключается к загрузчику. Добавьте ноду WanVideo Lora Select, выберите в её поле lora файл и подключите её выход ко входу lora загрузчика модели.
Каждой модели своя нода: файл high к загрузчику модели high_noise, файл low к загрузчику low_noise. Несколько LoRA ставят цепочкой: выход одной ноды выбора ко входу prev_lora следующей.
LoRA для встроенного графа Wan подходят и сюда: это те же файлы.
- Слова LoRA в промпте
Если на холсте стоит нода выбора LoRA, допишите слова её файла в поле positive_prompt.
Приложение сверяет промпт со словами, записанными в файлах LoRA на холсте. Если LoRA нет или в файле нет слов, шаг засчитывается сам.
- Быстро за четыре шага (чтение)
Ускоряющая LoRA lightx2v работает и в этом паке. Поставьте её через ноды выбора LoRA к обеим моделям, а в сэмплерах поставьте steps 4, в первом end_step 2, во втором start_step 2 и cfg 1 в обоих.
При cfg 1 текст из поля negative_prompt не действует.
- Граф готов (чтение)
Сохраните граф через «Файл ▸ Сохранить workflow для ComfyUI…», откройте файл в ComfyUI и запустите там. Само приложение в ComfyUI ничего не запускает.
Кнопка «Проверить» читает и промпта этого пака: она скажет, если в тексте остались записи из других программ или второй текст не действует при cfg 1.
Дальше: урок «Видео из картинки на WanVideoWrapper» начинает ролик с вашей картинки.
Что проверяет урок
Шаг для чтения сделан, когда вы нажимаете Понятно, дальше. Шаг с делом отмечается сам, когда на холсте есть:
- Шаг 2, Загрузите две модели:
- нода WanVideo Model Loader.
- нода WanVideo Model Loader.
- в поле
modelноды WanVideo Model Loader (первый проход) стоит файл такого вида: половина high_noise модели Wan 2.2; такой файл лежит вmodels/diffusion_models, напримерWan2_2-T2V-A14B-HIGH_fp8_e4m3fn_scaled_KJ.safetensors. modelноды WanVideo Model Loader (второй проход): не тот же файл, что в полеmodelноды WanVideo Model Loader (первый проход).- в поле
modelноды WanVideo Model Loader (второй проход) стоит файл такого вида: половина low_noise модели Wan 2.2; такой файл лежит вmodels/diffusion_models, напримерWan2_2-T2V-A14B-LOW_fp8_e4m3fn_scaled_KJ.safetensors.
- Шаг 3, Загрузите чтение текста:
- нода WanVideo T5 Text Encoder Loader.
- в поле
model_nameноды WanVideo T5 Text Encoder Loader стоит файл такого вида: чтение текста Wan, umt5-xxl; такой файл лежит вmodels/text_encoders, напримерumt5_xxl_fp8_e4m3fn_scaled.safetensors.
- Шаг 4, Загрузите VAE:
- нода WanVideo VAE Loader.
- в поле
model_nameноды WanVideo VAE Loader стоит файл такого вида: VAE от Wan 2.1 (wan_2.1_vae); такой файл лежит вmodels/vae, напримерwan_2.1_vae.safetensors.
- Шаг 5, Напишите промпт:
- нода WanVideo TextEncode.
wan_t5_modelноды WanVideo T5 Text Encoder Loader во входt5ноды WanVideo TextEncode.positive_promptноды WanVideo TextEncode: не меньше 3 знаков и 2 настоящих слов.
- Шаг 6, Задайте размер и длину:
- нода WanVideo Empty Embeds или WanVideo ImageToVideo Encode или WanVideo VACE Encode.
num_framesноды WanVideo Empty Embeds или WanVideo ImageToVideo Encode или WanVideo VACE Encode: от 49 до 121, число кадров вида 4n + 1; «Сделать за меня» ставит 81. Почему: wan берёт число кадров вида 4n + 1: 49, 81, 121. 81 кадр при 16 в секунду даёт пять секунд.
- Шаг 7, Первый проход:
- нода WanVideo Sampler.
modelноды WanVideo Model Loader (первый проход) во входmodelноды WanVideo Sampler (первый проход).text_embedsноды WanVideo TextEncode во входtext_embedsноды WanVideo Sampler (первый проход).WANVIDIMAGE_EMBEDSноды WanVideo Empty Embeds или WanVideo ImageToVideo Encode или WanVideo VACE Encode во входimage_embedsноды WanVideo Sampler (первый проход).
- Шаг 8, Второй проход:
- нода WanVideo Sampler.
modelноды WanVideo Model Loader (второй проход) во входmodelноды WanVideo Sampler (второй проход).text_embedsноды WanVideo TextEncode во входtext_embedsноды WanVideo Sampler (второй проход).WANVIDIMAGE_EMBEDSноды WanVideo Empty Embeds или WanVideo ImageToVideo Encode или WanVideo VACE Encode во входimage_embedsноды WanVideo Sampler (второй проход).samplesноды WanVideo Sampler (первый проход) во входsamplesноды WanVideo Sampler (второй проход).
- Шаг 9, Разделите шаги:
stepsноды WanVideo Sampler (первый проход): от 4 до 40; «Сделать за меня» ставит 20. Почему: двадцать шагов делятся на два прохода; с другим числом граница между ними сдвинется.end_stepноды WanVideo Sampler (первый проход): от 1 до 20; «Сделать за меня» ставит 10. Почему: на этом шаге первая модель отдаёт ролик второй: двадцать шагов делятся пополам.end_stepноды WanVideo Sampler (первый проход) меньше поляstepsноды WanVideo Sampler (первый проход). Почему: если первый сэмплер остановится не раньше последнего шага, он сделает всё сам и второму нечего будет доводить.stepsноды WanVideo Sampler (второй проход) равно полюstepsноды WanVideo Sampler (первый проход). Почему: оба сэмплера считают одни и те же шаги, иначе граница между проходами не сойдётся.start_stepноды WanVideo Sampler (второй проход) равно полюend_stepноды WanVideo Sampler (первый проход). Почему: второй сэмплер продолжает с того шага, на котором остановился первый. Иначе часть шагов пропадёт или сделается дважды.
- Шаг 10, Строгость и сдвиг шума:
cfgноды WanVideo Sampler (первый проход): от 1 до 4; «Сделать за меня» ставит 3.5. Почему: в сэмплере пака по умолчанию cfg 6: для Wan 2.2 это слишком строго, ролик выгорает.cfgноды WanVideo Sampler (второй проход): от 1 до 4; «Сделать за меня» ставит 3.5. Почему: в сэмплере пака по умолчанию cfg 6: для Wan 2.2 это слишком строго, ролик выгорает.shiftноды WanVideo Sampler (первый проход): от 5 до 8; «Сделать за меня» ставит 8. Почему: у Wan при маленьком сдвиге хуже держатся композиция и движение, ролик выходит вялым.shiftноды WanVideo Sampler (второй проход): от 5 до 8; «Сделать за меня» ставит 8. Почему: у Wan при маленьком сдвиге хуже держатся композиция и движение, ролик выходит вялым.
- Шаг 11, Превратите результат в кадры:
- нода WanVideo Decode.
samplesноды WanVideo Sampler (второй проход) во входsamplesноды WanVideo Decode.vaeноды WanVideo VAE Loader во входvaeноды WanVideo Decode.
- Шаг 12, Соберите и сохраните ролик:
- нода Create Video.
- нода Save Video.
IMAGEноды WanVideo Decode во входimagesноды Create Video.VIDEOноды Create Video во входvideoноды Save Video.fpsноды Create Video:16. Почему: wan рисует 16 кадров в секунду. С другим числом ролик пойдёт быстрее или медленнее, чем задумано.
- Шаг 15, Слова LoRA в промпте:
positive_promptноды WanVideo TextEncode: есть слово-триггер файла из поляloraлюбой ноды WanVideo Lora Select, если описание файла их называет.
Частые ошибки
- Подключить загрузчик пака к встроенному сэмплеру: связь не цепляется (
WANVIDEOMODELэто неMODEL). - Оставить
end_step-1: первый сэмплер делает всё сам. - Файл
umt5_xxlиз ComfyUI в загрузчике T5 пака: ошибка при запуске. - Оставить cfg 6 по умолчанию: выгоревший ролик.
Что дальше
Этот урок продолжают: Видео из картинки на WanVideoWrapper, VACE: движение из другого видео.