đź’€Prepack Loras and MSSD3
LoRAs plus the SD3 sampling shift, in one node — and in the right order
- model
- model
Every SD3-family workflow - and a chunk of the newer video and image models that inherited its sampling - has the same two requirements sitting awkwardly in the middle of the graph: stack your LoRAs, then apply the ModelSamplingSD3 shift so the noise schedule matches what the model was trained on. Vanilla ComfyUI needs a LoraLoaderModelOnly followed by a ModelSamplingSD3 node, each with its own inputs and wires. The đź’€Prepack Loras and MSSD3 fuses them: up to three LoRAs and the shift, all on one node, with a single model output.
The name "MSSD3" is just shorthand for ModelSamplingSD3, and if you're not on an SD3-architecture model you can mostly ignore that half of the node - the LoRA side works regardless.
How it works
The node takes one model input and up to three LoRA slots (lora_name_1–lora_name_3), each with a single strength_model. Note what's not here: no CLIP input and no per-LoRA CLIP strength. This is a model-only loader - it patches the diffusion model and leaves the text encoder alone, which is why you don't feed it a CLIP at all. If your LoRA needs CLIP-side strength (most style LoRAs don't), use the sibling 💀Prepack Loras node instead.
After the LoRAs are applied, the node applies ModelSamplingSD3 with the shift parameter (default 3.0, range 0–100). That shift controls how the model's noise schedule is warped; the default of 3.0 is the value you'll see in most SD3 workflows, and the official guidance is to leave it alone unless you know why you're changing it.
The order matters and it's baked in correctly: LoRAs first, then the shift. That's the ordering the community recommends - you patch the base model with LoRAs before you apply the sampling shift, so the shift sees the final model. (In the Wan 2.x world, where ModelSamplingSD3 also shows up, the same advice holds: LoRA → shift → sampler.) Getting this wrong in a hand-built graph is a real, silent source of weird results, and this node simply removes the possibility.
The single output is model - a MODEL wire that goes straight into a KSampler or this pack's Ksampler.
Where people get burned
If you apply this node to a model that isn't SD3-family, the shift is mostly a no-op - harmless, but pointless. And because a 0.0 strength_model means "skip this LoRA" (checked before loading), a slot you set to 0 is quietly dropped rather than applied at zero strength. That's the behavior you want, but it means you can't use strength 0 as a "disable during testing" that still shows in the list - the node just won't mention it.
Installing it
It ships 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: PyTorch, NumPy, Pillow. Restart, find it under đź’€Prepack. No model downloads; your LoRAs live in ComfyUI/models/loras/.
If a LoRA isn't taking effect, check the console for a [Prepack] Warning: Failed to load LoRA line - failed loads are skipped, and a skipped LoRA is indistinguishable from a strength-0 one at a glance.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | The diffusion model to apply LoRA adapters and SD3 sampling to. | |
| lora_name_1 | COMBO | Select the first LoRA file to apply (choose 'None' to skip). | |
| strength_model_1 | FLOAT | 1.00-100–100 | Strength for the diffusion model. Typical range [-2.0, 2.0]; 0 disables. |
| lora_name_2opt | COMBO | None | Select the second LoRA file to apply (optional, choose 'None' to skip). |
| strength_model_2opt | FLOAT | 0.00-100–100 | Strength for the diffusion model. Typical range [-2.0, 2.0]; 0 disables. |
| lora_name_3opt | COMBO | None | Select the third LoRA file to apply (optional, choose 'None' to skip). |
| strength_model_3opt | FLOAT | 0.00-100–100 | Strength for the diffusion model. Typical range [-2.0, 2.0]; 0 disables. |
| shiftopt | FLOAT | 3.000–100 | Shift parameter for SD3 model sampling. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| model | MODEL | The diffusion model with up to 3 LoRAs applied and SD3 model sampling configured. |