Nodes/🗂️ Dict Tools/🗂️Dict → LoRA⚪
ComfyUI Node

🗂️Dict → LoRA⚪

Your LoRA stack, carried by one wire

By Lex-DRL·Created 4 months ago·Updated 4 months ago· 1
🗂️Dict → LoRA⚪
  • dict
  • value
key
cleanup_keytrue

LoRAs are how you make a workflow yours - the style adapter, the character, the detail-booster that everyone swears by. They're also the thing that multiplies fastest: a character + style + concept stack means three LoRA loaders, three strength knobs, and a long chain of apply nodes before your checkpoint is even "dressed." DictExtractLora ("🗂️Dict → LoRA⚪") carries a LoRA model inside the dict bus, keyed and extracted where you need it.

One thing to get straight first, because the naming trips people up: this is the model-only LoRA type (the LORA_MODEL that a LoraLoaderModelOnly outputs), not the combined loader that applies LoRA to a checkpoint and returns a modified model. That's fine - it's exactly what makes this node compose with the bus. Load your LoRA once, store the model under a key, and let whatever apply node you use pull it out. Your stack of LoRAs becomes a set of keyed slots in one dict - readable, swappable, and changeable at the top of the graph instead of through a tangle of wires.

What you set

  • dict (required) - the dictionary to read from (non-empty).
  • key - the slot where the LoRA model lives.
  • cleanup_key (on by default) - normalizes the key.

Output: value as a LoRA model, wired into whatever node applies model-only LoRAs in your setup.

The honest take

This one's genuinely useful for people running big LoRA stacks, but it's worth naming the trade-off. A LoRA model is an object you'd typically apply immediately; storing it in a dict adds a hop, and if you're only ever applying one LoRA at one strength, a straight wire is simpler and nobody will judge you. Where it earns its keep: workflows with a defined "personality" - a character set, a style set - that you want to swap as a unit, or where the same LoRA feeds multiple apply points. Keyed slots turn "which LoRA is this again?" into a two-second check.

The extractor validates the stored value is genuinely a LoRA model, so a mis-stored slot fails loudly instead of silently. And the dicts are immutable, so one LoRA wire feeding two apply nodes is safe to share.

Install

Same for the whole pack - small, one lightweight dependency (frozendict), no model downloads (your LoRAs come from your own Lora Loader). ComfyUI Manager: search "Dict Tools". Or:

cd ComfyUI/custom_nodes
git clone https://github.com/Lex-DRL/ComfyUI-DictTools

Restart ComfyUI. Needs 0.18.0+ (newer extension API) - if the nodes are missing after install, update ComfyUI first. And yes: missing keys error with "No such key in Dict" rather than quietly returning nothing.

Category🗂️ Dict Tools/Extract/Models

Inputs (3)

NameTypeDefaultDescription
dictDICTA Dictionary to work with.
keySTRINGKey (name) of the item extracted from the dict.
cleanup_keyBOOLEANtrueAutomatically remove leading/trailing spaces and extra newlines from the key.

Outputs (1)

NameTypeDescription
valueLORA_MODELThe actual LoRA-type item extracted from the Dict.