Видео со звуком: LTX-2.5
Урок «video-ltx» в группе Видео списка уроков. Шагов: 16.
Чему вы научитесь
Один запуск рисует ролик и звук к нему вместе, по промпту.
Что понадобится
- Урок продолжает Видео на скромной видеокарте: Wan 2.2 5B. Карточка говорит об этом; это подсказка, а не замок.
- Файлы моделей, которые урок проверяет:
- для поля
unet_nameноды Load Diffusion Model: файл, в имени которого естьltx-2; - для поля
clip_nameноды Load CLIP: файл, в имени которого естьgemma; - для поля
vae_nameноды Load VAE (VAE видео): файл, в имени которого естьltxиvideo; - для поля
vae_nameноды Load VAE (VAE звука): файл, в имени которого естьltxиaudio; - для поля
model_nameноды Load Latent Upscale Model: файл, в имени которого естьltxиupscaler.
- для поля
- Ноды: Load Diffusion Model, Load CLIP, Load VAE, CLIP Text Encode (Prompt), LTXVConditioning, EmptyLTXVLatentVideo, Empty LTXV Latent Audio, LTXVConcatAVLatent, RandomNoise, KSamplerSelect, ManualSigmas, LTXVDualCFGGuider, SamplerCustomAdvanced, LTXVSeparateAVLatent, Load Latent Upscale Model, LTXVLatentUpsampler, VAE Decode (Tiled) / VAE Decode, LTXV Audio VAE Decode, Create Video, Save Video.
- Приложение ничего не скачивает и не устанавливает. Тексты шагов ниже говорят, какие файлы, в какие папки и какой шаблон ComfyUI их называет.
Шаги
Слова каждого шага, как их показывает урок. Имена нод выделены.
Сначала о цене (чтение)
LTX-2.5 от Lightricks рисует картинку и звук за один проход: шаги, дождь, голос. Граф работает в два этапа: первый рисует ролик в половинном размере, апскейлер латента удваивает его, второй этап дорабатывает детали.
Что нужно: дистиллированная модель (больше 20 ГБ) в
models/diffusion_models; текстовый энкодер Gemma (около 12 ГБ) вmodels/text_encoders; два файла VAE, для видео и для звука, вmodels/vae; апскейлер вmodels/latent_upscale_models. Удобно с картой на 24 ГБ; с меньшей ComfyUI переносит части в оперативную память, и запуск медленнее. Дистиллированной модели нужно всего восемь шагов и три, поэтому пятисекундный ролик делается минуты.Это самый большой граф среди этих уроков. Если на холсте уже есть другой граф, начните с пустого: «Файл ▸ Новый проект».
Загрузите модель
Добавьте ноду Load Diffusion Model и выберите в
unet_nameдистиллированный файлltx-2.5.Если нужного файла в списке нет, значит, его нет в вашем ComfyUI. Приложение ничего не скачивает. Проще всего открыть в самом ComfyUI шаблон «LTX-2.5: Text to Video»: он покажет, каких файлов не хватает и куда их положить. Потом выберите здесь в меню «Синхронизация ▸ Синхронизировать сейчас», и файлы появятся в списках.
Текстовый энкодер и два VAE
Добавьте ноды Load CLIP, Load VAE и вторую Load VAE.
- В
clip_nameноды Load CLIP выберите файл Gemma, сделанный для LTX-2.5, и вtypeпоставьтеltxv. - В
vae_nameноды Load VAE выберите файлvideo-vae. - В
vae_nameвторого загрузчика VAE выберите файлaudio-vae.
У картинки и у звука свой VAE; если их перепутать, вместо звука будет шум.
- В
Напишите промпт со звуком
Добавьте две ноды CLIP Text Encode (Prompt) и подключите выход
CLIPноды Load CLIP к каждой. В полеtextодной опишите сцену в несколько предложений и скажите, что слышно: «дождь стучит по жестяной крыше», «она тихо говорит: мы опаздываем». Вторая для негативного промпта.LTX лучше всего читает длинные подробные промпты.
Сообщите модели частоту кадров
Добавьте ноду LTXVConditioning. Подключите два промпта к её входам
positiveиnegativeи поставьтеframe_rate24.Модели нужно знать, как быстро идёт время в ролике, чтобы движение и звук шли в ногу.
Размер и длина первого этапа
Добавьте ноду EmptyLTXVLatentVideo. Поставьте
width768,height512 иlength121.Это половина итогового размера: апскейлер его удвоит. У LTX число кадров вида 8n + 1 (97, 121), а стороны кратны 32. 121 кадр при 24 кадрах в секунду дают пять секунд.
Заготовка для звука вместе с видео
Добавьте ноды Empty LTXV Latent Audio и LTXVConcatAVLatent.
- Выход загрузчика звукового VAE подключите ко входу
audio_vaeноды Empty LTXV Latent Audio. Поставьтеframes_number121 иframe_rate24, как у видео. - Выход ноды EmptyLTXVLatentVideo подключите к
video_latentноды LTXVConcatAVLatent, выход Empty LTXV Latent Audio кaudio_latent.
Модель рисует картинку и звук в одном латенте, поэтому две заготовки идут вместе.
- Выход загрузчика звукового VAE подключите ко входу
Шум, сэмплер и шаги
Добавьте ноды RandomNoise, KSamplerSelect и ManualSigmas.
- В
sampler_nameноды KSamplerSelect выберитеeuler_ancestral. - В поле
sigmasноды ManualSigmas впишите:1.0, 0.99375, 0.9875, 0.98125, 0.975, 0.909375, 0.725, 0.421875, 0.0.
Этот сэмплер собирается из частей. Список чисел это шум, который остаётся после каждого шага: дистиллированная модель обучена ровно на эти восемь шагов.
- В
Направляющая нода
Добавьте ноду LTXVDualCFGGuider. Ко входу
modelподключите модель, кpositiveиnegativeодноимённые выходы ноды LTXVConditioning. Поставьтеvideo_cfgиaudio_cfg1.Дистиллированной модели не нужен дополнительный нажим промпта; значение выше пережигает картинку.
Первый этап
Добавьте ноду SamplerCustomAdvanced и подключите к ней: noise от RandomNoise, guider от LTXVDualCFGGuider, sampler от KSamplerSelect, sigmas от ManualSigmas, latent_image от LTXVConcatAVLatent.
- Удвойте размер видео
Добавьте ноды LTXVSeparateAVLatent, Load Latent Upscale Model, LTXVLatentUpsampler и вторую LTXVConcatAVLatent.
- Выход
outputпервого этапа идёт во входav_latentноды LTXVSeparateAVLatent: она разделяет видео и звук. - В
model_nameноды Load Latent Upscale Model выберите файл пространственного апскейлера LTX-2.5. Его выход идёт вupscale_modelноды LTXVLatentUpsampler, видео-VAE вvae, аvideo_latentноды LTXVSeparateAVLatent вsamples. - Выход LTXVLatentUpsampler идёт в
video_latentновой ноды соединения, аaudio_latentноды LTXVSeparateAVLatent в еёaudio_latent.
Увеличивается только видео, звук идёт дальше как есть.
- Второй этап
Добавьте вторую ноду ManualSigmas с sigmas 0.85, 0.7250, 0.4219, 0.0 и вторую SamplerCustomAdvanced. К новому сэмплеру подключите тот же шум, ту же направляющую ноду и тот же выбор сэмплера, новый список шагов и выход второго соединения к latent_image.
Три коротких шага дорабатывают детали большого ролика. В шаблоне у каждого этапа своя копия шума, направляющей ноды и выбора сэмплера с теми же настройками; одной на оба этапа достаточно.
- Превратите результат в кадры и звук
Добавьте вторую ноду LTXVSeparateAVLatent, ноду VAE Decode (Tiled) и ноду LTXV Audio VAE Decode.
- Выход
outputвторого этапа идёт вav_latentновой разделяющей ноды. - Её
video_latentидёт вsamplesноды VAE Decode (Tiled), видео-VAE вvae. - Её
audio_latentидёт вsamplesноды LTXV Audio VAE Decode, звуковой VAE вaudio_vae.
Декодер по кусочкам превращает большой ролик в кадры частями, и конец запуска требует меньше памяти.
- Соберите ролик со звуком
Добавьте ноды Create Video и Save Video: кадры в images, звук в audio, ролик в video. В поле fps поставьте 24, как в ноде LTXVConditioning.
- Если результат не тот (чтение)
- Звук не подходит к картинке: опишите звук в промпте так же ясно, как картинку.
- Ролик стоит на месте: опишите одно ясное действие и движение камеры.
- Не помещается в память: поставьте
length97 или размер 640 × 384.
- Граф готов (чтение)
Сохраните граф через «Файл ▸ Сохранить workflow для ComfyUI…», откройте файл в ComfyUI и запустите там. Само приложение в ComfyUI ничего не запускает.
Что проверяет урок
Шаг для чтения сделан, когда вы нажимаете Понятно, дальше. Шаг с делом отмечается сам, когда на холсте есть:
- Шаг 2, Загрузите модель:
- нода Load Diffusion Model.
- в поле
unet_nameноды Load Diffusion Model стоит файл, в имени которого естьltx-2(заглавные буквы, точки и дефисы не важны).
- Шаг 3, Текстовый энкодер и два VAE:
- нода Load CLIP.
- нода Load VAE.
- нода Load VAE.
- в поле
clip_nameноды Load CLIP стоит файл, в имени которого естьgemma(заглавные буквы, точки и дефисы не важны). typeноды Load CLIP:ltxv.- в поле
vae_nameноды Load VAE (VAE видео) стоит файл, в имени которого естьltxиvideo(заглавные буквы, точки и дефисы не важны). vae_nameноды Load VAE (VAE звука): не тот же файл, что в полеvae_nameноды Load VAE (VAE видео).- в поле
vae_nameноды Load VAE (VAE звука) стоит файл, в имени которого естьltxиaudio(заглавные буквы, точки и дефисы не важны).
- Шаг 4, Напишите промпт со звуком:
- нода 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) (промпт): не меньше 40 знаков.
- Шаг 5, Сообщите модели частоту кадров:
- нода LTXVConditioning.
CONDITIONINGноды CLIP Text Encode (Prompt) (промпт) во входpositiveноды LTXVConditioning.CONDITIONINGноды CLIP Text Encode (Prompt) (негатив) во входnegativeноды LTXVConditioning.frame_rateноды LTXVConditioning:24.
- Шаг 6, Размер и длина первого этапа:
- нода EmptyLTXVLatentVideo.
widthноды EmptyLTXVLatentVideo: от 512 до 960; «Сделать за меня» ставит 768.heightноды EmptyLTXVLatentVideo: от 288 до 544; «Сделать за меня» ставит 512.lengthноды EmptyLTXVLatentVideo: от 49 до 121; «Сделать за меня» ставит 121.
- Шаг 7, Заготовка для звука вместе с видео:
- нода Empty LTXV Latent Audio.
- нода LTXVConcatAVLatent.
VAEноды Load VAE (VAE звука) во входaudio_vaeноды Empty LTXV Latent Audio.LATENTноды EmptyLTXVLatentVideo во входvideo_latentноды LTXVConcatAVLatent (соединение, первая стадия).LATENTноды Empty LTXV Latent Audio во входaudio_latentноды LTXVConcatAVLatent (соединение, первая стадия).frames_numberноды Empty LTXV Latent Audio равно полюlengthноды EmptyLTXVLatentVideo.frame_rateноды Empty LTXV Latent Audio равно полюframe_rateноды LTXVConditioning.
- Шаг 8, Шум, сэмплер и шаги:
- нода RandomNoise.
- нода KSamplerSelect.
- нода ManualSigmas.
sampler_nameноды KSamplerSelect:euler_ancestral.sigmasноды ManualSigmas (первая стадия):1.0, 0.99375, 0.9875, 0.98125, 0.975, 0.909375, 0.725, 0.421875, 0.0.
- Шаг 9, Направляющая нода:
- нода LTXVDualCFGGuider.
MODELноды Load Diffusion Model во входmodelноды LTXVDualCFGGuider (можно через LoraLoaderModelOnly или EasyCache).positiveноды LTXVConditioning во входpositiveноды LTXVDualCFGGuider.negativeноды LTXVConditioning во входnegativeноды LTXVDualCFGGuider.video_cfgноды LTXVDualCFGGuider:1.audio_cfgноды LTXVDualCFGGuider:1.
- Шаг 10, Первый этап:
- нода SamplerCustomAdvanced.
NOISEноды RandomNoise во входnoiseноды SamplerCustomAdvanced (первая стадия).GUIDERноды LTXVDualCFGGuider во входguiderноды SamplerCustomAdvanced (первая стадия).SAMPLERноды KSamplerSelect во входsamplerноды SamplerCustomAdvanced (первая стадия).SIGMASноды ManualSigmas (первая стадия) во входsigmasноды SamplerCustomAdvanced (первая стадия).LATENTноды LTXVConcatAVLatent (соединение, первая стадия) во входlatent_imageноды SamplerCustomAdvanced (первая стадия).
- Шаг 11, Удвойте размер видео:
- нода LTXVSeparateAVLatent.
- нода Load Latent Upscale Model.
- нода LTXVLatentUpsampler.
- нода LTXVConcatAVLatent.
outputноды SamplerCustomAdvanced (первая стадия) во входav_latentноды LTXVSeparateAVLatent (после первой стадии).video_latentноды LTXVSeparateAVLatent (после первой стадии) во входsamplesноды LTXVLatentUpsampler.LATENT_UPSCALE_MODELноды Load Latent Upscale Model во входupscale_modelноды LTXVLatentUpsampler.VAEноды Load VAE (VAE видео) во входvaeноды LTXVLatentUpsampler.LATENTноды LTXVLatentUpsampler во входvideo_latentноды LTXVConcatAVLatent (соединение, вторая стадия).audio_latentноды LTXVSeparateAVLatent (после первой стадии) во входaudio_latentноды LTXVConcatAVLatent (соединение, вторая стадия).- в поле
model_nameноды Load Latent Upscale Model стоит файл, в имени которого естьltxиupscaler(заглавные буквы, точки и дефисы не важны).
- Шаг 12, Второй этап:
- нода ManualSigmas.
- нода SamplerCustomAdvanced.
NOISEноды RandomNoise во входnoiseноды SamplerCustomAdvanced (вторая стадия).GUIDERноды LTXVDualCFGGuider во входguiderноды SamplerCustomAdvanced (вторая стадия).SAMPLERноды KSamplerSelect во входsamplerноды SamplerCustomAdvanced (вторая стадия).SIGMASноды ManualSigmas (вторая стадия) во входsigmasноды SamplerCustomAdvanced (вторая стадия).LATENTноды LTXVConcatAVLatent (соединение, вторая стадия) во входlatent_imageноды SamplerCustomAdvanced (вторая стадия).sigmasноды ManualSigmas (вторая стадия):0.85, 0.7250, 0.4219, 0.0.
- Шаг 13, Превратите результат в кадры и звук:
- нода LTXVSeparateAVLatent.
- нода VAE Decode (Tiled) или VAE Decode.
- нода LTXV Audio VAE Decode.
outputноды SamplerCustomAdvanced (вторая стадия) во входav_latentноды LTXVSeparateAVLatent (после второй стадии).video_latentноды LTXVSeparateAVLatent (после второй стадии) во входsamplesноды VAE Decode (Tiled) или VAE Decode.VAEноды Load VAE (VAE видео) во входvaeноды VAE Decode (Tiled) или VAE Decode.audio_latentноды LTXVSeparateAVLatent (после второй стадии) во входsamplesноды LTXV Audio VAE Decode.VAEноды Load VAE (VAE звука) во входaudio_vaeноды LTXV Audio VAE Decode.
- Шаг 14, Соберите ролик со звуком:
- нода Create Video.
- нода Save Video.
IMAGEноды VAE Decode (Tiled) или VAE Decode во входimagesноды Create Video.AUDIOноды LTXV Audio VAE Decode во входaudioноды Create Video.VIDEOноды Create Video во входvideoноды Save Video.fpsноды Create Video:24.