XY Input: LoRA
LoRA
- lora_stack
- X or Y
This XY input plots LoRAs against one axis of the grid. You either list specific LoRAs to compare, or point it at a folder and let it sweep every LoRA inside - then the plot renders the same prompt with each one applied. It's how you audition a pile of LoRAs quickly, or find the right strength for one, without regenerating by hand and squinting at the differences.
Like the whole XY family, it's ammo for the XY Plot node and does nothing standalone.
Why you'd reach for it
Two real uses. First, comparison shopping: you downloaded eight character or style LoRAs and want to see which actually deliver on your checkpoint - plot them all, judge the grid. Second, this node can also vary a single LoRA's strength across the axis, which is the honest way to find the right weight instead of the usual "eh, 0.8 is probably fine." LoRA strength genuinely matters and the sweet spot moves per LoRA, so seeing 0.4 through 1.0 laid out is worth the minute it takes.
The inputs and outputs
input_mode- switches between listing LoRAs by hand and the batch-folder mode.lora_countandlora_name_1…N- the manual list: how many slots and which LoRA in each.model_strength/clip_strength- the strength used when you're comparing LoRAs at a fixed weight, or the strength held constant when you're sweeping something else.model_str_1…N/clip_str_1…N- per-slot strengths for finer control in the manual list.batch_path/subdirectories/batch_sort/batch_max- the folder route: sweep every LoRA in a directory (batch_maxcaps the count so a big folder doesn't explode into a hundred cells).lora_stack(optional) - feed in an existing stack so the plotted LoRA sits on top of LoRAs you're already running.
The output is labelled X or Y (XY type) → into the X or Y input of an XY Plot node. For a two-dimensional LoRA sweep (a batch of LoRAs on one axis, strength on the other), see the dedicated XY Input: LoRA Plot node, which drives both axes at once.
Installing it
ComfyUI Manager → search Efficiency Nodes for ComfyUI, or:
cd ComfyUI/custom_nodes
git clone https://github.com/jags111/efficiency-nodes-comfyui
Restart after. LoRA files need to live in models/loras (or under your batch path) to be picked up.
Common issues
If a batch sweep comes back empty or short, check the batch_path and whether subdirectories needs to be on - a wrong path silently yields nothing, and batch_max may be quietly trimming the set.
Also worth knowing: on the SDXL base+refiner path, this pack has a documented history of LoRAs only affecting the base model and not the refiner. If your plotted LoRAs look weaker than expected specifically on an SDXL base+refiner run, that's the likely reason.
And it only works through an XY Plot feeding an Efficient KSampler. Pack-wide: a missing node usually means IMPORT FAILED at startup (often a pip freeze error) - update ComfyUI, the packages and the node.
Inputs (159)
| Name | Type | Default | Description |
|---|---|---|---|
| input_mode | COMBO | 3 options: LoRA Names, LoRA Names+Weights, LoRA Batch | |
| batch_path | STRING | /example_folder | — |
| subdirectories | BOOLEAN | false | — |
| batch_sort | COMBO | 2 options: ascending, descending | |
| batch_max | INT | -1-1–50 | — |
| lora_count | INT | 30–50 | — |
| model_strength | FLOAT | 1.00-10–10 | — |
| clip_strength | FLOAT | 1.00-10–10 | — |
| lora_name_1 | COMBO | 1 options: None | |
| model_str_1 | FLOAT | 1.00-10–10 | — |
| clip_str_1 | FLOAT | 1.00-10–10 | — |
| lora_name_2 | COMBO | 1 options: None | |
| model_str_2 | FLOAT | 1.00-10–10 | — |
| clip_str_2 | FLOAT | 1.00-10–10 | — |
| lora_name_3 | COMBO | 1 options: None | |
| model_str_3 | FLOAT | 1.00-10–10 | — |
| clip_str_3 | FLOAT | 1.00-10–10 | — |
| lora_name_4 | COMBO | 1 options: None | |
| model_str_4 | FLOAT | 1.00-10–10 | — |
| clip_str_4 | FLOAT | 1.00-10–10 | — |
| lora_name_5 | COMBO | 1 options: None | |
| model_str_5 | FLOAT | 1.00-10–10 | — |
| clip_str_5 | FLOAT | 1.00-10–10 | — |
| lora_name_6 | COMBO | 1 options: None | |
| model_str_6 | FLOAT | 1.00-10–10 | — |
| clip_str_6 | FLOAT | 1.00-10–10 | — |
| lora_name_7 | COMBO | 1 options: None | |
| model_str_7 | FLOAT | 1.00-10–10 | — |
| clip_str_7 | FLOAT | 1.00-10–10 | — |
| lora_name_8 | COMBO | 1 options: None | |
| model_str_8 | FLOAT | 1.00-10–10 | — |
| clip_str_8 | FLOAT | 1.00-10–10 | — |
| lora_name_9 | COMBO | 1 options: None | |
| model_str_9 | FLOAT | 1.00-10–10 | — |
| clip_str_9 | FLOAT | 1.00-10–10 | — |
| lora_name_10 | COMBO | 1 options: None | |
| model_str_10 | FLOAT | 1.00-10–10 | — |
| clip_str_10 | FLOAT | 1.00-10–10 | — |
| lora_name_11 | COMBO | 1 options: None | |
| model_str_11 | FLOAT | 1.00-10–10 | — |
| clip_str_11 | FLOAT | 1.00-10–10 | — |
| lora_name_12 | COMBO | 1 options: None | |
| model_str_12 | FLOAT | 1.00-10–10 | — |
| clip_str_12 | FLOAT | 1.00-10–10 | — |
| lora_name_13 | COMBO | 1 options: None | |
| model_str_13 | FLOAT | 1.00-10–10 | — |
| clip_str_13 | FLOAT | 1.00-10–10 | — |
| lora_name_14 | COMBO | 1 options: None | |
| model_str_14 | FLOAT | 1.00-10–10 | — |
| clip_str_14 | FLOAT | 1.00-10–10 | — |
| lora_name_15 | COMBO | 1 options: None | |
| model_str_15 | FLOAT | 1.00-10–10 | — |
| clip_str_15 | FLOAT | 1.00-10–10 | — |
| lora_name_16 | COMBO | 1 options: None | |
| model_str_16 | FLOAT | 1.00-10–10 | — |
| clip_str_16 | FLOAT | 1.00-10–10 | — |
| lora_name_17 | COMBO | 1 options: None | |
| model_str_17 | FLOAT | 1.00-10–10 | — |
| clip_str_17 | FLOAT | 1.00-10–10 | — |
| lora_name_18 | COMBO | 1 options: None | |
| model_str_18 | FLOAT | 1.00-10–10 | — |
| clip_str_18 | FLOAT | 1.00-10–10 | — |
| lora_name_19 | COMBO | 1 options: None | |
| model_str_19 | FLOAT | 1.00-10–10 | — |
| clip_str_19 | FLOAT | 1.00-10–10 | — |
| lora_name_20 | COMBO | 1 options: None | |
| model_str_20 | FLOAT | 1.00-10–10 | — |
| clip_str_20 | FLOAT | 1.00-10–10 | — |
| lora_name_21 | COMBO | 1 options: None | |
| model_str_21 | FLOAT | 1.00-10–10 | — |
| clip_str_21 | FLOAT | 1.00-10–10 | — |
| lora_name_22 | COMBO | 1 options: None | |
| model_str_22 | FLOAT | 1.00-10–10 | — |
| clip_str_22 | FLOAT | 1.00-10–10 | — |
| lora_name_23 | COMBO | 1 options: None | |
| model_str_23 | FLOAT | 1.00-10–10 | — |
| clip_str_23 | FLOAT | 1.00-10–10 | — |
| lora_name_24 | COMBO | 1 options: None | |
| model_str_24 | FLOAT | 1.00-10–10 | — |
| clip_str_24 | FLOAT | 1.00-10–10 | — |
| lora_name_25 | COMBO | 1 options: None | |
| model_str_25 | FLOAT | 1.00-10–10 | — |
| clip_str_25 | FLOAT | 1.00-10–10 | — |
| lora_name_26 | COMBO | 1 options: None | |
| model_str_26 | FLOAT | 1.00-10–10 | — |
| clip_str_26 | FLOAT | 1.00-10–10 | — |
| lora_name_27 | COMBO | 1 options: None | |
| model_str_27 | FLOAT | 1.00-10–10 | — |
| clip_str_27 | FLOAT | 1.00-10–10 | — |
| lora_name_28 | COMBO | 1 options: None | |
| model_str_28 | FLOAT | 1.00-10–10 | — |
| clip_str_28 | FLOAT | 1.00-10–10 | — |
| lora_name_29 | COMBO | 1 options: None | |
| model_str_29 | FLOAT | 1.00-10–10 | — |
| clip_str_29 | FLOAT | 1.00-10–10 | — |
| lora_name_30 | COMBO | 1 options: None | |
| model_str_30 | FLOAT | 1.00-10–10 | — |
| clip_str_30 | FLOAT | 1.00-10–10 | — |
| lora_name_31 | COMBO | 1 options: None | |
| model_str_31 | FLOAT | 1.00-10–10 | — |
| clip_str_31 | FLOAT | 1.00-10–10 | — |
| lora_name_32 | COMBO | 1 options: None | |
| model_str_32 | FLOAT | 1.00-10–10 | — |
| clip_str_32 | FLOAT | 1.00-10–10 | — |
| lora_name_33 | COMBO | 1 options: None | |
| model_str_33 | FLOAT | 1.00-10–10 | — |
| clip_str_33 | FLOAT | 1.00-10–10 | — |
| lora_name_34 | COMBO | 1 options: None | |
| model_str_34 | FLOAT | 1.00-10–10 | — |
| clip_str_34 | FLOAT | 1.00-10–10 | — |
| lora_name_35 | COMBO | 1 options: None | |
| model_str_35 | FLOAT | 1.00-10–10 | — |
| clip_str_35 | FLOAT | 1.00-10–10 | — |
| lora_name_36 | COMBO | 1 options: None | |
| model_str_36 | FLOAT | 1.00-10–10 | — |
| clip_str_36 | FLOAT | 1.00-10–10 | — |
| lora_name_37 | COMBO | 1 options: None | |
| model_str_37 | FLOAT | 1.00-10–10 | — |
| clip_str_37 | FLOAT | 1.00-10–10 | — |
| lora_name_38 | COMBO | 1 options: None | |
| model_str_38 | FLOAT | 1.00-10–10 | — |
| clip_str_38 | FLOAT | 1.00-10–10 | — |
| lora_name_39 | COMBO | 1 options: None | |
| model_str_39 | FLOAT | 1.00-10–10 | — |
| clip_str_39 | FLOAT | 1.00-10–10 | — |
| lora_name_40 | COMBO | 1 options: None | |
| model_str_40 | FLOAT | 1.00-10–10 | — |
| clip_str_40 | FLOAT | 1.00-10–10 | — |
| lora_name_41 | COMBO | 1 options: None | |
| model_str_41 | FLOAT | 1.00-10–10 | — |
| clip_str_41 | FLOAT | 1.00-10–10 | — |
| lora_name_42 | COMBO | 1 options: None | |
| model_str_42 | FLOAT | 1.00-10–10 | — |
| clip_str_42 | FLOAT | 1.00-10–10 | — |
| lora_name_43 | COMBO | 1 options: None | |
| model_str_43 | FLOAT | 1.00-10–10 | — |
| clip_str_43 | FLOAT | 1.00-10–10 | — |
| lora_name_44 | COMBO | 1 options: None | |
| model_str_44 | FLOAT | 1.00-10–10 | — |
| clip_str_44 | FLOAT | 1.00-10–10 | — |
| lora_name_45 | COMBO | 1 options: None | |
| model_str_45 | FLOAT | 1.00-10–10 | — |
| clip_str_45 | FLOAT | 1.00-10–10 | — |
| lora_name_46 | COMBO | 1 options: None | |
| model_str_46 | FLOAT | 1.00-10–10 | — |
| clip_str_46 | FLOAT | 1.00-10–10 | — |
| lora_name_47 | COMBO | 1 options: None | |
| model_str_47 | FLOAT | 1.00-10–10 | — |
| clip_str_47 | FLOAT | 1.00-10–10 | — |
| lora_name_48 | COMBO | 1 options: None | |
| model_str_48 | FLOAT | 1.00-10–10 | — |
| clip_str_48 | FLOAT | 1.00-10–10 | — |
| lora_name_49 | COMBO | 1 options: None | |
| model_str_49 | FLOAT | 1.00-10–10 | — |
| clip_str_49 | FLOAT | 1.00-10–10 | — |
| lora_name_50 | COMBO | 1 options: None | |
| model_str_50 | FLOAT | 1.00-10–10 | — |
| clip_str_50 | FLOAT | 1.00-10–10 | — |
| lora_stackopt | LORA_STACK | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| X or Y | XY | — |