EXR Metadata Reader
The 10-second 'what's in this file' node
- metadata_json
- width
- height
- channels
- compression
Every EXR carries a header: resolution, compression, the full list of channels, and whatever attributes the writer bothered to include. EXR Metadata Reader dumps all of that into outputs you can look at, and it's the node you reach for when you've been handed a mystery EXR and need to know what's actually inside before you wire it into anything.
It's a thin utility - the "inspect the file" step, not the "use the file" step. But thin doesn't mean useless. The killer scenario: someone sends you a multi-layer EXR and you don't know its layer names. Guess and you get the beauty-fallback dance; ask this node first and you have the answer. Run it once, read channels, then feed the real names into Load EXR Layer.
How it works
Give it exr_path (absolute path, or a name relative to ComfyUI/input) and it reads the header with the OpenEXR module and hands back five outputs:
metadata_json- the header attributes as a JSON string, minus the noisychannels/dataWindowentries it already surfaces separately. Wire this into a text-display node to read it.width,height- the resolution, as plain integerschannels- every channel in the file, comma-separated. This is the useful one:R, G, B, Afor a flat file, orbeauty.R, beauty.G, depth.Z, normal.X, ...for a multi-layer rendercompression- the codec string (ZIP,PIZ,DWAA, etc.)
If the OpenEXR package isn't installed, it degrades to reading via OpenCV and returns what it can with backend: opencv noted in the JSON. Install openexr for the full picture.
The one input
exr_path- the file to inspect. That's it. No modes, no toggles.
Install
Part of the ACES EXR Toolkit:
cd ComfyUI/custom_nodes
git clone https://github.com/azhagurajpandians/ComfyUI-ACES-EXR-Toolkit.git
python -m pip install -r ComfyUI-ACES-EXR-Toolkit/requirements.txt
Restart ComfyUI; it's under image/ACES + EXR.
Gotchas
The only real gotcha is expectations: this reads the header, so it tells you what channels exist and what compression was used - not what the pixels look like. If you need to see the image, use Load EXR From Path; if you need one layer out, use Load EXR Layer. And if compression reads back as Unknown and metadata_json says opencv, the openexr dependency is missing and you're only getting half the story. That's your cue to install it, not a file problem.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| exr_path | STRING | — |
Outputs (5)
| Name | Type | Description |
|---|---|---|
| metadata_json | STRING | — |
| width | INT | — |
| height | INT | — |
| channels | STRING | — |
| compression | STRING | — |