{
    "sourceFile": "config.py",
    "activeCommit": 0,
    "commits": [
        {
            "activePatchIndex": 9,
            "patches": [
                {
                    "date": 1745224931023,
                    "content": "Index: \n===================================================================\n--- \n+++ \n"
                },
                {
                    "date": 1745225971632,
                    "content": "Index: \n===================================================================\n--- \n+++ \n@@ -0,0 +1,77 @@\n+# config.py\r\n+# Core settings defining the pipeline standards and output format.\r\n+\r\n+# --- Target Output Standards ---\r\n+TARGET_FILENAME_PATTERN = \"{base_name}_{map_type}_{resolution}.{ext}\"\r\n+STANDARD_MAP_TYPES = [\r\n+    \"COL\", \"NRM\", \"ROUGH\", \"METAL\", \"AO\", \"DISP\", \"REFL\",\r\n+    \"SSS\", \"FUZZ\", \"IDMAP\", \"MASK\"\r\n+]\r\n+# Map types that should always receive a numeric suffix (e.g., COL-1, COL-2)\r\n+# based on preset keyword order, even if only one variant is found.\r\n+RESPECT_VARIANT_MAP_TYPES = [\"COL\"]\r\n+\r\n+# Subdirectory within the final set folder for non-essential/unknown files\r\n+EXTRA_FILES_SUBDIR = \"Extra\"\r\n+OUTPUT_BASE_DIR = \"../Asset_Processor_Output\" #accepts both relative and absolute paths\r\n+METADATA_FILENAME = \"metadata.json\"\r\n+\r\n+# --- Image Processing Settings ---\r\n+# Target resolutions (Largest dimension in pixels)\r\n+PNG_COMPRESSION_LEVEL = 6 # 0 (none) to 9 (max)\r\n+# Quality for JPG output (0-100)\r\n+JPG_QUALITY = 98\r\n+# Resolution dimension threshold (pixels) above which 8-bit images are forced to JPG, overriding input format logic.\r\n+RESOLUTION_THRESHOLD_FOR_JPG = 4096\r\n+IMAGE_RESOLUTIONS = {\"8K\": 8192,\"4K\": 4096, \"2K\": 2048, \"1K\": 1024}\r\n+# Aspect ratio decimals (used for metadata, could potentially be removed later)\r\n+ASPECT_RATIO_DECIMALS = 2\r\n+# Bit depth rules per standard map type ('respect' or 'force_8bit')\r\n+MAP_BIT_DEPTH_RULES = {\r\n+    \"COL\": \"force_8bit\", \"NRM\": \"respect\", \"ROUGH\": \"force_8bit\", \"METAL\": \"force_8bit\",\r\n+    \"AO\": \"force_8bit\", \"DISP\": \"respect\", \"REFL\": \"force_bit\", \"SSS\": \"respect\",\r\n+    \"FUZZ\": \"force_bit\", \"IDMAP\": \"force_8bit\", \"MASK\": \"force_8bit\",\r\n+    \"DEFAULT\": \"respect\" # Fallback for map types not listed\r\n+}\r\n+# Output format preferences for 16-bit data\r\n+OUTPUT_FORMAT_16BIT_PRIMARY = \"png\" # Options: exr_dwaa, exr_dwab, exr_zip, png, tif\r\n+OUTPUT_FORMAT_16BIT_FALLBACK = \"png\"\r\n+# Output format for 8-bit data\r\n+OUTPUT_FORMAT_8BIT = \"png\" # Could allow 'jpg' later with quality settings\r\n+\r\n+# Map types that should always be saved in a lossless format (e.g., PNG, EXR)\r\n+# regardless of resolution threshold or input format.\r\n+#FORCE_LOSSLESS_MAP_TYPES = [\"NRM\", \"NRMRGN\"]\r\n+\r\n+# --- Map Merging Rules ---\r\n+# List of dictionaries, each defining a merge operation.\r\n+MAP_MERGE_RULES = [\r\n+    {\r\n+        \"output_map_type\": \"NRMRGH\", # Suffix or standard name for the merged map\r\n+        \"inputs\": { # Map target RGB channels to standard input map type names\r\n+            \"R\": \"NRM\", # Use Red channel from NRM\r\n+            \"G\": \"NRM\", # Use Green channel from NRM\r\n+            \"B\": \"ROUGH\" # Use Red channel from ROUGH (assuming it's grayscale)\r\n+        },\r\n+        \"defaults\": { # Default values (0.0 - 1.0) if an input map is missing\r\n+            \"R\": 0.5, \"G\": 0.5, \"B\": 1.0 # Default Nrm=(0.5,0.5,1), Default Rough=1.0\r\n+        },\r\n+        # 'respect_inputs' (use 16bit if any input is), 'force_8bit', 'force_16bit'\r\n+        \"output_bit_depth\": \"respect_inputs\"\r\n+    },\r\n+    # Example: Merge Metalness(R), Roughness(G), AO(B) -> \"MRA\" map often used in engines\r\n+    # {\r\n+    #     \"output_map_type\": \"MRA\",\r\n+    #     \"inputs\": {\"R\": \"METAL\", \"G\": \"ROUGH\", \"B\": \"AO\"},\r\n+    #     \"defaullllts\": {\"R\": 0.0, \"G\": 1.0, \"B\": 1.0}, # Default Metal=0, Rough=1, AO=1\r\n+    #     \"output_bit_depth\": \"force_8bit\" # Usually fine as 8bit\r\n+    # },\r\n+]\r\n+\r\n+# --- Metadata Settings ---\r\n+CALCULATE_STATS_RESOLUTION = \"1K\" # Resolution suffix used for calculating stats\r\n+DEFAULT_ASSET_CATEGORY = \"Surface\" # If rules don't identify Asset or Decal\r\n+\r\n+# --- Internal Settings ---\r\n+# Temporary directory prefix for processing folders\r\n+TEMP_DIR_PREFIX = \"_PROCESS_ASSET_\"\n\\ No newline at end of file\n"
                },
                {
                    "date": 1745229040416,
                    "content": "Index: \n===================================================================\n--- \n+++ \n@@ -53,9 +53,9 @@\n             \"G\": \"NRM\", # Use Green channel from NRM\r\n             \"B\": \"ROUGH\" # Use Red channel from ROUGH (assuming it's grayscale)\r\n         },\r\n         \"defaults\": { # Default values (0.0 - 1.0) if an input map is missing\r\n-            \"R\": 0.5, \"G\": 0.5, \"B\": 1.0 # Default Nrm=(0.5,0.5,1), Default Rough=1.0\r\n+            \"R\": 0.5, \"G\": 0.5, \"B\": 0.5 # Default Nrm=(0.5,0.5,1), Default Rough=1.0\r\n         },\r\n         # 'respect_inputs' (use 16bit if any input is), 'force_8bit', 'force_16bit'\r\n         \"output_bit_depth\": \"respect_inputs\"\r\n     },\r\n@@ -73,82 +73,5 @@\n DEFAULT_ASSET_CATEGORY = \"Surface\" # If rules don't identify Asset or Decal\r\n \r\n # --- Internal Settings ---\r\n # Temporary directory prefix for processing folders\r\n-TEMP_DIR_PREFIX = \"_PROCESS_ASSET_\"\n-# config.py\r\n-# Core settings defining the pipeline standards and output format.\r\n-\r\n-# --- Target Output Standards ---\r\n-TARGET_FILENAME_PATTERN = \"{base_name}_{map_type}_{resolution}.{ext}\"\r\n-STANDARD_MAP_TYPES = [\r\n-    \"COL\", \"NRM\", \"ROUGH\", \"METAL\", \"AO\", \"DISP\", \"REFL\",\r\n-    \"SSS\", \"FUZZ\", \"IDMAP\", \"MASK\"\r\n-]\r\n-# Map types that should always receive a numeric suffix (e.g., COL-1, COL-2)\r\n-# based on preset keyword order, even if only one variant is found.\r\n-RESPECT_VARIANT_MAP_TYPES = [\"COL\"]\r\n-\r\n-# Subdirectory within the final set folder for non-essential/unknown files\r\n-EXTRA_FILES_SUBDIR = \"Extra\"\r\n-OUTPUT_BASE_DIR = \"../Asset_Processor_Output\" #accepts both relative and absolute paths\r\n-METADATA_FILENAME = \"metadata.json\"\r\n-\r\n-# --- Image Processing Settings ---\r\n-# Target resolutions (Largest dimension in pixels)\r\n-PNG_COMPRESSION_LEVEL = 6 # 0 (none) to 9 (max)\r\n-# Quality for JPG output (0-100)\r\n-JPG_QUALITY = 98\r\n-# Resolution dimension threshold (pixels) above which 8-bit images are forced to JPG, overriding input format logic.\r\n-RESOLUTION_THRESHOLD_FOR_JPG = 4096\r\n-IMAGE_RESOLUTIONS = {\"8K\": 8192,\"4K\": 4096, \"2K\": 2048, \"1K\": 1024}\r\n-# Aspect ratio decimals (used for metadata, could potentially be removed later)\r\n-ASPECT_RATIO_DECIMALS = 2\r\n-# Bit depth rules per standard map type ('respect' or 'force_8bit')\r\n-MAP_BIT_DEPTH_RULES = {\r\n-    \"COL\": \"force_8bit\", \"NRM\": \"respect\", \"ROUGH\": \"force_8bit\", \"METAL\": \"force_8bit\",\r\n-    \"AO\": \"force_8bit\", \"DISP\": \"respect\", \"REFL\": \"force_bit\", \"SSS\": \"respect\",\r\n-    \"FUZZ\": \"force_bit\", \"IDMAP\": \"force_8bit\", \"MASK\": \"force_8bit\",\r\n-    \"DEFAULT\": \"respect\" # Fallback for map types not listed\r\n-}\r\n-# Output format preferences for 16-bit data\r\n-OUTPUT_FORMAT_16BIT_PRIMARY = \"png\" # Options: exr_dwaa, exr_dwab, exr_zip, png, tif\r\n-OUTPUT_FORMAT_16BIT_FALLBACK = \"png\"\r\n-# Output format for 8-bit data\r\n-OUTPUT_FORMAT_8BIT = \"png\" # Could allow 'jpg' later with quality settings\r\n-\r\n-# Map types that should always be saved in a lossless format (e.g., PNG, EXR)\r\n-# regardless of resolution threshold or input format.\r\n-FORCE_LOSSLESS_MAP_TYPES = [\"NRM\", \"NRMRGN\"]\r\n-\r\n-# --- Map Merging Rules ---\r\n-# List of dictionaries, each defining a merge operation.\r\n-MAP_MERGE_RULES = [\r\n-    {\r\n-        \"output_map_type\": \"NRMRGH\", # Suffix or standard name for the merged map\r\n-        \"inputs\": { # Map target RGB channels to standard input map type names\r\n-            \"R\": \"NRM\", # Use Red channel from NRM\r\n-            \"G\": \"NRM\", # Use Green channel from NRM\r\n-            \"B\": \"ROUGH\" # Use Red channel from ROUGH (assuming it's grayscale)\r\n-        },\r\n-        \"defaults\": { # Default values (0.0 - 1.0) if an input map is missing\r\n-            \"R\": 0.5, \"G\": 0.5, \"B\": 1.0 # Default Nrm=(0.5,0.5,1), Default Rough=1.0\r\n-        },\r\n-        # 'respect_inputs' (use 16bit if any input is), 'force_8bit', 'force_16bit'\r\n-        \"output_bit_depth\": \"respect_inputs\"\r\n-    },\r\n-    # Example: Merge Metalness(R), Roughness(G), AO(B) -> \"MRA\" map often used in engines\r\n-    # {\r\n-    #     \"output_map_type\": \"MRA\",\r\n-    #     \"inputs\": {\"R\": \"METAL\", \"G\": \"ROUGH\", \"B\": \"AO\"},\r\n-    #     \"defaullllts\": {\"R\": 0.0, \"G\": 1.0, \"B\": 1.0}, # Default Metal=0, Rough=1, AO=1\r\n-    #     \"output_bit_depth\": \"force_8bit\" # Usually fine as 8bit\r\n-    # },\r\n-]\r\n-\r\n-# --- Metadata Settings ---\r\n-CALCULATE_STATS_RESOLUTION = \"1K\" # Resolution suffix used for calculating stats\r\n-DEFAULT_ASSET_CATEGORY = \"Surface\" # If rules don't identify Asset or Decal\r\n-\r\n-# --- Internal Settings ---\r\n-# Temporary directory prefix for processing folders\r\n TEMP_DIR_PREFIX = \"_PROCESS_ASSET_\"\n\\ No newline at end of file\n"
                },
                {
                    "date": 1745229058666,
                    "content": "Index: \n===================================================================\n--- \n+++ \n@@ -53,9 +53,9 @@\n             \"G\": \"NRM\", # Use Green channel from NRM\r\n             \"B\": \"ROUGH\" # Use Red channel from ROUGH (assuming it's grayscale)\r\n         },\r\n         \"defaults\": { # Default values (0.0 - 1.0) if an input map is missing\r\n-            \"R\": 0.5, \"G\": 0.5, \"B\": 0.5 # Default Nrm=(0.5,0.5,1), Default Rough=1.0\r\n+            \"R\": 0.5, \"G\": 0.5, \"B\": 0.5 \r\n         },\r\n         # 'respect_inputs' (use 16bit if any input is), 'force_8bit', 'force_16bit'\r\n         \"output_bit_depth\": \"respect_inputs\"\r\n     },\r\n"
                },
                {
                    "date": 1745261922167,
                    "content": "Index: \n===================================================================\n--- \n+++ \n@@ -15,8 +15,15 @@\n EXTRA_FILES_SUBDIR = \"Extra\"\r\n OUTPUT_BASE_DIR = \"../Asset_Processor_Output\" #accepts both relative and absolute paths\r\n METADATA_FILENAME = \"metadata.json\"\r\n \r\n+# --- Blender Integration Settings ---\r\n+# Default paths to Blender files for node group and material creation.\r\n+# Set these to absolute or relative paths if you want defaults.\r\n+# Command-line arguments (--nodegroup-blend, --materials-blend) will override these.\r\n+DEFAULT_NODEGROUP_BLEND_PATH = None # e.g., r\"G:\\Blender\\Libraries\\NodeGroups.blend\"\r\n+DEFAULT_MATERIALS_BLEND_PATH = None # e.g., r\"G:\\Blender\\Libraries\\Materials.blend\"\r\n+\r\n # --- Image Processing Settings ---\r\n # Target resolutions (Largest dimension in pixels)\r\n PNG_COMPRESSION_LEVEL = 6 # 0 (none) to 9 (max)\r\n # Quality for JPG output (0-100)\r\n"
                },
                {
                    "date": 1745262009600,
                    "content": "Index: \n===================================================================\n--- \n+++ \n@@ -21,8 +21,11 @@\n # Set these to absolute or relative paths if you want defaults.\r\n # Command-line arguments (--nodegroup-blend, --materials-blend) will override these.\r\n DEFAULT_NODEGROUP_BLEND_PATH = None # e.g., r\"G:\\Blender\\Libraries\\NodeGroups.blend\"\r\n DEFAULT_MATERIALS_BLEND_PATH = None # e.g., r\"G:\\Blender\\Libraries\\Materials.blend\"\r\n+# Path to the Blender executable. Required for running Blender scripts.\r\n+# Example: r\"C:\\Program Files\\Blender Foundation\\Blender 3.6\\blender.exe\"\r\n+BLENDER_EXECUTABLE_PATH = None # <<< SET THIS PATH!\r\n \r\n # --- Image Processing Settings ---\r\n # Target resolutions (Largest dimension in pixels)\r\n PNG_COMPRESSION_LEVEL = 6 # 0 (none) to 9 (max)\r\n"
                },
                {
                    "date": 1745262579051,
                    "content": "Index: \n===================================================================\n--- \n+++ \n@@ -19,10 +19,10 @@\n # --- Blender Integration Settings ---\r\n # Default paths to Blender files for node group and material creation.\r\n # Set these to absolute or relative paths if you want defaults.\r\n # Command-line arguments (--nodegroup-blend, --materials-blend) will override these.\r\n-DEFAULT_NODEGROUP_BLEND_PATH = None # e.g., r\"G:\\Blender\\Libraries\\NodeGroups.blend\"\r\n-DEFAULT_MATERIALS_BLEND_PATH = None # e.g., r\"G:\\Blender\\Libraries\\Materials.blend\"\r\n+DEFAULT_NODEGROUP_BLEND_PATH = r\"G/02 Content/10-19 Content/19 Catalogs/19.01 Blender Asset Catalogue/_CustomLibraries/Nodes-Linked/PBRSET-Nodes-Testing.blend\" # e.g., r\"G:\\Blender\\Libraries\\NodeGroups.blend\"\r\n+DEFAULT_MATERIALS_BLEND_PATH = r\"G/02 Content/10-19 Content/19 Catalogs/19.01 Blender Asset Catalogue/_CustomLibraries/Materials-Append/PBR Materials-Testing-Testing.blend\" # e.g., r\"G:\\Blender\\Libraries\\Materials.blend\"\r\n # Path to the Blender executable. Required for running Blender scripts.\r\n # Example: r\"C:\\Program Files\\Blender Foundation\\Blender 3.6\\blender.exe\"\r\n BLENDER_EXECUTABLE_PATH = None # <<< SET THIS PATH!\r\n \r\n"
                },
                {
                    "date": 1745262635453,
                    "content": "Index: \n===================================================================\n--- \n+++ \n@@ -0,0 +1,87 @@\n+# config.py\r\n+# Core settings defining the pipeline standards and output format.\r\n+\r\n+# --- Target Output Standards ---\r\n+TARGET_FILENAME_PATTERN = \"{base_name}_{map_type}_{resolution}.{ext}\"\r\n+STANDARD_MAP_TYPES = [\r\n+    \"COL\", \"NRM\", \"ROUGH\", \"METAL\", \"AO\", \"DISP\", \"REFL\",\r\n+    \"SSS\", \"FUZZ\", \"IDMAP\", \"MASK\"\r\n+]\r\n+# Map types that should always receive a numeric suffix (e.g., COL-1, COL-2)\r\n+# based on preset keyword order, even if only one variant is found.\r\n+RESPECT_VARIANT_MAP_TYPES = [\"COL\"]\r\n+\r\n+# Subdirectory within the final set folder for non-essential/unknown files\r\n+EXTRA_FILES_SUBDIR = \"Extra\"\r\n+OUTPUT_BASE_DIR = \"../Asset_Processor_Output\" #accepts both relative and absolute paths\r\n+METADATA_FILENAME = \"metadata.json\"\r\n+\r\n+# --- Blender Integration Settings ---\r\n+# Default paths to Blender files for node group and material creation.\r\n+# Set these to absolute or relative paths if you want defaults.\r\n+# Command-line arguments (--nodegroup-blend, --materials-blend) will override these.\r\n+DEFAULT_NODEGROUP_BLEND_PATH = r\"G/02 Content/10-19 Content/19 Catalogs/19.01 Blender Asset Catalogue/_CustomLibraries/Nodes-Linked/PBRSET-Nodes-Testing.blend\" # e.g., r\"G:\\Blender\\Libraries\\NodeGroups.blend\"\r\n+DEFAULT_MATERIALS_BLEND_PATH = r\"G/02 Content/10-19 Content/19 Catalogs/19.01 Blender Asset Catalogue/_CustomLibraries/Materials-Append/PBR Materials-Testing-Testing.blend\" # e.g., r\"G:\\Blender\\Libraries\\Materials.blend\"\r\n+# Path to the Blender executable. Required for running Blender scripts.\r\n+# Example: r\"C:\\Program Files\\Blender Foundation\\Blender 3.6\\blender.exe\"\r\n+BLENDER_EXECUTABLE_PATH = r\"C:/Program Files/Blender Foundation/Blender 4.4/blender.exe\" # <<< SET THIS PATH!\r\n+\r\n+# --- Image Processing Settings ---\r\n+# Target resolutions (Largest dimension in pixels)\r\n+PNG_COMPRESSION_LEVEL = 6 # 0 (none) to 9 (max)\r\n+# Quality for JPG output (0-100)\r\n+JPG_QUALITY = 98\r\n+# Resolution dimension threshold (pixels) above which 8-bit images are forced to JPG, overriding input format logic.\r\n+RESOLUTION_THRESHOLD_FOR_JPG = 4096\r\n+IMAGE_RESOLUTIONS = {\"8K\": 8192,\"4K\": 4096, \"2K\": 2048, \"1K\": 1024}\r\n+# Aspect ratio decimals (used for metadata, could potentially be removed later)\r\n+ASPECT_RATIO_DECIMALS = 2\r\n+# Bit depth rules per standard map type ('respect' or 'force_8bit')\r\n+MAP_BIT_DEPTH_RULES = {\r\n+    \"COL\": \"force_8bit\", \"NRM\": \"respect\", \"ROUGH\": \"force_8bit\", \"METAL\": \"force_8bit\",\r\n+    \"AO\": \"force_8bit\", \"DISP\": \"respect\", \"REFL\": \"force_bit\", \"SSS\": \"respect\",\r\n+    \"FUZZ\": \"force_bit\", \"IDMAP\": \"force_8bit\", \"MASK\": \"force_8bit\",\r\n+    \"DEFAULT\": \"respect\" # Fallback for map types not listed\r\n+}\r\n+# Output format preferences for 16-bit data\r\n+OUTPUT_FORMAT_16BIT_PRIMARY = \"png\" # Options: exr_dwaa, exr_dwab, exr_zip, png, tif\r\n+OUTPUT_FORMAT_16BIT_FALLBACK = \"png\"\r\n+# Output format for 8-bit data\r\n+OUTPUT_FORMAT_8BIT = \"png\" # Could allow 'jpg' later with quality settings\r\n+\r\n+# Map types that should always be saved in a lossless format (e.g., PNG, EXR)\r\n+# regardless of resolution threshold or input format.\r\n+#FORCE_LOSSLESS_MAP_TYPES = [\"NRM\", \"NRMRGN\"]\r\n+\r\n+# --- Map Merging Rules ---\r\n+# List of dictionaries, each defining a merge operation.\r\n+MAP_MERGE_RULES = [\r\n+    {\r\n+        \"output_map_type\": \"NRMRGH\", # Suffix or standard name for the merged map\r\n+        \"inputs\": { # Map target RGB channels to standard input map type names\r\n+            \"R\": \"NRM\", # Use Red channel from NRM\r\n+            \"G\": \"NRM\", # Use Green channel from NRM\r\n+            \"B\": \"ROUGH\" # Use Red channel from ROUGH (assuming it's grayscale)\r\n+        },\r\n+        \"defaults\": { # Default values (0.0 - 1.0) if an input map is missing\r\n+            \"R\": 0.5, \"G\": 0.5, \"B\": 0.5 \r\n+        },\r\n+        # 'respect_inputs' (use 16bit if any input is), 'force_8bit', 'force_16bit'\r\n+        \"output_bit_depth\": \"respect_inputs\"\r\n+    },\r\n+    # Example: Merge Metalness(R), Roughness(G), AO(B) -> \"MRA\" map often used in engines\r\n+    # {\r\n+    #     \"output_map_type\": \"MRA\",\r\n+    #     \"inputs\": {\"R\": \"METAL\", \"G\": \"ROUGH\", \"B\": \"AO\"},\r\n+    #     \"defaullllts\": {\"R\": 0.0, \"G\": 1.0, \"B\": 1.0}, # Default Metal=0, Rough=1, AO=1\r\n+    #     \"output_bit_depth\": \"force_8bit\" # Usually fine as 8bit\r\n+    # },\r\n+]\r\n+\r\n+# --- Metadata Settings ---\r\n+CALCULATE_STATS_RESOLUTION = \"1K\" # Resolution suffix used for calculating stats\r\n+DEFAULT_ASSET_CATEGORY = \"Surface\" # If rules don't identify Asset or Decal\r\n+\r\n+# --- Internal Settings ---\r\n+# Temporary directory prefix for processing folders\r\n+TEMP_DIR_PREFIX = \"_PROCESS_ASSET_\"\n\\ No newline at end of file\n"
                },
                {
                    "date": 1745262904956,
                    "content": "Index: \n===================================================================\n--- \n+++ \n@@ -0,0 +1,87 @@\n+# config.py\r\n+# Core settings defining the pipeline standards and output format.\r\n+\r\n+# --- Target Output Standards ---\r\n+TARGET_FILENAME_PATTERN = \"{base_name}_{map_type}_{resolution}.{ext}\"\r\n+STANDARD_MAP_TYPES = [\r\n+    \"COL\", \"NRM\", \"ROUGH\", \"METAL\", \"AO\", \"DISP\", \"REFL\",\r\n+    \"SSS\", \"FUZZ\", \"IDMAP\", \"MASK\"\r\n+]\r\n+# Map types that should always receive a numeric suffix (e.g., COL-1, COL-2)\r\n+# based on preset keyword order, even if only one variant is found.\r\n+RESPECT_VARIANT_MAP_TYPES = [\"COL\"]\r\n+\r\n+# Subdirectory within the final set folder for non-essential/unknown files\r\n+EXTRA_FILES_SUBDIR = \"Extra\"\r\n+OUTPUT_BASE_DIR = \"../Asset_Processor_Output\" #accepts both relative and absolute paths\r\n+METADATA_FILENAME = \"metadata.json\"\r\n+\r\n+# --- Blender Integration Settings ---\r\n+# Default paths to Blender files for node group and material creation.\r\n+# Set these to absolute or relative paths if you want defaults.\r\n+# Command-line arguments (--nodegroup-blend, --materials-blend) will override these.\r\n+DEFAULT_NODEGROUP_BLEND_PATH = r\"G:/02 Content/10-19 Content/19 Catalogs/19.01 Blender Asset Catalogue/_CustomLibraries/Nodes-Linked/PBRSET-Nodes-Testing.blend\" # e.g., r\"G:\\Blender\\Libraries\\NodeGroups.blend\"\r\n+DEFAULT_MATERIALS_BLEND_PATH = r\"G:/02 Content/10-19 Content/19 Catalogs/19.01 Blender Asset Catalogue/_CustomLibraries/Materials-Append/PBR Materials-Testing-Testing.blend\" # e.g., r\"G:\\Blender\\Libraries\\Materials.blend\"\r\n+# Path to the Blender executable. Required for running Blender scripts.\r\n+# Example: r\"C:\\Program Files\\Blender Foundation\\Blender 3.6\\blender.exe\"\r\n+BLENDER_EXECUTABLE_PATH = r\"C:/Program Files/Blender Foundation/Blender 4.4/blender.exe\" # <<< SET THIS PATH!\r\n+\r\n+# --- Image Processing Settings ---\r\n+# Target resolutions (Largest dimension in pixels)\r\n+PNG_COMPRESSION_LEVEL = 6 # 0 (none) to 9 (max)\r\n+# Quality for JPG output (0-100)\r\n+JPG_QUALITY = 98\r\n+# Resolution dimension threshold (pixels) above which 8-bit images are forced to JPG, overriding input format logic.\r\n+RESOLUTION_THRESHOLD_FOR_JPG = 4096\r\n+IMAGE_RESOLUTIONS = {\"8K\": 8192,\"4K\": 4096, \"2K\": 2048, \"1K\": 1024}\r\n+# Aspect ratio decimals (used for metadata, could potentially be removed later)\r\n+ASPECT_RATIO_DECIMALS = 2\r\n+# Bit depth rules per standard map type ('respect' or 'force_8bit')\r\n+MAP_BIT_DEPTH_RULES = {\r\n+    \"COL\": \"force_8bit\", \"NRM\": \"respect\", \"ROUGH\": \"force_8bit\", \"METAL\": \"force_8bit\",\r\n+    \"AO\": \"force_8bit\", \"DISP\": \"respect\", \"REFL\": \"force_bit\", \"SSS\": \"respect\",\r\n+    \"FUZZ\": \"force_bit\", \"IDMAP\": \"force_8bit\", \"MASK\": \"force_8bit\",\r\n+    \"DEFAULT\": \"respect\" # Fallback for map types not listed\r\n+}\r\n+# Output format preferences for 16-bit data\r\n+OUTPUT_FORMAT_16BIT_PRIMARY = \"png\" # Options: exr_dwaa, exr_dwab, exr_zip, png, tif\r\n+OUTPUT_FORMAT_16BIT_FALLBACK = \"png\"\r\n+# Output format for 8-bit data\r\n+OUTPUT_FORMAT_8BIT = \"png\" # Could allow 'jpg' later with quality settings\r\n+\r\n+# Map types that should always be saved in a lossless format (e.g., PNG, EXR)\r\n+# regardless of resolution threshold or input format.\r\n+#FORCE_LOSSLESS_MAP_TYPES = [\"NRM\", \"NRMRGN\"]\r\n+\r\n+# --- Map Merging Rules ---\r\n+# List of dictionaries, each defining a merge operation.\r\n+MAP_MERGE_RULES = [\r\n+    {\r\n+        \"output_map_type\": \"NRMRGH\", # Suffix or standard name for the merged map\r\n+        \"inputs\": { # Map target RGB channels to standard input map type names\r\n+            \"R\": \"NRM\", # Use Red channel from NRM\r\n+            \"G\": \"NRM\", # Use Green channel from NRM\r\n+            \"B\": \"ROUGH\" # Use Red channel from ROUGH (assuming it's grayscale)\r\n+        },\r\n+        \"defaults\": { # Default values (0.0 - 1.0) if an input map is missing\r\n+            \"R\": 0.5, \"G\": 0.5, \"B\": 0.5 \r\n+        },\r\n+        # 'respect_inputs' (use 16bit if any input is), 'force_8bit', 'force_16bit'\r\n+        \"output_bit_depth\": \"respect_inputs\"\r\n+    },\r\n+    # Example: Merge Metalness(R), Roughness(G), AO(B) -> \"MRA\" map often used in engines\r\n+    # {\r\n+    #     \"output_map_type\": \"MRA\",\r\n+    #     \"inputs\": {\"R\": \"METAL\", \"G\": \"ROUGH\", \"B\": \"AO\"},\r\n+    #     \"defaullllts\": {\"R\": 0.0, \"G\": 1.0, \"B\": 1.0}, # Default Metal=0, Rough=1, AO=1\r\n+    #     \"output_bit_depth\": \"force_8bit\" # Usually fine as 8bit\r\n+    # },\r\n+]\r\n+\r\n+# --- Metadata Settings ---\r\n+CALCULATE_STATS_RESOLUTION = \"1K\" # Resolution suffix used for calculating stats\r\n+DEFAULT_ASSET_CATEGORY = \"Surface\" # If rules don't identify Asset or Decal\r\n+\r\n+# --- Internal Settings ---\r\n+# Temporary directory prefix for processing folders\r\n+TEMP_DIR_PREFIX = \"_PROCESS_ASSET_\"\n\\ No newline at end of file\n"
                },
                {
                    "date": 1745263322203,
                    "content": "Index: \n===================================================================\n--- \n+++ \n@@ -0,0 +1,87 @@\n+# config.py\r\n+# Core settings defining the pipeline standards and output format.\r\n+\r\n+# --- Target Output Standards ---\r\n+TARGET_FILENAME_PATTERN = \"{base_name}_{map_type}_{resolution}.{ext}\"\r\n+STANDARD_MAP_TYPES = [\r\n+    \"COL\", \"NRM\", \"ROUGH\", \"METAL\", \"AO\", \"DISP\", \"REFL\",\r\n+    \"SSS\", \"FUZZ\", \"IDMAP\", \"MASK\"\r\n+]\r\n+# Map types that should always receive a numeric suffix (e.g., COL-1, COL-2)\r\n+# based on preset keyword order, even if only one variant is found.\r\n+RESPECT_VARIANT_MAP_TYPES = [\"COL\"]\r\n+\r\n+# Subdirectory within the final set folder for non-essential/unknown files\r\n+EXTRA_FILES_SUBDIR = \"Extra\"\r\n+OUTPUT_BASE_DIR = \"../Asset_Processor_Output\" #accepts both relative and absolute paths\r\n+METADATA_FILENAME = \"metadata.json\"\r\n+\r\n+# --- Blender Integration Settings ---\r\n+# Default paths to Blender files for node group and material creation.\r\n+# Set these to absolute or relative paths if you want defaults.\r\n+# Command-line arguments (--nodegroup-blend, --materials-blend) will override these.\r\n+DEFAULT_NODEGROUP_BLEND_PATH = r\"G:/02 Content/10-19 Content/19 Catalogs/19.01 Blender Asset Catalogue/_CustomLibraries/Nodes-Linked/PBRSET-Nodes-Testing.blend\" # e.g., r\"G:\\Blender\\Libraries\\NodeGroups.blend\"\r\n+DEFAULT_MATERIALS_BLEND_PATH = r\"G:/02 Content/10-19 Content/19 Catalogs/19.01 Blender Asset Catalogue/_CustomLibraries/Materials-Append/PBR Materials-Testing.blend\" # e.g., r\"G:\\Blender\\Libraries\\Materials.blend\"\r\n+# Path to the Blender executable. Required for running Blender scripts.\r\n+# Example: r\"C:\\Program Files\\Blender Foundation\\Blender 3.6\\blender.exe\"\r\n+BLENDER_EXECUTABLE_PATH = r\"C:/Program Files/Blender Foundation/Blender 4.4/blender.exe\" # <<< SET THIS PATH!\r\n+\r\n+# --- Image Processing Settings ---\r\n+# Target resolutions (Largest dimension in pixels)\r\n+PNG_COMPRESSION_LEVEL = 6 # 0 (none) to 9 (max)\r\n+# Quality for JPG output (0-100)\r\n+JPG_QUALITY = 98\r\n+# Resolution dimension threshold (pixels) above which 8-bit images are forced to JPG, overriding input format logic.\r\n+RESOLUTION_THRESHOLD_FOR_JPG = 4096\r\n+IMAGE_RESOLUTIONS = {\"8K\": 8192,\"4K\": 4096, \"2K\": 2048, \"1K\": 1024}\r\n+# Aspect ratio decimals (used for metadata, could potentially be removed later)\r\n+ASPECT_RATIO_DECIMALS = 2\r\n+# Bit depth rules per standard map type ('respect' or 'force_8bit')\r\n+MAP_BIT_DEPTH_RULES = {\r\n+    \"COL\": \"force_8bit\", \"NRM\": \"respect\", \"ROUGH\": \"force_8bit\", \"METAL\": \"force_8bit\",\r\n+    \"AO\": \"force_8bit\", \"DISP\": \"respect\", \"REFL\": \"force_bit\", \"SSS\": \"respect\",\r\n+    \"FUZZ\": \"force_bit\", \"IDMAP\": \"force_8bit\", \"MASK\": \"force_8bit\",\r\n+    \"DEFAULT\": \"respect\" # Fallback for map types not listed\r\n+}\r\n+# Output format preferences for 16-bit data\r\n+OUTPUT_FORMAT_16BIT_PRIMARY = \"png\" # Options: exr_dwaa, exr_dwab, exr_zip, png, tif\r\n+OUTPUT_FORMAT_16BIT_FALLBACK = \"png\"\r\n+# Output format for 8-bit data\r\n+OUTPUT_FORMAT_8BIT = \"png\" # Could allow 'jpg' later with quality settings\r\n+\r\n+# Map types that should always be saved in a lossless format (e.g., PNG, EXR)\r\n+# regardless of resolution threshold or input format.\r\n+#FORCE_LOSSLESS_MAP_TYPES = [\"NRM\", \"NRMRGN\"]\r\n+\r\n+# --- Map Merging Rules ---\r\n+# List of dictionaries, each defining a merge operation.\r\n+MAP_MERGE_RULES = [\r\n+    {\r\n+        \"output_map_type\": \"NRMRGH\", # Suffix or standard name for the merged map\r\n+        \"inputs\": { # Map target RGB channels to standard input map type names\r\n+            \"R\": \"NRM\", # Use Red channel from NRM\r\n+            \"G\": \"NRM\", # Use Green channel from NRM\r\n+            \"B\": \"ROUGH\" # Use Red channel from ROUGH (assuming it's grayscale)\r\n+        },\r\n+        \"defaults\": { # Default values (0.0 - 1.0) if an input map is missing\r\n+            \"R\": 0.5, \"G\": 0.5, \"B\": 0.5 \r\n+        },\r\n+        # 'respect_inputs' (use 16bit if any input is), 'force_8bit', 'force_16bit'\r\n+        \"output_bit_depth\": \"respect_inputs\"\r\n+    },\r\n+    # Example: Merge Metalness(R), Roughness(G), AO(B) -> \"MRA\" map often used in engines\r\n+    # {\r\n+    #     \"output_map_type\": \"MRA\",\r\n+    #     \"inputs\": {\"R\": \"METAL\", \"G\": \"ROUGH\", \"B\": \"AO\"},\r\n+    #     \"defaullllts\": {\"R\": 0.0, \"G\": 1.0, \"B\": 1.0}, # Default Metal=0, Rough=1, AO=1\r\n+    #     \"output_bit_depth\": \"force_8bit\" # Usually fine as 8bit\r\n+    # },\r\n+]\r\n+\r\n+# --- Metadata Settings ---\r\n+CALCULATE_STATS_RESOLUTION = \"1K\" # Resolution suffix used for calculating stats\r\n+DEFAULT_ASSET_CATEGORY = \"Surface\" # If rules don't identify Asset or Decal\r\n+\r\n+# --- Internal Settings ---\r\n+# Temporary directory prefix for processing folders\r\n+TEMP_DIR_PREFIX = \"_PROCESS_ASSET_\"\n\\ No newline at end of file\n"
                }
            ],
            "date": 1745224931023,
            "name": "Commit-0",
            "content": "# config.py\r\n# Core settings defining the pipeline standards and output format.\r\n\r\n# --- Target Output Standards ---\r\nTARGET_FILENAME_PATTERN = \"{base_name}_{map_type}_{resolution}.{ext}\"\r\nSTANDARD_MAP_TYPES = [\r\n    \"COL\", \"NRM\", \"ROUGH\", \"METAL\", \"AO\", \"DISP\", \"REFL\",\r\n    \"SSS\", \"FUZZ\", \"IDMAP\", \"MASK\"\r\n]\r\n# Map types that should always receive a numeric suffix (e.g., COL-1, COL-2)\r\n# based on preset keyword order, even if only one variant is found.\r\nRESPECT_VARIANT_MAP_TYPES = [\"COL\"]\r\n\r\n# Subdirectory within the final set folder for non-essential/unknown files\r\nEXTRA_FILES_SUBDIR = \"Extra\"\r\nOUTPUT_BASE_DIR = \"../Asset_Processor_Output\" #accepts both relative and absolute paths\r\nMETADATA_FILENAME = \"metadata.json\"\r\n\r\n# --- Image Processing Settings ---\r\n# Target resolutions (Largest dimension in pixels)\r\nPNG_COMPRESSION_LEVEL = 6 # 0 (none) to 9 (max)\r\n# Quality for JPG output (0-100)\r\nJPG_QUALITY = 98\r\n# Resolution dimension threshold (pixels) above which 8-bit images are forced to JPG, overriding input format logic.\r\nRESOLUTION_THRESHOLD_FOR_JPG = 4096\r\nIMAGE_RESOLUTIONS = {\"8K\": 8192,\"4K\": 4096, \"2K\": 2048, \"1K\": 1024}\r\n# Aspect ratio decimals (used for metadata, could potentially be removed later)\r\nASPECT_RATIO_DECIMALS = 2\r\n# Bit depth rules per standard map type ('respect' or 'force_8bit')\r\nMAP_BIT_DEPTH_RULES = {\r\n    \"COL\": \"force_8bit\", \"NRM\": \"respect\", \"ROUGH\": \"force_8bit\", \"METAL\": \"force_8bit\",\r\n    \"AO\": \"force_8bit\", \"DISP\": \"respect\", \"REFL\": \"force_bit\", \"SSS\": \"respect\",\r\n    \"FUZZ\": \"force_bit\", \"IDMAP\": \"force_8bit\", \"MASK\": \"force_8bit\",\r\n    \"DEFAULT\": \"respect\" # Fallback for map types not listed\r\n}\r\n# Output format preferences for 16-bit data\r\nOUTPUT_FORMAT_16BIT_PRIMARY = \"png\" # Options: exr_dwaa, exr_dwab, exr_zip, png, tif\r\nOUTPUT_FORMAT_16BIT_FALLBACK = \"png\"\r\n# Output format for 8-bit data\r\nOUTPUT_FORMAT_8BIT = \"png\" # Could allow 'jpg' later with quality settings\r\n\r\n# Map types that should always be saved in a lossless format (e.g., PNG, EXR)\r\n# regardless of resolution threshold or input format.\r\nFORCE_LOSSLESS_MAP_TYPES = [\"NRM\", \"NRMRGN\"]\r\n\r\n# --- Map Merging Rules ---\r\n# List of dictionaries, each defining a merge operation.\r\nMAP_MERGE_RULES = [\r\n    {\r\n        \"output_map_type\": \"NRMRGH\", # Suffix or standard name for the merged map\r\n        \"inputs\": { # Map target RGB channels to standard input map type names\r\n            \"R\": \"NRM\", # Use Red channel from NRM\r\n            \"G\": \"NRM\", # Use Green channel from NRM\r\n            \"B\": \"ROUGH\" # Use Red channel from ROUGH (assuming it's grayscale)\r\n        },\r\n        \"defaults\": { # Default values (0.0 - 1.0) if an input map is missing\r\n            \"R\": 0.5, \"G\": 0.5, \"B\": 1.0 # Default Nrm=(0.5,0.5,1), Default Rough=1.0\r\n        },\r\n        # 'respect_inputs' (use 16bit if any input is), 'force_8bit', 'force_16bit'\r\n        \"output_bit_depth\": \"respect_inputs\"\r\n    },\r\n    # Example: Merge Metalness(R), Roughness(G), AO(B) -> \"MRA\" map often used in engines\r\n    # {\r\n    #     \"output_map_type\": \"MRA\",\r\n    #     \"inputs\": {\"R\": \"METAL\", \"G\": \"ROUGH\", \"B\": \"AO\"},\r\n    #     \"defaullllts\": {\"R\": 0.0, \"G\": 1.0, \"B\": 1.0}, # Default Metal=0, Rough=1, AO=1\r\n    #     \"output_bit_depth\": \"force_8bit\" # Usually fine as 8bit\r\n    # },\r\n]\r\n\r\n# --- Metadata Settings ---\r\nCALCULATE_STATS_RESOLUTION = \"1K\" # Resolution suffix used for calculating stats\r\nDEFAULT_ASSET_CATEGORY = \"Surface\" # If rules don't identify Asset or Decal\r\n\r\n# --- Internal Settings ---\r\n# Temporary directory prefix for processing folders\r\nTEMP_DIR_PREFIX = \"_PROCESS_ASSET_\""
        }
    ]
}