Multi-LoRA Loader (Flux)
Eight Flux LoRAs at once, with trigger words handled for you
- model
- clip
- model
- clip
- prompt
- prompt_with_triggers
- loaded_loras_info
- all_trigger_words
- filter_info
- filtered_loras_list
Stacking LoRAs in ComfyUI means chaining LoraLoaderModelOnly nodes end to end - one per LoRA, each with its own strength. Run three or four at once and your graph starts looking like a ladder. This node does the chaining for you: one box, up to eight LoRA slots, each with its own model strength and CLIP strength, plus search filters and automatic trigger-word injection on top.
Multi-LoRA Loader (Flux) is the Flux-specific member of the AAA Metadata System pack's loader family. It's built for the FLUX.1 / Flux 2 line: it takes a model and a clip (Flux needs the CLIP for prompt encoding, unlike the video loaders in the same pack), applies up to eight LoRAs, and hands back the patched model, clip and prompt.
How it works
The loader scans your LoRA folders and filters down to the Flux subdirectory - it's hardcoded to look under something like Lora\Flux in your models folder. That's the catch baked into the whole family: it assumes you keep platform LoRAs in named subfolders. If your Flux LoRAs are scattered loose in the root LoRA directory, this node's dropdown will be empty until you sort them into a Flux folder.
Each of the eight slots (lora_1_enable through lora_8_clip_strength) is an independent enable/name/strength trio. Enable the slot, pick the LoRA from the dropdown, set model strength and CLIP strength. It then calls ComfyUI's normal load_lora_for_models under the hood, in order, so you can chain eight without a single extra node.
The interesting part is the metadata layer. The pack ships a local database (lora_tester_db.json) of LoRA categories, quality ratings and trigger words, and it can fetch trigger words from the Civitai API when it doesn't have them. Turn on query_civitai (and force_civitai_fetch if you want to ignore the cache), and the loader will prepend or append each LoRA's trigger word to your prompt automatically. search_trigger_word filters by those same words, min_rating filters by the DB's 0–5 rating, and search_filename does a comma-separated substring match on filenames.
Outputs
The useful ones for a beginner:
modelandclip- wire these into your sampler/conditioning, exactly like a chained LoraLoader.prompt_with_triggers- your original prompt with trigger words injected (position and separator controlled bytrigger_positionandtrigger_separator). Feed this to your text encoder.filter_info/filtered_loras_list- text reports of what the filters actually selected, for when the dropdown and the filter fields seem to disagree.prompt,all_trigger_words,loaded_loras_info- your raw prompt back, every trigger word found, and per-LoRA load details.
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 search "AAA Metadata System" in ComfyUI Manager. No models to download; the pack is CC BY-NC licensed (commercial use needs a paid license from the author).
Common issues
- Empty LoRA dropdown - your Flux LoRAs aren't in a
Fluxsubfolder. Fix the folder layout, then togglerefresh_lists(or restart) to rescan. - Filter fields don't change the dropdown - by design. The dropdown is built at node-creation time; the search filters run at execution and report in
filter_info. Togglerefresh_liststo rescan. - No trigger words injected - the DB has no entry and
query_civitaiis off. Either enable it (needs internet) or set the trigger manually in your prompt. - Wrong-strength defaults - note the Flux loader defaults model strength to 0.8, not 1.0, which is a sensible Flux habit. Check each slot before running.
One honest caveat: LoRAs are architecture-locked, so this node only makes sense for Flux models - and the author's directory assumption is the real friction point. Sort your folders once and it's a genuinely pleasant way to stack LoRAs.
Inputs (44)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| clip | CLIP | — | |
| 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 | 0.80-10–10 | — |
| lora_1_clip_strength | FLOAT | 1.00-10–10 | — |
| lora_2_enable | BOOLEAN | false | — |
| lora_2_name | COMBO | None | 1 options: None |
| lora_2_strength | FLOAT | 0.80-10–10 | — |
| lora_2_clip_strength | FLOAT | 1.00-10–10 | — |
| lora_3_enable | BOOLEAN | false | — |
| lora_3_name | COMBO | None | 1 options: None |
| lora_3_strength | FLOAT | 0.80-10–10 | — |
| lora_3_clip_strength | FLOAT | 1.00-10–10 | — |
| lora_4_enable | BOOLEAN | false | — |
| lora_4_name | COMBO | None | 1 options: None |
| lora_4_strength | FLOAT | 0.80-10–10 | — |
| lora_4_clip_strength | FLOAT | 1.00-10–10 | — |
| lora_5_enable | BOOLEAN | false | — |
| lora_5_name | COMBO | None | 1 options: None |
| lora_5_strength | FLOAT | 0.80-10–10 | — |
| lora_5_clip_strength | FLOAT | 1.00-10–10 | — |
| lora_6_enable | BOOLEAN | false | — |
| lora_6_name | COMBO | None | 1 options: None |
| lora_6_strength | FLOAT | 0.80-10–10 | — |
| lora_6_clip_strength | FLOAT | 1.00-10–10 | — |
| lora_7_enable | BOOLEAN | false | — |
| lora_7_name | COMBO | None | 1 options: None |
| lora_7_strength | FLOAT | 0.80-10–10 | — |
| lora_7_clip_strength | FLOAT | 1.00-10–10 | — |
| lora_8_enable | BOOLEAN | false | — |
| lora_8_name | COMBO | None | 1 options: None |
| lora_8_strength | FLOAT | 0.80-10–10 | — |
| lora_8_clip_strength | FLOAT | 1.00-10–10 | — |
Outputs (8)
| Name | Type | Description |
|---|---|---|
| model | MODEL | — |
| clip | CLIP | — |
| prompt | STRING | — |
| prompt_with_triggers | STRING | — |
| loaded_loras_info | STRING | — |
| all_trigger_words | STRING | — |
| filter_info | STRING | — |
| filtered_loras_list | STRING | — |