EmAySee LoRA Applier
Apply a LoRA whose name comes in as plain text
- model
- clip
- MODEL
- CLIP
The LoRA loader that takes a string instead of a dropdown
ComfyUI's LoraLoader bakes the LoRA choice into a dropdown widget on the node. That's great until you want the choice to come from somewhere else in the graph - a selector, a batch parameter, a text file, an LLM's output. EmAySee_LoraApplier is the variant that takes lora_name as a plain STRING input, so any node producing a filename can drive it. Everything else is standard LoRA application: model and clip in, patched model and clip out, with strength_model and strength_clip controlling how hard the patch lands.
The use case is graph-driven LoRA selection. Feed it the filename output of EmAySee_LoraFilePicker, or drive it from a text node, and your workflow picks the adapter at runtime instead of you editing a widget between runs. That's the real reason to reach for it over the stock loader.
How it works
Under the hood it's the same machinery as the core loader, just with the filename arriving as data instead of a widget. It resolves the name against ComfyUI's loras folder, loads the weights with safe_load, and applies them through comfy.sd.load_lora_for_models. The defense-in-depth is worth noting: if lora_name is "None" (or both strengths are zero) it passes model and clip through untouched, and if the file can't be found it prints a warning and returns the unpatched model rather than crashing. So the node never hard-fails - which is also its sneakiest failure mode (see below).
Inputs
model(MODEL),clip(CLIP) - what gets patched.lora_name(STRING, default"None") - the filename, relative to your loras folder (e.g.char.safetensorsorsubdir/char.safetensors).strength_model,strength_clip(FLOAT, −10 to 10) - patch strength. Both default to 1.0.
Outputs: MODEL and CLIP, patched (or untouched when skipped).
Install
From the ComfyUI_EmAySee_CustomNodes pack:
cd ComfyUI/custom_nodes
git clone https://github.com/EmAySee/ComfyUI_EmAySee_CustomNodes
# restart ComfyUI
Or via ComfyUI Manager → "ComfyUI_EmAySee_CustomNodes". No extra dependencies.
Gotchas
The silence is the problem. Because a missing file only logs a console warning and passes the model through, a typo in the string gives you a base-model render with zero LoRA effect and no red error in the UI. If a workflow "forgot" your LoRA, check the terminal for EmAySee LoRA Applier: Warning, LoRA not found. Also remember the input is the relative filename, not an absolute path - if you're feeding it a path from a file-picker node, make sure that node outputs the filename form (the pack's LoraFilePicker gives you both, so use filename, not full_filepath). And "None" is the magic skip value, which is handy but means you can't actually apply a LoRA literally named None.safetensors.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| clip | CLIP | — | |
| lora_name | STRING | None | — |
| strength_model | FLOAT | 1.00-10–10 | — |
| strength_clip | FLOAT | 1.00-10–10 | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| MODEL | MODEL | — |
| CLIP | CLIP | — |