ComfyUI Node

LoRA Switchboard

LoRA Switchboard

By 2223290690z-hue·Created 3 months ago·Updated 2 months ago· 1
LoRA Switchboard
  • model
  • clip
  • model
  • clip
  • lora_tags
  • positive_with_loras
  • summary
master_enabledtrue
tag_name_moderelative_with_ext
separator,
lora_1_enabledfalse
lora_1_name
lora_1_strength_model1.00
lora_1_strength_clip1.00
lora_2_enabledfalse
lora_2_name
lora_2_strength_model1.00
lora_2_strength_clip1.00
lora_3_enabledfalse
lora_3_name
lora_3_strength_model1.00
lora_3_strength_clip1.00
lora_4_enabledfalse
lora_4_name
lora_4_strength_model1.00
lora_4_strength_clip1.00
lora_5_enabledfalse
lora_5_name
lora_5_strength_model1.00
lora_5_strength_clip1.00
lora_6_enabledfalse
lora_6_name
lora_6_strength_model1.00
lora_6_strength_clip1.00
lora_7_enabledfalse
lora_7_name
lora_7_strength_model1.00
lora_7_strength_clip1.00
lora_8_enabledfalse
lora_8_name
lora_8_strength_model1.00
lora_8_strength_clip1.00
lora_9_enabledfalse
lora_9_name
lora_9_strength_model1.00
lora_9_strength_clip1.00
lora_10_enabledfalse
lora_10_name
lora_10_strength_model1.00
lora_10_strength_clip1.00
lora_11_enabledfalse
lora_11_name
lora_11_strength_model1.00
lora_11_strength_clip1.00
lora_12_enabledfalse
lora_12_name
lora_12_strength_model1.00
lora_12_strength_clip1.00
positive_prompt

Most LoRA workflows are a pile of LoraLoader nodes with their names, weights, and enabled states scattered across the canvas. This node from comfyui-prompt-library-nodes collects up to twelve of them into one switchboard, patches your model and CLIP in order, and - the part that makes it worth installing - spits out the matching <lora:...> metadata tags so your saved image's prompt says what was actually loaded.

It's a "switchboard," not a loader. You still feed it a model and clip from your checkpoint, it layers the enabled LoRAs on top, and it hands the patched versions back out.

How it works

