Nodes/Krea2-UniDepth/Krea2-UniDepth Functional LoRA Loader
ComfyUI Node

Krea2-UniDepth Functional LoRA Loader

Section-by-section LoRA control that tells you what actually mapped

By cicalooo·Created 20 days ago·Updated 19 days ago· 1
Krea2-UniDepth Functional LoRA Loader
  • model
  • model
  • patch_report
lora_name
base_strength1.00
early_blocks1.00
middle_blocks1.00
late_blocks1.00
text_fusion1.00
attention1.00
mlp1.00
other1.00

Krea2-UniDepth Functional LoRA Loader is the pack's way of loading the depth LoRA it was built around - but it's really a general, unusually honest Krea2 LoRA loader. It uses ComfyUI's native patcher (the same machinery the stock LoRA loader uses, just with finer dials) and gives you independent strengths for early, middle, and late image blocks, the text-fusion blocks, and then attention vs MLP adapters separately. And unlike most loaders, it tells you what actually got applied.

The thing that makes it worth reaching for over the stock loader: the patch_report output. ComfyUI's generic LoRA loader quietly does nothing useful if the LoRA's keys don't match the model. This one prints "N/M adapters applied; K image blocks detected; early/attention: X, ..." so you can see at a glance whether your selection actually mapped. That's the whole ballgame with functional LoRAs, because the loader deliberately does not enforce a filename or reject an incompatible selection - it just reports zero adapters when there are none to apply.

The mechanism

Load, convert, map, group, patch. The loader reads the LoRA state, converts it, maps its keys against the connected model, and groups the mapped patches by where they land: image blocks are split dynamically into thirds (early/middle/late), text-fusion adapters form their own section, and within each, attention and MLP adapters are counted separately. Each group gets its own strength, and the effective strength of any given adapter is:

effective = base_strength × section strength × component strength

So base 1.0, early 1.1, attention 0.9 applies the early attention adapters at 0.99. Set everything to 1.0 and you get exactly ordinary native LoRA application - the README's stated baseline before you start tuning. The supplied depth LoRA itself is 512 BF16 tensors at rank 128, covering all 28 Krea2 image-transformer blocks plus both layerwise and both refiner text-fusion blocks.

Inputs and outputs

model from a UNETLoader and lora_name (picked from whatever's in ComfyUI/models/loras/). Then base_strength (−4 to 4, the master volume) and the section strengths - early_blocks, middle_blocks, late_blocks, text_fusion - each 0–2, plus the component dials attention, mlp, and other. Outputs are the patched model and the patch_report string.

The tuning rhythm the README recommends: change one family at a time on a fixed seed, in small increments (normally 0.05–0.15), and only after depth calibration is settled. end_percent on the conditioning side, not the LoRA, is where you buy late-texture freedom.

Install and the model file

Install the pack once:

cd ComfyUI/custom_nodes
git clone https://github.com/cicalooo/ComfyUI-Krea2-UniDepth

Then grab the depth model from Hugging Face and drop the .safetensors into your ComfyUI LoRA directory - ComfyUI/models/loras/krea2/ is the README's example. The loader will list it as long as it's anywhere under loras. Restart ComfyUI, and load it on the Krea2 base (FP8 recommended; INT8 is the supported floor). The rest of the stack - Qwen3-VL 4B encoder, Qwen Image VAE, ComfyUI 0.29.2+ - is shared with the other four nodes in the pack, and there are no extra Python dependencies.

Where people get burned

The classic failure is a patch_report of "0 adapters applied" - the LoRA is there, it just has no keys compatible with the connected model. Check the report before touching any strength dials. The other trap is tuning section strengths on a LoRA whose patches all landed in one bucket: you'll be moving a control that maps to nothing and wondering why nothing changed. Read the report first, always.

One honest caveat: section-based control is most meaningful for the functional LoRAs this pack targets. A plain style LoRA will map, and all-1.0 will reproduce its normal behaviour, but the early/middle/late distinction matters most when the LoRA was trained to respond to structure across blocks - which is exactly what the depth and edit LoRAs are.

CategoryKrea2-UniDepth

Inputs (10)

NameTypeDefaultDescription
modelMODEL
lora_nameCOMBO0 options:
base_strengthFLOAT1.00-4–4
early_blocksFLOAT1.000–2
middle_blocksFLOAT1.000–2
late_blocksFLOAT1.000–2
text_fusionFLOAT1.000–2
attentionFLOAT1.000–2
mlpFLOAT1.000–2
otherFLOAT1.000–2

Outputs (2)

NameTypeDescription
modelMODEL
patch_reportSTRING