Nodes/ComfyUI-LogicUtils/Pyobjects/Dict Pointer
ComfyUI Node

Pyobjects/Dict Pointer

Hold a live reference to a dict across your graph

By aria1th·Created 3 years ago·Updated 7 months ago· 116
Pyobjects/Dict Pointer
  • py_dict
  • DICT
reset

Most of the Dict* nodes in this pack are straightforward - set a key, get a key, list the keys. DictPointer is the odd one out, and its name is the clue: this is about holding a reference to a dict rather than just passing a copy of its data around.

It's part of the Dict* family in ComfyUI-LogicUtils, a utility pack by GitHub user aria1th - publicly known as AngelBottomless, the trainer behind Illustrious XL, though this data-manipulation corner of the pack is unrelated to that training work. As with the rest of LogicUtils, exact internal behavior isn't spelled out anywhere beyond the node's own inputs and outputs - the README's honest self-assessment is "proper documentation is being prepared, however there are too many nodes." This node in particular is worth testing directly before relying on it for anything important, since its whole purpose is a subtler behavior (identity vs. copy) than the other Dict* nodes.

How it works

Based on what the schema exposes: you feed in a py_dict, and it returns a DICT output - but where nodes like DictSetNode or DictMergeNode are explicitly about producing new or modified dict contents, the name and shape here (a pass-through with an optional reset toggle) point to something closer to a handle on the same underlying dict object rather than an independent copy of it. That's the kind of thing that matters if you have several branches of a graph that all need to see updates made to a shared dict elsewhere - a plain DICT value passed around doesn't guarantee that, but a reference-style pointer does. The optional reset boolean most plausibly clears that reference back to a fresh, empty dict.

Because this behavior isn't documented beyond the schema, treat this description as a starting point rather than a guarantee - build a small test graph (set a value through one path, read it back through another using the pointer) before depending on it in something you care about.

The inputs and outputs that matter

  • py_dict (DICT, required) - the dict to hold a reference to.
  • reset (BOOLEAN, optional) - toggling this appears intended to clear the referenced dict back to empty; verify this against your own test before relying on it.
  • Output: a single DICT.

How to install it

Via ComfyUI Manager: search ComfyUI-LogicUtils, install, restart. Manually:

cd ComfyUI/custom_nodes
git clone https://github.com/aria1th/ComfyUI-LogicUtils

Restart ComfyUI. No model downloads needed - pure Python data handling. The README's opt-in auto-install hook (COMFYUI_LOGICUTILS_AUTO_INSTALL=1, disable with COMFYUI_LOGICUTILS_SKIP_INSTALL=1) is aimed at other parts of the pack; this node doesn't need it.

Common issues & troubleshooting

Behavior doesn't match what you expected from a "normal" dict node. That's expected here more than with its siblings - this is the one Dict* node whose whole point is reference-vs-copy semantics rather than a plain data transform. If you just need to combine or read dict data without worrying about shared references, DictMergeNode and DictGetNode are simpler and better-understood choices.

reset doesn't seem to do what you expect. Given the sparse documentation, verify its exact effect in an isolated test graph rather than assuming - set a value, toggle reset, and check the resulting dict's contents directly.

You're not sure you need this node at all. If your graph doesn't specifically need multiple branches to observe the same live-updating dict, you almost certainly don't - for straightforward "build a dict, read it back later" use, DictCreateNode plus DictSetNode and DictGetNode is the simpler and more predictable path.

CategoryData

Inputs (2)

NameTypeDefaultDescription
py_dictDICT
resetoptBOOLEAN

Outputs (1)

NameTypeDescription
DICTDICT