Convert to Dict
Force any wired value into a Python dict
- input1
- DICT
Once you start using the Dict* nodes in ComfyUI-LogicUtils - DictSetNode, DictGetNode, DictMergeNode and the rest - you'll eventually have a value from somewhere else in your graph that isn't natively typed as a DICT, but needs to be before those nodes will accept it. ConvertAny2Dict is the adapter: whatever's wired in comes back out as a Python dict.
It's one of five sibling conversion nodes in ComfyUI-LogicUtils (ConvertAny2Dict, ConvertAny2Int, ConvertAny2List, ConvertAny2Set, ConvertAny2Tuple), a utility pack by GitHub user aria1th - publicly known as AngelBottomless, the trainer behind Illustrious XL, the Danbooru-trained SDXL fine-tune that became the open-source default for anime generation. LogicUtils isn't part of that training work directly, but it's the kind of general-purpose data plumbing a person who builds automated pipelines for dataset processing ends up writing along the way. These conversion nodes specifically show up in the wild attached to loop-style workflows - the pack's own README is candid that "proper documentation is being prepared, however there are too many nodes," and community discussion of this node family has echoed that: useful, but sparsely explained.
How it works
input1 accepts a connection from any node, typed *. The node coerces whatever arrives into a Python dict and outputs it as DICT. In practice this is almost always used to satisfy a downstream Dict* node's required py_dict input when the value you have on hand didn't come out of the graph already typed that way - for instance, if you're assembling dict-shaped data from a source outside the built-in DictCreateNode starting point.
The pack doesn't spell out exactly how every input type gets coerced into a dict, so the reliable way to use this is empirically: connect it, run the graph, and inspect the actual output before you build more logic on top of an assumption about what it did.
The inputs and outputs that matter
input1(*, default0) - the only input, accepts any connection.- Output: a single
DICT- wire it into any node expecting that type, most commonlyDictGetNode,DictSetNode,DictMergeNode, or similar.
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 once cloned. No model downloads - this is pure Python data handling. The README describes an opt-in auto-install hook (COMFYUI_LOGICUTILS_AUTO_INSTALL=1, disable with COMFYUI_LOGICUTILS_SKIP_INSTALL=1) aimed at other, heavier parts of the pack; this conversion node has no extra dependencies to worry about.
Common issues & troubleshooting
Result isn't what you expected from the source value. Since the exact conversion logic per input type isn't documented, test with a Preview-style output or a quick print before wiring it deep into a graph - don't assume, verify.
A Dict* node you're trying to use isn't installed. LogicUtils's node set has expanded over time through pull requests, sometimes after shared workflows were already referencing the new additions. If something's missing, check the GitHub repo directly rather than trusting Manager's index is fully current.
You're not sure this node is even necessary. If the value feeding your Dict* nodes already comes out of the graph as a DICT - for example, straight from DictCreateNode or another Dict* node's output - you don't need this conversion step. It's specifically for bridging a non-DICT value into dict-shaped data, not a default you should insert everywhere.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| input1 | * | 0 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| DICT | DICT | — |