Nodes/ComfyUI-DvD-LoraTriggerwordsManager/DvD LoRA Stack (Multi-Merge)
ComfyUI Node

DvD LoRA Stack (Multi-Merge)

Three LoRAs, One Node, Zero Trigger-Typing

By idvdii·Created 9 months ago·Updated 9 months ago· 11
DvD LoRA Stack (Multi-Merge)
  • model
  • clip
  • MODEL
  • CLIP
  • trigger_text
  • info_log
lora_1
strength_11.00
lora_2
strength_21.00
lora_3
strength_31.00
mode
save_target
edit_text
pre_text

Stacking LoRAs is where the wire-drawing starts: three loaders, three MODEL/CLIP chains, and somewhere in there you're hand-typing the trigger words for a style LoRA plus a character LoRA plus a concept LoRA. The DvD LoRA Stack (Multi-Merge) collapses that into one node. It loads up to three LoRAs in sequence and spits out a single trigger_text output with every trigger word comma-joined for you.

It's part of the same small pack as the DvD Standard loader - same trigger-reading machinery, same WebUI-compatible JSON save, same zero-dependency install. Where it differs is that it replaces a chain of loaders, not a single one.

How it works

You get three slots - lora_1, lora_2, lora_3 - each with a None option and a strength_1/2/3 float. The node runs them in order, feeding the output of one into the next (a true merge, not a blend: each LoRA patches the model that the previous one produced). The triggers from all three are collected, combined with anything in pre_text, and joined with commas into the trigger_text output. Wire that one string into your CLIP Text Encode and you're done - no text-concat nodes.

One thing to notice if you're coming from the Standard loader: the stack uses a single strength per LoRA that applies to both the model and the CLIP side, where Standard gives you separate strength_model and strength_clip. And the strength range here is ±10, not ±20 - the author is quietly discouraging you from cranking stacked LoRAs to eleven, which is probably wise.

The outputs are the usual quartet: MODEL, CLIP, trigger_text, info_log (a log line per slot, handy for confirming which LoRA contributed what).

Editing and saving

The read side is fully automatic, same as the rest of the pack: sidecar JSON → safetensors metadata → Civitai hash lookup, in that order. The write side is where the stack adds its own twist: save_target picks which LoRA gets updated - None (不保存) (don't save), Lora 1, Lora 2, or Lora 3. Set mode to Save (保存修改), type your new words into edit_text, set the target, and queue a prompt. The JSON next to that particular .safetensors gets written in A1111 WebUI format, preserving its other fields.

That's the whole UX, and it's worth being clear about: this is a batch loader, not a per-LoRA editor. You read triggers for all three at once, but you can only edit-and-save one at a time. If you want per-slot toggles and per-LoRA metadata browsing, rgthree's Power Lora Loader is the richer tool - this one's appeal is that it's one node, no dependencies, and the same file format as WebUI.

Install

cd ComfyUI/custom_nodes/
git clone https://github.com/idvdii/ComfyUI-DvD-LoraTriggerwordsManager.git
# restart ComfyUI

Or grab it via ComfyUI Manager (search "DvD LoRA"). No extra dependencies - this pack is pure Python plus safetensors, which you already have.

Stacking gotchas

The community's stacking advice applies here in full: interactions between LoRAs are unpredictable, so add one at a time with a fixed seed, and if stacked triggers give you black images or NaN errors, reorder with the larger LoRAs first. Also remember the save rule from the Standard loader: nothing is written until you actually queue a run in Save mode - and in the stack, an empty edit_text or a None save_target means the write is skipped entirely.

CategoryDvD Nodes

Inputs (12)

NameTypeDefaultDescription
modelMODEL
clipCLIP
lora_1COMBO1 options: None
strength_1FLOAT1.00-10–10
lora_2COMBO1 options: None
strength_2FLOAT1.00-10–10
lora_3COMBO1 options: None
strength_3FLOAT1.00-10–10
modeCOMBO2 options: Read (只读), Save (保存修改)
save_targetCOMBO4 options: None (不保存), Lora 1, Lora 2, Lora 3
edit_textSTRING
pre_textoptSTRING

Outputs (4)

NameTypeDescription
MODELMODEL
CLIPCLIP
trigger_textSTRING
info_logSTRING