Load EXR
The sequence loader hiding behind a single-file name
- image
- mask
- frame_count
- first_frame
- last_frame
- path
The name undersells it. Load EXR isn't really a single-file loader - it's the pack's picker-based loader and its EXR sequence loader, and it's the node you use when you've dropped EXRs into ComfyUI's input folder. It's the first node in the toolkit's ACES chain: EXR files are float tensors, which is the whole reason you're here. An 8-bit PNG is a picture; a 32-bit float EXR is data, with highlights that survive grading instead of clipping to white. If you've ever wanted AI output to hand off to Nuke or DaVinci, this is the door in.
How it works
The node lists every .exr it finds under ComfyUI/input into the exr_file dropdown. Behind the scenes it reads with OpenCV first (it sets OPENCV_IO_ENABLE_OPENEXR itself), falls back to the OpenEXR python module, then tifffile, and hands you a float32 IMAGE tensor plus an alpha-derived MASK. Note the mask is inverted from what you might guess: it's 1 - alpha, so transparent areas are white in the mask. That trips people up on the first try.
The sequence part: if your file is numbered like render.0001.exr, it detects the whole run and loads it as a batch. frame_mode is all by default - every frame in the sequence - or single / range using start_frame and end_frame. missing_frames decides what happens when a number is skipped: error (default, fail loudly), black, or hold (repeat the last good frame). For a half-rendered animation, black or hold beats a hard crash.
The alpha_mode dropdown is the one you'll actually touch. EXRs with transparency render as flat white or wrong when previewed, because ComfyUI's preview doesn't show the alpha as transparency. composite checker and composite black composite the RGB over a background so you can see it; premultiply / unpremultiply actually change the pixel values for comping. clamp_negative clips values below zero - usually you leave that false, because negative values are legitimate HDR data.
The inputs that matter
exr_file- the picker (the node's own list, not ComfyUI's image upload)alpha_mode- setcomposite checkerorcomposite blackif the preview looks whiteframe_mode/start_frame/end_frame/missing_frames- the sequence controls
There's also an optional exr_path string that overrides the picker entirely, and the outputs are image, mask, frame_count, first_frame, last_frame, and path. The frame numbers are handy for feeding a filename template into Save EXR later.
Install
From ComfyUI Manager, search "ACES EXR Toolkit" and install, or:
cd ComfyUI/custom_nodes
git clone https://github.com/azhagurajpandians/ComfyUI-ACES-EXR-Toolkit.git
Then install the real dependencies into ComfyUI's Python (the pack's requirements.txt needs opencolorio, openexr, and opencv-python):
python -m pip install -r ComfyUI/custom_nodes/ComfyUI-ACES-EXR-Toolkit/requirements.txt
Restart ComfyUI. Nodes appear under image/ACES + EXR.
Gotchas
The big one: ComfyUI's upload widget is image-centric and genuinely unreliable for .exr files - the README says so outright. If your file won't show in the picker, paste the absolute path into exr_path or switch to its sibling, Load EXR From Path. And if the preview looks washed white, you've got transparency with white RGB in the transparent pixels - change alpha_mode, don't change the image.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| exr_file | COMBO | 1 options: <select EXR or paste full path below> | |
| alpha_mode | COMBO | 7 options: composite checker, ignore, unpremultiply, premultiply, composite black, composite gray, +1 | |
| clamp_negative | COMBO | 2 options: false, true | |
| frame_mode | COMBO | all | 3 options: all, single, range |
| start_frame | INT | 10–99999 | — |
| end_frame | INT | 1000–99999 | — |
| missing_frames | COMBO | error | 3 options: error, black, hold |
| exr_pathopt | STRING | — |
Outputs (6)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |
| mask | MASK | — |
| frame_count | INT | — |
| first_frame | INT | — |
| last_frame | INT | — |
| path | STRING | — |