Doom LTX Sampler
First frame + prompt = video with sound, in one node
- model
- clip
- vae
- audio_vae
- image
- upscale_model
- enhance_clip
- duration_head
- images
- audio
- enhanced_prompt
- predicted_seconds
Doom LTX Sampler is the pack's image-to-video node for LTX-2.5, and it does the whole pipeline in one purple box: first frame + prompt → video with synchronized audio, optional ×2 latent upscale, optional prompt enhancement, and even a duration head that predicts how long the clip should be from your prompt. Feed it the outputs of Doom_LTXLoader, and you get frames, an audio track, and the effective prompt out the other side.
This is the node the pack is quietly built around - the README's LTX workflow is the flagship example. LTX is the speed tier of local video: where Wan takes minutes per clip, LTX takes seconds, and it's one of the few open models generating audio and video together in a single pass.
How it works
The pipeline mirrors the official LTX-2.5 i2v workflow, hardcoded sensibly:
- Two-stage sampling. Stage 1 runs at the base
width×heightwith the distilled 8-step sigma scheme; then, iflatent_upscaleis on (default), a latent upscaler ×2 brings it to finalwidth×2×height×2and a 3-step refine pass runs on top. Turnlatent_upscaleoff for the fast/low-VRAM path - output is then justwidth×height. - First-frame conditioning. Your
imageis the start frame, embedded at the official strengths for each stage.img_compression(default 18, the official value) is the pre-process compression; 0 means none. - Audio is mandatory-ish.
audio_vaeis required - sound is generated together with video, not as an afterthought. The audio comes out asaudio({waveform, sample_rate}), ready forDoom_SaveVideoFreeor any audio-save node. - Prompt enhancer. With
prompt_enhanceon (default), a short prompt is expanded into something cinematic by the instructional Gemma (enhance_clipfrom the loader), considering the first frame; the enhanced text is returned inenhanced_promptso you can see what actually went in. auto_duration. With the duration head loaded (andauto_durationon), thedurationinput is ignored and clip length is predicted from the prompt via the official LTX duration predictor, clamped tomin_seconds/max_seconds; the raw prediction is emitted aspredicted_seconds.- CFG is fixed at 1.0 - the distilled model's setting, no dial to mis-tune. Sampler default is
euler_ancestral.
Outputs: images (frames, straight into a video saver), audio, enhanced_prompt, predicted_seconds. Tiled VAE decoding keeps VRAM sane on lower cards.
Installing it
cd ComfyUI/custom_nodes
git clone https://github.com/PeterMikhai/Doom_Flux_NodePack
Restart or ComfyUI Manager. No extra pip deps; relies on ComfyUI's own LTX support, so keep ComfyUI current. The README's DoomAI_nodes.git clone line is stale - repo is Doom_Flux_NodePack. All the model files come from the loader: diffusion, Gemma CLIP, video VAE, audio VAE, optional upscaler/enhancer/duration head.
Common issues
- No audio.
audio_vaenot loaded, or set to None on the loader. It's required here - reconnect it. auto_durationon but no duration head → error or ignored toggle. The head must be loaded and connected; otherwise leave auto_duration off and setduration(1–20s) yourself.- Prompt enhancer doing nothing →
enhance_clipmissing. Either connect it from the loader or let the sampler's lazy auto-load find the standard Gemma intext_encoders. - VRAM. Long/high-res clips are heavy. The 22B int8 build is the friendly path; keep
latent_upscaleoff and start at 640×360 if it OOMs. LTX also punishes thin prompts - the KB's LTX doc is full of "seriously low quality" complaints that trace back to under-described scenes. img_compressioncranked to 0 - sharper start frame, but some workflows behave oddly; 18 is the official value for a reason.
It's the pack's flagship for a reason: video with audio in one node, no sampler constellation, and the distilled defaults already correct.
Inputs (22)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| clip | CLIP | — | |
| vae | VAE | — | |
| audio_vae | VAE | Audio VAE LTX-2.5 (обязателен — звук генерируется вместе с видео) | |
| image | IMAGE | Первый кадр (стартовое изображение) | |
| prompt | STRING | Промпт: сцена, движение, свет, камера, стиль | |
| negative | STRING | pc game, console game, video game, cartoon, childish, ugly | Негативный промпт |
| duration | INT | 51–20 | Длина клипа в секундах |
| auto_duration | BOOLEAN | false | Вкл: длина клипа предсказывается duration head из промпта (вход duration игнорируется). Требует duration_head от Loader'а |
| min_seconds | FLOAT | 1.00.5–120 | Нижняя граница предсказанной длины (auto_duration) |
| max_seconds | FLOAT | 20.00.5–120 | Верхняя граница предсказанной длины (auto_duration) |
| fps | INT | 241–60 | — |
| width | INT | 64064–8192 | Базовая ширина генерации (стадия 1, без апскейла). При latent_upscale=вкл финальная ширина = width×2 |
| height | INT | 36064–8192 | Базовая высота генерации (стадия 1, без апскейла). При latent_upscale=вкл финальная высота = height×2 |
| latent_upscale | BOOLEAN | true | Вкл: латентный апскейл ×2 → финальный размер width×2 × height×2 + рефайн-прогон (официальный воркфлоу). Выкл: выход = width×height без апскейла — быстрее и меньше VRAM |
| prompt_enhance | BOOLEAN | true | Вкл: короткий промпт расширяется энхансером (gemma4_e2b_it) в кинематографичный, с учётом первого кадра; результат — в выходе enhanced_prompt |
| noise_seed | INT | 00–18446744073709550000 | — |
| sampler_name | COMBO | euler_ancestral | 44 options: euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, heunpp2, +38 |
| img_compression | INT | 180–100 | Сжатие стартового кадра перед подачей (LTXVPreprocess); 18 — официальный воркфлоу, 0 — без сжатия |
| upscale_modelopt | LATENT_UPSCALE_MODEL | Латентный апскейлер LTX-2.5; нужен при latent_upscale=вкл | |
| enhance_clipopt | CLIP | Инструкционная Gemma (gemma4_e2b_it) из Loader; нужна при prompt_enhance=вкл | |
| duration_headopt | MODEL_PATCH | Duration head LTX-2.5 из Loader'а (или штатный ModelPatchLoader); нужен при auto_duration=вкл |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| images | IMAGE | Кадры [N,H,W,3] — можно сразу в Doom_SaveVideo |
| audio | AUDIO | Звуковая дорожка {waveform, sample_rate} |
| enhanced_prompt | STRING | Промпт, который реально ушёл в генерацию: улучшенный (при prompt_enhance=вкл) или исходный |
| predicted_seconds | FLOAT | Сырое предсказание duration head (сек); None при auto_duration=выкл |