Selection Recorder
A timestamped receipt for your random rolls
- json_output
Selection Recorder is the pack's bookkeeping node: it takes up to two incoming strings and bundles them into a single JSON blob with a timestamp, so you (or a downstream node) can see exactly what was selected on a given run. On its own it displays almost nothing - the value is in the plumbing: this is the node that feeds Save Image (with Selections) so your random picks get baked into the saved image's metadata.
How it works
The mechanism is two lines of Python and one honest limitation. The node accepts text_1 and text_2 as optional wire inputs, and when it executes it wraps whatever non-empty values arrived into JSON that looks like this:
{"timestamp": "2026-08-14T12:00:00.123456", "texts": ["red shirt", "forest background"]}
That's the entire output - a json_output string. The timestamp is generated at execution time, which is actually the useful bit: it's a per-run marker, so two images saved minutes apart can be told apart even if the selections look similar.
The honest catch
The shipped node has two inputs, not the ten the pack's written guide describes. The guide's fancier vision - record a selector per input, get a labeled summary of which pools were frozen and which rolled - isn't in the code. What you get is a small JSON envelope, and it's still genuinely useful if you pair it with the selector outputs: wire each random pick into text_1/text_2 and hand the result to Save Image (with Selections). If you need to track more than two values, combine your strings first with the Freezable String Combiner or Template Filler before they hit the recorder.
How to install
The pack installs with zero friction - no pip dependencies, no model downloads:
cd ComfyUI/custom_nodes
git clone https://github.com/Ckrest/comfyui-easy-randomize.git
Restart ComfyUI, or install "comfyui-easy-randomize" from ComfyUI Manager. It registers under Local Custom/Output.
Where it fits
This is a supporting node, not a star. Reach for it when you want provenance: run a batch, save images with selections attached, and later answer "what produced that good one?" without guessing. Just remember its inputs are raw strings, not the pack's special record types, and its output is JSON meant for machines - for a human-readable summary you'd rather look at the selectors' own display widgets or use Preview Image + Text. It's thin, but in the narrow job it does - timestamping your rolls for the metadata chain - it's exactly the right amount of node.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| text_1opt | STRING | — | |
| text_2opt | STRING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| json_output | STRING | — |