LC Model Optimizer Video ⚡
Video Is Where File Choice Actually Bites
- model
- clip
- vae
- audio_vae
- latent_upscaler
- summary
On an image model you can absorb a bad quant choice. You lose a little skin texture, shrug, and move on. On video you can't: the difference between a file that fits and one that doesn't is "twelve minutes" versus "crashed at step 3", and a 22B transformer plus a 12B text encoder is a VRAM budget no one should be doing in their head. That's the case LC Model Optimizer Video was built for.
What it does
It's the same engine as LC Model Optimizer, pointed at video families. You pick a base_model - MiniMax H3 FL2VA (first and last frame, the default), MiniMax H3 Ref2VA (reference to video), LTX 2.5 (22B distilled), LTX 2.3 (22B dev), or Custom - plus a goal (Quality / Optimal / Fast), and it chooses the model, text encoder, VAEs, latent upscaler and LoRA from the System & Model Optimization Report for your card.
Six outputs, and every one of them is a thing you'd otherwise hunt for by filename:
model→ your samplerclip→ your text encodingvae→ video decodeaudio_vae→ decode for models that generate audio natively, which both MiniMax H3 and LTX 2.5 dolatent_upscaler→ theLATENT_UPSCALE_MODELfor a second, higher-resolution pass (LTX 2.3's spatial upscaler x2 1.1, LTX 2.5's x2)summary→ a STRING telling you what it loaded
The outputs never change with the base model, which is the design decision that matters most here. Swap from LTX to H3 and your wires stay exactly where they were; a part the model doesn't use just reports "not used by" - MiniMax H3 has no latent upscaler on this node, for example. Rebuilding a video graph because you changed families is nobody's idea of a good afternoon.
The lora widget, and why it exists
There's a lora picker on this node, and it isn't generic. It's for LTX 2.3's distilled LoRA, applied at 0.5 - the same strength Comfy's own template uses. That 0.5 matters: community testing on LTX 2.3 settled on 0.4 for the first sampler stage and 0.5 for the second, and the distilled LoRA version matters even more. Version 1.0 had a documented habit of producing mumbling, garbled audio out of the first sampler; 1.1 fixed it. The picker ships the 1.1 file for that reason. Don't swap in a 1.0 you already had lying around.
How it decides, briefly
Same as the image version: run the System & Model Optimization Report (Settings → LC123 Settings ⚙️ → Optimization, or right-click the empty canvas) and it benchmarks your machine in about ten seconds - including actually running the speed-up stack. Then model_file, text_encoder, vae, audio_vae and latent_upscaler all default to ★ Recommended, which names the real file. No report yet? Comfy's defaults, and a 💡 nagging you to run it. Missing files appear as ⬇ Download entries and fetch from Hugging Face on first queue. The engine also knows which ComfyUI loader each file needs - LTX's encoder goes through LTX's own text-encoder loader, the upscaler through the latent-upscale loader - so you don't have to remember.
speed_ups: auto applies what tested cleanly on your card: attention backend, fp16 accumulation and EasyCache step caching (both Fast-goal only), and torch_compile if you deliberately turn it on. Manual lets you set each one.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/lonecatone23/ComfyUI_LC123_nodes.git
Or search ComfyUI LC123 Nodes in ComfyUI Manager. No requirements.txt, no pip step - the pack uses ComfyUI's own torch and numpy. Install ComfyUI-GGUF if you plan to take the GGUF options (the LTX download list runs from bf16 down through Q8_0, Q4_K_M and Q2_K; the bottom of that ladder looks like the bottom of that ladder).
Where it goes wrong
Licences, not machinery, are the wall here. Both big video families ship under community licences: MiniMax H3's excludes the EU, UK, Korea and the US, and its weights are gated - accept the licence on the Hugging Face page and be logged in locally or the run dies mid-queue with a gated-repo error. That's the same class of failure as any gated download, and it looks like a hang until you read the console.
Mismatched encoders. LTX 2.3 wants Gemma 3 12B, LTX 2.5 wants Gemma 4 12B with the projector. Hand this node the wrong one and it reads the file header and shows a ⚠️ - a hint, not a block. It'll let you run it, because finetunes and odd combos are legitimate, but "it runs" is not "it's right", and a wrong encoder on a video model costs you ten minutes per attempt.
Then the usual video reality. Even with the right files, VRAM is the constraint: 22B-class models plus 12B text encoders mean the quantisation level decides whether you generate at 480p or 720p. The optimizer removes the filename guesswork, not the maths. If the status panel says a file doesn't fit, believe it and drop a rung on the goal.
Inputs (16)
| Name | Type | Default | Description |
|---|---|---|---|
| base_model | COMBO | MiniMax H3 FL2VA | The model family. Picks the recommended files and the checks. |
| goal | COMBO | Optimal | Quality = closest to bf16. Optimal = fast and near identical. Fast = fastest that still looks right. |
| model_file | COMBO | ★ Recommended | 52 options: ★ Recommended, From checkpoint, None, ⬇ Download: ltx-2.3-22b-dev.safetensors, ⬇ Download: ltx-2.3-22b-dev-fp8.safetensors, ⬇ Download: ltx-2.3-22b-dev-nvfp4.safetensors, +46 |
| text_encoder | COMBO | ★ Recommended | 17 options: ★ Recommended, From checkpoint, None, ⬇ Download: gemma_3_12B_it.safetensors, ⬇ Download: gemma_3_12B_it_fp8_scaled.safetensors, ⬇ Download: gemma_3_12B_it_fp4_mixed.safetensors, +11 |
| vae | COMBO | ★ Recommended | 6 options: ★ Recommended, From checkpoint, None, ⬇ Download: ltx-2.5-video-vae-bf16.safetensors, ⬇ Download: minimax_h3_video_vae_int8_convrot.safetensors, ⬇ Download: minimax_h3_video_vae_fp16.safetensors |
| audio_vae | COMBO | ★ Recommended | 5 options: ★ Recommended, From checkpoint, None, ⬇ Download: ltx-2.5-audio-vae-bf16.safetensors, ⬇ Download: minimax_h3_audio_vae_fp32.safetensors |
| latent_upscaler | COMBO | ★ Recommended | 5 options: ★ Recommended, From checkpoint, None, ⬇ Download: ltx-2.3-spatial-upscaler-x2-1.1.safetensors, ⬇ Download: ltx-2.5-spatial-upscaler-x2.safetensors |
| lora | COMBO | ★ Recommended | 4 options: ★ Recommended, From checkpoint, None, ⬇ Download: ltx_2.3_22b_distilled_1.1_lora_dynamic_fro09_avg_rank_111_bf16.safetensors |
| speed_ups | COMBO | Auto | Auto = from the System & Model Optimization Report. Manual = choose each one below. |
| attention | COMBO | auto | Attention backend. auto = the fastest one that passed the report's test. |
| fp16_accumulation | COMBO | auto | Faster fp16 math with a small quality cost. auto = Fast goal only. |
| step_cache | COMBO | auto | EasyCache: skips steps that barely change. auto = Fast goal, 20+ steps. |
| torch_compile | COMBO | off | Compiles the model: the first run is slow, later runs are faster. Needs Triton. |
| clip_type | COMBO | auto | Custom only: how the text encoder is loaded (CLIPLoader's type). auto = from the encoder's shape when it matches one known base model. Ignored for the other base models and for a checkpoint's own encoder. |
| spectrumopt | COMBO | auto | MiniMax H3 only: Spectrum by xmarre (ComfyUI-Spectrum-MiniMax-H3, install it separately) forecasts some steps instead of running them, about 1.3x faster. Step- and size-aware: it sits out runs over 12 steps or under 0.9 MP, where it cost lip sync in our tests. auto = FL2VA on the Optimal and Fast goals (off on Ref2VA, where it smeared reference videos in our tests). off = opt out (works with speed_ups on Auto too). Replaces the step cache when on. |
| vedaopt | COMBO | auto | MiniMax H3 only: Veda sparse attention (Veda-on-ComfyUI + its predictor in models/veda, install separately) for low resolution. auto = runs under 0.9 MP (about 1.4x on an 8 GB card, same look), full attention above it, where the face drifted in our tests. on = every resolution. off = opt out (works with speed_ups on Auto too). |
Outputs (6)
| Name | Type | Description |
|---|---|---|
| model | MODEL | — |
| clip | CLIP | — |
| vae | VAE | — |
| audio_vae | VAE | — |
| latent_upscaler | LATENT_UPSCALE_MODEL | — |
| summary | STRING | — |