AD_LTX_load_model
The one-node entry point for LTX video in Apt_Preset
- over_model
- over_vae
- over_clip
- over_audio_vae
- config
- model
- clip
- img_latent
- img_vae
- audio_latent
- audio_vae
This is where every LTX_video workflow in Apt_Preset starts. It's a loader in the "Universal Loader" spirit the pack's README describes for its other model families: instead of wiring up a checkpoint loader, a text encoder loader, an empty-latent node, and a LoRA loader separately, AD_LTX_load_model bundles all of it into one node and hands you back a single config bus that the rest of the LTX_video nodes (AD_LTX_config, AD_LTX_sampler, AD_LTX_vae_combine) can plug into.
LTX Video, if you haven't used it, is Lightricks' speed-first video model - it trades some quality against Wan for generation that's an order of magnitude faster, and the current release (LTX-2.3) does synchronized audio and video in one model. That's why this loader has audio-latent outputs alongside image ones even though you haven't given it any audio yet - it's setting up empty audio conditioning to match, ready for a node like AD_LTX_audio_input to fill in if you want it.
The inputs and outputs that matter
ckpt_name,text_encoder,lora_name- your model, text encoder, and (optional-in-effect) LoRA, picked from dropdowns populated by what's actually in your ComfyUI model folders. If these show "None," you haven't put LTX weights where this node expects them yet.strength_model(default 1, range -100 to 100) - LoRA strength, standard stuff.width/height(defaults 768×512, step 32) - note the step size isn't arbitrary. LTX's current release requires width and height divisible by 32, so this node's slider is built to only ever land on valid values.frame_rate(default 24) andframes_number(default 97, step 8) - same story: LTX's frame count has to be divisible by 8 (plus 1), and the step-8 increment keeps you on that grid without having to do the math yourself.over_model,over_vae,over_clip,over_audio_vae(all optional) - the "override" pattern the pack uses everywhere. Wire something intoover_modeland the node's internal checkpoint loading for that piece gets bypassed entirely in favor of what you fed it. Handy if you're loading a GGUF-quantized LTX checkpoint through a separate loader and just want this node's canvas-and-config logic without its own model loading.
Outputs: config (the bundle you pass downstream), plus model, clip, img_latent, img_vae, audio_latent, audio_vae unpacked individually, in case you want to wire something straight off this node instead of going through AD_LTX_config.
How to install it
Via ComfyUI Manager: search "ComfyUI-Apt_Preset". Manually:
cd ComfyUI/custom_nodes
git clone https://github.com/cardenluo/ComfyUI-Apt_Preset.git
Then install.bat (Windows, double-click) or pip install -r requirements.txt (Linux/Mac), then restart. If you want to load GGUF-quantized LTX weights through over_model, the pack's own README says to install ComfyUI-GGUF first - that's a hard prerequisite for GGUF, not optional. You'll also need actual LTX model files: an LTX checkpoint and its text encoder, downloaded separately and placed in ComfyUI's model folders - this loader doesn't ship any weights itself.
Common issues & troubleshooting
Dropdowns show "None." No LTX checkpoint/text-encoder files are where this node looks. Download them from Lightricks' official HuggingFace repos and place them in your ComfyUI model folders, then restart.
Width/height won't land on the number you typed. That's the step-32 constraint doing its job - off-grid resolutions fail on LTX rather than silently rounding, so the widget is built to keep you on a valid value instead of letting you hit that error at sample time.
Frame count feels oddly specific (97, not 96 or 100). That's the 8-plus-1 grid: 97 = 12×8 + 1. If you want a different length, move in steps of 8 from a valid base rather than typing an arbitrary number.
You've got a GGUF LTX checkpoint and this loader's ckpt_name doesn't see it. Right - this node's own dropdown is for regular checkpoint files. Load the GGUF file with ComfyUI-GGUF's own loader and feed the result into over_model instead.
Inputs (12)
| Name | Type | Default | Description |
|---|---|---|---|
| ckpt_name | COMBO | 1 options: None | |
| text_encoder | COMBO | 1 options: None | |
| lora_name | COMBO | 1 options: None | |
| strength_model | FLOAT | 1.00-100–100 | — |
| width | INT | 76864–4096 | — |
| height | INT | 51264–4096 | — |
| frame_rate | INT | 241–120 | — |
| frames_number | INT | 971–2000 | — |
| over_modelopt | MODEL | — | |
| over_vaeopt | VAE | — | |
| over_clipopt | CLIP | — | |
| over_audio_vaeopt | VAE | — |
Outputs (7)
| Name | Type | Description |
|---|---|---|
| config | LTX_CONFIG | — |
| model | MODEL | — |
| clip | CLIP | — |
| img_latent | LATENT | — |
| img_vae | VAE | — |
| audio_latent | LATENT | — |
| audio_vae | VAE | — |