Each of the twelve slots has an enabled toggle, a name dropdown (pulled live from your loras folder, so it knows every LoRA you've installed), and separate strength_model / strength_clip floats. Slots are applied top to bottom, exactly like chaining loaders - order matters for the model math. Zero-strength slots are skipped entirely and reported as skipped, and master_enabled is a single switch that bypasses the whole stack, which is the fastest A/B test in the pack: base model vs. full stack, one toggle.

The metadata half is the clever bit. For every active slot it builds a tag in the standard format - <lora:name:model_weight:clip_weight> when the two weights differ, <lora:name:model_weight> when they match - and joins them with separator (default , ). tag_name_mode controls the path in the tag: default relative_with_ext keeps the subfolder and extension (styles/foo.safetensors), or you can drop to basename only. Relative-with-extension is the right default if you ever re-share a workflow, because bare filenames collide constantly.

Inputs and outputs that matter

You'll actually set these:

  • model / clip - wire from your CheckpointLoaderSimple. Leave them unplugged and the node raises "must run inside ComfyUI," which is its way of saying it needs real objects.
  • positive_prompt (optional, convert-to-input friendly) - an existing prompt string you want the tags prepended to.
  • The lora_N_* group per slot - enabled, name, model strength, clip strength.

Outputs, in order: model and clip go to your KSampler and CLIPTextEncode. lora_tags is the bare tag string. positive_with_loras is the tags prepended to your optional positive_prompt - feed that to an image saver's metadata and the PNG's prompt text matches the generation. summary is a human-readable list of what's active and what's skipped; handy for a debug note while you're dialing in a stack.

Installing it

No extra dependencies - just ComfyUI core. ComfyUI Manager → search "comfyui-prompt-library-nodes" → install → restart, or:

cd ComfyUI/custom_nodes
git clone https://github.com/2223290690z-hue/comfyui-prompt-library-nodes.git

Restart, and it shows up as LoRA Switchboard under Prompt Manager/LoRA.

Troubleshooting and honest gripes

  • "Must run inside ComfyUI" - you've got model or clip unconnected, or you're executing the node standalone.
  • A slot is enabled but silently skipped - both strengths set to 0 makes the node treat it as skipped on purpose (it shows up in the summary). If a LoRA genuinely has no effect, check that enabled is on and the name isn't (none).
  • Order changes the result. Slots apply top to bottom, like chained loaders. If two LoRAs fight each other, swapping their slot order can change the output - useful to know before you tear your hair out.
  • It's not a stack saver. There's no save/load of a stack profile; if you have a handful of preset combos you swap between, the toggle-per-slot setup means flipping them is manual. For that, a dedicated manager pack is a better fit.

Also note the search aliases are "lora manager" / "lora toggle" - ComfyUI's search will suggest this node for those terms, but it's neither a trigger-happy stack manager nor a trigger-word lister. It's a tidy, metadata-aware patcher, and if metadata alignment is your pain point, it's the node to reach for.

CategoryPrompt Manager/LoRA

Inputs (54)

NameTypeDefaultDescription
modelMODEL
clipCLIP
master_enabledBOOLEANtrue
tag_name_modeCOMBOrelative_with_ext4 options: relative_with_ext, relative_no_ext, basename_with_ext, basename_no_ext
separatorSTRING,
lora_1_enabledBOOLEANfalse
lora_1_nameCOMBO1 options: (none)
lora_1_strength_modelFLOAT1.00-100–100
lora_1_strength_clipFLOAT1.00-100–100
lora_2_enabledBOOLEANfalse
lora_2_nameCOMBO1 options: (none)
lora_2_strength_modelFLOAT1.00-100–100
lora_2_strength_clipFLOAT1.00-100–100
lora_3_enabledBOOLEANfalse
lora_3_nameCOMBO1 options: (none)
lora_3_strength_modelFLOAT1.00-100–100
lora_3_strength_clipFLOAT1.00-100–100
lora_4_enabledBOOLEANfalse
lora_4_nameCOMBO1 options: (none)
lora_4_strength_modelFLOAT1.00-100–100
lora_4_strength_clipFLOAT1.00-100–100
lora_5_enabledBOOLEANfalse
lora_5_nameCOMBO1 options: (none)
lora_5_strength_modelFLOAT1.00-100–100
lora_5_strength_clipFLOAT1.00-100–100
lora_6_enabledBOOLEANfalse
lora_6_nameCOMBO1 options: (none)
lora_6_strength_modelFLOAT1.00-100–100
lora_6_strength_clipFLOAT1.00-100–100
lora_7_enabledBOOLEANfalse
lora_7_nameCOMBO1 options: (none)
lora_7_strength_modelFLOAT1.00-100–100
lora_7_strength_clipFLOAT1.00-100–100
lora_8_enabledBOOLEANfalse
lora_8_nameCOMBO1 options: (none)
lora_8_strength_modelFLOAT1.00-100–100
lora_8_strength_clipFLOAT1.00-100–100
lora_9_enabledBOOLEANfalse
lora_9_nameCOMBO1 options: (none)
lora_9_strength_modelFLOAT1.00-100–100
lora_9_strength_clipFLOAT1.00-100–100
lora_10_enabledBOOLEANfalse
lora_10_nameCOMBO1 options: (none)
lora_10_strength_modelFLOAT1.00-100–100
lora_10_strength_clipFLOAT1.00-100–100
lora_11_enabledBOOLEANfalse
lora_11_nameCOMBO1 options: (none)
lora_11_strength_modelFLOAT1.00-100–100
lora_11_strength_clipFLOAT1.00-100–100
lora_12_enabledBOOLEANfalse
lora_12_nameCOMBO1 options: (none)
lora_12_strength_modelFLOAT1.00-100–100
lora_12_strength_clipFLOAT1.00-100–100
positive_promptoptSTRING

Outputs (5)

NameTypeDescription
modelMODEL
clipCLIP
lora_tagsSTRING
positive_with_lorasSTRING
summarySTRING