LoRA Text Loader (LoraManager)
Drive LoRA loading from a plain string
- model
- clip
- lora_stack
- MODEL
- CLIP
- trigger_words
- loaded_loras
This is the Lora Loader's headless twin. Same job - apply LoRAs written in the <lora:name:strength> syntax and pass their trigger words downstream - but instead of a built-in autocomplete box, it takes the syntax as a plain STRING input. That one difference is the whole reason it exists: it lets the LoRA list come from somewhere else in the graph rather than being typed into the node.
Why you'd want that: wildcards, text nodes, API calls, prompt files. If you feed it the output of a Text (LoraManager) node, you can put __loras/portrait__ in a wildcard and have a different LoRA combo resolve each run. If you drive ComfyUI from the API, you can send the LoRA syntax as a string field instead of baking it into the node. It's the difference between a fixed loader and one you can program.
How it works
You give it a MODEL and a lora_syntax string. It parses each <lora:...> entry, patches the model at those strengths, and - if you also hand it a CLIP - patches that too. It can additionally take an incoming LORA_STACK and merge those LoRAs in, so you can combine a stack built by the Stacker/Randomizer with a text-driven list in one loader. Out come the patched model, the patched CLIP, and the trigger words.
Inputs and outputs that matter
model(MODEL, required) - the base to patch.lora_syntax(STRING, required) - the<lora:...>text, usually wired in from a Text node, a wildcard, or an API field.clip(CLIP, optional) - pass it if you want CLIP patched too; leave it off for model-only.lora_stack(LORA_STACK, optional) - an existing stack to fold in alongside the text.
Outputs mirror the Lora Loader: MODEL, CLIP, trigger_words (STRING, into your prompt encode) and loaded_loras (STRING, what got applied).
How to install it
Via ComfyUI Manager: search lora-manager, Install, restart. Or manually:
cd ComfyUI/custom_nodes
git clone https://github.com/willmiao/ComfyUI-Lora-Manager.git
cd ComfyUI-Lora-Manager
pip install -r requirements.txt
then restart. It's a light Python install - no models, no heavy dependencies.
Common issues & troubleshooting
Nothing loads and you get no error. Check the string actually reached the node in valid syntax. A common mistake is feeding raw filenames instead of <lora:name:strength> - the loader wants the bracketed form. If the strength is missing it may default, but the name has to match a file the manager indexed.
CLIP output is empty. You didn't connect a CLIP in. That input is optional, so with nothing wired the node runs model-only and the CLIP output has nothing to give.
Trigger words don't appear. Same as the rest of the pack: the words only exist if the manager fetched or you set them. And remember LoRAs are architecture-locked - a mismatched base model means the LoRA loads but does nothing visible.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| lora_syntax | STRING | Format: <lora:lora_name:strength> separated by spaces or punctuation | |
| clipopt | CLIP | — | |
| lora_stackopt | LORA_STACK | — |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| MODEL | MODEL | — |
| CLIP | CLIP | — |
| trigger_words | STRING | — |
| loaded_loras | STRING | — |