Nodes/ComfyUI-Random-Text-Picker/LoRA Trigger Loader
ComfyUI Node

LoRA Trigger Loader

Stop keeping trigger words in a notepad

By hvnyiv·Created 3 months ago·Updated about a month ago· 0
LoRA Trigger Loader
  • model
  • clip
  • model
  • clip
  • trigger_words
lora_name
strength_model1.00
strength_clip1.00
preset_trigger_words

Every LoRA comes with trigger words, and every LoRA user has a text file or a browser tab full of them. LoRA Trigger Loader is the node that ends that: it's a normal LoRA loader, but it remembers the trigger words you save for each LoRA and hands them to your prompt as a STRING output. Pick the LoRA, the trigger field fills itself, wire the words into your CLIP Text Encode, done.

If you've used rgthree's Power Lora Loader, you know this trick - it reads trigger words off the LoRA file or fetches them from CivitAI. This is the lighter, fully-local version: no CivitAI lookup, no scraping. You save your own words once, and the pack keeps them for you.

How it works

Mechanically, it's the stock LoRA loader wearing a name tag. It calls the same comfy.sd.load_lora_for_models path core ComfyUI uses, applies strength_model and strength_clip, and passes the model and clip through unchanged. What makes it different:

  • A trigger_words STRING output that's just whatever is in the preset_trigger_words widget.
  • A "Save Trigger Preset" button (added by the pack's web extension) that writes your words to a JSON file for the selected LoRA.
  • Auto-fill: the moment you select a LoRA that has a saved preset, the trigger field loads those words from the server. Selecting "None" or a LoRA with no preset just clears the field.

Presets live at ComfyUI/user/__prompt_tools/lora_trigger_presets.json - deliberately outside the custom-node folder, so updating or reinstalling the pack can't wipe them. Saving an empty preset deletes that LoRA's entry, and presets from the pack's old location are copied over automatically the first time they're touched.

The inputs and outputs that matter

  • model / clip - standard MODEL and CLIP inputs from your checkpoint loader.
  • lora_name - dropdown of every LoRA in ComfyUI/models/loras.
  • strength_model / strength_clip - the usual weights. Defaults to 1.0/1.0, and note the range goes to ±10. If both are 0 (or the LoRA is "None"), the node is a bypass and returns the model unchanged.
  • preset_trigger_words - auto-filled, but editable. Because this widget is part of the node, the words travel with your workflow - they get embedded in output PNG metadata like everything else, so when someone drags your image back into ComfyUI, the triggers come along.

Outputs are model, clip (wire to your KSampler as you would any LoRA), and trigger_words - wire that into a CLIP Text Encode (prepend it to your prompt with a comma) or into whatever else takes a STRING.

The gotchas

The button is added by a web extension, so it only appears once that loads - restart ComfyUI after installing, and hit Ctrl+F5 if the browser is showing a stale UI. And remember the button is a save, not an auto-save: editing the field doesn't persist until you click it. The auto-fill only reads presets.

Also, since the trigger words ride in the widget, they're part of the workflow JSON and its PNG metadata. That's a feature for sharing and a privacy note for posting - your LoRA names and triggers are in every image you export.

Installing it

Part of ComfyUI-Random-Text-Picker ("ComfyUI Prompt Tools"). Via Manager: search "Random Text Picker" or "Prompt Tools", install, restart. Or by hand:

cd ComfyUI/custom_nodes
git clone https://github.com/hvnyiv/ComfyUI-Random-Text-Picker

Restart and you're done - no extra Python dependencies, no model files to download. Update with git pull plus a restart. Your presets survive updates because they live in the user directory, not the node folder.

Categoryloaders/lora

Inputs (6)

NameTypeDefaultDescription
modelMODEL
clipCLIP
lora_nameCOMBO1 options: None
strength_modelFLOAT1.00-10–10
strength_clipFLOAT1.00-10–10
preset_trigger_wordsSTRING

Outputs (3)

NameTypeDescription
modelMODEL
clipCLIP
trigger_wordsSTRING