DPX Write
The save node that speaks EXR and ProRes
- images
- status
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 (4)
| Name | Type | Default | Description |
|---|---|---|---|
| images | IMAGE | Frames to write, passed to the Write node with its defaults (color_space Linear (pass-through), so values are written unchanged). | |
| output_path | STRING | /root/radiance_output | Output path, as in the Write node. With filename empty it is the full stem (single images and video get the extension appended; sequences use it as a folder). |
| formatopt | COMBO | IMG │ EXR (16-bit half) | Output format. IMG writes only the first frame of a batch; SEQ and VID write every frame. |
| filenameopt | STRING | Optional stem. When set, output_path is treated as a folder and the file is named <filename>_v0001. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| status | STRING | — |