Nodes/Realtime LoRA Trainer/Krea 2 Analyzer + Selective Loader V2
ComfyUI Node

Krea 2 Analyzer + Selective Loader V2

Don't re-train that Krea 2 LoRA — just mute the blocks that are fighting you

By shootthesound·Created 9 months ago·Updated 21 days ago· 555
Krea 2 Analyzer + Selective Loader V2
  • model
  • positive
  • negative
  • model
  • positive
  • negative
  • analysis
  • analysis_json
  • weights_output
lora_name
strength1.00
presetDefault
block_0true
block_0_str1.00
block_1true
block_1_str1.00
block_2true
block_2_str1.00
block_3true
block_3_str1.00
block_4true
block_4_str1.00
block_5true
block_5_str1.00
block_6true
block_6_str1.00
block_7true
block_7_str1.00
block_8true
block_8_str1.00
block_9true
block_9_str1.00
block_10true
block_10_str1.00
block_11true
block_11_str1.00
block_12true
block_12_str1.00
block_13true
block_13_str1.00
block_14true
block_14_str1.00
block_15true
block_15_str1.00
block_16true
block_16_str1.00
block_17true
block_17_str1.00
block_18true
block_18_str1.00
block_19true
block_19_str1.00
block_20true
block_20_str1.00
block_21true
block_21_str1.00
block_22true
block_22_str1.00
block_23true
block_23_str1.00
block_24true
block_24_str1.00
block_25true
block_25_str1.00
block_26true
block_26_str1.00
block_27true
block_27_str1.00
other_weightstrue
other_weights_str1.00
lora_path_opt
schedule_presetCustom
strength_schedule
save_refined_lorafalse
save_path
save_filename
block_weights_string

Krea 2 is the rare base model where training just works - people are knocking out usable style LoRAs from a couple of dozen images at 1250 steps, and that's great until a LoRA is 90% perfect and the last 10% is wrecking your faces. That's exactly the situation this node exists for. It analyzes which of the 28 main blocks in your Krea 2 LoRA actually carry the weight, then lets you switch individual blocks off or scale them up, all inside your workflow. The fix for an overcooked subject is usually not a longer or shorter training run - it's telling a couple of blocks to shut up.

It comes from ShootTheSound/comfyUI-Realtime-Lora ("Realtime LoRA Trainer"), the same pack as the trainer nodes. This one is the V2 combined analyzer + loader, which means it replaces a two-node setup with one. If you train Krea 2 on Raw and apply on Turbo like everyone recommends, drop this in the sampler chain and you're done.

How it works

