DvD LoRA Loader (Trigger Words)
This LoRA Loader Types Them for You
- model
- clip
- MODEL
- CLIP
- trigger_text
- info_log
You've downloaded your fortieth LoRA, and you've already forgotten whether this one wants mcfly style, 1girl or a string with three underscores and a colon in it. That's the entire job of the DvD LoRA Loader (Trigger Words): it's a normal LoRA loader that also reads the trigger words for you, dumps them into a text output, and - if you want - lets you edit and save them back to disk. No more tabbing out to Civitai mid-prompt.
It's the flagship node of the small, dependency-free pack idvdii/ComfyUI-DvD-LoraTriggerwordsManager. Think of it as a drop-in replacement for the stock LoraLoader that gained a trigger-word sidecar.
What it actually does
Wire it exactly like a stock LoraLoader - MODEL and CLIP in, MODEL and CLIP out - and it works the same on the model side. The difference is the two extra outputs:
- trigger_text (STRING) - the LoRA's trigger words, read automatically and comma-joined, plus anything you feed into
pre_text. Wire this into the CLIP Text Encode node (positive prompt, usually) and your prompt gains the triggers with zero typing. - info_log (STRING) - a text log of what the node did. Useful for debugging; ignore it in normal use.
When you pick a LoRA, the node reads triggers in priority order: a .json or .txt sidecar sitting next to the .safetensors → the safetensors file's own internal metadata (modelspec.trigger_phrase, trigger_words) → an online Civitai lookup. That last one is the fun part: it hashes the file locally (AutoV3, then AutoV2 if the first misses) and hits Civitai's public by-hash API. No API key, no account - it just works over plain HTTP. When it finds tags, it writes a JSON sidecar next to the LoRA so the next run is instant and offline.
The read path is automatic. The write path is what separates this from most tools in its lane.
The inputs that matter
- mode -
Read (只读)orSave (保存修改). Yes, the dropdown is Chinese-labeled; 只读 is "read-only", 保存修改 is "save edits". Default is Read, which is what you'll use 95% of the time. - edit_text - only used in Save mode. Type new trigger words here, set mode to Save, and queue a prompt.
- strength_model / strength_clip - same as stock, defaults of 1.0. The usual LoRA guidance applies: start around 0.7–0.8 on SDXL-lineage bases and check the model page rather than guessing.
- pre_text (optional) - a string input prepended to the triggers. Handy for injecting a fixed style prefix alongside whatever the LoRA needs.
Save mode writes an A1111 WebUI-compatible JSON ("activation text", "sd version", "preferred weight") next to the .safetensors, preserving any existing keys. That's the differentiator worth knowing: rgthree's Power Lora Loader is the heavyweight for reading triggers, but this pack will also write them back in a format both ComfyUI and Automatic1111/Forge understand. If you hop between UIs, that's the reason to reach for it.
Install
cd ComfyUI/custom_nodes/
git clone https://github.com/idvdii/ComfyUI-DvD-LoraTriggerwordsManager.git
# then restart ComfyUI
Or use ComfyUI Manager → Install Custom Nodes → search "DvD LoRA". There's no requirements.txt, no model downloads, no heavy deps - pure Python on top of safetensors, which ComfyUI already ships. This is about as clean an install as custom nodes get.
Gotchas
- The online lookup needs internet on the first run. If Civitai returns 404, the hash isn't in their database (the model page has no trained words registered) and you get an empty trigger_text. That's not a bug - some LoRAs simply have no triggers.
- Save mode only writes when you actually run the prompt. Queue once, then switch back to Read, or you'll be rewriting that JSON every generation.
- If
edit_textis empty in Save mode, the node silently falls back to reading - the write is skipped. Type first, then save. - A LoRA with no triggers and no Civitai entry just yields an empty string; wiring an empty trigger_text into your prompt is harmless.
If a LoRA "isn't working," the classic checklist still applies: base-model mismatch, trigger missing, strength too high, CLIP skip 2 for anime bases. This node handles the trigger part so you can focus on the rest.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| clip | CLIP | — | |
| lora_name | COMBO | 0 options: | |
| strength_model | FLOAT | 1.00-20–20 | — |
| strength_clip | FLOAT | 1.00-20–20 | — |
| mode | COMBO | 2 options: Read (只读), Save (保存修改) | |
| edit_text | STRING | — | |
| pre_textopt | STRING | — |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| MODEL | MODEL | — |
| CLIP | CLIP | — |
| trigger_text | STRING | — |
| info_log | STRING | — |