Load Images From Folder X Lora (Soze)
One counter, every image × LoRA pair
- Image
- Mask
- Input_Path
- Image_Filename_Path
- Image_Filename
- Image_Filename_No_Ext
- Lora_Full_Path
- Lora_Name_Only
- Lora_Index
- status
Say you're comparing five LoRAs against the same ten test images - you want every combination rendered, fifty runs total, without hand-building fifty separate graphs. This node is the image-side half of that: it walks the cross product of a folder of images and a range of LoRAs, so a single incrementing index steps through every (image, LoRA) pair in sequence. The README describes the same pattern on the pack's CSV side - the CSV Reader X Checkpoint/X Lora nodes iterate index across rows × models - and this node is that idea applied to image folders instead of spreadsheet rows.
This is exactly the kind of setup you'd reach for during LoRA evaluation: run the same fixed set of source images through every candidate LoRA and eyeball the grid, rather than swapping LoRAs and re-running a batch manually each time.
How it works
Input_Folder is your image set, start_lora_name is where in your installed LoRAs to begin, and lora_count is how many consecutive LoRAs (starting from that one) are in scope. A single index then walks the combined space - image 1 with LoRA 1, image 1 with LoRA 2, ... image 1 with LoRA N, image 2 with LoRA 1, and so on (or some consistent ordering along those lines) - so incrementing index across a batch of queued runs walks the entire grid without you managing two separate counters yourself.
The inputs and outputs that matter
Input_Folder- required. Your image set.start_lora_name- required, a dropdown populated from your installed LoRAs. Per its own tooltip: "The name of the starting LoRA." This is where the LoRA range begins.lora_count- required, default1, range 1–100. Per its tooltip: "The number of LoRAs to load." How many consecutive LoRAs (fromstart_lora_nameonward) are included in the sweep.index- optional, default0, range 0–1,000,000. The single counter that walks the full image × LoRA grid.- Output:
Image,Mask- the current image in the sweep. - Output:
Input_Path,Image_Filename_Path,Image_Filename,Image_Filename_No_Ext- the current image's path/filename, same shape as the pack's other loaders. - Output:
Lora_Full_Path,Lora_Name_Only,Lora_Index- which LoRA this particular run landed on, in path, name, and index form. WireLora_Full_Pathinto your LoRA loader node so the sweep actually changes which LoRA gets applied each run. - Output:
status- a status string.
How to install it
Via ComfyUI Manager (search "Quality of Life Nodes for ComfyUI" or "Soze") or manually:
cd ComfyUI/custom_nodes
git clone https://github.com/SozeInc/ComfyUI_Soze.git
pip install -r ComfyUI_Soze/requirements.txt
Restart. No models beyond the LoRAs you're already sweeping through, and no API keys.
Common issues & troubleshooting
The sweep runs longer than you planned. Total runs needed is image_count × lora_count, not just one or the other - with ten images and five LoRAs that's fifty queued runs, easy to underestimate. Check Load_Count-style outputs (or just do the multiplication yourself) before setting your queue count.
Lora_Full_Path isn't actually changing the generation. This node only tells you which LoRA the current index landed on - it doesn't apply it. You still need a LoRA loader node downstream, fed by Lora_Full_Path, for the sweep to actually affect output; forgetting that wire is the single most likely reason every image in your comparison grid looks identical.
start_lora_name's dropdown is empty. That means ComfyUI isn't finding any LoRAs in its configured models path - same root cause as an empty LoRA dropdown anywhere else in ComfyUI, unrelated to this specific node. Confirm your LoRAs are actually in the folder ComfyUI is configured to look at before troubleshooting this node further.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| Input_Folder | STRING | — | |
| start_lora_name | COMBO | The name of the starting LoRA. | |
| lora_count | INT | 11–100 | The number of LoRAs to load. |
| indexopt | INT | 00–1000000 | — |
Outputs (10)
| Name | Type | Description |
|---|---|---|
| Image | IMAGE | — |
| Mask | MASK | — |
| Input_Path | STRING | — |
| Image_Filename_Path | STRING | — |
| Image_Filename | STRING | — |
| Image_Filename_No_Ext | STRING | — |
| Lora_Full_Path | STRING | — |
| Lora_Name_Only | STRING | — |
| Lora_Index | INT | — |
| status | STRING | — |