◎ Radiance Read
Read footage like a VFX shot, not a web image
- IMAGE
- MASK
- frame_count
- width
- height
- fps
- audio
- video
Most ComfyUI users load stills. If you're loading footage - an actual shot, an EXR plate, a log clip from a camera - the stock loaders start to feel wrong fast. Radiance Read is built for the footage workflow: it takes a path and hands you a video or image sequence as a batch of frames, complete with frame count, dimensions, fps, alpha, and audio, so the rest of your graph can treat it like a shot being read into a compositor.
It reads the same things: mp4, mov, gif, webp, avi, mkv, webm video; EXR (pulling depth and alpha channels when present), HDR, and image sequences. Under the hood it's OpenCV's VideoCapture for video and a proper OpenEXR reader for plates, which is why the EXR path actually preserves float values instead of clamping them - that's the node's genuine HDR claim, and unlike some parts of this pack, it's a claim the code backs up.
The settings that will actually bite you
- frame_limit - 0 = load all. This is your RAM guard. A 4K sequence loaded all-at-once is the fastest way to OOM a ComfyUI session. For look work, load 20 frames; expand when you're ready to render.
- input_colorspace - the correct answer here is the difference between "footage looks right" and "footage looks washed out and you don't know why." Pick the actual space of your clip: LogC3/LogC4 for ARRI, S-Log3 for Sony, ACEScg/ACEScct for VFX pipelines. Declare it wrong and every downstream grade fights the gamma.
- fps_override - 0 = auto. The node reads fps from the file header, and
fpscomes out the other side, so wire it into a write node later rather than trusting your memory.
Outputs are the useful set: IMAGE, MASK, frame_count, width, height, fps, audio, and video (a string identifier you can thread into filenames or metadata). The metadata outputs are the whole point of a "cinema" read - they let downstream nodes adapt to the shot instead of you hardcoding 1920×1080@24.
One confusing thing
This node is registered under two names in the pack - RadianceDigitalCinemaRead and ◎ RadianceDigitalCinemaRead - and both display as "◎ Radiance Read." They're the same node, same behavior. If you see both in the menu, that's a packaging quirk, not two things to install. Old workflows may reference either.
Install
It's 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, and the pack's dependency set (OpenEXR, imageio-ffmpeg, OpenColorIO, colour-science, transformers) makes the first boot slow. If Manager's security level refuses the install, clone manually per the README. And if you're coming from an 8-bit PNG habit, remember the read side can't recover detail that was never in the file - HDR in, HDR out; 8-bit in, 8-bit out.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| source_path | STRING | C:/Footage/shot_01.mp4 | — |
| start_frame | INT | 1 | — |
| frame_limit | INT | 0 | 0 = Load all |
| input_colorspace | COMBO | sRGB (Standard) | 9 options: Linear (sRGB), sRGB (Standard), ARRI LogC3, ARRI LogC4, Sony S-Log3, Panasonic V-Log, +3 |
| fps_override | FLOAT | 0.00 | 0 = Auto (Detect from Video or 24.0 for Seq) |
Outputs (8)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |
| MASK | MASK | — |
| frame_count | INT | — |
| width | INT | — |
| height | INT | — |
| fps | FLOAT | — |
| audio | AUDIO | — |
| video | STRING | — |