{ "last_node_id": 8, "last_link_id": 9, "nodes": [ { "id": 1, "type": "LoadImage", "pos": [50, 150], "size": [315, 314], "flags": {}, "order": 0, "mode": 0, "outputs": [ { "name": "IMAGE", "type": "IMAGE", "links": [1, 2], "shape": 3 } ], "properties": {}, "widgets_values": [ "texture_with_shadows.png", "image" ], "title": "Load Texture (with uneven lighting)" }, { "id": 2, "type": "TextureEqualizer", "pos": [450, 150], "size": [315, 200], "flags": {}, "order": 1, "mode": 0, "inputs": [ { "name": "image", "type": "IMAGE", "link": 1 } ], "outputs": [ { "name": "image", "type": "IMAGE", "links": [3], "shape": 3 }, { "name": "average_color", "type": "IMAGE", "links": [5], "shape": 3 } ], "properties": {}, "widgets_values": [ 100.0, 1.0, true, "overlay" ], "title": "Texture Equalizer (Remove Shadows)" }, { "id": 3, "type": "PreviewImage", "pos": [850, 50], "size": [500, 500], "flags": {}, "order": 2, "mode": 0, "inputs": [ { "name": "images", "type": "IMAGE", "link": 2 } ], "properties": {}, "title": "Original (With Shadows)" }, { "id": 4, "type": "PreviewImage", "pos": [850, 600], "size": [500, 500], "flags": {}, "order": 3, "mode": 0, "inputs": [ { "name": "images", "type": "IMAGE", "link": 3 } ], "properties": {}, "title": "Equalized (Shadows Removed)" }, { "id": 5, "type": "Note", "pos": [50, 550], "size": [700, 250], "flags": {}, "order": 4, "mode": 0, "properties": {}, "widgets_values": [ "TEXTURE EQUALIZER TEST WORKFLOW\n\nPURPOSE:\n- Remove uneven lighting and shadows from textures\n- Based on Photoshop's High Pass + Linear Light technique\n- Perfect for cleaning albedo/diffuse and height maps\n\nHOW IT WORKS:\n1. Extracts average color from texture\n2. Applies High Pass filter to isolate details\n3. Blends using Linear Light mode to normalize lighting\n4. Optional: Preserves original color hue\n\nOUTPUTS:\n- image = Equalized result\n- average_color = Debug output showing extracted average tone\n\nPARAMETERS:\n- Radius: 50-150 typical (100 is default)\n * Lower = preserves more gradients\n * Higher = more aggressive flattening\n\n- Strength: 0.0-2.0\n * 1.0 = full correction\n * 0.5 = blend 50% with original\n * 2.0 = exaggerated effect\n\n- Preserve Color: ON (recommended for albedo)\n * Keeps original hue and saturation\n * Only changes brightness/lighting\n\n- Method: overlay / soft_light / linear_light\n * overlay = Photoshop standard (recommended)\n * soft_light = Subtle, gentle correction\n * linear_light = Strong, aggressive correction\n\nDEBUGGING:\nCheck console output for:\n- Average color values\n- High Pass range\n- Blend value range\n- Result before/after clamp\n\nIf output is too dark/bright:\n- Check average_color preview\n- Adjust radius (try 50-200)\n- Adjust strength (try 0.5-1.5)\n\nUSE CASES:\n✓ Photos with uneven lighting\n✓ Textures with shadows/highlights\n✓ Preparing textures for tiling\n✓ Cleaning scanned materials\n✓ Normalizing lighting variations\n\nREFERENCE:\nhttps://tolas.wordpress.com/2009/05/26/tutorial-how-to-equalize-textures-in-photoshop/" ], "bgcolor": "#335" }, { "id": 6, "type": "TextureEqualizer", "pos": [1400, 150], "size": [315, 200], "flags": {}, "order": 5, "mode": 0, "inputs": [ { "name": "image", "type": "IMAGE", "link": 3 } ], "outputs": [ { "name": "image", "type": "IMAGE", "links": [4], "shape": 3 } ], "properties": {}, "widgets_values": [ 50.0, 1.0, true, "overlay" ], "title": "Test: Radius 50 (Softer)" }, { "id": 7, "type": "PreviewImage", "pos": [1800, 150], "size": [400, 400], "flags": {}, "order": 6, "mode": 0, "inputs": [ { "name": "images", "type": "IMAGE", "link": 4 } ], "properties": {}, "title": "Radius 50 Result" }, { "id": 8, "type": "PreviewImage", "pos": [1400, 450], "size": [300, 300], "flags": {}, "order": 7, "mode": 0, "inputs": [ { "name": "images", "type": "IMAGE", "link": 5 } ], "properties": {}, "title": "Average Color (Debug)" } ], "links": [ [1, 1, 0, 2, 0, "IMAGE"], [2, 1, 0, 3, 0, "IMAGE"], [3, 2, 0, 4, 0, "IMAGE"], [4, 6, 0, 7, 0, "IMAGE"], [5, 2, 1, 8, 0, "IMAGE"] ], "groups": [], "config": {}, "extra": {}, "version": 0.4 }