String LoRA Loader
A LoRA loader whose filename is a wire, not a menu
- model
- clip
- MODEL
- CLIP
String LoRA Loader is ComfyUI's standard LoRA loader with one deliberate change: instead of picking the file from a dropdown, you type (or wire in) the filename as a string. You connect your MODEL and CLIP, tell it detail_tweaker_xl.safetensors, set your strengths, and you get the modified MODEL and CLIP back - exactly like the built-in LoraLoader. It lives in the "S3 Serverless Storage" category, but like its sibling StringCheckpointLoader, it's actually just a convenience loader that has nothing to do with S3.
The payoff is the same as any string-driven loader: automation. The built-in LoraLoader's dropdown is baked into the node, so you can't feed it from another node. Here the filename is an ordinary string input, which means a text node, a file reader, an API payload, or a loop can decide which LoRA gets applied. That unlocks the two workflows people actually want:
- Batch sweeps - iterate a list of LoRA filenames in a loop, render the same base workflow with each, and compare. With a dropdown you'd be rebuilding the graph; with a string you just change the value.
- API-driven rendering - when ComfyUI is serving requests, the client can name the LoRA without anyone editing node widgets.
If you never automate, the dropdown is faster by hand and this node buys you nothing. That's an honest trade: it's a niche tool for a very specific convenience.
How it works
It uses the exact same loading machinery as the core LoraLoader - folder_paths.get_full_path_or_raise("loras", filename) to resolve the file, comfy.utils.load_torch_file to read it, and comfy.sd.load_lora_for_models to apply it. It even keeps a tiny per-node cache so re-running with the same filename doesn't re-read the file from disk.
Two behaviors are worth knowing because they make the node safer than it looks. If you set both strengths to zero, or pass an empty filename, it returns your MODEL and CLIP unchanged - a clean pass-through rather than an error. That means a workflow can have a LoRA slot that's effectively optional. And like the checkpoint loader, an empty string won't crash your graph; it just means "no LoRA this run."
Inputs and outputs
- model / clip - the
MODELandCLIPfrom your checkpoint loader. - lora_filename - the filename, e.g.
lora_name.safetensors. Must exist in yourComfyUI/models/lorasfolder. - strength_model / strength_clip - both default to 1.0, both can go negative (for "un-apply" tricks) up to ±100. In practice you'll live at 0.5–1.2 for SDXL-era LoRAs.
Outputs: MODEL and CLIP, wired back into your KSampler.
Install
Via ComfyUI Manager (search s3_serverless_inline_storage_utils) or:
cd ComfyUI/custom_nodes
git clone https://github.com/udayjain26/s3_serverless_inline_storage_utils
Restart, look under S3 Serverless Storage. No models to download; the node itself needs nothing beyond stock ComfyUI.
Troubleshooting
Almost every problem here is a filename problem. FileNotFoundError means the name doesn't resolve in your loras directory - typos, missing extension, or a subfolder path that's wrong. It uses your standard models/loras folder, so if it loads in the built-in LoraLoader, it loads here. One quirk: strengths are clamped to the ±100 range in the schema, but if you leave strength_clip at 1.0 on a model where the LoRA was trained without CLIP changes, you'll sometimes see artifacts - that's a LoRA/strength issue, not a bug in this node. Drop clip strength toward 0 and re-run.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | The diffusion model the LoRA will be applied to. | |
| clip | CLIP | The CLIP model the LoRA will be applied to. | |
| lora_filename | STRING | Filename of the LoRA to load (e.g., 'lora_name.safetensors') | |
| strength_model | FLOAT | 1.00-100–100 | How strongly to modify the diffusion model. This value can be negative. |
| strength_clip | FLOAT | 1.00-100–100 | How strongly to modify the CLIP model. This value can be negative. |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| MODEL | MODEL | The modified diffusion model. |
| CLIP | CLIP | The modified CLIP model. |