Skip to content

v1.2.0 - Native ComfyUI Video pipeline, OCIO Player, and bit-exact color accuracy

Latest

Choose a tag to compare

@SlavaSexton SlavaSexton released this 05 Jul 00:51

RGB gamut volume: sRGB, ACEScg, ACES2065-1 and ARRI Wide Gamut 3 as 3D hulls in CIE Lab, via OCIO's own XYZ-D65 interchange

The color nodes, Read, Write and Player now live on ComfyUI's native VIDEO wire, OCIO Player is documented for the first time, and every color transform is checked against an independent PyOpenColorIO reference and reported bit-exact.

Added

  • Native ComfyUI VIDEO pipeline on all nine nodes. The six color nodes (ColorSpace, LogConvert, Display, CDLTransform, FileTransform, LookTransform) each carry a mutually-exclusive IMAGE vs VIDEO input pair; only the socket matching the live input carries data. OCIO Write and OCIO Player gained a VIDEO input, mutually exclusive with their image input.
  • VIDEO in / VIDEO out using ComfyUI's native comfy_api VideoFromComponents, the same type Load Video emits, so the nodes interoperate with Load Video, Save Video, Video Combine, Get Video Components and VHS.
  • OCIO Write records a native ComfyUI video to disk with all of its settings (container / codec / colorspace / bit depth), inheriting the clip's frame rate.
  • OCIO Read exposes a VIDEO output that feeds ComfyUI-native video nodes downstream.
  • Mutually-exclusive Image / Video sockets on all nine nodes: connect one input and the other auto-disconnects.
  • LogConvert curves now carry readable labels (for example "Sony S-Log3", "ARRI LogC3", "Linear to Log").
  • A scene-linear HDR log shaper on the OCIO Player viewport, so highlights above 1.0 don't clip in the display LUT.
  • A 3D gamut-volume chart comparing sRGB, ACEScg, ACES2065-1 and ARRI Wide Gamut 3 as hulls in CIE Lab, via OCIO's own colorspace conversions - the image above.
  • OCIO Player is documented in the README for the first time (nine nodes, not eight).

Fixed

  • Page reload wiped all node connections (the dual-socket auto-disconnect fired during graph load and corrupted the link map).
  • A native Load Video -> OCIO color node -> Player chain ignored the color nodes and showed the raw frame.
  • OCIO Player's own Image / Video inputs did not auto-disconnect each other (it was missing from the mutual-exclusion list the other nodes already had).
  • OCIO Player showed processed video flat / washed-out.
  • OCIO Write video preview failed with "Invalid URL" (now a small, servable, playing H.264 preview).
  • Fast video decode, 12-25x quicker than before (temp-file read instead of a subprocess pipe).

Changed

  • Slot labels: the IMAGE socket reads "OCIO Img/Seq/Vid", the VIDEO socket reads "ComfyUI Video", across the nodes.
  • README refresh: node count corrected to nine, new node screenshots, a "Color accuracy, measured" section, and a "Why this exists" note on what's next.

Verified

  • Bit-exact OCIO parity: worst max-abs error 0.000e+00 across 9 transforms x 4 fixtures, 0 results over the 1e-4 threshold, against an independent PyOpenColorIO reference.
  • 0 silent HDR clamps; negatives and values above 1.0 survive every conversion, curve and grade.
  • Full color-accuracy suite (tools/accuracy) with charts in docs/assets/accuracy/.

See the README for the full node reference and the native video pipeline section.