π¨ NL Workflow Color Context
Let the studio's color setup drive your graph
- ocio_config_path
- working_space
- display
- view
- input_policy
- status_json
Most custom nodes pass images and latents around. This one passes context. NL Workflow Color Context is a read-only node that exposes the color configuration from the pack's top-bar NL Workflow panel to the rest of your graph - no inputs, and six STRING outputs that describe how the current shot is being interpreted color-wise.
The whole point of the NOLABEL/Workflow family is to stop re-typing the same values into a dozen nodes. You set project, shot, resolution, fps, frame range, and project path once in the NL Workflow modal - it's workflow-level UI state, stored as ComfyUI/user/default/nl_workflow.json, not a node on your canvas - and then helper nodes read it back. Color Context is the color member of that family.
The outputs
Everything comes out as strings, ready to wire into color-aware nodes or a debug text display:
ocio_config_path- where the active OCIO config livesworking_space- the rendering/working space, typically ACEScg in this pipelinedisplayandview- the display device and the View transform (your "Output - Rec.709" and friends)input_policy- how incoming images are interpretedstatus_json- a full JSON dump of the resolved status, which is your debugging best friend
There are no inputs, so it's purely a metadata source. You can't change the color setup from here - you change it in the NL Workflow panel (or the config behind it), and this node reflects what's resolved.
Why you'd actually use it
Two reasons. First, in a studio setup where one OCIO config governs everything, this is how your graph stays honest: NL Read and NL Preview can align to the same view and working_space that the panel declares, instead of each node guessing. Second, it's a cheap way to make the invisible visible - wire status_json (or a formatted bundle of the other outputs) into a text node and you get a live "what am I rendering in?" readout that catches the classic mistake of previewing a linear tensor as if it were sRGB. That's the failure mode that makes everyone's colors suddenly look flat halfway through a project.
Install
It ships in ComfyUI-NL_Nodes. Manager β search "ComfyUI-NL_Nodes", or:
cd ComfyUI/custom_nodes
git clone https://github.com/NOLABEL-VFX/ComfyUI-NL_Nodes
# restart ComfyUI
It also leans on the optional color stack for meaningful values:
cd ComfyUI/custom_nodes/ComfyUI-NL_Nodes
pip install -r requirements-color.txt # PyOpenColorIO + OpenEXR
Gotchas
The outputs are only as good as what's in the panel. If you never configured an OCIO config or working space in NL Workflow, you'll get empty or default strings and wonder why the node does nothing - it's a mirror, not a magician. And because it reads cached workflow state, it reflects what was resolved at load/save time; it isn't recomputed mid-run. Treat it as read-only shot metadata, which is exactly what it is.
Inputs (0)
No inputs
Outputs (6)
| Name | Type | Description |
|---|---|---|
| ocio_config_path | STRING | β |
| working_space | STRING | β |
| display | STRING | β |
| view | STRING | β |
| input_policy | STRING | β |
| status_json | STRING | β |