Говорящее видео: InfiniteTalk
Урок «wrapper-talk» в группе WanVideoWrapper списка уроков. Шагов: 15.
Сначала согласие
Озвучивать так можно только того, кто на это согласен, и его собственным голосом или голосом, на который у вас есть разрешение. Получите разрешение на исходные материалы и учитывайте местные законы. См. Правила содержимого.
Чему вы научитесь
Портрет произнесёт текст из звукового файла, губы в такт словам.
Что понадобится
- Файлы моделей, которые урок проверяет:
- модель Wan 2.1 «картинка в видео» (i2v) 14B:
models/diffusion_models, напримерwan2.1_i2v_480p_14B_fp8_scaled.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; - файл clip_vision_h:
models/clip_vision, напримерclip_vision_h.safetensors; - модуль InfiniteTalk или MultiTalk:
models/diffusion_models, напримерWan2_1-InfiniteTalk_Single_fp8_e4m3fn_scaled_KJ.safetensors; - модель речи wav2vec:
models/wav2vec2, напримерchinese-wav2vec2-base-fp16.safetensors.
- модель Wan 2.1 «картинка в видео» (i2v) 14B:
- Ноды: WanVideo Model Loader, WanVideo T5 Text Encoder Loader, WanVideo VAE Loader, WanVideo TextEncode, Load Image, Load CLIP Vision, WanVideo ClipVision Encode, Multi/InfiniteTalk Model Loader, Load Audio, Wav2vec2 Model Loader, Multi/InfiniteTalk Wav2vec2 Embeds, WanVideo Long I2V Multi/InfiniteTalk, WanVideo Sampler, WanVideo Decode, Create Video, Save Video.
- Приложение ничего не скачивает и не устанавливает. Тексты шагов ниже говорят, какие файлы, в какие папки и какой шаблон ComfyUI их называет.
Шаги
Слова каждого шага, как их показывает урок. Имена нод выделены.
Что делает InfiniteTalk (чтение)
InfiniteTalk добавляет к модели Wan 2.1 «картинка в видео» умение слушать звук. Вы даёте портрет и запись голоса, а модель рисует, как человек с портрета говорит эти слова. Звук идёт в ролик дорожкой.
Озвучивать так можно только того, кто на это согласен, и его собственным голосом или голосом, на который у вас есть разрешение. Получите разрешение на исходные материалы и учитывайте местные законы.
Это граф на одной модели Wan 2.1, не на паре Wan 2.2. Урок собирает его с пустого холста: «Файл ▸ Новый проект».
Загрузите модель
Добавьте ноду WanVideo Model Loader и выберите в поле
modelмодель Wan 2.1i2v14B, лучше вариант 480p.Если нужного файла в списке нет, значит, его нет в вашем ComfyUI. Приложение ничего не скачивает. Проще всего открыть в самом ComfyUI пример графа InfiniteTalk из папки
example_workflowsпака WanVideoWrapper: он покажет, каких файлов не хватает и куда их положить. Потом выберите здесь в меню «Синхронизация ▸ Синхронизировать сейчас», и файлы появятся в списках.Чтение текста и VAE
Добавьте ноды WanVideo T5 Text Encoder Loader и WanVideo VAE Loader. В поле
model_nameпервой выберите файлumt5-xxl-enc, второй файлwan_2.1_vae.Коротко опишите кадр
Добавьте ноду WanVideo TextEncode и подключите ко входу
t5выход ноды WanVideo T5 Text Encoder Loader. В полеpositive_promptопишите, кто говорит и как: спокойно, с улыбкой, жестикулируя.Что именно говорится, модель берёт из звука, а не из текста.
Загрузите портрет
Добавьте ноду Load Image и выберите в поле
imageпортрет. Лучше всего подходит лицо крупно, анфас, с закрытым или слегка открытым ртом.Покажите портрет модели
Добавьте ноды Load CLIP Vision и WanVideo ClipVision Encode. В поле
clip_nameпервой выберите файлclip_vision_h. Её выход подключите ко входуclip_visionвторой, портрет ко входуimage_1.Модели Wan 2.1 «картинка в видео» без этого не обходятся.
Добавьте модуль InfiniteTalk
Добавьте ноду Multi/InfiniteTalk Model Loader и выберите в поле
modelфайл модуля InfiniteTalk. Её выход подключите ко входуmultitalk_modelзагрузчика модели.Для одного говорящего берут модуль single, для двух multi.
Загрузите голос
Добавьте три ноды: Load Audio, Wav2vec2 Model Loader и Multi/InfiniteTalk Wav2vec2 Embeds.
- В Load Audio выберите в поле
audioзвуковой файл из папкиinput. - В Wav2vec2 Model Loader выберите в поле
modelмодель распознавания речи wav2vec, обычно chinese-wav2vec2-base. Она лежит в папкеwav2vec2. - Выход
wav2vec_modelко входуwav2vec_modelноды Multi/InfiniteTalk Wav2vec2 Embeds, звук ко входуaudio_1.
В ноде Multi/InfiniteTalk Wav2vec2 Embeds оставьте
fps25: InfiniteTalk рисует 25 кадров в секунду.- В Load Audio выберите в поле
Подготовьте старт
Добавьте ноду WanVideo Long I2V Multi/InfiniteTalk. Ко входу
vaeподключите выход ноды WanVideo VAE Loader, ко входуstart_imageпортрет, ко входуclip_embedsвыход ноды WanVideo ClipVision Encode.Эта нода делает длинный ролик кусками и сшивает их, поэтому говорить он может дольше пяти секунд.
Добавьте сэмплер
Добавьте ноду WanVideo Sampler и подключите к ней:
- ко входу
modelмодель; - ко входу
text_embedsпромпт; - ко входу
image_embedsвыход ноды WanVideo Long I2V Multi/InfiniteTalk; - ко входу
multitalk_embedsвыходmultitalk_embedsноды Multi/InfiniteTalk Wav2vec2 Embeds.
- Превратите результат в кадры
Добавьте ноду WanVideo Decode. Ко входу samples подключите выход сэмплера, ко входу vae выход ноды WanVideo VAE Loader.
- Соберите ролик
Добавьте ноды Create Video и Save Video, кадры в images, ролик в video. В поле fps поставьте 25, как у звука.
- Добавьте звук в ролик
Выход audio ноды Multi/InfiniteTalk Wav2vec2 Embeds подключите ко входу audio ноды Create Video.
Без этого ролик сохранится немым, хотя губы будут двигаться.
- Если губы не попадают в слова (чтение)
Что менять в ноде Multi/InfiniteTalk Wav2vec2 Embeds:
- губы двигаются слабо: поднимите
audio_scaleдо 1.2; - лицо застывшее, двигаются только губы: поставьте
audio_cfg_scale2, ролик будет считаться дольше; - длина ролика: нода сама считает число кадров по длине звука.
Чистая запись голоса без музыки и шума работает намного лучше.
- Граф готов (чтение)
Сохраните граф через «Файл ▸ Сохранить workflow для ComfyUI…», откройте файл в ComfyUI и запустите там. Само приложение в ComfyUI ничего не запускает.
Минута речи считается долго. Пока подбираете настройки, берите отрывок на пять-десять секунд.
Что проверяет урок
Шаг для чтения сделан, когда вы нажимаете Понятно, дальше. Шаг с делом отмечается сам, когда на холсте есть:
- Шаг 2, Загрузите модель:
- нода WanVideo Model Loader.
- в поле
modelноды WanVideo Model Loader стоит файл такого вида: модель Wan 2.1 «картинка в видео» (i2v) 14B; такой файл лежит вmodels/diffusion_models, напримерwan2.1_i2v_480p_14B_fp8_scaled.safetensors.
- Шаг 3, Чтение текста и VAE:
- нода WanVideo T5 Text Encoder Loader.
- нода WanVideo VAE Loader.
- в поле
model_nameноды WanVideo T5 Text Encoder Loader стоит файл такого вида: чтение текста Wan, umt5-xxl; такой файл лежит вmodels/text_encoders, напримерumt5_xxl_fp8_e4m3fn_scaled.safetensors. - в поле
model_nameноды WanVideo VAE Loader стоит файл такого вида: VAE от Wan 2.1 (wan_2.1_vae); такой файл лежит вmodels/vae, напримерwan_2.1_vae.safetensors.
- Шаг 4, Коротко опишите кадр:
- нода WanVideo TextEncode.
wan_t5_modelноды WanVideo T5 Text Encoder Loader во входt5ноды WanVideo TextEncode.positive_promptноды WanVideo TextEncode: не меньше 3 знаков и 2 настоящих слов.
- Шаг 5, Загрузите портрет:
- нода Load Image.
imageноды Load Image: значение выбрано.
- Шаг 6, Покажите портрет модели:
- нода Load CLIP Vision.
- нода WanVideo ClipVision Encode.
CLIP_VISIONноды Load CLIP Vision во входclip_visionноды WanVideo ClipVision Encode.IMAGEноды Load Image во входimage_1ноды WanVideo ClipVision Encode.- в поле
clip_nameноды Load CLIP Vision стоит файл такого вида: файл clip_vision_h; такой файл лежит вmodels/clip_vision, напримерclip_vision_h.safetensors.
- Шаг 7, Добавьте модуль InfiniteTalk:
- нода Multi/InfiniteTalk Model Loader.
modelноды Multi/InfiniteTalk Model Loader во входmultitalk_modelноды WanVideo Model Loader.- в поле
modelноды Multi/InfiniteTalk Model Loader стоит файл такого вида: модуль InfiniteTalk или MultiTalk; такой файл лежит вmodels/diffusion_models, напримерWan2_1-InfiniteTalk_Single_fp8_e4m3fn_scaled_KJ.safetensors.
- Шаг 8, Загрузите голос:
- нода Load Audio.
- нода Wav2vec2 Model Loader.
- нода Multi/InfiniteTalk Wav2vec2 Embeds.
wav2vec_modelноды Wav2vec2 Model Loader во входwav2vec_modelноды Multi/InfiniteTalk Wav2vec2 Embeds.AUDIOноды Load Audio во входaudio_1ноды Multi/InfiniteTalk Wav2vec2 Embeds.audioноды Load Audio: значение выбрано.- в поле
modelноды Wav2vec2 Model Loader стоит файл такого вида: модель речи wav2vec; такой файл лежит вmodels/wav2vec2, напримерchinese-wav2vec2-base-fp16.safetensors. fpsноды Multi/InfiniteTalk Wav2vec2 Embeds:25. Почему: infiniteTalk рисует 25 кадров в секунду, и звук разложен на те же 25.
- Шаг 9, Подготовьте старт:
- нода WanVideo Long I2V Multi/InfiniteTalk.
vaeноды WanVideo VAE Loader во входvaeноды WanVideo Long I2V Multi/InfiniteTalk.IMAGEноды Load Image во входstart_imageноды WanVideo Long I2V Multi/InfiniteTalk.WANVIDIMAGE_CLIPEMBEDSноды WanVideo ClipVision Encode во входclip_embedsноды WanVideo Long I2V Multi/InfiniteTalk.
- Шаг 10, Добавьте сэмплер:
- нода WanVideo Sampler.
modelноды WanVideo Model Loader во входmodelноды WanVideo Sampler.text_embedsноды WanVideo TextEncode во входtext_embedsноды WanVideo Sampler.WANVIDIMAGE_EMBEDSноды WanVideo Long I2V Multi/InfiniteTalk во входimage_embedsноды WanVideo Sampler.multitalk_embedsноды Multi/InfiniteTalk Wav2vec2 Embeds во входmultitalk_embedsноды WanVideo Sampler.
- Шаг 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:25. Почему: infiniteTalk рисует 25 кадров в секунду, и звук разложен на те же 25.
- Шаг 13, Добавьте звук в ролик:
audioноды Multi/InfiniteTalk Wav2vec2 Embeds во входaudioноды Create Video.
Частые ошибки
- Музыка или шум под голосом: губы плохо попадают.
fps16 (как обычно у Wan) вместо 25: губы уплывают.- Забыть связь со звуком: немой ролик с двигающимися губами.
Что дальше
Этот урок продолжают: Разговор двоих: InfiniteTalk.