LoRA knowledge isn't spread evenly across a model. In a 12B DiT like Krea 2, some SingleStreamBlocks learn the subject's identity, some the style, some mostly noise. The node loads your LoRA file directly, scores each block by the magnitude of its weights (it's the product of the up and down LoRA factors, normalized to a 0–100% impact figure), and then - this is the whole trick - only patches the blocks you leave enabled, using ComfyUI's normal LoRA patcher.

The impact score is what the color-coded checkboxes are showing you: blue is low impact, red is "this block is doing most of the work." Disable a low-impact block and you barely notice; disable a red one and the character changes.

Inputs that matter

  • positive / negative - your conditioning, straight from CLIP encode. You wire these in because strength scheduling is done with ComfyUI hooks attached to the conditioning.
  • lora_name - pick the LoRA. Or connect lora_path_opt from an analyzer/trainer to override the dropdown entirely.
  • preset - the fastest way in. Late Only (21-27) and Mid-Late (14-27) are the ones you'll actually use; the other 9 cover the obvious combinations.
  • block_0 through block_27, each with a _str strength, plus other_weights - the non-block Krea 2 linears (first, last.linear, tmlp, txtmlp, tproj, txtfusion) that don't map to a SingleStreamBlock.
  • strength_schedule - the fun one. It takes step:strength pairs, so 0:.2,.5:.8,1:1.0 ramps the whole LoRA over the generation. There are 40+ presets (bell curves, pulses, fades) if you don't want to type.

Outputs: model, positive, negative (the latter two carry hooks when you're scheduling), plus analysis (human-readable), analysis_json (feeds the UI coloring, or a downstream loader), and weights_output for chaining a block profile into another node.

Installing it

cd ComfyUI/custom_nodes
git clone https://github.com/ShootTheSound/comfyUI-Realtime-Lora

Restart ComfyUI. ComfyUI Manager also has it if you search "Realtime LoRA Trainer". Here's the part people get wrong: this node needs no extra installation at all. The heavy training backends (sd-scripts, Musubi Tuner, AI-Toolkit) are only for the trainer nodes; the analyzers and loaders just use torch. You do need the Krea 2 model files themselves in your models folder - the Qwen3-VL text encoder and Qwen-Image VAE trip up more new users than anything else.

Where people get burned

  • Scheduling uses ComfyUI's hook system, and hooks crash on quantized layers. If your model is fp8 or GGUF, the node silently skips the schedule and applies a flat strength instead. Use bf16 for scheduled runs.
  • When a schedule is active, the strength field is ignored. Set it anyway - it's the fallback.
  • Everything off except other_weights will do weird things to your output. Disable blocks in ranges, not everything at once.
  • If you plug a string into block_weights_string, it overrides every toggle you set in the UI. Easy way to confuse yourself later.
  • save_refined_lora writes the filtered LoRA to disk with a timestamp - handy for baking a fix permanently, pointless if you're still iterating.

One honest take: block-level tuning is a scalpel, not a cure-all. If a LoRA is broken everywhere, no block filter fixes it - lower the strength or go retrain. But for the classic "subject's great, background's a mess" case, this is the fastest fix in the pack.

Categoryloaders/lora

Inputs (71)

NameTypeDefaultDescription
modelMODEL
positiveCONDITIONINGPositive conditioning from CLIP encode
negativeCONDITIONINGNegative conditioning from CLIP encode
lora_nameCOMBOLoRA file to load and analyze
strengthFLOAT1.00-10–10Overall LoRA strength (ignored when using schedule)
presetCOMBODefaultQuick preset selection. Individual toggles below override when changed.
block_0BOOLEANtrue
block_0_strFLOAT1.00-5–5
block_1BOOLEANtrue
block_1_strFLOAT1.00-5–5
block_2BOOLEANtrue
block_2_strFLOAT1.00-5–5
block_3BOOLEANtrue
block_3_strFLOAT1.00-5–5
block_4BOOLEANtrue
block_4_strFLOAT1.00-5–5
block_5BOOLEANtrue
block_5_strFLOAT1.00-5–5
block_6BOOLEANtrue
block_6_strFLOAT1.00-5–5
block_7BOOLEANtrue
block_7_strFLOAT1.00-5–5
block_8BOOLEANtrue
block_8_strFLOAT1.00-5–5
block_9BOOLEANtrue
block_9_strFLOAT1.00-5–5
block_10BOOLEANtrue
block_10_strFLOAT1.00-5–5
block_11BOOLEANtrue
block_11_strFLOAT1.00-5–5
block_12BOOLEANtrue
block_12_strFLOAT1.00-5–5
block_13BOOLEANtrue
block_13_strFLOAT1.00-5–5
block_14BOOLEANtrue
block_14_strFLOAT1.00-5–5
block_15BOOLEANtrue
block_15_strFLOAT1.00-5–5
block_16BOOLEANtrue
block_16_strFLOAT1.00-5–5
block_17BOOLEANtrue
block_17_strFLOAT1.00-5–5
block_18BOOLEANtrue
block_18_strFLOAT1.00-5–5
block_19BOOLEANtrue
block_19_strFLOAT1.00-5–5
block_20BOOLEANtrue
block_20_strFLOAT1.00-5–5
block_21BOOLEANtrue
block_21_strFLOAT1.00-5–5
block_22BOOLEANtrue
block_22_strFLOAT1.00-5–5
block_23BOOLEANtrue
block_23_strFLOAT1.00-5–5
block_24BOOLEANtrue
block_24_strFLOAT1.00-5–5
block_25BOOLEANtrue
block_25_strFLOAT1.00-5–5
block_26BOOLEANtrue
block_26_strFLOAT1.00-5–5
block_27BOOLEANtrue
block_27_strFLOAT1.00-5–5
other_weightsBOOLEANtrue
other_weights_strFLOAT1.00-5–5
lora_path_optoptSTRINGOptional: Override LoRA selection with a path
schedule_presetoptCOMBOCustomSelect a preset schedule (populates the text field below for editing)
strength_scheduleoptSTRINGStrength schedule: 0:.2,.5:.8,1:1.0 (step:strength pairs). Edit freely after selecting preset.
save_refined_loraoptBOOLEANfalseEnable to save the refined LoRA to disk
save_pathoptSTRINGDirectory to save refined LoRA
save_filenameoptSTRINGFilename for saved LoRA (timestamp auto-appended). Leave empty for auto-name.
block_weights_stringoptSTRINGInput/Output block profile string. Positional text syncs with the UI. String input overrides UI values.

Outputs (6)

NameTypeDescription
modelMODELModel with LoRA applied (filtered by enabled blocks).
positiveCONDITIONINGPositive conditioning (with hooks if using schedule).
negativeCONDITIONINGNegative conditioning (with hooks if using schedule).
analysisSTRINGPer-block analysis showing impact scores.
analysis_jsonSTRINGJSON analysis data for UI coloring.
weights_outputSTRINGBlock profile string output for chaining or reuse.