Noise → Dict🗂️
Your Noise Source, Parked in the Bus
- dict
- value
- dict
In the advanced sampling API, "noise" is an explicit object - a generator with a seed that produces the initial latent noise - not just a checkbox. DictAddNoise stashes one of those objects into your dict under a named key. It's the Add-side counterpart to the whole pack's bus philosophy: instead of a dedicated wire from RandomNoise to your sampler, the noise object rides along with guider, sampler, and sigmas in a single dict.
It's grouped under Add/Advanced, one of the four sampling-object nodes (guider, noise, sampler, sigmas). The NOISE value is a wired input from a noise-producing node, and it's validated against the expected noise protocol - the pack checks that the object exposes a seed and a generate_noise method.
How it works
Standard Dict Tools mechanics: validate, store under the key, return a new frozendict without mutating your input, sort keys alphabetically on update. The noise object is held by reference, so bundling it is cheap.
The workflow that makes this worth it: an advanced sampler needs four objects to line up - guider, noise, sampler, sigmas. Bundle all four with the Dict Add nodes, pass one dict, and extract each at the sampler. Fewer wires, fewer places for the graph to come apart, and the seed travels with its noise source.
The inputs that matter
- key (STRING) - the name you'll fetch the noise object back by.
- cleanup_key (BOOL, default on) - trims spaces/newlines from the key.
- dict (DICT, optional) - an existing dict to extend, or empty to start one.
- value (NOISE, optional) - the wired noise object from a noise node.
Output is dict (DICT). Get it back with DictExtractNoise.
Install
ComfyUI Manager: search Dict Tools, install, restart. Or:
cd ComfyUI/custom_nodes
git clone https://github.com/Lex-DRL/ComfyUI-DictTools
Restart after. Only dependency is frozendict, auto-installed by Manager.
Gotchas
Pack-wide: needs ComfyUI 0.18.0+ (newer node API), and the Advanced nodes need the noise/sampler/sigmas types to exist at all - on a stale ComfyUI those inputs won't even appear. Update ComfyUI first if you're missing them.
The snapshot rule applies here more than most: the whole point of a noise object is its seed. If you change the seed on a noise node after adding it to the dict, the dict is still holding the old generator - re-add it or you'll wonder why your "new" seed reproduces the same result every run.
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. |
| dictopt | DICT | An (optional) Dictionary to work with. | |
| valueopt | NOISE | The actual Noise-type item to add into the Dict. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| dict | DICT | — |