Nodes/ComfyUI-Lora-Auto-Trigger-Words/LoraLoaderStackedAdvanced
ComfyUI Node

LoraLoaderStackedAdvanced

Stack LoRAs and get their trigger words out in the same breath

By idrirap·Created 3 years ago·Updated about a year ago· 268
LoraLoaderStackedAdvanced
  • lora_stack
  • civitai_tags_list
  • meta_tags_list
  • LORA_STACK
  • lora_name
lora_name
lora_weight1.00
force_fetchfalse
append_loraname_if_emptyfalse
override_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's trainedWords, caches the result locally in loras_tags.json. No API key needed; it's a plain public endpoint.
  • meta_tags_list - reads the ss_tag_frequency block 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.

Categoryautotrigger

Inputs (6)

NameTypeDefaultDescription
lora_nameCOMBO0 options:
lora_weightFLOAT1.00-10–10
force_fetchBOOLEANfalse
append_loraname_if_emptyBOOLEANfalse
lora_stackoptLORA_STACK
override_lora_nameoptSTRING

Outputs (4)

NameTypeDescription
civitai_tags_listLIST
meta_tags_listLIST
LORA_STACKLORA_STACK
lora_nameSTRING