A ComfyUI custom node (shown as MI Lora) that loads several LoRAs from a single node and remembers the trigger words of each one. Write the trigger words once; they are saved per LoRA, filled in automatically the next time you pick it, and sent as text to your prompt. Not sure what a LoRA's trigger words are? Look them up on Civitai from the node.
MI Lora is also part of the MI nodes pack, together with MI Unet Rate, MI Embedding, MI Compare 3 Images, MI Save Image and MI Reroute Sound. Install either this repository or the pack, not both: the node would appear twice.
Stacking LoRAs usually means a chain of loader nodes plus a notes file to remember which words activate each one. MI Lora puts everything in one compact node: the LoRAs, their strengths, their trigger words and a switch to turn each one on or off without rewiring.
- Several LoRAs in one node: use the
+and-buttons to add or remove rows (up to 8). - On / off per LoRA: every row has its own switch. A row that is off is skipped: the LoRA is not applied and its trigger words are not sent. The fields of that row are greyed out, and the saved trigger words are kept.
- One strength per LoRA: from -10 to 10, applied to both model and clip.
- Trigger words per LoRA: type them in the
triggersfield of each row. They are saved for that LoRA and filled in automatically whenever you pick it again, in any node or workflow. - Civitai lookup: press search triggers on Civitai at the bottom of the node. Every active LoRA is looked up by its file hash and a framed box lists the trigger words found, one numbered result per row. Click a result to put its words in that row's
triggersfield. Long lists wrap onto several lines. Results without trigger words (or not found) are shown in italics and are not clickable. - Sent as text: the
textoutput is your incoming prompt followed by the trigger words of every active LoRA, ready for a standardCLIPTextEncode. - Subgraph friendly: every row uses standard widgets, so they can be promoted to a subgraph.
Clone this repository into your ComfyUI custom_nodes folder and restart ComfyUI:
cd ComfyUI/custom_nodes
git clone https://github.com/ThinkingBells/MI_lora.gitThen reload the browser tab (Ctrl+F5) so the new interface code is loaded. No extra dependencies are needed. To update, run git pull inside the folder and restart.
- Add the node: double-click the canvas and search for MI Lora (category
MI nodes). - Connect
modelandclip, and optionally aSTRINGprompt totext. - Pick a LoRA, set its strength and write its trigger words (comma separated), or fetch them from Civitai. Use
+/-to add or remove rows. - Connect
modelandclipto your sampler and text encoder, andtextto the text input of aCLIPTextEncodenode (convert the widget to an input first).
With two LoRAs whose trigger words are detail (add_detail) and cute faces (Cute Faces):
| Text in | LoRA rows | text output |
|---|---|---|
1girl, |
add_detail (on), Cute Faces (on) |
1girl, detail, cute faces |
1girl, |
add_detail (on), Cute Faces (off) |
1girl, detail |
| nothing connected | add_detail (on) |
detail |
Rows set to (none) are ignored.
Nothing is sent until you press the search line. Then only the SHA256 hash of each active LoRA file is sent to civitai.com, never the file itself. Hashes are cached in hashes.json, so each file is hashed only once (the first search on a large LoRA can take a few seconds). A LoRA that is not on Civitai, or that lists no trigger words, is reported as such.
Two files in the node folder, both ignored by git so your personal data is never committed:
| File | Content |
|---|---|
triggers.json |
LoRA name to trigger words |
hashes.json |
Cached SHA256 of your LoRA files, for the Civitai lookup |
Back up triggers.json if you want to keep your notes. Nothing leaves your computer except the LoRA hash you send to Civitai when you press the search line.
- Trigger words are tied to the LoRA path and file name inside the
lorasfolder. If you rename or move a LoRA file, it is treated as a new one; edit the key intriggers.jsonto carry the data over. - The LoRA list is read when ComfyUI starts. Restart ComfyUI after adding new LoRA files.
- A standard
CLIPTextEncodehas no syntax for LoRAs (unlike embeddings), so the LoRAs are applied to themodelandclipoutputs, not through the text.
__init__.py: node, LoRA loading, trigger storage, Civitai lookup and API routes.js/mi_lora.js: frontend extension (row show/hide,+/-buttons, greyed rows, trigger words, Civitai results box).
MIT © 2026 Thinkingbells
