ComfyUI Node Runs on cloud

XY Input: LoRA

LoRA

By jags111·Created 3 years ago·Updated 6 months ago· 1,504
XY Input: LoRA
  • lora_stack
  • X or Y
◄input_mode▾►
◄batch_path/example_folder►
◄subdirectoriesfalse►
◄batch_sort▾►
◄batch_max-1►
◄lora_count3►
◄model_strength1.00►
◄clip_strength1.00►
◄lora_name_1▾►
◄model_str_11.00►
◄clip_str_11.00►
◄lora_name_2▾►
◄model_str_21.00►
◄clip_str_21.00►
◄lora_name_3▾►
◄model_str_31.00►
◄clip_str_31.00►
◄lora_name_4▾►
◄model_str_41.00►
◄clip_str_41.00►
◄lora_name_5▾►
◄model_str_51.00►
◄clip_str_51.00►
◄lora_name_6▾►
◄model_str_61.00►
◄clip_str_61.00►
◄lora_name_7▾►
◄model_str_71.00►
◄clip_str_71.00►
◄lora_name_8▾►
◄model_str_81.00►
◄clip_str_81.00►
◄lora_name_9▾►
◄model_str_91.00►
◄clip_str_91.00►
◄lora_name_10▾►
◄model_str_101.00►
◄clip_str_101.00►
◄lora_name_11▾►
◄model_str_111.00►
◄clip_str_111.00►
◄lora_name_12▾►
◄model_str_121.00►
◄clip_str_121.00►
◄lora_name_13▾►
◄model_str_131.00►
◄clip_str_131.00►
◄lora_name_14▾►
◄model_str_141.00►
◄clip_str_141.00►
◄lora_name_15▾►
◄model_str_151.00►
◄clip_str_151.00►
◄lora_name_16▾►
◄model_str_161.00►
◄clip_str_161.00►
◄lora_name_17▾►
◄model_str_171.00►
◄clip_str_171.00►
◄lora_name_18▾►
◄model_str_181.00►
◄clip_str_181.00►
◄lora_name_19▾►
◄model_str_191.00►
◄clip_str_191.00►
◄lora_name_20▾►
◄model_str_201.00►
◄clip_str_201.00►
◄lora_name_21▾►
◄model_str_211.00►
◄clip_str_211.00►
◄lora_name_22▾►
◄model_str_221.00►
◄clip_str_221.00►
◄lora_name_23▾►
◄model_str_231.00►
◄clip_str_231.00►
◄lora_name_24▾►
◄model_str_241.00►
◄clip_str_241.00►
◄lora_name_25▾►
◄model_str_251.00►
◄clip_str_251.00►
◄lora_name_26▾►
◄model_str_261.00►
◄clip_str_261.00►
◄lora_name_27▾►
◄model_str_271.00►
◄clip_str_271.00►
◄lora_name_28▾►
◄model_str_281.00►
◄clip_str_281.00►
◄lora_name_29▾►
◄model_str_291.00►
◄clip_str_291.00►
◄lora_name_30▾►
◄model_str_301.00►
◄clip_str_301.00►
◄lora_name_31▾►
◄model_str_311.00►
◄clip_str_311.00►
◄lora_name_32▾►
◄model_str_321.00►
◄clip_str_321.00►
◄lora_name_33▾►
◄model_str_331.00►
◄clip_str_331.00►
◄lora_name_34▾►
◄model_str_341.00►
◄clip_str_341.00►
◄lora_name_35▾►
◄model_str_351.00►
◄clip_str_351.00►
◄lora_name_36▾►
◄model_str_361.00►
◄clip_str_361.00►
◄lora_name_37▾►
◄model_str_371.00►
◄clip_str_371.00►
◄lora_name_38▾►
◄model_str_381.00►
◄clip_str_381.00►
◄lora_name_39▾►
◄model_str_391.00►
◄clip_str_391.00►
◄lora_name_40▾►
◄model_str_401.00►
◄clip_str_401.00►
◄lora_name_41▾►
◄model_str_411.00►
◄clip_str_411.00►
◄lora_name_42▾►
◄model_str_421.00►
◄clip_str_421.00►
◄lora_name_43▾►
◄model_str_431.00►
◄clip_str_431.00►
◄lora_name_44▾►
◄model_str_441.00►
◄clip_str_441.00►
◄lora_name_45▾►
◄model_str_451.00►
◄clip_str_451.00►
◄lora_name_46▾►
◄model_str_461.00►
◄clip_str_461.00►
◄lora_name_47▾►
◄model_str_471.00►
◄clip_str_471.00►
◄lora_name_48▾►
◄model_str_481.00►
◄clip_str_481.00►
◄lora_name_49▾►
◄model_str_491.00►
◄clip_str_491.00►
◄lora_name_50▾►
◄model_str_501.00►
◄clip_str_501.00►

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_count and lora_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_max caps 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.

