XY Input: LoRA Weight (simple)
Sweep LoRA strength on one axis and still mix it with checkpoints on the other
- X or Y
If you've built an XY plot in Efficiency Nodes and tried to sweep LoRA strength, you've met the wall this node exists to climb over. The stock plot logic won't mix a Checkpoint axis with the LoRA-special types ("LoRA Wt", "LoRA MStr", …) unless both axes are LoRA. So you can compare checkpoints against each other, and you can sweep LoRA weights against each other, but do one of each in the same grid? Blocked. That's exactly the "how strong is this LoRA across my different checkpoints" question most people actually want answered, and it's the one grid you can't build out of the box.
XY Input: LoRA Weight (simple) fixes it by pretending nothing special is going on. It emits the plain LoRA subtype with the same strength applied to Model and Clip, which sidesteps the "both axes must be LoRA-special" rule entirely. One tiny file, MIT licensed, no hidden dependencies. It does one thing and does it without fuss.
What it actually outputs
The node is dead simple under the hood - a _linspace call plus rounding. You pick a LoRA, a min, a max, and a step count, and it hands back an XY value that's a list of triples:
[[(my_lora.safetensors, 0.00, 0.00)],
[(my_lora.safetensors, 0.50, 0.50)],
[(my_lora.safetensors, 1.00, 1.00)]]
The output is X or Y (type XY, subtype LoRA). Each triple is (lora_name, model_weight, clip_weight) - note the same value twice. If you need separate model/clip strengths, this isn't your node; the standard LoRA XY inputs do that but force both axes to be LoRA. For a plain "how strong?" comparison, one shared value is fine, and it's the whole point here.
The inputs that matter
lora_name- dropdown read frommodels/loras. It's rebuilt when the node loads, so drop a new LoRA in the folder and refresh before you hunt for it in the list.min_value/max_value- the sweep range. Defaults 0.0 → 1.0, but the range is -10 to +10 for a reason. LoRA weights above 1.0 are legitimately useful - plenty of people run at 0.5–0.8 because default 1.0 is often too strong, while some LoRAs want to be pushed past 1. Sweep 0.8 → 1.6 and see.steps- how many tiles, including both endpoints.0.0 → 1.0withsteps=3gives 0.00, 0.50, 1.00.
One gotcha the source makes visible: values are rounded to two decimals, so a tight range with many steps collapses into duplicate tiles. Sweep 0.0 → 0.1 across 20 steps and half your grid is the same weight. Keep the range proportioned to the step count.
Wiring it up
This node is only useful inside an Efficiency Nodes XY plot, so that pack is your real dependency - it needs the Efficient Loader, the Efficiency KSampler (the one with a script input), and XY Plot. The chain is:
- Efficient Loader → wire
DEPENDENCIESinto XY Plot'sdependencies. - XY Input: Checkpoint → XY Plot
X. - This node → XY Plot
Y. - XY Plot
script→ Efficiency KSamplerscript. - Set
ksampler_output_image = Plotin XY Plot, then KSampler.IMAGE → Save Image.
Result: a grid of #checkpoints × #steps tiles - say 2 checkpoints × 3 weights, one click.
Install
Via ComfyUI Manager, Install via Git URL → https://github.com/Frief84/ComfyUI-LoRAWeightAxisXY, restart. Or manually:
cd ComfyUI/custom_nodes
git clone https://github.com/Frief84/ComfyUI-LoRAWeightAxisXY
Then restart ComfyUI. There's no requirements.txt, no model downloads - the only thing that has to already be there is Efficiency Nodes.
Where people get burned
- One image instead of a grid - almost always one of three things: you're using the core KSampler (which ignores
script),dependenciesisn't connected, orksampler_output_imageisn't set toPlot. The terminal prints anXY Plot Error:line when types mismatch, so check the console before rebuilding the graph. - Y port won't accept the connection - some XY Plot variants only show linkable ports after you click the little chain/link icon next to the field.
- The sweep gets ignored - a separate
Load LoRAnode with fixed weights sitting in your main path can override it. Keep the main path LoRA-free while the plot runs.
It's a narrow tool, but it's the exact one you want when the question is "which checkpoint + how much of this LoRA." Given how often people get stuck building multi-LoRA grids in ComfyUI, a node this focused earns its place.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| lora_name | COMBO | 1 options: None | |
| min_value | FLOAT | 0.00-10–10 | — |
| max_value | FLOAT | 1.00-10–10 | — |
| steps | INT | 31–200 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| X or Y | XY | — |