Nodes/Doom_Flux_NodePack/Doom LTX Sampler
ComfyUI Node

Doom LTX Sampler

First frame + prompt = video with sound, in one node

By PeterMikhai·Created about a year ago·Updated 6 days ago· 1
Doom LTX Sampler
  • model
  • clip
  • vae
  • audio_vae
  • image
  • upscale_model
  • enhance_clip
  • duration_head
  • images
  • audio
  • enhanced_prompt
  • predicted_seconds
prompt
negativepc game, console game, video game, cartoon, childish, ugly
duration5
auto_durationfalse
min_seconds1.0
max_seconds20.0
fps24
width640
height360
latent_upscaletrue
prompt_enhancetrue
noise_seed0
sampler_nameeuler_ancestral
img_compression18

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 × height with the distilled 8-step sigma scheme; then, if latent_upscale is on (default), a latent upscaler ×2 brings it to final width×2 × height×2 and a 3-step refine pass runs on top. Turn latent_upscale off for the fast/low-VRAM path - output is then just width × height.
  • First-frame conditioning. Your image is 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_vae is required - sound is generated together with video, not as an afterthought. The audio comes out as audio ({waveform, sample_rate}), ready for Doom_SaveVideoFree or any audio-save node.
  • Prompt enhancer. With prompt_enhance on (default), a short prompt is expanded into something cinematic by the instructional Gemma (enhance_clip from the loader), considering the first frame; the enhanced text is returned in enhanced_prompt so you can see what actually went in.
  • auto_duration. With the duration head loaded (and auto_duration on), the duration input is ignored and clip length is predicted from the prompt via the official LTX duration predictor, clamped to min_seconds/max_seconds; the raw prediction is emitted as predicted_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_vae not loaded, or set to None on the loader. It's required here - reconnect it.
  • auto_duration on but no duration head → error or ignored toggle. The head must be loaded and connected; otherwise leave auto_duration off and set duration (1–20s) yourself.
  • Prompt enhancer doing nothingenhance_clip missing. Either connect it from the loader or let the sampler's lazy auto-load find the standard Gemma in text_encoders.
  • VRAM. Long/high-res clips are heavy. The 22B int8 build is the friendly path; keep latent_upscale off 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_compression cranked 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.

CategoryDoom/Sampler

Inputs (22)

NameTypeDefaultDescription
modelMODEL
clipCLIP
vaeVAE
audio_vaeVAEAudio VAE LTX-2.5 (обязателен — звук генерируется вместе с видео)
imageIMAGEПервый кадр (стартовое изображение)
promptSTRINGПромпт: сцена, движение, свет, камера, стиль
negativeSTRINGpc game, console game, video game, cartoon, childish, uglyНегативный промпт
durationINT51–20Длина клипа в секундах
auto_durationBOOLEANfalseВкл: длина клипа предсказывается duration head из промпта (вход duration игнорируется). Требует duration_head от Loader'а
min_secondsFLOAT1.00.5–120Нижняя граница предсказанной длины (auto_duration)
max_secondsFLOAT20.00.5–120Верхняя граница предсказанной длины (auto_duration)
fpsINT241–60
widthINT64064–8192Базовая ширина генерации (стадия 1, без апскейла). При latent_upscale=вкл финальная ширина = width×2
heightINT36064–8192Базовая высота генерации (стадия 1, без апскейла). При latent_upscale=вкл финальная высота = height×2
latent_upscaleBOOLEANtrueВкл: латентный апскейл ×2 → финальный размер width×2 × height×2 + рефайн-прогон (официальный воркфлоу). Выкл: выход = width×height без апскейла — быстрее и меньше VRAM
prompt_enhanceBOOLEANtrueВкл: короткий промпт расширяется энхансером (gemma4_e2b_it) в кинематографичный, с учётом первого кадра; результат — в выходе enhanced_prompt
noise_seedINT00–18446744073709550000
sampler_nameCOMBOeuler_ancestral44 options: euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, heunpp2, +38
img_compressionINT180–100Сжатие стартового кадра перед подачей (LTXVPreprocess); 18 — официальный воркфлоу, 0 — без сжатия
upscale_modeloptLATENT_UPSCALE_MODELЛатентный апскейлер LTX-2.5; нужен при latent_upscale=вкл
enhance_clipoptCLIPИнструкционная Gemma (gemma4_e2b_it) из Loader; нужна при prompt_enhance=вкл
duration_headoptMODEL_PATCHDuration head LTX-2.5 из Loader'а (или штатный ModelPatchLoader); нужен при auto_duration=вкл

Outputs (4)

NameTypeDescription
imagesIMAGEКадры [N,H,W,3] — можно сразу в Doom_SaveVideo
audioAUDIOЗвуковая дорожка {waveform, sample_rate}
enhanced_promptSTRINGПромпт, который реально ушёл в генерацию: улучшенный (при prompt_enhance=вкл) или исходный
predicted_secondsFLOATСырое предсказание duration head (сек); None при auto_duration=выкл