Nodes/ComfyUI_Eugene_Nodes/Dictionary Update (1 pair)
ComfyUI Node

Dictionary Update (1 pair)

The Tiny Node That Turns ComfyUI Into a Key-Value Store

By JEONG-JIWOO·Created 2 years ago·Updated 8 months ago· 2
Dictionary Update (1 pair)
  • input_dict
  • DICT
key
value

Dictionary Update (1 pair) is the atom of the whole Eugene pack: one key, one value, one dictionary out. It doesn't generate anything or touch the model - it just lets you build up a Python dictionary inside your graph and pass it around. Pointless in isolation, quietly indispensable once you realize how much of a workflow is really just "remember this value and reuse it later."

How it works

You give it a key string and a value string (multiline, so paste real paragraphs into it). It makes a copy of whatever dictionary comes in via input_dict, writes value under key, and outputs the result. Two behaviors straight from the source are worth knowing:

  • No input dictionary? No problem. Leave input_dict unwired and it starts from an empty dict. You can start a chain of these from nothing.
  • Empty inputs are ignored. If either the key or the value is empty, that pair is skipped entirely - so you can wire a slot you're not using yet without it polluting the dict.

The output is a single DICT. Here's the thing that trips up people used to stock ComfyUI: this pack defines the DICT type, so the output plugs into this pack's nodes - DictTemplate, the LoRA loaders' input_dictionary, the dictionary slots on the bus nodes - not into arbitrary string nodes. You're building a little key-value pipeline, and the wiring only goes where the pack speaks it.

Where it fits

The pattern that makes it useful: a dictionary of "tokens" that you reference in templates. Put your style keyword in one key, your quality tags in another, your negative terms in a third, chain a few DictUpdate1 nodes (or one DictUpdate5) together, and feed the result to a DictTemplate that assembles a real prompt from {style}, {quality} fragments. Change one value upstream and every template that uses it updates. It's the closest ComfyUI gets to "define once, use everywhere."

Installing it

Standard Eugene pack install, zero dependencies:

cd ComfyUI/custom_nodes
git clone https://github.com/JEONG-JIWOO/ComfyUI_Eugene_Nodes

Restart ComfyUI, or grab it via ComfyUI Manager (search "Eugene Nodes").

Where people get burned

The most common confusion is expecting the dictionary to merge with something outside the pack. It won't - again, DICT is a custom type, so a DictUpdate output doesn't connect to a generic text node or another pack's data structure. Stay inside the pack's dictionary loop.

Second: values are stripped, so leading/trailing whitespace in your multiline box is silently removed. That's usually a feature (it keeps templates tidy) but it means you can't store a value that intentionally starts with a space.

And if a template comes out with {key} left in it, that key simply isn't in your dictionary - that's the same debugging story as DictTemplate.

Categorydictionary/core

Inputs (3)

NameTypeDefaultDescription
keySTRING
valueSTRING
input_dictoptDICT

Outputs (1)

NameTypeDescription
DICTDICT