Nodes/Eric_Krea2/Eric Krea2 Multi-LoRA Stack
ComfyUI Node

Eric Krea2 Multi-LoRA Stack

The ten-slot LoRA stack where every slot knows which stage it's on

By EricRollei·Created 2 months ago·Updated about a month ago· 11
Eric Krea2 Multi-LoRA Stack
  • pipeline
  • pipeline
  • settings
  • trigger_words
  • prompt
lora_presetcustom
ephemeraltrue
on_1true
lora_1none
strength_1s11.00
strength_1s21.00
strength_1s31.00
on_2true
lora_2none
strength_2s11.00
strength_2s21.00
strength_2s31.00
on_3true
lora_3none
strength_3s11.00
strength_3s21.00
strength_3s31.00
on_4true
lora_4none
strength_4s11.00
strength_4s21.00
strength_4s31.00
on_5true
lora_5none
strength_5s11.00
strength_5s21.00
strength_5s31.00
on_6true
lora_6none
strength_6s11.00
strength_6s21.00
strength_6s31.00
on_7true
lora_7none
strength_7s11.00
strength_7s21.00
strength_7s31.00
on_8true
lora_8none
strength_8s11.00
strength_8s21.00
strength_8s31.00
on_9true
lora_9none
strength_9s11.00
strength_9s21.00
strength_9s31.00
on_10true
lora_10none
strength_10s11.00
strength_10s21.00
strength_10s31.00
stack_enabledtrue
fetch_triggerstrue
add_triggersoff
force_refetchfalse
prompt

This is the pack's answer to "I need three LoRAs and they don't all matter at the same time." Eric Krea2 Multi-LoRA Stack is a single growable node holding up to ten LoRA slots, and each slot carries its own three weights - one for Stage 1, Stage 2, Stage 3 of a multi-stage run. Apply LoRA is the one-LoRA version of the same idea; this is the version for when a style LoRA should own composition, a face LoRA should carry the refine pass, and a detail LoRA should only touch the final stage.

The mechanics are simple: pick a file per slot from models/loras/Krea2/, and the node fuses the enabled adapters onto the pipeline in slot order. Unused rows auto-hide until you need them, which keeps the panel from being a wall of widgets. Each slot gets:

  • on_N - enable/disable without clearing the slot (distinct from none, which is an empty slot).
  • lora_N - the file dropdown.
  • strength_Ns1 / s2 / s3 - the per-stage weights. Set all three equal for a uniform strength; spread them for stage-scoped control.

Ten slots is a lot. If you're stacking more than four or five, the honest question is whether your LoRAs are doing real work or fighting each other - but the per-stage spread is precisely what makes layered stacks behave, since each adapter can own the stage it's actually good for instead of applying flat everywhere.

Shared controls worth knowing:

  • ephemeral (default ON) - load fresh, unload after the run. Off leaves everything resident and forces manual unloading; the tooltip's "if ANY LoRA in the stack is ephemeral, the whole stack is cleared after the run" is the reminder that this is all-or-nothing.
  • stack_enabled - master switch for the whole node; pass the pipeline through untouched without clearing your slots.
  • lora_preset - ★ Save preset dropdown, storing slots, strengths, and toggles. The shipped samples (Split_Distil, turbo-distill-128-split) hint at the split LoRA tricks people run on Turbo - the community's Raw + Turbo LoRA at 0.6 path is a one-preset recipe.
  • fetch_triggers / add_triggers / force_refetch - trigger words for every enabled slot, combined and de-duplicated in slot order into the trigger_words output, optionally merged into the prompt passthrough. Only the first lookup per file touches the network (cached in data/lora_triggers.json).
  • prompt - passthrough so merged triggers reach your prompt output.

Outputs mirror Apply LoRA: pipeline, settings, trigger_words, prompt. Wire pipeline into Generate or Multi-Stage Ultra; fold settings into Merge Settings for the reproducibility chain.

Where people get burned: per-stage weights are easy to forget once you have ten slots of them - a slot left at 1.0 across all three stages will apply its full strength at every resolution, and a heavy style LoRA at Stage 3 is a common source of that "looks great at S1, ruined at 4k" complaint. And with ephemeral off, orphaned weights silently follow you between workflows - the Unload node exists for exactly that.

How to install

