Yumil Prompt Lora Loader
> tags and it loads them all for you
- model
- clip
- MODEL
- CLIP
- TEXT
This is the pack's star node, and it solves a genuinely annoying problem: your prompt text says <lora:add_detail:0.8>, but ComfyUI's model loader has no idea what that means. Normally you'd break out a LoraLoader node for each tag, wire strengths by hand, and keep the prompt and the graph in sync yourself. This node just does it - give it a prompt full of LoRA tags and it applies every matching LoRA to the model, returns the cleaned text, and you move on.
It's the natural partner to Yumil Lora Stripper (which removes tags from text without loading anything). The Loader does the real work: parse tags, resolve names to actual files, apply them with the strengths the prompt specified. If you're pulling prompts out of Yumil MPM - or anywhere that bakes <lora:...> tags inline - this is the node that makes that workflow sane.
How it works
The mechanism is borrowed from rgthree-comfy's Power Prompt, and the README credits it openly (MIT, rgthree). It runs a regex over the prompt to find every <lora:name:strength> tag, then resolves each name against ComfyUI's installed LoRA list (folder_paths.get_filename_list("loras")) using a 7-step fuzzy match: exact path, with/without extension, basename, basename without extension, then a substring fallback. So <lora:add_detail:0.8> will usually find add_detail.safetensors even if you typed it casually. Negative strengths like <lora:foo:-0.3> work - that's how you push a LoRA's effect away.
Two safety behaviors are worth knowing because they're why it won't crash your workflow:
- A tag with strength
0is skipped with a log message. - A tag whose name can't be resolved is also skipped with a log message, not an error.
So a prompt referencing a LoRA you haven't downloaded won't kill the run - it'll silently not apply, and you'll see Not found: [...] in the console. That's the first thing to check when a "loaded" LoRA has no effect.
The other headline feature: clip is optional. Most LoRA loaders force you to wire both MODEL and CLIP, which breaks pipelines that don't have a CLIP at all - LTXV is the example the author gives. Leave clip unconnected here and the LoRA is applied to the model only, with CLIP strength forced to zero. That makes this node usable in video pipelines where a stock LoraLoader simply won't fit.
The inputs and outputs
model(MODEL, required) - the model to apply LoRAs to, straight from your CheckpointLoader.prompt(STRING, multiline) - the text that may contain<lora:...>tags.strip_tags(BOOLEAN, defaulttrue) - when on, the returned TEXT has all tags removed; the tags get consumed and don't reach the CLIP encoder. Turn it off if you want the raw prompt passed through.clip(CLIP, optional) - connect it and strengths apply to CLIP as well.
Outputs are MODEL, CLIP (or None if no clip was wired), and TEXT. The wiring after is the same as a checkpoint loader: MODEL into your sampler, TEXT into a CLIP Text Encode or straight into the sampler's text input.
Installing it
Part of maigonia/comfyui-yumil-mpm:
cd ComfyUI/custom_nodes
git clone https://github.com/maigonia/comfyui-yumil-mpm.git
cd comfyui-yumil-mpm
pip install -r requirements.txt
Or search comfyui-yumil-mpm in ComfyUI Manager, then restart. The only declared dependency is requests - this node actually runs on torch/numpy/Pillow that ComfyUI already ships, and the LoRA loading itself goes through the stock LoraLoader, so there's nothing extra to download.
Where people get burned
The silent-skip behavior is the big one - resolved, above. Second is the fuzzy match being a fallback chain, not magic: if two installed LoRAs share a substring, the substring fallback picks the first hit in ComfyUI's list, which may not be the one you meant. If you have many similar filenames, write the tag with enough of the path to disambiguate. And remember it applies LoRAs in prompt order on top of one shared model, so two tags at 1.0 don't cancel - they stack, and stacking the same concept twice is how you oversaturate a style. Start with the strengths the LoRA's own page suggests; the node faithfully applies whatever the prompt says.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| prompt | STRING | — | |
| strip_tags | BOOLEAN | true | — |
| clipopt | CLIP | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| MODEL | MODEL | — |
| CLIP | CLIP | — |
| TEXT | STRING | — |