Eric Krea2 Apply LoRA
One LoRA, three strengths — steer composition in Stage 1, detail in Stage 3
- pipeline
- pipeline
- settings
- trigger_words
- prompt
If you've only ever applied LoRAs at a single strength, this node is going to feel like overkill until it clicks. Eric Krea2 Apply LoRA is the pack's single-LoRA adapter, and its headline feature is per-stage weights: the same LoRA can hold composition in Stage 1 and step back for final detail in Stage 3 - or vice versa. For Krea 2's multi-stage high-res path, that's not a gimmick, it's the difference between a style that collapses under upscaling and one that survives it.
Mechanically it's the pack applying a LoRA adapter onto the cached Krea2Pipeline - same idea as a stock LoRA loader, but tuned for the pack's world. The LoRA itself lives in ComfyUI/models/loras/Krea2/, selected via the lora_name dropdown (none = pass through unchanged). The strength input is the classic uniform weight - "the LoRA scale, unrelated to the Krea2 cfg/g convention," per the tooltip, so don't confuse it with guidance.
The interesting part is per_stage_weights. Flip it on and strength goes dormant; weight_s1, weight_s2, weight_s3 take over - Stage-1 composition, Stage-2 refine, Stage-3 final detail. The tooltip's own examples are the best cheat sheet: a detail LoRA at 0/0.7/1.0 (skip it during composition, ramp into the detail passes), a style LoRA at 1.0/0.6/0.3 (steer hard early, let final texture come from the base). Where people get burned: leaving all three at 1.0 and then wondering why a heavy style LoRA wrecks Stage 3. Set them deliberately.
The rest of the inputs are quality-of-life, and the defaults are mostly right:
- ephemeral (default ON) - loads the LoRA fresh each run and unloads it after generation. No stale weights, small reload cost. Off leaves it resident for faster reuse, but then you must unload manually (via the pack's Unload node) before switching workflows. If any LoRA in a stack is ephemeral, the whole stack clears - that's by design.
- enabled - quick kill switch that preserves your settings.
- lora_path_override - absolute path, for LoRAs that live outside the Krea2 folder.
- apply_lora_preset - the ★ Save preset dropdown, same pattern as every section of this pack.
- fetch_triggers / add_triggers / force_refetch - trigger-word handling.
fetch_triggerslooks up the LoRA's trigger words (safetensors metadata, then Civitai, cached locally indata/lora_triggers.jsonso only the first lookup touches the network) and fills thetrigger_wordsoutput.add_triggersoptionally merges them into the prompt passthrough (off/prepend/append) without duplicating what's already there.force_refetchbypasses the cache - leave it off normally. - prompt - optional passthrough; connect your prompt here and take the
promptoutput onward so triggers can be merged in.
Outputs: pipeline (the modified pipeline, on to Generate or Ultra), settings (a recipe string for Merge Settings), trigger_words, and prompt.
A Krea-specific note: the ecosystem's convention is train on Raw, run on Turbo, and community findings lean toward the Turbo LoRA at ~0.6 rather than 1.0 for that combo - LoRA weight is the first thing to tune, and this node makes it a per-stage knob instead of a single guess. The Diagnose LoRA node is worth a visit first if a LoRA misbehaves; it inspects without applying.
How to install
Part of EricRollei/Krea2_ComfyUI_Advanced: ComfyUI Manager → search "Krea2_ComfyUI_Advanced", or clone and restart:
cd ComfyUI/custom_nodes
git clone https://github.com/EricRollei/Krea2_ComfyUI_Advanced
Shared pack requirements: git-installed diffusers with Krea2Pipeline (--force-reinstall, version string never bumped), transformers>=4.57.0, Krea 2 weights, and LoRAs in models/loras/Krea2/.
Common issues
- LoRA shows up nowhere in the dropdown - wrong folder. It reads
models/loras/Krea2/specifically. - Stale weights bleeding into the next workflow - you set
ephemeraloff and never unloaded. Flip it back on, or wire the pack's Unload node. - Triggers appear twice in the prompt -
add_triggersskips duplicates, but only within a single run; if a trigger is hardcoded into the prompt text and fetched, check both places. - "never as good as the author's examples" - for Krea 2 specifically, try ~0.6 strength on Turbo rather than 1.0, and remember per-stage weights mean S3 at full blast can over-apply a style.
Inputs (15)
| Name | Type | Default | Description |
|---|---|---|---|
| pipeline | KREA2_PIPELINE | — | |
| lora_name | COMBO | LoRA from ComfyUI/models/loras/Krea2/. 'none' = pass through unchanged. Use lora_path_override for a LoRA outside that folder. | |
| strength | FLOAT | 1.00-10–50000 | LoRA weight applied to ALL stages (unless per_stage_weights is on). This is the LoRA scale, unrelated to the Krea2 cfg/g convention. |
| per_stage_weightsopt | BOOLEAN | false | OFF: use 'strength' for every stage. ON: use the weight_s1/s2/s3 fields instead (e.g. detail LoRA 0/0.7/1.0, style LoRA 1.0/0.6/0.3). |
| weight_s1opt | FLOAT | 1.00-10–50000 | Stage-1 (composition) weight. Only used when per_stage_weights is ON. |
| weight_s2opt | FLOAT | 1.00-10–50000 | Stage-2 (refine) weight. Only used when per_stage_weights is ON. |
| weight_s3opt | FLOAT | 1.00-10–50000 | Stage-3 (final detail) weight. Only used when per_stage_weights is ON. |
| ephemeralopt | BOOLEAN | true | ON (recommended): load this LoRA fresh each run and unload it after generation (no stale/orphaned weights; small reload cost). OFF: leave it resident after the run (faster reuse, but you must Unload manually to free VRAM / before switching workflows). If ANY LoRA in the stack is ephemeral, the whole stack is cleared after the run. |
| lora_path_overrideopt | STRING | Optional absolute path to a LoRA file (overrides the dropdown). | |
| enabledopt | BOOLEAN | true | Quick on/off for this node without clearing its settings. OFF = pass the pipeline through untouched (the LoRA is not queued this run). |
| apply_lora_presetopt | COMBO | custom | Load a saved Apply-LoRA recipe (lora / strength / per-stage weights / 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. |
| fetch_triggersopt | BOOLEAN | true | Look up this LoRA's trigger words (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. |
| add_triggersopt | COMBO | off | Merge the found trigger words into the prompt passthrough output. off = prompt passes through unchanged (use the trigger_words output manually). Triggers already present in the prompt are not duplicated. |
| force_refetchopt | BOOLEAN | false | Bypass the local trigger cache and re-query Civitai for this LoRA (use if triggers were updated on Civitai or a lookup failed). Leave OFF normally. |
| promptopt | STRING | Optional prompt passthrough. Connect your prompt here and take the 'prompt' output onward; with add_triggers on, trigger words are merged in. Without a connection the prompt output is just the triggers (or empty). |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| pipeline | KREA2_PIPELINE | — |
| settings | STRING | — |
| trigger_words | STRING | — |
| prompt | STRING | — |