OCIO List Colorspaces
Stop guessing colour-space names — list them instead
- colorspaces_list
OCIO List Colorspaces is a reference node, and I mean that as praise. It prints every colour space, look and display/view transform in an OCIO config as a JSON string. You drop it in, run the graph, read the output panel, then delete it and go type the exact name into Read's ocio_colorspace or Color Space Convert.
That's the whole job, and it's a job that otherwise wastes a genuinely stupid amount of time. OpenColorIO names are case- and punctuation-sensitive, config-specific, and full of near-miss variants: a show config might have ACEScg and also ACES - ACEScg, and picking wrong doesn't error, it just gives you a slightly wrong image. If you've ever wondered why your grade looks almost right, this node is how you stop wondering.
Inputs and output
Both inputs are optional, which tells you the author intended this as a zero-config probe.
ocio_config_path points at an .ocio file. Leave it empty and you get the OCIO environment variable's config if $OCIO is set, otherwise the local ACES config - the same built-in fallback the rest of the pack uses. filter_family is the useful one when you're staring at a 400-entry studio config: it keeps only spaces whose family or name contains the string, case-insensitively. filter_family: "log" gets you the camera logs; filter_family: "showlut" gets you the show LUT family. Much faster than scrolling.
The single output is colorspaces_list, a STRING. It's JSON, so you can copy a name out of it cleanly. It's also an output node, so it always runs - no need to wire it to anything.
Two honest caveats, both straight from the source. If PyOpenColorIO isn't installed you don't get an error, you get the string "PyOpenColorIO not installed. Install with: pip install opencolorio" - so if the node "doesn't work", read the output, not the console. And if no config can be found at all, you get a message telling you to use the ACES Config Manager node or set $OCIO, which is the right next step.
Install
Ships with Radiance. ComfyUI Manager → search Radiance → install → restart → refresh, or:
cd ComfyUI/custom_nodes
git clone https://github.com/fxtd-studios/radiance.git
cd radiance
python -m pip install -r requirements.txt
opencolorio is in the requirements file and Manager's install hook verifies the import. Beyond that it needs nothing - no models, no GPU work, no downloads. It's the cheapest node in the pack to keep around.
How to actually use it
- Run the node with an empty path. You now know what config Radiance is using session-wide.
- Add
filter_familyto narrow it: camera logs, the LUT family, whatever prefix your show uses. - Paste the exact string into
ocio_colorspaceon Read, or into the colour-space fields on Color Space Convert. Those fields accept any name or alias from the config, andocio_colorspaceoverridescolor_spacewhen it's set. - If the names you expect aren't there, your config isn't the one being read. Load it explicitly with OCIO Context, then run this node again.
The reason this matters at all: in an ACES pipeline, getting the decode right is the entire game. Radiance's working-space convention is scene-linear with 1.0 at 203 nits (BT.2408) unless you change hdr_reference_nits, and half the "why is my HDR weird" threads in any pipeline forum are really one bad transform somewhere in the chain. Verifying the name is a five-second habit that removes one of those variables.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| ocio_config_pathopt | STRING | Path to .ocio config. Leave empty to use OCIO env var or local ACES config. | |
| filter_familyopt | STRING | Only show colorspaces whose family or name contains this string (case-insensitive). |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| colorspaces_list | STRING | — |