Multi-LoRA Loader (Wan t2v)
Eight t2v LoRAs, one node, no CLIP gymnastics
- model
- model
- prompt
- prompt_with_triggers
- loaded_loras_info
- all_trigger_words
- filter_info
- filtered_loras_list
Text-to-video on Wan 2.2 means you've got a text prompt, a video diffusion model, and - if you're like most people - a growing pile of LoRAs for styles, motion, characters and speed. The usual ComfyUI answer is one loader node per LoRA, which turns a simple t2v graph into a staircase. Multi-LoRA Loader (Wan t2v) swaps that staircase for a single box.
It's the t2v twin of the pack's Wan i2v loader, and it does the same one thing well: take a MODEL, apply up to eight LoRAs to it, and hand back the patched model plus a prompt with trigger words injected. No CLIP in or out - Wan conditions through its own text encoder, so model-only patching is the correct wiring, not a missing feature.
How it works
Same shared engine as the other loaders in the AAA Metadata System pack, with a directory filter pointing at a Wan\t2v subfolder under your LoRA path. The source joins "Wan" and "t2v" when scanning, so your t2v LoRAs need to live there. If they do, the dropdown fills itself with exactly your t2v collection - which is the point: it keeps the t2v and i2v lists from bleeding into each other.
Slots run lora_1_enable / lora_1_name / lora_1_strength through slot 8, model strength only. Around them sit the family's filters: search_filename (comma-separated substring match), search_category, search_trigger_word (against the pack's local LoRA database), and min_rating (0–5 quality filter). Trigger words come from the database or, when query_civitai is on, fetched from the Civitai API; force_civitai_fetch bypasses the cache, and trigger_position/trigger_separator control how words land in your prompt.
Outputs
model- the patched model for your video sampler.prompt_with_triggers- prompt with trigger words injected.prompt- your original prompt, passed through.filter_info/filtered_loras_list- what the filters matched.all_trigger_words/loaded_loras_info- all triggers found and the load summary.
Installing it
cd ComfyUI/custom_nodes
git clone https://github.com/EricRollei/AAA_Metadata_System.git
cd AAA_Metadata_System
pip install -r requirements.txt
Restart ComfyUI, or install "AAA Metadata System" via ComfyUI Manager. No model downloads. The pack is CC BY-NC for non-commercial use; commercial use needs a paid license from the author.
Common issues
- Empty dropdown - your t2v LoRAs aren't in the
Wan\t2vsubfolder it scans. Sort them, togglerefresh_lists(or restart) to rescan. - Filters don't visibly change the dropdown - by design; they apply at execution time and report in
filter_info. Togglerefresh_liststo rescan. - No trigger words injected - DB entry missing and
query_civitaioff. Enable it (needs internet) or type the trigger yourself. - Model-only, but I need CLIP strength - not a bug. Wan doesn't use CLIP; there's nothing to patch on the text side.
Is it life-changing? Not exactly - but if you run Wan 2.2 t2v regularly, stacking LoRAs in one node with a t2v-only dropdown is a real quality-of-life win. Just keep the folder tidy and remember that on Wan, more LoRAs isn't automatically better - a couple of well-chosen ones beat eight at 0.3.
Inputs (35)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| prompt | STRING | — | |
| search_filename | STRING | Search in LoRA filenames. Use commas to separate multiple terms. | |
| search_category | COMBO | Any | Filter by LoRA category |
| search_trigger_word | STRING | Search in trigger words from database. | |
| min_rating | INT | 00–5 | Minimum quality rating from database (0 = show all) |
| refresh_lists | BOOLEAN | false | Toggle to refresh LoRA list |
| query_civitai | BOOLEAN | false | Automatically query Civitai for trigger words |
| force_civitai_fetch | BOOLEAN | false | Force fetch from Civitai even if tags exist |
| trigger_position | COMBO | front | 2 options: front, back |
| trigger_separator | STRING | , | — |
| lora_1_enable | BOOLEAN | false | — |
| lora_1_name | COMBO | None | 1 options: None |
| lora_1_strength | FLOAT | 1.00-10–10 | — |
| lora_2_enable | BOOLEAN | false | — |
| lora_2_name | COMBO | None | 1 options: None |
| lora_2_strength | FLOAT | 1.00-10–10 | — |
| lora_3_enable | BOOLEAN | false | — |
| lora_3_name | COMBO | None | 1 options: None |
| lora_3_strength | FLOAT | 1.00-10–10 | — |
| lora_4_enable | BOOLEAN | false | — |
| lora_4_name | COMBO | None | 1 options: None |
| lora_4_strength | FLOAT | 1.00-10–10 | — |
| lora_5_enable | BOOLEAN | false | — |
| lora_5_name | COMBO | None | 1 options: None |
| lora_5_strength | FLOAT | 1.00-10–10 | — |
| lora_6_enable | BOOLEAN | false | — |
| lora_6_name | COMBO | None | 1 options: None |
| lora_6_strength | FLOAT | 1.00-10–10 | — |
| lora_7_enable | BOOLEAN | false | — |
| lora_7_name | COMBO | None | 1 options: None |
| lora_7_strength | FLOAT | 1.00-10–10 | — |
| lora_8_enable | BOOLEAN | false | — |
| lora_8_name | COMBO | None | 1 options: None |
| lora_8_strength | FLOAT | 1.00-10–10 | — |
Outputs (7)
| Name | Type | Description |
|---|---|---|
| model | MODEL | — |
| prompt | STRING | — |
| prompt_with_triggers | STRING | — |
| loaded_loras_info | STRING | — |
| all_trigger_words | STRING | — |
| filter_info | STRING | — |
| filtered_loras_list | STRING | — |