Nodes/ComfyUI Prepack/💀Prepack Loras
ComfyUI Node

💀Prepack Loras

Three LoRAs in one node, with the trigger-text baggage handled for you

By S4MUEL-404·Created 12 months ago·Updated 10 months ago· 2
💀Prepack Loras
  • model
  • clip
  • model
  • clip
  • lora_path
  • lora_text
lora_name_1
strength_model_11.00
strength_clip_11.00
lora_text_1None
lora_name_2None
strength_model_20.00
strength_clip_21.00
lora_name_3None
strength_model_30.00
strength_clip_31.00
lora_text_2None
lora_text_3None

LoRAs are how you get a specific character, style, or concept into a generation - small adapter files that patch the model's behavior instead of replacing it. The catch is that most workflows need several at once (style + character + a detail booster), and each one wants a strength setting for the model and a separate one for the CLIP text encoder. Vanilla ComfyUI makes you stack a LoraLoader per file. The 💀Prepack Loras node does up to three in a single node - and it has one trick the vanilla loaders don't: it can pull in the trigger-word text documents that often ship next to a LoRA.

That last part is the sleeper feature. Load a LoRA, and you can also select the .txt file that lives beside it in a same-named folder, and the node outputs that document's content as text you can pipe into your prompt - so the trigger tags a LoRA author wants in the prompt end up there without you hand-typing them.

How it works

The node takes model and clip inputs and up to three LoRA slots (lora_name_1 through lora_name_3). Each slot has its own pair of strengths - strength_model for the diffusion model and strength_clip for the text encoder - plus a lora_text field where the associated document gets selected. The dropdowns populate from whatever's in your loras folder, and "None" skips a slot.

It applies each LoRA through ComfyUI's own load_lora_for_models, so the mechanism is the standard one - a LoRA here behaves exactly like a LoRA on a native loader, with the same rules of compatibility (a LoRA trained for SDXL won't work on Flux, etc.). The node caches loaded weights, so stacking the same LoRA repeatedly doesn't re-read the file from disk every run.

The four outputs are where it gets interesting:

  • model and clip - the patched pair, wired onward into your CLIP encode and sampler.
  • lora_path - a formatted STRING like <lora:filename:1.00> per applied LoRA. This is a convenience summary you can push into a save node's metadata or a pipe.
  • lora_text - the concatenated content of the selected text documents, comma-joined. Wire this into your prompt text before encoding and the trigger words ride along automatically.

Where people get burned

The lora_text field is a plain string input that gets auto-populated by the pack's bundled HTTP endpoint - it scans for a folder named after the LoRA file and lists .txt files in it. If that auto-population doesn't happen, the folder just doesn't exist next to your LoRA, and you can type the trigger words manually instead. Not a bug, just missing metadata on the LoRA's side.

Strength is the other classic trap. The sliders allow −100 to +100, but the tooltip is clear: the typical range is −2.0 to 2.0, and 0 disables. Crank a LoRA to 2.0+ and you'll get a garish over-applied mess - the "default 1.0 is often too strong, 0.5–0.8 is common" rule from the LoRA community applies here exactly. If one LoRA seems to swallow the others, that's a stacking-strength problem, not a node problem.

Installing it

It's in the Prepack pack:

cd ComfyUI/custom_nodes
git clone https://github.com/S4MUEL-404/ComfyUI-Prepack.git
pip install -r ComfyUI-Prepack/requirements.txt

Or search "Prepack" in ComfyUI Manager. Dependencies are just PyTorch, NumPy, and Pillow. Restart, find it under 💀Prepack. No model downloads - just have your LoRAs in ComfyUI/models/loras/ as usual.

If a LoRA silently does nothing, check the console for a [Prepack] Warning: Failed to load LoRA line - the node skips a LoRA it can't load rather than crashing, and a skipped LoRA looks exactly like a strength-0 LoRA.

Category💀Prepack

Inputs (14)

NameTypeDefaultDescription
modelMODELThe diffusion model to apply LoRA adapters to.
clipCLIPThe CLIP encoder to apply LoRA adapters to.
lora_name_1COMBOSelect the first LoRA file to apply (choose 'None' to skip).
strength_model_1FLOAT1.00-100–100Strength for the diffusion model. Typical range [-2.0, 2.0]; 0 disables.
strength_clip_1FLOAT1.00-100–100Strength for the CLIP encoder. Typical range [-2.0, 2.0]; 0 disables.
lora_text_1STRINGNoneSelect text document associated with the first LoRA (automatically populated).
lora_name_2optCOMBONoneSelect the second LoRA file to apply (optional, choose 'None' to skip).
strength_model_2optFLOAT0.00-100–100Strength for the diffusion model. Typical range [-2.0, 2.0]; 0 disables.
strength_clip_2optFLOAT1.00-100–100Strength for the CLIP encoder. Typical range [-2.0, 2.0]; 0 disables.
lora_name_3optCOMBONoneSelect the third LoRA file to apply (optional, choose 'None' to skip).
strength_model_3optFLOAT0.00-100–100Strength for the diffusion model. Typical range [-2.0, 2.0]; 0 disables.
strength_clip_3optFLOAT1.00-100–100Strength for the CLIP encoder. Typical range [-2.0, 2.0]; 0 disables.
lora_text_2optSTRINGNoneSelect text document associated with the second LoRA (automatically populated).
lora_text_3optSTRINGNoneSelect text document associated with the third LoRA (automatically populated).

Outputs (4)

NameTypeDescription
modelMODELThe diffusion model with up to 3 LoRAs applied.
clipCLIPThe CLIP model with up to 3 LoRAs applied.
lora_pathSTRINGText description of applied LoRAs and their strengths (can be empty if no LoRAs applied).
lora_textSTRINGContent of selected text documents from all LoRAs, separated by commas (can be empty if no texts selected).