◎ Radiance DNA Validator
The QC gate that can refuse to pass unsigned renders
- image
- image
- is_valid
- status
ComfyUI's graph is a pipe, and most nodes don't care what flows through it. Radiance DNA Validator is the node that makes the pipe care. It sits in your chain, checks whether the incoming image carries a valid Radiance DNA signature, and - if you ask it to - blocks images that don't have one. It's a QC gate, the sort of thing production pipelines build by hand with a script and a webhook, packaged as a node you can drop between your render and your save.
The context: DNA is Radiance's metadata scheme that hides project/artist/notes inside the least-significant bits of float pixels, so it survives re-encodes that would kill a PNG text chunk. The Writer signs, the Reader reads, and the Validator is the enforcement point - the watchdog that makes sure only signed, verified frames continue down the pipe.
How it works
Two inputs: image (the frames to check) and require_signed - a BOOLEAN, on by default. That toggle is the whole personality of the node:
- With require_signed = true, unsigned images are blocked from passing through, and the status output tells you what happened.
- With require_signed = false, it acts as a monitor rather than a gate - it checks and reports validity but lets the image through either way.
Three outputs: image (the frames, passed through only if they pass the gate), is_valid (a BOOLEAN - true if a valid signature was found), and status (a human-readable string with the verdict, which you can wire to a text preview to see exactly why a frame was rejected).
When you'd actually use it
This is production tooling, not a toy. Three real patterns:
- Delivery enforcement. You render, sign, deliver. A Validator with
require_signedon between render and save means nobody (including future-you) can accidentally deliver an unsigned frame that then gets distributed with no provenance. - Batch auditing. The README and pack docs push this hard: automated technical QC on frames before they leave ComfyUI. Wire a large batch through with
require_signed = false, collectstatuson every frame, and you've got a report of which frames survived the pipeline intact. - Integrity checking. DNA survives float-preserving transforms but dies on 8-bit re-encodes. If a frame comes back unsigned, something in your chain clamped or re-encoded it - the Validator turns a silent data-loss bug into a loud, caught-in-the-act one.
The honest take
It's niche. If you're a solo hobbyist generating stills, you will almost certainly never need a "refuse unsigned images" gate - skip it and don't feel bad. Where it earns its keep is any workflow where frames leave your machine and come back, or where "did this render survive the pipeline" is a question you want answered automatically instead of by eyeballing. Like the rest of the DNA trio it's a pack-internal convention - meaningful to Radiance nodes, invisible to everything else - but as a self-contained QC primitive, it works as documented.
Install
In fxtdstudios/radiance - Manager search "Radiance", or:
cd ComfyUI/custom_nodes
git clone https://github.com/fxtdstudios/radiance.git
cd radiance
pip install -r requirements_linux.txt # or windows/mac_silicon
Restart after; Linux needs libopenexr-dev before pip. The dependency set (OpenEXR, OpenColorIO, colour-science, transformers) is heavy and first boot is slow; if Manager's security level blocks the install, clone manually per the README.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| require_signed | BOOLEAN | true | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |
| is_valid | BOOLEAN | — |
| status | STRING | — |