CategoryEfficiency Nodes/XY Inputs

Inputs (159)

NameTypeDefaultDescription
input_modeCOMBO3 options: LoRA Names, LoRA Names+Weights, LoRA Batch
batch_pathSTRING/example_folder—
subdirectoriesBOOLEANfalse—
batch_sortCOMBO2 options: ascending, descending
batch_maxINT-1-1–50—
lora_countINT30–50—
model_strengthFLOAT1.00-10–10—
clip_strengthFLOAT1.00-10–10—
lora_name_1COMBO1 options: None
model_str_1FLOAT1.00-10–10—
clip_str_1FLOAT1.00-10–10—
lora_name_2COMBO1 options: None
model_str_2FLOAT1.00-10–10—
clip_str_2FLOAT1.00-10–10—
lora_name_3COMBO1 options: None
model_str_3FLOAT1.00-10–10—
clip_str_3FLOAT1.00-10–10—
lora_name_4COMBO1 options: None
model_str_4FLOAT1.00-10–10—
clip_str_4FLOAT1.00-10–10—
lora_name_5COMBO1 options: None
model_str_5FLOAT1.00-10–10—
clip_str_5FLOAT1.00-10–10—
lora_name_6COMBO1 options: None
model_str_6FLOAT1.00-10–10—
clip_str_6FLOAT1.00-10–10—
lora_name_7COMBO1 options: None
model_str_7FLOAT1.00-10–10—
clip_str_7FLOAT1.00-10–10—
lora_name_8COMBO1 options: None
model_str_8FLOAT1.00-10–10—
clip_str_8FLOAT1.00-10–10—
lora_name_9COMBO1 options: None
model_str_9FLOAT1.00-10–10—
clip_str_9FLOAT1.00-10–10—
lora_name_10COMBO1 options: None
model_str_10FLOAT1.00-10–10—
clip_str_10FLOAT1.00-10–10—
lora_name_11COMBO1 options: None
model_str_11FLOAT1.00-10–10—
clip_str_11FLOAT1.00-10–10—
lora_name_12COMBO1 options: None
model_str_12FLOAT1.00-10–10—
clip_str_12FLOAT1.00-10–10—
lora_name_13COMBO1 options: None
model_str_13FLOAT1.00-10–10—
clip_str_13FLOAT1.00-10–10—
lora_name_14COMBO1 options: None
model_str_14FLOAT1.00-10–10—
clip_str_14FLOAT1.00-10–10—
lora_name_15COMBO1 options: None
model_str_15FLOAT1.00-10–10—
clip_str_15FLOAT1.00-10–10—
lora_name_16COMBO1 options: None
model_str_16FLOAT1.00-10–10—
clip_str_16FLOAT1.00-10–10—
lora_name_17COMBO1 options: None
model_str_17FLOAT1.00-10–10—
clip_str_17FLOAT1.00-10–10—
lora_name_18COMBO1 options: None
model_str_18FLOAT1.00-10–10—
clip_str_18FLOAT1.00-10–10—
lora_name_19COMBO1 options: None
model_str_19FLOAT1.00-10–10—
clip_str_19FLOAT1.00-10–10—
lora_name_20COMBO1 options: None
model_str_20FLOAT1.00-10–10—
clip_str_20FLOAT1.00-10–10—
lora_name_21COMBO1 options: None
model_str_21FLOAT1.00-10–10—
clip_str_21FLOAT1.00-10–10—
lora_name_22COMBO1 options: None
model_str_22FLOAT1.00-10–10—
clip_str_22FLOAT1.00-10–10—
lora_name_23COMBO1 options: None
model_str_23FLOAT1.00-10–10—
clip_str_23FLOAT1.00-10–10—
lora_name_24COMBO1 options: None
model_str_24FLOAT1.00-10–10—
clip_str_24FLOAT1.00-10–10—
lora_name_25COMBO1 options: None
model_str_25FLOAT1.00-10–10—
clip_str_25FLOAT1.00-10–10—
lora_name_26COMBO1 options: None
model_str_26FLOAT1.00-10–10—
clip_str_26FLOAT1.00-10–10—
lora_name_27COMBO1 options: None
model_str_27FLOAT1.00-10–10—
clip_str_27FLOAT1.00-10–10—
lora_name_28COMBO1 options: None
model_str_28FLOAT1.00-10–10—
clip_str_28FLOAT1.00-10–10—
lora_name_29COMBO1 options: None
model_str_29FLOAT1.00-10–10—
clip_str_29FLOAT1.00-10–10—
lora_name_30COMBO1 options: None
model_str_30FLOAT1.00-10–10—
clip_str_30FLOAT1.00-10–10—
lora_name_31COMBO1 options: None
model_str_31FLOAT1.00-10–10—
clip_str_31FLOAT1.00-10–10—
lora_name_32COMBO1 options: None
model_str_32FLOAT1.00-10–10—
clip_str_32FLOAT1.00-10–10—
lora_name_33COMBO1 options: None
model_str_33FLOAT1.00-10–10—
clip_str_33FLOAT1.00-10–10—
lora_name_34COMBO1 options: None
model_str_34FLOAT1.00-10–10—
clip_str_34FLOAT1.00-10–10—
lora_name_35COMBO1 options: None
model_str_35FLOAT1.00-10–10—
clip_str_35FLOAT1.00-10–10—
lora_name_36COMBO1 options: None
model_str_36FLOAT1.00-10–10—
clip_str_36FLOAT1.00-10–10—
lora_name_37COMBO1 options: None
model_str_37FLOAT1.00-10–10—
clip_str_37FLOAT1.00-10–10—
lora_name_38COMBO1 options: None
model_str_38FLOAT1.00-10–10—
clip_str_38FLOAT1.00-10–10—
lora_name_39COMBO1 options: None
model_str_39FLOAT1.00-10–10—
clip_str_39FLOAT1.00-10–10—
lora_name_40COMBO1 options: None
model_str_40FLOAT1.00-10–10—
clip_str_40FLOAT1.00-10–10—
lora_name_41COMBO1 options: None
model_str_41FLOAT1.00-10–10—
clip_str_41FLOAT1.00-10–10—
lora_name_42COMBO1 options: None
model_str_42FLOAT1.00-10–10—
clip_str_42FLOAT1.00-10–10—
lora_name_43COMBO1 options: None
model_str_43FLOAT1.00-10–10—
clip_str_43FLOAT1.00-10–10—
lora_name_44COMBO1 options: None
model_str_44FLOAT1.00-10–10—
clip_str_44FLOAT1.00-10–10—
lora_name_45COMBO1 options: None
model_str_45FLOAT1.00-10–10—
clip_str_45FLOAT1.00-10–10—
lora_name_46COMBO1 options: None
model_str_46FLOAT1.00-10–10—
clip_str_46FLOAT1.00-10–10—
lora_name_47COMBO1 options: None
model_str_47FLOAT1.00-10–10—
clip_str_47FLOAT1.00-10–10—
lora_name_48COMBO1 options: None
model_str_48FLOAT1.00-10–10—
clip_str_48FLOAT1.00-10–10—
lora_name_49COMBO1 options: None
model_str_49FLOAT1.00-10–10—
clip_str_49FLOAT1.00-10–10—
lora_name_50COMBO1 options: None
model_str_50FLOAT1.00-10–10—
clip_str_50FLOAT1.00-10–10—
lora_stackoptLORA_STACK—

Outputs (1)

NameTypeDescription
X or YXY—