LoraLoaderStackedAdvanced
Stack LoRAs and get their trigger words out in the same breath
- lora_stack
- civitai_tags_list
- meta_tags_list
- LORA_STACK
- lora_name
Stacked LoRA loaders are the ComfyUI way to run a character and a style at once, and LoraLoaderStackedAdvanced is this pack's version with one upgrade: it doesn't just load - it also emits each LoRA's trigger words as tag lists you can wire straight into your prompt. Same job as the efficiency-nodes stacked loader, plus the tag data most people end up fetching from a browser anyway.
The "Stacked" part means it has no MODEL input. You chain these things together - each one takes an incoming lora_stack, appends itself, and passes the stack on. When the chain reaches a node that actually consumes the stack (efficiency-nodes' stacked loader being the obvious one, since the pack is built to be compatible with it), the LoRAs get applied together. That's the pattern for multi-LoRA work: build the stack, then load.
How it works
Pick a LoRA in the lora_name dropdown and set lora_weight (1.0 is the default; drop toward 0.5–0.8 for SDXL-era models where full strength is often too strong). Wire a previous stack into the optional lora_stack input to keep chaining. For each LoRA, the node does two lookups:
civitai_tags_list- hashes the file, asks Civitai's public API for the model'strainedWords, caches the result locally inloras_tags.json. No API key needed; it's a plain public endpoint.meta_tags_list- reads thess_tag_frequencyblock out of the safetensors header and returns the training tags sorted by how often they appeared during training.
Two booleans matter here. force_fetch re-downloads the Civitai data even if it's cached (useful after the model page is updated; costs a full re-hash of the file). append_loraname_if_empty slaps the LoRA's filename into the tag list as a fallback when both sources come back empty - a decent last resort, since some trainers use the filename as the trigger.
The four outputs: civitai_tags_list and meta_tags_list (the two LIST outputs that feed TagsFormater/TagsSelector), the LORA_STACK output that carries the accumulated stack forward, and lora_name, the resolved filename, which you can feed back into another node's override_lora_name input if you're doing something clever with routing.
Advanced vs vanilla
The "Advanced" in the name is all front-end: the lora_name dropdown gets a thumbnail preview and the right-click "View info..." option from pythongosssss/ComfyUI-Custom-Scripts. For the info dialog to work you also need to add the widget names under Settings → Pysssss → Model Info, appending LoraLoaderStackedAdvanced.lora_name to the list. If you skip Custom-Scripts, use LoraLoaderStackedVanilla - same loading logic, no preview.
Installing
ComfyUI Manager, search "ComfyUI-Lora-Auto-Trigger-Words", restart. Or:
cd ComfyUI/custom_nodes
git clone https://github.com/idrirap/ComfyUI-Lora-Auto-Trigger-Words
Because this is an Advanced node, also install ComfyUI-Custom-Scripts (pythongosssss) or you lose the preview feature. No model downloads, and the only network dependency is the Civitai lookup - which needs an internet connection and only works for LoRAs whose files exist on Civitai under that hash. Local or offline, you still get the meta_tags_list if the training metadata is embedded, so it's not a total loss.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| lora_name | COMBO | 0 options: | |
| lora_weight | FLOAT | 1.00-10–10 | — |
| force_fetch | BOOLEAN | false | — |
| append_loraname_if_empty | BOOLEAN | false | — |
| lora_stackopt | LORA_STACK | — | |
| override_lora_nameopt | STRING | — |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| civitai_tags_list | LIST | — |
| meta_tags_list | LIST | — |
| LORA_STACK | LORA_STACK | — |
| lora_name | STRING | — |