◎ Radiance Write
The save node that speaks EXR and ProRes
- image
- audio
If your ComfyUI output is going anywhere near a real post pipeline - a colorist, a Nuke comp, an edit - the default PNG save is the weak link. A PNG is a finished picture; an EXR is a deliverable. Radiance Write is the output node that closes that gap: one node that writes image sequences (EXR 32-bit, Radiance HDR, PNG 16/8-bit, JPEG), video files (MP4 H.264, H.265 10-bit, MOV ProRes 422/4444/4444 XQ with an HDR log variant, GIF), or a single image, with your audio attached if the graph has any.
It's an output node - no output sockets, just settings - and it's the write counterpart to Radiance Read, so the two share the same colorspace vocabulary. Whatever the read node declared as input_colorspace, this node's output_color_space is where you decide what the deliverable actually is. That pair is the whole "cinema I/O" story: footage comes in declared, work happens, footage goes out declared, nothing gets silently reinterpreted.
The settings that matter
- write_mode / output_format - Video, Sequence, or Single Image, then the format menu under it. Sequence + EXR is the standard handoff to a VFX pipeline; Video + H.265 10-bit or ProRes is the delivery format. Choose the deliverable, not the lossless-est thing.
- fps - 24 by default; match your source so motion doesn't warp.
- quality - 0–100, default 10. Lower is better quality here - this is a compression scale. If your output looks blocky, this is the knob.
- output_color_space - the 9-space menu (sRGB, Linear, LogC3/4, S-Log3, V-Log, DaVinci Intermediate, ACEScg/ACEScct). This is the conversion point: render in linear or ACEScg in the graph, deliver in sRGB or LogC here.
- broadcast_safe - on by default; pulls values into legal broadcast range. Keep it on for anything a human or QC will watch, off for float data.
Then the pros-only extras: bit_depth (16-bit half or 32-bit float for the float containers), compression (the full OpenEXR menu - ZIP, ZIPS, PIZ, RLE, None, PXR24, B44, B44A, DWAA, DWAB), alpha_mode, audio, output_path, start_frame, and custom_metadata for burning notes into the file.
The two things to know before you trust it
First, overwrite protection: Radiance Write won't silently clobber an existing file - it auto-indexes to the next free name. That's a genuinely good safety feature that the pack's release notes call out. Second, the reality check from the README, which is worth internalizing: it can write 32-bit float, but it can only preserve float values the upstream data actually has. An 8-bit PNG in means an 8-bit result out, no matter how many bits you ask for on the way out.
Also worth knowing: this node is registered under two names (RadianceDigitalCinemaWrite and the ◎-prefixed variant), both showing as "◎ Radiance Write" - same node, so don't install the pack twice chasing a phantom difference.
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 codec paths rely on OpenEXR and imageio-ffmpeg, both in the pack's requirements, and the full install (OpenColorIO, colour-science, transformers) makes first boot slow. If Manager's security level blocks it, clone manually per the README.
Inputs (15)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE,VIDEO | — | |
| filename_prefix | STRING | ◎ Radiance | — |
| write_mode | COMBO | Video | 3 options: Video, Sequence, Single Image |
| output_format | COMBO | Video — MP4 (H.265 10-bit) | 13 options: Image Sequence — EXR (32-bit), Image Sequence — Radiance HDR (.hdr), Image Sequence — PNG (16-bit), Image Sequence — PNG (8-bit), Image Sequence — JPEG, Video — MP4 (H.264), +7 |
| fps | FLOAT | 24.00 | — |
| quality | INT | 100–100 | — |
| output_color_space | COMBO | sRGB (Standard) | 9 options: Linear (sRGB), sRGB (Standard), ARRI LogC3, ARRI LogC4, Sony S-Log3, Panasonic V-Log, +3 |
| broadcast_safe | BOOLEAN | true | — |
| audioopt | AUDIO | — | |
| output_pathopt | STRING | — | |
| start_frameopt | INT | 1 | — |
| bit_depthopt | COMBO | 32-bit Float | 2 options: 16-bit Half Float, 32-bit Float |
| compressionopt | COMBO | ZIP | 10 options: ZIP, ZIPS, PIZ, RLE, None, PXR24, +4 |
| alpha_modeopt | COMBO | From Image | 4 options: None, From Image, Solid White, Solid Black |
| custom_metadataopt | STRING | — |
Outputs (0)
No outputs