Nodes/ComfyUI-ACES-IO/ACES IO — Log Convert (OCIOLogConvert)
ComfyUI Node

ACES IO — Log Convert (OCIOLogConvert)

The one-switch bridge between linear and log — without typing space names

By BISAM20·Created 6 months ago·Updated 6 months ago· 9
ACES IO — Log Convert (OCIOLogConvert)
  • image
  • ocio_config
  • image
operationLog to Linear

ACES IO - Log Convert is the smallest transform in the pack: a single toggle between scene-linear and compositing-log, and nothing else. In Nuke terms it's OCIOLogConvert, and its whole trick is that it doesn't make you pick the two colorspaces by name. It reads them from the config's roles - the scene_linear and compositing_log roles, which in the ACES configs resolve to ACEScg and ACEScct respectively. So the dropdown that matters is just:

  • operation - Log to Linear or Linear to Log.

ocio_config from the Config Loader is required, and the output is a single image. That's the entire interface.

Why you'd bother

Grading in log is a real thing: log-encoded values spread the range of a scene more evenly across the available bit depth, which gives you headroom for contrast and saturation pushes before you hit clipping. The practical ComfyUI loop is:

Linear (ACEScg) → Log Convert → ... your contrast/color nodes ... → Log Convert (inverse) → Display Transform

Roundtrip it and the inverse operation swaps you back cleanly - the node is its own undo button. It's also the fastest way to get an ACEScg image into the "soft, washed, gradeable" log look people associate with camera footage, which is sometimes exactly the vibe you want for a stylized video pass.

The flip side is the honest one: for a single still, ACEScct-to-ACEScg is just a two-dropdown conversion in the ColorSpace node, and this node adds nothing except saving you from typing the names. Its real value is legibility - Log Convert in a graph says "this is a grade pass" to the next person reading the workflow, and it can't point at the wrong spaces, which ColorSpace absolutely can when you're tired and the dropdowns are 200 names long.

Install

It ships in BISAM20/ComfyUI-ACES-IO: Manager → Install Custom Nodes → ComfyUI-ACES-IO, restart, or git clone https://github.com/BISAM20/ComfyUI-ACES-IO into custom_nodes + pip install -r requirements.txt. The pack-wide gotcha is PyOpenColorIO - pip installs it as opencolorio (the "PyOpenColorIO" name isn't on PyPI), and Manager's install hook handles it automatically; if you installed manually and nodes fail to register, that's the package to check.

Gotchas

  • It needs the roles defined. A custom .ocio that doesn't declare scene_linear / compositing_log roles makes this node throw a clear "config does not define roles" error. The bundled ACES 1.2/1.3/2.0 configs all have them, so you'll only hit this with an unusual custom config - in which case use ColorSpace and type the names yourself.
  • Log is not a display look. Converting to log and saving that as a video file gives you flat footage, not a finished image - that's expected. Log is a working space.
  • Every node in this pack re-runs each queue, so toggling operation applies immediately on the next run.
CategoryACES IO/Transform

Inputs (3)

NameTypeDefaultDescription
imageIMAGE
ocio_configOCIO_CONFIG
operationCOMBOLog to Linear2 options: Log to Linear, Linear to Log

Outputs (1)

NameTypeDescription
imageIMAGE