Nodes/radiance/◎ Radiance DNA Reader
ComfyUI Node

◎ Radiance DNA Reader

Reading the invisible signature baked into your frames

By fxtdstudios·Created 7 months ago·Updated 9 days ago· 242
◎ Radiance DNA Reader
  • image
  • is_signed
  • signature_data

Radiance has its own metadata system it calls "DNA" - and no, it's not a watermark you can see. The DNA Writer signs an image by encoding metadata into the least-significant bits of the image's float values, which is the steganography trick that makes metadata invisible and lossless on float images. Radiance DNA Reader is the node that pulls that signature back out: feed it any image, and it tells you whether the image is signed and dumps the embedded data.

Why would you want that? The normal place for workflow metadata is PNG text chunks, which survive until anyone re-encodes the file - a JPEG conversion deletes them forever. DNA, by contrast, lives inside the pixel values themselves. The DNA Writer explicitly preserves HDR special values (inf, NaN, the weird float bit patterns that would make a naive encoder crash), which is the part that makes this scheme safe for a float pipeline. The DNA Reader's whole job is proving the scheme round-trips: sign, read back, verify.

What it does

Input is a single image. It checks every frame in the batch - the node description says "all frames in a batch" - and returns:

  • is_signed - a BOOLEAN, true if a valid DNA signature was found.
  • signature_data - the embedded metadata as a string.

It's an output node (marked is_output_node in the schema), meaning it's the end of a chain - you wire your frames into it and read the result, usually in the console or a text preview.

The practical use

Three situations actually call for it:

  1. Verifying a pipeline worked. Sign at the top, read at the bottom, confirm the signature survived every transform in between. If it didn't, something in your chain is mangling data - usually by re-encoding or clamping.
  2. Tracing provenance. If you use DNA Writer to stamp artist/project/notes into your renders, the Reader is how you find out what a frame actually is weeks later, when the filename has been renamed six times.
  3. As a building block. DNA Validator (the same pack) uses signature checks as a QC gate. If you're building your own gating logic, Reader is the primitive.

The honest caveat

This is niche infrastructure, and it's tied to the pack's own convention - a DNA signature is only meaningful to other Radiance DNA nodes. It's not a portable format, it's not a security measure, and anyone else's tooling won't know it's there. It also only works if the image survives as float data: the moment something re-encodes to 8-bit, the LSB bits are gone and is_signed comes back false. The pack's own docs don't overclaim here - it's "extraction and injection of cinematic metadata," not DRM. If that's what you need, it's a clean implementation of an unusual idea.

Install

In the fxtdstudios/radiance pack - 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 is heavy (OpenEXR, OpenColorIO, colour-science, transformers) and first boot is slow. If Manager's security level blocks the install, clone manually per the README.

CategoryFXTD Studios/Radiance/Data

Inputs (1)

NameTypeDefaultDescription
imageIMAGE

Outputs (2)

NameTypeDescription
is_signedBOOLEAN
signature_dataSTRING