AGSoft Loop Lora Strengths
Sweep 20 LoRA strengths in one queue
- strengths
- strengths_text
LoRA strength is the most-fiddled dial in ComfyUI, and the standard way to test a range of values is to run, change the number, run again. AGSoft Loop Lora Strengths turns that into one queue: you type up to 20 strength values into the node, and it emits them as a list your batch machinery can iterate. It's a small idea, but it's the difference between twenty manual runs and one scripted sweep.
How it works
Twenty float inputs - strength_model_1 through strength_model_20 - each defaulting to 0.0 except slot 1 (1.0). The rule is simple: any slot set to exactly 0.0 is skipped, everything else gets emitted. Set slot 1 to 0.4, slot 2 to 0.6, slot 3 to 0.8, leave the rest alone, and you get a three-item list.
Two synchronized outputs come out:
strengths- the float values themselves, as a list, for driving a LoRA loader's strength input.strengths_text- the same values formatted aslora_strength = Xstrings, with full precision preserved. So0.001stays0.001and-2stays-2- no float formatting roulette. That string output is gold if you're labeling each batch item with what it ran.
The two lists are guaranteed to line up index-for-index, because they're built from the same loop. That sync is the whole point: whatever your batch driver reads as the numeric value, the label matches it.
The inputs in practice
There's exactly one decision per slot: does it run or not. Values can be negative (a LoRA at −0.5 is a legitimate stylistic choice for de-emphasizing a style) and can exceed 1.0 if your test calls for it. The tooltip's honest framing: "Set to 0.0 to skip this slot." Because only exactly 0.0 is skipped, a tiny non-zero like 0.001 is respected - which matters more than you'd think for weak LoRAs where 0.001 vs 0.01 is a real difference.
Wiring it
This node feeds batch-capable machinery. Its strengths list plugs into a LoRA loader that accepts list inputs, or into the pack's own loop family (AGSoft Loop Base and friends) which iterate list values. Pair it with AGSoft Loop Samplers and you've got a proper sweep setup: strengths × samplers, all queued at once.
Installing it
Pack standard: ComfyUI Manager → search comfyui-AGSoft → install, restart. Or:
cd ComfyUI/custom_nodes
git clone https://github.com/Art-xmaster/comfyui-AGSoft.git
No models, no dependencies - it's pure list construction.
Common issues
The classic stumble is wiring strengths to a LoRA loader that doesn't accept list inputs - you'll get a type error, and it's easy to blame the node. Check the loader first. The other trap is expecting zero to be preserved for a "no LoRA" pass: it's skipped by design, so you can't use 0.0 as a placeholder inside the list - if you need a pass without the LoRA, run it separately or use a tiny epsilon. And if your labels and values ever look out of sync, remember both outputs come from the same slots - a mismatch means you edited a slot between reads, not that the node misordered anything.
Inputs (20)
| Name | Type | Default | Description |
|---|---|---|---|
| strength_model_1 | FLOAT | 1.00-100–100 | Strength for slot 1. 0.0 = skip. Сила для слота 1. 0.0 = пропустить. |
| strength_model_2 | FLOAT | 0.00-100–100 | Strength for slot 2. 0.0 = skip. Сила для слота 2. 0.0 = пропустить. |
| strength_model_3 | FLOAT | 0.00-100–100 | Strength for slot 3. 0.0 = skip. Сила для слота 3. 0.0 = пропустить. |
| strength_model_4 | FLOAT | 0.00-100–100 | Strength for slot 4. 0.0 = skip. Сила для слота 4. 0.0 = пропустить. |
| strength_model_5 | FLOAT | 0.00-100–100 | Strength for slot 5. 0.0 = skip. Сила для слота 5. 0.0 = пропустить. |
| strength_model_6 | FLOAT | 0.00-100–100 | Strength for slot 6. 0.0 = skip. Сила для слота 6. 0.0 = пропустить. |
| strength_model_7 | FLOAT | 0.00-100–100 | Strength for slot 7. 0.0 = skip. Сила для слота 7. 0.0 = пропустить. |
| strength_model_8 | FLOAT | 0.00-100–100 | Strength for slot 8. 0.0 = skip. Сила для слота 8. 0.0 = пропустить. |
| strength_model_9 | FLOAT | 0.00-100–100 | Strength for slot 9. 0.0 = skip. Сила для слота 9. 0.0 = пропустить. |
| strength_model_10 | FLOAT | 0.00-100–100 | Strength for slot 10. 0.0 = skip. Сила для слота 10. 0.0 = пропустить. |
| strength_model_11 | FLOAT | 0.00-100–100 | Strength for slot 11. 0.0 = skip. Сила для слота 11. 0.0 = пропустить. |
| strength_model_12 | FLOAT | 0.00-100–100 | Strength for slot 12. 0.0 = skip. Сила для слота 12. 0.0 = пропустить. |
| strength_model_13 | FLOAT | 0.00-100–100 | Strength for slot 13. 0.0 = skip. Сила для слота 13. 0.0 = пропустить. |
| strength_model_14 | FLOAT | 0.00-100–100 | Strength for slot 14. 0.0 = skip. Сила для слота 14. 0.0 = пропустить. |
| strength_model_15 | FLOAT | 0.00-100–100 | Strength for slot 15. 0.0 = skip. Сила для слота 15. 0.0 = пропустить. |
| strength_model_16 | FLOAT | 0.00-100–100 | Strength for slot 16. 0.0 = skip. Сила для слота 16. 0.0 = пропустить. |
| strength_model_17 | FLOAT | 0.00-100–100 | Strength for slot 17. 0.0 = skip. Сила для слота 17. 0.0 = пропустить. |
| strength_model_18 | FLOAT | 0.00-100–100 | Strength for slot 18. 0.0 = skip. Сила для слота 18. 0.0 = пропустить. |
| strength_model_19 | FLOAT | 0.00-100–100 | Strength for slot 19. 0.0 = skip. Сила для слота 19. 0.0 = пропустить. |
| strength_model_20 | FLOAT | 0.00-100–100 | Strength for slot 20. 0.0 = skip. Сила для слота 20. 0.0 = пропустить. |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| strengths | FLOAT | — |
| strengths_text | STRING | — |