XB-BOX - 📦 模型加载大全V3
Dual CLIP and dual VAE in one node
- MODEL
- CLIP
- VAE1
- VAE2
V3 is the LTX 2.3 special. Where V1 gives you one of everything and V2 gives you two models, V3 gives you one model but two CLIPs and two VAEs. That's not arbitrary - LTX 2.3 is an audio-video model, so it needs a text encoder for prompts and a separate audio understanding, plus a video VAE and a dedicated audio VAE. This node loads the whole stack from one place and hands out MODEL, CLIP, VAE1, VAE2.
If you've built any LTX 2.3 workflow by hand, you know the pain this removes: four or five loader nodes just to get the model family resident. And the pack's own XB_LTX23_InfiniteStreamer - the infinite-lipsync pipeline node - expects exactly this shape of inputs: model, video VAE, audio VAE, clip. V3 is its natural front end.
How it works
The mechanism is a thin shell over the official loaders, same as V1/V2:
- model - loaded via
UNETLoader, withmodel_weight_dtype(fp8 options included). - clip1 + clip2 - loaded through
DualCLIPLoader, which merges both into a single CLIP output.clip_typeis the dual-CLIP type list (defaultltxv), so both text encoders load together and come out one socket. - vae1 + vae2 - two separate
VAELoadercalls, two VAE outputs. For LTX 2.3 that's the video VAE and the audio VAE. - LoRA stack - eight slots (
lora_1..8with_on/_strength), applied to model and CLIP. - sage_preset + blocks_to_swap - the same attention-acceleration and VRAM-offload hooks as V1.
The model_type keyword filter gates all the dropdowns as usual. Outputs: MODEL, CLIP, VAE1, VAE2.
The inputs that matter
- clip_type - default
ltxv, and it should stay ltxv for LTX 2.3. The dual-CLIP types cover other architectures, but this node's reason to exist is the LTX pairing. - clip1 / clip2 - the two text encoders. For LTX 2.3 that's the Gemma-family encoder plus its audio counterpart; the keyword filter helps you find them if you keep them in a subfolder.
- vae1 / vae2 - video VAE and audio VAE. Getting these backwards is the single most common mistake: swap them and your video decodes as audio latents and your audio is nonsense. The node doesn't label them "video"/"audio", it labels them 1 and 2 - know which file is which before you wire.
- model_weight_dtype - LTX 2.3 is 22B, so fp8 (or GGUF, see the GGUF variant) is the difference between "runs on a 16GB card" and "nope."
Where it fits
Front end of any LTX 2.3 audio-video graph: text-to-video, image-to-video with audio, and especially the infinite streamer. Wire model→sampler, CLIP→conditioning, VAE1→latent encode, VAE2→audio latent encode. The streamer node's inputs (video_vae, audio_vae, clip) map one-to-one onto V3's outputs.
Install & notes
cd ComfyUI/custom_nodes
git clone https://github.com/WJLUOXIAO/XB_ToolBox.git
# or: ComfyUI Manager → "XB_ToolBox"
No extra pip deps. Watch two things: the dual-CLIP merge means a LoRA applied to "the CLIP" applies to the merged pair - that's usually what you want, but a LoRA trained for one encoder alone will be diluted. And clip_device defaults to default; pushing both encoders to CPU frees meaningful VRAM on LTX 2.3 graphs, at the cost of slower prompt encoding. On an 8GB card that trade is often what makes the run fit.
Inputs (35)
| Name | Type | Default | Description |
|---|---|---|---|
| model_type | STRING | — | |
| model | COMBO | 1 options: (请先输入模型类型) | |
| model_weight_dtype | COMBO | default | 4 options: default, fp8_e4m3fn, fp8_e4m3fn_fast, fp8_e5m2 |
| clip1 | COMBO | 1 options: (请先输入模型类型) | |
| clip2 | COMBO | 1 options: (请先输入模型类型) | |
| clip_type | COMBO | ltxv | 12 options: sdxl, sd3, flux, hunyuan_video, hidream, hunyuan_image, +6 |
| clip_device | COMBO | default | 2 options: default, cpu |
| lora_1 | COMBO | 1 options: 无 | |
| lora_1_on | BOOLEAN | true | — |
| lora_1_strength | FLOAT | 1.00-100–100 | — |
| vae1 | COMBO | 1 options: (请先输入模型类型) | |
| vae2 | COMBO | 1 options: (请先输入模型类型) | |
| sage_preset | COMBO | 关闭 | 9 options: 关闭, 自动, 内置模式 A (128x128x32), 内置模式 B (128x64x96), 内置模式 C (128x16x16), 内置模式 D (64x64x16), +3 |
| blocks_to_swap | INT | 00–200 | — |
| lora_2 | COMBO | 1 options: 无 | |
| lora_2_on | BOOLEAN | false | — |
| lora_2_strength | FLOAT | 1.00-100–100 | — |
| lora_3 | COMBO | 1 options: 无 | |
| lora_3_on | BOOLEAN | false | — |
| lora_3_strength | FLOAT | 1.00-100–100 | — |
| lora_4 | COMBO | 1 options: 无 | |
| lora_4_on | BOOLEAN | false | — |
| lora_4_strength | FLOAT | 1.00-100–100 | — |
| lora_5 | COMBO | 1 options: 无 | |
| lora_5_on | BOOLEAN | false | — |
| lora_5_strength | FLOAT | 1.00-100–100 | — |
| lora_6 | COMBO | 1 options: 无 | |
| lora_6_on | BOOLEAN | false | — |
| lora_6_strength | FLOAT | 1.00-100–100 | — |
| lora_7 | COMBO | 1 options: 无 | |
| lora_7_on | BOOLEAN | false | — |
| lora_7_strength | FLOAT | 1.00-100–100 | — |
| lora_8 | COMBO | 1 options: 无 | |
| lora_8_on | BOOLEAN | false | — |
| lora_8_strength | FLOAT | 1.00-100–100 | — |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| MODEL | MODEL | — |
| CLIP | CLIP | — |
| VAE1 | VAE | — |
| VAE2 | VAE | — |