Scorpiov Lora Tag Loader π·οΈ
Let your prompt text pick the LoRA, no loader node needed
- model
- clip
- model
- clip
- text
- loras_info
Normally in ComfyUI, a LoRA is a wired decision: you drag a LoraLoader node in, pick a file from a dropdown, and that's the LoRA, full stop. Scorpiov Lora Tag Loader works the other way - the LoRA lives in your prompt text as <lora:name:weight>, and this node reads the tags, loads the LoRAs onto your model and CLIP, and strips the tags out so the text is safe to feed into a normal CLIPTextEncode. It turns your prompt string into the single source of truth for what gets loaded.
That's a genuinely different workflow, and it's what makes wildcard prompting work end-to-end. A wildcard file can roll a __hairstyles__ woman, <lora:glasses:0.8> - meaning the wildcard decides which LoRA applies, per run, without you touching a single dropdown. If you've ever wanted "occasionally this character wears glasses" instead of "always load the glasses LoRA", this is the node that makes it happen.
How it works
You wire in model and clip (from any checkpoint loader), plus text - the tooltip: "Text containing <lora:name:weight> tags, e.g. from Wildcard Prompter." It supports both tag formats:
<lora:name:0.8>- same 0.8 weight applied to both model and CLIP.<lora:name:0.8:0.6>- separate model weight (0.8) and CLIP weight (0.6), matching how comfyui_lora_tag_loader handles it. The author gives badjeff a shoutout in the README for that one.
It finds LoRAs by scanning every folder registered under ComfyUI's loras path, matched by filename, so subfolders in your LoRA library "just work" - no configuration, no path setup. A subfolder prefix inside the tag (<lora:MyFolder\mylora:0.8>) is handled too.
Outputs: model and clip (the LoRA-applied versions), text (tags stripped and tidied - doubled commas and spaces cleaned up, ready for CLIPTextEncode), and loras_info. That last one is the quiet star: a formatted string with each LoRA's name, weight, and content hash, designed to be wired straight into Save Image's loras input so the saved PNG gets a proper Lora hashes: line and <lora:...> badge tags. That's what makes Civitai recognize and badge the LoRAs on upload - the metadata culture the whole ecosystem runs on.
Typical chain
Wildcard Prompter β Lora Tag Loader β CLIPTextEncode (positive)
ββββ CLIPTextEncode (negative)
Lora Tag Loader β loras_info β Save Image β loras
The README's own suggested chain: Wildcard Prompter β Lora Tag Loader β two CLIPTextEncode nodes (positive/negative) β KSampler, with loras_info also wired to Save Image.
Gotchas
- The stripped text is what you encode - so don't also run the original tag-laden text through CLIPTextEncode, or the tags themselves become prompt words.
- Weight parsing expects a number;
<lora:name>with no weight won't match the pattern, so keep the weight in there. - This node loads onto whatever
model/clipyou feed it. Feed it the output of another LoraLoader and LoRAs stack; that's fine and often what you want.
Installing
Scorpiov Lora Tag Loader ships in scorpiov-nodes. Install via ComfyUI Manager (search "scorpiov-nodes") or:
cd ComfyUI/custom_nodes
git clone https://github.com/vikramudyawar/scorpiov-nodes
Restart ComfyUI after. No extra Python dependencies. If you're building wildcard-heavy workflows and want your LoRAs to ride along inside the prompt text instead of being hard-wired, this is the node that closes the loop.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | β | |
| clip | CLIP | β | |
| text | STRING | Text containing <lora:name:weight> tags, e.g. from Wildcard Prompter. |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| model | MODEL | β |
| clip | CLIP | β |
| text | STRING | β |
| loras_info | STRING | β |