diff --git a/client/ayon_maya/api/lib.py b/client/ayon_maya/api/lib.py index e8701454..c0e16736 100644 --- a/client/ayon_maya/api/lib.py +++ b/client/ayon_maya/api/lib.py @@ -2,7 +2,6 @@ import os import copy -from pprint import pformat import sys import uuid import re @@ -3360,48 +3359,10 @@ def set_colorspace(): project_name = get_current_project_name() imageio = get_project_settings(project_name)["maya"]["imageio"] - # ocio compatibility variables - ocio_v2_maya_version = 2022 - maya_version = int(cmds.about(version=True)) - ocio_v2_support = use_ocio_v2 = maya_version >= ocio_v2_maya_version - is_ocio_set = bool(os.environ.get("OCIO")) - - use_workfile_settings = imageio.get("workfile", {}).get("enabled") - if use_workfile_settings: - root_dict = imageio["workfile"] - else: - # TODO: deprecated code from 3.15.5 - remove - # Maya 2022+ introduces new OCIO v2 color management settings that - # can override the old color management preferences. AYON has - # separate settings for both so we fall back when necessary. - use_ocio_v2 = imageio["colorManagementPreference_v2"]["enabled"] - if use_ocio_v2 and not ocio_v2_support: - # Fallback to legacy behavior with a warning - log.warning( - "Color Management Preference v2 is enabled but not " - "supported by current Maya version: {} (< {}). Falling " - "back to legacy settings.".format( - maya_version, ocio_v2_maya_version) - ) - - if use_ocio_v2: - root_dict = imageio["colorManagementPreference_v2"] - else: - root_dict = imageio["colorManagementPreference"] - - if not isinstance(root_dict, dict): - msg = "set_colorspace(): argument should be dictionary" - log.error(msg) - return - - # backward compatibility - # TODO: deprecated code from 3.15.5 - remove with deprecated code above - view_name = root_dict.get("viewTransform") - if view_name is None: - view_name = root_dict.get("viewName") - - log.debug(">> root_dict: {}".format(pformat(root_dict))) - if not root_dict: + if not imageio["workfile"]["enabled"]: + log.info( + "AYON Maya Color Management settings for workfile are disabled." + ) return # set color spaces for rendering space and view transforms @@ -3419,36 +3380,27 @@ def _colormanage(**kwargs): except RuntimeError as exc: log.error(exc) + log.info("Setting Maya colorspace..") + # enable color management cmds.colorManagementPrefs(edit=True, cmEnabled=True) cmds.colorManagementPrefs(edit=True, ocioRulesEnabled=True) - if use_ocio_v2: - log.info("Using Maya OCIO v2") - if not is_ocio_set: - # Set the Maya 2022+ default OCIO v2 config file path - log.info("Setting default Maya OCIO v2 config") - # Note: Setting "" as value also sets this default however - # introduces a bug where launching a file on startup will prompt - # to save the empty scene before it, so we set using the path. - # This value has been the same for 2022, 2023 and 2024 - path = "/OCIO-configs/Maya2022-default/config.ocio" - cmds.colorManagementPrefs(edit=True, configFilePath=path) - - # set rendering space and view transform - _colormanage(renderingSpaceName=root_dict["renderSpace"]) - _colormanage(viewName=view_name) - _colormanage(displayName=root_dict["displayName"]) - else: - log.info("Using Maya OCIO v1 (legacy)") - if not is_ocio_set: - # Set the Maya default config file path - log.info("Setting default Maya OCIO v1 legacy config") - cmds.colorManagementPrefs(edit=True, configFilePath="legacy") - - # set rendering space and view transform - _colormanage(renderingSpaceName=root_dict["renderSpace"]) - _colormanage(viewTransformName=view_name) + is_ocio_set = bool(os.environ.get("OCIO")) + if not is_ocio_set: + # Set the Maya 2022+ default OCIO v2 config file path + log.info("Setting default Maya OCIO v2 config") + # Note: Setting "" as value also sets this default however + # introduces a bug where launching a file on startup will prompt + # to save the empty scene before it, so we set using the path. + # This value has been the same for 2022, 2023 and 2024. + path = "/OCIO-configs/Maya2022-default/config.ocio" + cmds.colorManagementPrefs(edit=True, configFilePath=path) + + # set rendering space and view transform + _colormanage(renderingSpaceName=imageio["workfile"]["renderSpace"]) + _colormanage(viewName=imageio["workfile"]["viewName"]) + _colormanage(displayName=imageio["workfile"]["displayName"]) @contextlib.contextmanager diff --git a/server/settings/imageio.py b/server/settings/imageio.py index 45fd0743..cfdad8dd 100644 --- a/server/settings/imageio.py +++ b/server/settings/imageio.py @@ -31,28 +31,6 @@ def validate_unique_outputs(cls, value): return value -class ColorManagementPreferenceV2Model(BaseSettingsModel): - """Color Management Preference v2 (Maya 2022+). - - Please migrate all to 'imageio/workfile' and enable it. - """ - - enabled: bool = SettingsField( - True, title="Use Color Management Preference v2" - ) - - renderSpace: str = SettingsField(title="Rendering Space") - displayName: str = SettingsField(title="Display") - viewName: str = SettingsField(title="View") - - -class ColorManagementPreferenceModel(BaseSettingsModel): - """Color Management Preference (legacy).""" - - renderSpace: str = SettingsField(title="Rendering Space") - viewTransform: str = SettingsField(title="Viewer Transform ") - - class WorkfileImageIOModel(BaseSettingsModel): enabled: bool = SettingsField(True, title="Enabled") renderSpace: str = SettingsField(title="Rendering Space") @@ -61,10 +39,7 @@ class WorkfileImageIOModel(BaseSettingsModel): class ImageIOSettings(BaseSettingsModel): - """Maya color management project settings. - - Todo: What to do with color management preferences version? - """ + """Maya color management project settings.""" _isGroup: bool = True activate_host_color_management: bool = SettingsField( @@ -78,17 +53,6 @@ class ImageIOSettings(BaseSettingsModel): default_factory=WorkfileImageIOModel, title="Workfile" ) - # Deprecated - colorManagementPreference_v2: ColorManagementPreferenceV2Model = ( - SettingsField( - default_factory=ColorManagementPreferenceV2Model, - title="DEPRECATED: Color Management Preference v2 (Maya 2022+)" - ) - ) - colorManagementPreference: ColorManagementPreferenceModel = SettingsField( - default_factory=ColorManagementPreferenceModel, - title="DEPRECATED: Color Management Preference (legacy)" - ) DEFAULT_IMAGEIO_SETTINGS = { @@ -98,19 +62,9 @@ class ImageIOSettings(BaseSettingsModel): "rules": [] }, "workfile": { - "enabled": False, + "enabled": True, "renderSpace": "ACES - ACEScg", "displayName": "ACES", "viewName": "sRGB" - }, - "colorManagementPreference_v2": { - "enabled": True, - "renderSpace": "ACEScg", - "displayName": "sRGB", - "viewName": "ACES 1.0 SDR-video" - }, - "colorManagementPreference": { - "renderSpace": "scene-linear Rec 709/sRGB", - "viewTransform": "sRGB gamma" } }