🗂️Dict → LoRA⚪
Your LoRA stack, carried by one wire
- dict
- value
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.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| dict | DICT | A Dictionary to work with. | |
| key | STRING | Key (name) of the item extracted from the dict. | |
| cleanup_key | BOOLEAN | true | Automatically remove leading/trailing spaces and extra newlines from the key. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| value | LORA_MODEL | The actual LoRA-type item extracted from the Dict. |