LoRA Prompt Switch
One toggle that loads your LoRA and writes its trigger words
- model
- clip
- model
- clip
- positive_prompt
- negative_prompt
The name is a description, not marketing. LoRA Prompt Switch is one node that loads a LoRA, appends that LoRA's trigger words to your prompt, and puts a single on/off switch over both at once. Flip it off and the model, clip, and prompt all pass through untouched - the LoRA never even loads. Flip it on and you get a fused LoRA-plus-text bundle ready to chain into the next one.
Why the coupling is the whole point
Say you stack three character LoRAs in one workflow and want to A/B them. With a plain LoraLoader you get the two classic failure modes: you mute the loader but its trigger word is still sitting in the prompt text, or you strip the trigger and the LoRA quietly does nothing while you wonder why your output changed. Missing trigger words are literally the second most common "LoRA not working" cause in the community troubleshooting canon. This node makes that mismatch impossible, because the toggle and the text are one object. That's the case for reaching for it: if you toggle LoRAs by hand a lot, this removes a whole class of self-inflicted bugs.
It's a different job than rgthree's Power Lora Loader, which stacks many LoRAs with per-entry toggles and shows you their trigger words - but doesn't write those words into your prompt text for you. This pack is the opposite trade: one LoRA per node, trigger words managed inline, meant to be chained.
How it works
Under the hood it's the stock LoRA loader internals - folder_paths lookup, load_torch_file, then comfy.sd.load_lora_for_models applied to both model and clip at your strength - with a text append bolted on. When enable is off it returns its inputs unchanged, so a disabled node in a chain is a no-op rather than a broken wire.
The interesting bit is the add_positive / add_negative fields. In the UI they're rendered as a toggle list: each trigger word gets its own checkbox row, and you can paste a comma-separated batch to auto-split it into entries. The frontend serializes them to JSON like [{"text": "trigger", "enabled": true}], and the node only appends the enabled ones. Plain text still works too, so old workflows don't break.
The inputs you actually set:
- model, clip - the base model and CLIP you'd normally feed a LoraLoader
- lora_name - dropdown of everything in your
models/lorasfolder - strength - default 1.0, range -10 to 10. Negative strength is a real anti-LoRA trick (subtract the style), not a bug
- add_positive / add_negative - the trigger-word toggle lists
- enable - the master switch; connect it to a boolean source or just click it
There's also an optional positive_prompt / negative_prompt input pair for chaining, and a notes field that's display-only - it never reaches the output. Outputs are model, clip, and the two prompt strings, which you feed into a CLIP Text Encode and then to the sampler.
Installing
Via ComfyUI Manager, search the pack title comfyui-lora-prompt-switch, or:
cd ComfyUI/custom_nodes
git clone https://github.com/sstoye/comfyui-lora-prompt-switch
Then restart ComfyUI. There's no requirements.txt and no pip step - the only dependencies are ComfyUI's own runtime modules, and there are no model downloads. The node shows up under loaders/lora. One honest caveat: the README admits the project was mostly written by Claude Code, and it's a small, low-traffic pack, so treat it as a convenience layer, not infrastructure.
Where people trip up
Two gotchas worth knowing. First, prompt_separator and trailing_separator look like real settings but the current code ignores both - they're kept in the schema for backward compatibility with old workflows. Text is always joined on , and always ends with a trailing comma. That's deliberate: the trailing comma is what makes chaining work cleanly, so don't fight it.
Second, setting strength to 0 is not the same as disabling the node - the LoRA still loads, just with zero weight. Use the enable toggle. And remember the usual compatibility rules still apply: an Illustrious LoRA won't do anything useful on a Flux checkpoint no matter how cleanly this node chains them.
Inputs (12)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| clip | CLIP | — | |
| lora_name | COMBO | 0 options: | |
| strength | FLOAT | 1.00-10–10 | — |
| add_positive | STRING | — | |
| add_negative | STRING | — | |
| positive_promptopt | STRING | — | |
| negative_promptopt | STRING | — | |
| prompt_separatoropt | STRING | , | — |
| trailing_separatoropt | BOOLEAN | true | — |
| notesopt | STRING | — | |
| enableopt | BOOLEAN | true | — |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| model | MODEL | — |
| clip | CLIP | — |
| positive_prompt | STRING | — |
| negative_prompt | STRING | — |