Nodes/ComfyUI-LoraSlider-LM/LoRA Slider (LoraManager)
ComfyUI Node

LoRA Slider (LoraManager)

Batch LoRA strength sliders for LoRA Manager

By EnragedAntelope·Created 3 months ago·Updated 3 months ago· 3
LoRA Slider (LoraManager)
  • sliders
  • pool_config
  • LORA_STACK
  • trigger_words
randomize_active_each_runfalse
randomize_strength_each_runfalse

If you've ever spent a batch session nudging a slider LoRA's weight up and down one number at a time, this node is aimed squarely at you. LoRA Slider (LoraManager) gives you one real slider per LoRA - with editable min/max bounds and end labels like "skinny" on one side and "obese" on the other - and bundles them into a single node that feeds straight into LoRA Manager's loader. The whole point is that you stop typing strengths into a text field and start dragging them, then let the node re-roll them for you when you're hunting for variation.

It's a quality-of-life node in the "Power Lora Loader" mold: it stacks many LoRAs, but instead of a table of numbers you get the slider UX from ComfyUI-Flex-Pack - with Flex's biggest annoyance fixed, which is that Flex makes you add and configure sliders one at a time. Here you batch-add a dozen LoRAs in one go.

How it works

The clever bit is architectural: all the heavy lifting happens in the browser widget at edit time, not at execution. When you add LoRAs, the widget talks to LoRA Manager's public HTTP routes (/api/lm/loras/relative-paths for search, cycler-list for pool expansion, model-description for metadata), then serializes everything into the node's sliders value. By the time the graph runs, the Python side just reads that value and emits a LORA_STACK - so execution needs no network and no LM imports. It's a nice pattern: this package imports zero LoRA Manager modules and patches nothing, which means LM updates can't break it.

There's also a genuinely thoughtful bit of metadata parsing. Slider LoRAs rarely expose their usable range as structured data - it's buried in the CivitAI description as prose like "Safe zone (-3 - +2.5)… Higher is thinner." The node reads the description LM has stored, extracts the range and the direction, and pre-fills min/max plus the end labels. It's best-effort; when nothing parses it silently falls back to defaults (which you can fix via the per-row gear dialog).

The inputs that matter

The sliders input is a custom DOM widget - you don't type into it, you add rows with the + Add LoRAs picker (search by name or folder path, so turbo/slider works), the + Text option (paste <lora:folder/name:0.8> codes), or Import from Pool by wiring in LM's Lora Pool node. Two booleans control per-run randomization:

  • randomize_strength_each_run - re-roll every unlocked slider's strength within its min/max on each queued run. Great for batch variation.
  • randomize_active_each_run - randomly enable/disable each unlocked slider instead.

Anything you 🔒 lock is never touched by randomization, and there are per-slider 🎲 buttons for one-off rolls. The outputs are the standard LORA_STACK and an aggregated trigger_words string - the stack plugs straight into Lora Loader (LoraManager) and then on to the KSampler.

Installing it

You need ComfyUI-Lora-Manager installed - the whole point is sitting next to it. Then clone:

cd ComfyUI/custom_nodes
git clone https://github.com/EnragedAntelope/ComfyUI-LoraSlider-LM

Restart ComfyUI and it appears under the Lora Slider category. It's also in ComfyUI Manager's search as "ComfyUI-LoraSlider-LM". There are no model downloads and no Python dependencies beyond what ComfyUI ships - a rare pack where the README's requirements list is genuinely empty.

Gotchas

The picker, pool import, and metadata auto-fill all call LM's HTTP routes, so if LoRA Manager isn't running, those features are dead - manual sliders still work. Also know that a slider parked exactly at 0 contributes nothing and is skipped entirely, which is sensible (why load a LoRA at zero strength?) but can surprise you if you expected the row to appear in the stack. One note on "each run" modes: they force the node to re-execute every queue by design, so don't be alarmed that the graph stops caching while they're on.

CategoryLora Slider

Inputs (4)

NameTypeDefaultDescription
slidersLORA_SLIDERS
randomize_active_each_runBOOLEANfalse
randomize_strength_each_runBOOLEANfalse
pool_configoptPOOL_CONFIG

Outputs (2)

NameTypeDescription
LORA_STACKLORA_STACK
trigger_wordsSTRING