Part of EricRollei/Krea2_ComfyUI_Advanced - ComfyUI Manager → search "Krea2_ComfyUI_Advanced", or:

cd ComfyUI/custom_nodes
git clone https://github.com/EricRollei/Krea2_ComfyUI_Advanced

Restart. Pack-wide requirements: git-installed diffusers with Krea2Pipeline, transformers>=4.57.0, Krea 2 weights, LoRAs in models/loras/Krea2/.

Common issues

  • Slots disappearing - unused rows auto-hide; pick a file to activate a slot, and a new empty one appears below.
  • Weights bleeding between runs - ephemeral off. Flip it on or unload manually.
  • Trigger words never appear - fetch_triggers must be on, and the node only queries Civitai for files without safetensors metadata; force_refetch is there for stale lookups.
  • Stacked LoRAs muddy each other - spread them per-stage instead of stacking all at 1.0 everywhere.
CategoryEric/Krea2

Inputs (58)

NameTypeDefaultDescription
pipelineKREA2_PIPELINE
lora_presetoptCOMBOcustomLoad a saved LoRA-stack recipe (slots / strengths / toggles) into the panel for this run. 'custom' = use the panel as-is. Use the ★ Save Preset button to add one; the list refreshes on graph reload.
ephemeraloptBOOLEANtrueON (recommended): load these LoRAs fresh each run and unload them after generation (no stale/orphaned weights). OFF: leave them resident (faster reuse, but Unload manually to free VRAM / before switching workflows). Applies to every slot in this node.
on_1optBOOLEANtrueEnable/disable LoRA slot 1 without clearing it. OFF keeps the file and strength but skips loading it (distinct from 'none' = empty slot).
lora_1optCOMBOnoneLoRA slot 1 (from ComfyUI/models/loras/Krea2/). Pick a file to activate it - a new empty slot appears below. 'none' = unused/off.
strength_1s1optFLOAT1.00-10–50000Slot 1 weight during Stage-1 (composition). Set all three equal for a uniform strength.
strength_1s2optFLOAT1.00-10–50000Slot 1 weight during Stage-2 (refine).
strength_1s3optFLOAT1.00-10–50000Slot 1 weight during Stage-3 (final detail).
on_2optBOOLEANtrueEnable/disable LoRA slot 2 without clearing it. OFF keeps the file and strength but skips loading it (distinct from 'none' = empty slot).
lora_2optCOMBOnoneLoRA slot 2. 'none' = unused/off.
strength_2s1optFLOAT1.00-10–50000Slot 2 weight during Stage-1 (composition). Set all three equal for a uniform strength.
strength_2s2optFLOAT1.00-10–50000Slot 2 weight during Stage-2 (refine).
strength_2s3optFLOAT1.00-10–50000Slot 2 weight during Stage-3 (final detail).
on_3optBOOLEANtrueEnable/disable LoRA slot 3 without clearing it. OFF keeps the file and strength but skips loading it (distinct from 'none' = empty slot).
lora_3optCOMBOnoneLoRA slot 3. 'none' = unused/off.
strength_3s1optFLOAT1.00-10–50000Slot 3 weight during Stage-1 (composition). Set all three equal for a uniform strength.
strength_3s2optFLOAT1.00-10–50000Slot 3 weight during Stage-2 (refine).
strength_3s3optFLOAT1.00-10–50000Slot 3 weight during Stage-3 (final detail).
on_4optBOOLEANtrueEnable/disable LoRA slot 4 without clearing it. OFF keeps the file and strength but skips loading it (distinct from 'none' = empty slot).
lora_4optCOMBOnoneLoRA slot 4. 'none' = unused/off.
strength_4s1optFLOAT1.00-10–50000Slot 4 weight during Stage-1 (composition). Set all three equal for a uniform strength.
strength_4s2optFLOAT1.00-10–50000Slot 4 weight during Stage-2 (refine).
strength_4s3optFLOAT1.00-10–50000Slot 4 weight during Stage-3 (final detail).
on_5optBOOLEANtrueEnable/disable LoRA slot 5 without clearing it. OFF keeps the file and strength but skips loading it (distinct from 'none' = empty slot).
lora_5optCOMBOnoneLoRA slot 5. 'none' = unused/off.
strength_5s1optFLOAT1.00-10–50000Slot 5 weight during Stage-1 (composition). Set all three equal for a uniform strength.
strength_5s2optFLOAT1.00-10–50000Slot 5 weight during Stage-2 (refine).
strength_5s3optFLOAT1.00-10–50000Slot 5 weight during Stage-3 (final detail).
on_6optBOOLEANtrueEnable/disable LoRA slot 6 without clearing it. OFF keeps the file and strength but skips loading it (distinct from 'none' = empty slot).
lora_6optCOMBOnoneLoRA slot 6. 'none' = unused/off.
strength_6s1optFLOAT1.00-10–50000Slot 6 weight during Stage-1 (composition). Set all three equal for a uniform strength.
strength_6s2optFLOAT1.00-10–50000Slot 6 weight during Stage-2 (refine).
strength_6s3optFLOAT1.00-10–50000Slot 6 weight during Stage-3 (final detail).
on_7optBOOLEANtrueEnable/disable LoRA slot 7 without clearing it. OFF keeps the file and strength but skips loading it (distinct from 'none' = empty slot).
lora_7optCOMBOnoneLoRA slot 7. 'none' = unused/off.
strength_7s1optFLOAT1.00-10–50000Slot 7 weight during Stage-1 (composition). Set all three equal for a uniform strength.
strength_7s2optFLOAT1.00-10–50000Slot 7 weight during Stage-2 (refine).
strength_7s3optFLOAT1.00-10–50000Slot 7 weight during Stage-3 (final detail).
on_8optBOOLEANtrueEnable/disable LoRA slot 8 without clearing it. OFF keeps the file and strength but skips loading it (distinct from 'none' = empty slot).
lora_8optCOMBOnoneLoRA slot 8. 'none' = unused/off.
strength_8s1optFLOAT1.00-10–50000Slot 8 weight during Stage-1 (composition). Set all three equal for a uniform strength.
strength_8s2optFLOAT1.00-10–50000Slot 8 weight during Stage-2 (refine).
strength_8s3optFLOAT1.00-10–50000Slot 8 weight during Stage-3 (final detail).
on_9optBOOLEANtrueEnable/disable LoRA slot 9 without clearing it. OFF keeps the file and strength but skips loading it (distinct from 'none' = empty slot).
lora_9optCOMBOnoneLoRA slot 9. 'none' = unused/off.
strength_9s1optFLOAT1.00-10–50000Slot 9 weight during Stage-1 (composition). Set all three equal for a uniform strength.
strength_9s2optFLOAT1.00-10–50000Slot 9 weight during Stage-2 (refine).
strength_9s3optFLOAT1.00-10–50000Slot 9 weight during Stage-3 (final detail).
on_10optBOOLEANtrueEnable/disable LoRA slot 10 without clearing it. OFF keeps the file and strength but skips loading it (distinct from 'none' = empty slot).
lora_10optCOMBOnoneLoRA slot 10. 'none' = unused/off.
strength_10s1optFLOAT1.00-10–50000Slot 10 weight during Stage-1 (composition). Set all three equal for a uniform strength.
strength_10s2optFLOAT1.00-10–50000Slot 10 weight during Stage-2 (refine).
strength_10s3optFLOAT1.00-10–50000Slot 10 weight during Stage-3 (final detail).
stack_enabledoptBOOLEANtrueMaster switch for the WHOLE stack. OFF = pass the pipeline through untouched (no slot is queued, no triggers emitted) without clearing any slot settings.
fetch_triggersoptBOOLEANtrueLook up trigger words for every ENABLED slot (safetensors metadata / Civitai, cached locally in Eric_Krea2/data/lora_triggers.json - only the first lookup per file touches the network). Fills the trigger_words output (combined, de-duplicated, slot order).
add_triggersoptCOMBOoffMerge the combined trigger words of all enabled slots into the prompt passthrough output. off = prompt passes through unchanged. Triggers already present in the prompt are not duplicated.
force_refetchoptBOOLEANfalseBypass the local trigger cache and re-query Civitai for the enabled slots this run. Leave OFF normally.
promptoptSTRINGOptional prompt passthrough. Connect your prompt here and take the 'prompt' output onward; with add_triggers on, the enabled slots' trigger words are merged in.

Outputs (4)

NameTypeDescription
pipelineKREA2_PIPELINE
settingsSTRING
trigger_wordsSTRING
promptSTRING