Nodes/PROJECT-MAD-NODES/Multi Scheduled Lora Loader
ComfyUI Node

Multi Scheduled Lora Loader

Draw a curve for your LoRA strength — Multi Scheduled Lora Loader, explained

By PROJECTMAD·Created 9 months ago·Updated 5 months ago· 5
Multi Scheduled Lora Loader
  • model
  • previous_hooks
  • MODEL
  • HOOKS
  • schedule_string
  • trigger_words
schedule_config[]
schedule_string

Every LoRA loader you've used asks one question: how strong? This one asks when. The Multi Scheduled Lora Loader from PROJECT-MAD-NODES lets you draw a strength curve over the 0-to-1 timeline of a generation, so a style LoRA can fade in halfway through, a detail LoRA can show up late and bow out before the finish, or you can stack five LoRAs that each own a different slice of the run. If you've ever wanted a LoRA to stop fighting your prompt from step one, this is the node you've been missing.

It runs on ComfyUI's HOOKS system. That's the newer mechanism (same family as the built-in hook schedulers) where a model or CLIP gets a "hook" that can change behavior per step. Under the hood the node loads each LoRA with ComfyUI's load_torch_file, wraps it via create_hook_lora, then attaches a HookKeyframeGroup - each point you drag in the editor becomes a keyframe with a start_percent. The curve multiplies the LoRA's strength at that point in sampling. Two details are worth knowing before you start blaming your seed. First, strength outside your curve is always 0, and the node injects short ramp-up/ramp-down segments so a LoRA scheduled for 0.3–0.7 doesn't leak into the steps before or after. Second, it inspects the LoRA's actual tensor structure to detect its architecture (SDXL, Pony, Flux, SD3…), so it can warn you when you're about to drop a Flux LoRA onto an SDXL checkpoint.

The inputs and outputs that matter

  • model (MODEL) - the model output from your checkpoint loader. Leave it connected; the node returns a patched clone.
  • schedule_string (STRING, multiline) - a text form of the schedule, for chaining schedulers or driving things from upstream logic.
  • previous_hooks (HOOKS) - lets you daisy-chain with other hook-producing nodes instead of overwriting them.

Outputs: MODEL (the clone with the model-side hooks registered), HOOKS (the hook group - this is the one you actually wire onward), schedule_string (the schedule serialized back to text, handy for debugging), and trigger_words (unique comma-separated triggers scraped from LoRA metadata files when present).

Wiring it up (the part everyone gets wrong)

The HOOKS output doesn't apply itself. You route it through a Set CLIP Hooks node on the path to your text encoder. Two settings there are load-bearing:

  • apply_to_conds = True
  • schedule_clip = True

If you get a solid gray or black output, it's almost always one of those flipped, all your curves at 0, or every LoRA disabled. And on some models scheduled CLIP strength just produces garbage - if the output looks botched, flip schedule_clip to False and the model-side hooks still carry the schedule.

The node also has a block-weight editor (LBW) that scales the LoRA per detected block - semantic presets like STYLE_FOCUSED exist so you can boost late blocks for style without nuking early structure. That's the deep end; you don't need it on day one.

You can also feed schedules as text. Each line is one LoRA:

<lora:FILENAME:MODEL:CLIP:KEYFRAMES:PRESET:VECTORS>

Keyframes are time,value pairs - a simple fade-in is <lora:FilmGrain:1.0:1.0:0.0,0.0;1.0,1.0>. Filenames are fuzzy-matched, so FilmGrain finds FilmGrain.safetensors anywhere in your LoRA folder.

Install

ComfyUI Manager → search PROJECT-MAD-NODES, or:

cd ComfyUI/custom_nodes
git clone https://github.com/PROJECTMAD/PROJECT-MAD-NODES.git

Restart ComfyUI. No extra Python dependencies - the pack's pyproject.toml declares none - and no model files to download; it just reads whatever LoRAs are in ComfyUI/models/loras. Installing LoRA Manager is recommended (not required) because its sidecar metadata gives you previews, auto trigger words, and better architecture detection. It also works fine under ComfyUI's new "Nodes 2.0" frontend, which is more than you can say for its sibling node in this pack.

Honest verdict

This is a niche, low-footprint pack - search the community and you'll find almost no chatter about it as of mid-2026, so you're a bit on your own if things go sideways. The in-repo docs and troubleshooting guide are genuinely good, though, and the mechanism is solid. Reach for it when static weights aren't cutting it: multi-LoRA compositions, style transitions mid-generation, or any "I want this LoRA to behave differently at step 40 than step 10" workflow.

Categoryadvanced/hooks/scheduling

Inputs (4)

NameTypeDefaultDescription
schedule_configSTRING[]
modeloptMODEL
previous_hooksoptHOOKS
schedule_stringoptSTRING

Outputs (4)

NameTypeDescription
MODELMODEL
HOOKSHOOKS
schedule_stringSTRING
trigger_wordsSTRING