◎ Radiance OCIO Color Transform
Radiance OCIO Color Transform — speak ACES without leaving ComfyUI
- image
- image
At some point your AI-generated image has to stop being "a picture" and become "an element in a color-managed shot." That means converting it between color spaces the way a VFX pipeline does - sRGB out of the model, ACEScg in the comp, a specific space for the plate. ComfyUI core has no real color-management layer for this, and the KB's post-processing doc says it plainly: the people who need OCIO discuss it in VFX channels, not r/StableDiffusion, because it's a specialist corner. Radiance OCIO Color Transform is the tool that speaks it from inside the graph.
It applies an OpenColorIO transform between any two color spaces defined in a config - the default config being ACES 1.3 Studio. If you know what "input space" and "output space" you're working in, this node converts between them with the industry-standard library, not a hand-rolled approximation.
How it works
Under the hood it's OpenColorIO doing the math: load a config, build a processor for the source-to-destination transform, run it over the image. The pack caches both the config and the processor (the source notes it fixed a bug where they were rebuilt on every call), so repeated runs are fast after the first.
The default config_file of "ACES 1.3 Studio" is a named config shipped with the pack - the ACES folder in the repo - and the default transform reads like a real pipeline: input_space "ACES - ACEScg" to output_space "Output - sRGB". That's the "take my scene-linear ACEScg data and give me a displayable sRGB image" move, which is the single most common transform in any ACES workflow. direction gives you Forward or Inverse - so the same two spaces also run the other way, sRGB back into ACEScg for compositing.
The inputs that matter
image- the pixels to transform.config_file- which OCIO config. "ACES 1.3 Studio" is the sensible default; you can point at others.input_space/output_space- named spaces as defined in that config. There's no freeform guessing here - the dropdown comes from the config, so if you typo or pick a space the config doesn't define, the transform fails. Use the pack'sOCIOListColorspaceshelper to see what's available.direction- Forward or Inverse.
Output: the transformed image.
When it's worth it
Honest framing from the KB: "If you are a solo generator making finished images, you do not need any of this and the sRGB path is correct." You need it the moment AI output has to survive as an element in a managed shot - which is precisely this pack's audience. The workflow: decode your sRGB PNG to linear ACEScg with this node, do your grading in the pack's 32-bit nodes, then use the sibling ◎ Radiance OCIO Display/View to get to a display space for review. One wrong un-managed decode poisons the comp, so learning to do this properly is the whole point.
Installing
cd ComfyUI/custom_nodes
git clone https://github.com/fxtdstudios/radiance.git
cd radiance
pip install -r requirements.txt # or requirements_windows.txt / requirements_linux.txt / requirements_mac_silicon.txt
The OCIO dependency (opencolorio) is in the requirements. Or search Radiance in ComfyUI Manager. Linux needs libopenexr-dev first; restart after.
Gotchas
The failure mode is naming. Pick a space the config doesn't define and you get an OCIO error, not a weird image - which is at least honest, but it stumbles people who expected a forgiving dropdown. Check available spaces first with the pack's list node. Second, transforms are only as correct as your claim about the input: if you tell it your image is ACEScg and it's actually sRGB, you get a silently wrong result, not an error. Third, this node transforms, it doesn't tag - it won't tell you what space your output is in, so keep your own notes. The discipline is real, but it's the discipline the industry runs on.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| config_file | STRING | ACES 1.3 Studio | — |
| input_space | STRING | ACES - ACEScg | — |
| output_space | STRING | Output - sRGB | — |
| direction | COMBO | 2 options: Forward, Inverse |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |