Nodes/ComfyUI_SimpleButcher/Simple Lora Loader πŸ“š
ComfyUI Node

Simple Lora Loader πŸ“š

Load Forge-style <lora:name:weight> tags by name, not filename

By KLL535Β·Created 2 years agoΒ·Updated 12 months agoΒ· 13
Simple Lora Loader πŸ“š
  • model
  • clip
  • model
  • clip
  • civitai_lora
  • civitai_lora_hash
β—„lora_textβ–Ί
β—„multiple_strength_unet1.00β–Ί
β—„multiple_strength_clip1.00β–Ί
β—„limit_strength_unet2.00β–Ί
β—„limit_strength_clip2.00β–Ί
β—„count1β–Ί

Here's a mismatch that trips people up more than it should: Forge doesn't refer to a LoRA by its filename. It reads the internal name baked into the LoRA's training metadata (the ss_output_name field, if you've ever poked around a .safetensors with a metadata viewer), and that's what shows up in <lora:name:1.0> tags and in the metadata of images it saves. If the filename and that internal name don't match - which happens constantly, because people rename files or download the same LoRA from two sources with different filenames - every ComfyUI LoRA loader that keys off the filename just fails to find it. Simple Lora Loader is built specifically to close that gap: it resolves both, filename or internal name, against a text tag.

How it works

Feed it a string of one or more <lora:name:1.0> or <lora:name:unet=1.0:te=0.75> tags - typically the lora_text output from Simple Extract Lora From Text, though you can type it directly - and it matches each name against your LoRA folder two ways: as a literal filename, and against the internal name read out of each file's metadata. The first time it runs, it builds a lora_name.json dictionary mapping names to paths and hashes, and computes a .sha256 hash file next to every LoRA it touches, so subsequent runs are fast. If you add or move LoRAs later, there's an "Update LoRA dictionary" button on the node - click it and run the workflow once to refresh.

Once resolved, it applies each LoRA to your model and clip at the per-tag weight, then gives you two multipliers and two caps as safety valves: if a prompt is stacking five or six LoRAs and the combined weight is wrecking the output, multiple_strength_unet / multiple_strength_clip scale everything down proportionally, and limit_strength_unet / limit_strength_clip hard-cap any single LoRA's weight regardless of what the tag asked for.

The inputs and outputs that matter

model, clip, and lora_text are required - the model and clip to modify, and the tag string describing what to apply. The four strength controls are optional and default to sane values (multiplier 1.0, cap 2.0); leave them alone until you actually have a LoRA-stacking problem.

Outputs are model and clip (wired onward exactly like any LoRA loader), plus two extras this pack cares about specifically: civitai_lora is a human-readable list of what got applied and at what weight, and civitai_lora_hash is the first 10 characters of each LoRA's sha256 - the format CivitAI's own metadata convention expects for crediting a LoRA in an image's generation info. Both are meant to feed straight into Simple Image Saver (as Forge) downstream.

Installing it

ComfyUI Manager β†’ search ComfyUI_SimpleButcher β†’ install β†’ restart. Manual:

cd ComfyUI/custom_nodes
git clone https://github.com/KLL535/ComfyUI_SimpleButcher.git
cd ComfyUI_SimpleButcher
pip install -r requirements.txt

Common issues

First run is slow, sometimes very slow. Hashing every LoRA in your folder is a one-time cost, but if you've got a large collection and none of it has been hashed before, expect it to take a while. Let it finish rather than killing ComfyUI mid-run.

It writes files into your LoRA folder - know this going in. The README flags this explicitly: it creates a .sha256 file next to every LoRA and model it touches, plus one lora_name.json dictionary in your default LoRA folder. This is by design (it's what makes re-runs fast and what generates the CivitAI-compatible hash), but if you're precious about a clean models directory, be aware it's not read-only.

LoRA still not found after adding new files. Click "Update LoRA dictionary" and run the workflow once - the dictionary doesn't watch your filesystem for changes automatically.

Only Forge-style tags parse. If lora_text doesn't contain <lora:...> syntax, nothing gets applied. Pair this with Simple Extract Lora From Text if your input is a mixed prompt-plus-lora string rather than pure tags. If you'd rather manage LoRA stacking visually with a UI instead of text tags, rgthree-comfy's Power Lora Loader is the more common alternative - different philosophy (manual per-entry toggles vs. text-parsed), same job.

CategoryπŸ“š SimpleButcher

Inputs (8)

NameTypeDefaultDescription
modelMODELThe diffusion model the LoRA will be applied to
clipCLIPThe CLIP model the LoRA will be applied to
lora_textSTRINGMultiple LoRAs discriptions in Forge style: <lora:name:1.0> or <lora:name:unet=1.0:te=0.75>
multiple_strength_unetoptFLOAT1.000–10Multiple of unet strength
multiple_strength_clipoptFLOAT1.000–10Multiple of clip strength
limit_strength_unetoptFLOAT2.00-10–10Max of unet strength
limit_strength_clipoptFLOAT2.00-10–10Max of clip strength
countoptINT1β€”

Outputs (4)

NameTypeDescription
modelMODELβ€”
clipCLIPβ€”
civitai_loraSTRINGβ€”
civitai_lora_hashSTRINGβ€”