float → Dict🗂️
The Denoise Value, Finally in One Place
- dict
- dict
Denoise, CFG, clip skip multipliers, upscale factors - the float values that control how a generation actually behaves tend to live in different nodes across a big graph. DictAddFloat gathers them into a dict so a whole set of settings travels as a single connection.
It's one of the pack's "basic type" Add nodes (bool, int, float), and like its siblings the value is a widget on the node rather than a wired input. Type your 0.6 denoise, name it denoise, done. Combined with the "base dict then override dict" pattern the README describes - build a default set of values, then apply a second dict that overwrites a few of them - this is the node that makes prompt/parameter presets in ComfyUI feel almost as easy as A1111's styles.
How it works
The value widget is a float spinner: default 0.0, step 0.01, and the full float range. The node stores the value under your key, and returns a new frozendict rather than mutating the one you fed in - chain as many Adds as you like. Keys get sorted alphabetically on every update, which is deliberate and only affects ordering.
The inputs that matter
- key (STRING) - the name you'll fetch the value by later (say,
denoise). - cleanup_key (BOOL, default on) - trims stray spaces and newlines from the key.
- value (FLOAT, default 0.0) - the spinner on the node. Set your denoise or CFG here.
- dict (DICT, optional) - an existing dict to extend, or empty for a fresh one.
Output is dict (DICT).
Install
ComfyUI Manager: search Dict Tools, install, restart. Or:
cd ComfyUI/custom_nodes
git clone https://github.com/Lex-DRL/ComfyUI-DictTools
Restart ComfyUI after. Only dependency is frozendict, auto-installed by Manager.
Gotchas
Same pack-wide requirement: ComfyUI 0.18.0+ (the pack runs on the newer node API). A failed-to-load in Manager almost always means your ComfyUI is behind.
And the usual widget trap: you can't wire a float from another node into this one - the spinner is the source of truth. For computed values, use DictAddAny. Also worth knowing: floats and ints are stored as distinct types, and the extractors are strict. Store denoise as a float here, and pull it back with DictExtractFloat specifically.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| key | STRING | Key (name) of the item inserted into the dict. | |
| cleanup_key | BOOLEAN | true | Automatically remove leading/trailing spaces and extra newlines from the key. |
| value | FLOAT | 0.00 | The actual float-type item to add into the Dict. |
| dictopt | DICT | An (optional) Dictionary to work with. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| dict | DICT | — |