{
  "id": "wan22-hdr-universal",
  "revision": 0,
  "last_node_id": 15,
  "last_link_id": 16,
  "nodes": [
    {
      "id": 1,
      "type": "UNETLoader",
      "pos": [
        40,
        60
      ],
      "size": [
        380,
        82
      ],
      "flags": {},
      "order": 1,
      "mode": 0,
      "inputs": [],
      "outputs": [
        {
          "name": "MODEL",
          "type": "MODEL",
          "links": [
            1
          ],
          "slot_index": 0
        }
      ],
      "properties": {
        "Node name for S&R": "UNETLoader"
      },
      "widgets_values": [
        "wan2.2_t2v_high_noise_14B_fp8_scaled.safetensors",
        "default"
      ],
      "title": "WAN 2.2 HIGH-noise model"
    },
    {
      "id": 2,
      "type": "UNETLoader",
      "pos": [
        40,
        190
      ],
      "size": [
        380,
        82
      ],
      "flags": {},
      "order": 2,
      "mode": 0,
      "inputs": [],
      "outputs": [
        {
          "name": "MODEL",
          "type": "MODEL",
          "links": [
            2
          ],
          "slot_index": 0
        }
      ],
      "properties": {
        "Node name for S&R": "UNETLoader"
      },
      "widgets_values": [
        "wan2.2_t2v_low_noise_14B_fp8_scaled.safetensors",
        "default"
      ],
      "title": "WAN 2.2 LOW-noise model"
    },
    {
      "id": 3,
      "type": "CLIPLoader",
      "pos": [
        40,
        320
      ],
      "size": [
        380,
        106
      ],
      "flags": {},
      "order": 3,
      "mode": 0,
      "inputs": [],
      "outputs": [
        {
          "name": "CLIP",
          "type": "CLIP",
          "links": [
            3,
            4
          ],
          "slot_index": 0
        }
      ],
      "properties": {
        "Node name for S&R": "CLIPLoader"
      },
      "widgets_values": [
        "umt5_xxl_fp8_e4m3fn_scaled.safetensors",
        "wan",
        "default"
      ]
    },
    {
      "id": 4,
      "type": "VAELoader",
      "pos": [
        40,
        470
      ],
      "size": [
        380,
        58
      ],
      "flags": {},
      "order": 4,
      "mode": 0,
      "inputs": [],
      "outputs": [
        {
          "name": "VAE",
          "type": "VAE",
          "links": [
            5
          ],
          "slot_index": 0
        }
      ],
      "properties": {
        "Node name for S&R": "VAELoader"
      },
      "widgets_values": [
        "wan_2.1_vae.safetensors"
      ]
    },
    {
      "id": 5,
      "type": "CLIPTextEncode",
      "pos": [
        470,
        60
      ],
      "size": [
        420,
        160
      ],
      "flags": {},
      "order": 5,
      "mode": 0,
      "inputs": [
        {
          "name": "clip",
          "type": "CLIP",
          "link": 3
        }
      ],
      "outputs": [
        {
          "name": "CONDITIONING",
          "type": "CONDITIONING",
          "links": [
            6,
            7
          ],
          "slot_index": 0
        }
      ],
      "properties": {
        "Node name for S&R": "CLIPTextEncode"
      },
      "widgets_values": [
        "Golden hour city street after rain, low sun flaring between buildings, wet asphalt with bright specular reflections, neon signs, cinematic, shallow depth of field, smooth dolly forward"
      ],
      "title": "Positive"
    },
    {
      "id": 6,
      "type": "CLIPTextEncode",
      "pos": [
        470,
        270
      ],
      "size": [
        420,
        120
      ],
      "flags": {},
      "order": 6,
      "mode": 0,
      "inputs": [
        {
          "name": "clip",
          "type": "CLIP",
          "link": 4
        }
      ],
      "outputs": [
        {
          "name": "CONDITIONING",
          "type": "CONDITIONING",
          "links": [
            8,
            9
          ],
          "slot_index": 0
        }
      ],
      "properties": {
        "Node name for S&R": "CLIPTextEncode"
      },
      "widgets_values": [
        "blurry, low quality, watermark, text, jpeg artifacts, flicker, overexposed flat highlights"
      ],
      "title": "Negative"
    },
    {
      "id": 7,
      "type": "EmptyHunyuanLatentVideo",
      "pos": [
        470,
        440
      ],
      "size": [
        420,
        130
      ],
      "flags": {},
      "order": 7,
      "mode": 0,
      "inputs": [],
      "outputs": [
        {
          "name": "LATENT",
          "type": "LATENT",
          "links": [
            10
          ],
          "slot_index": 0
        }
      ],
      "properties": {
        "Node name for S&R": "EmptyHunyuanLatentVideo"
      },
      "widgets_values": [
        1280,
        704,
        81,
        1
      ],
      "title": "Video latent — 81 frames @ 1280×704"
    },
    {
      "id": 8,
      "type": "KSamplerAdvanced",
      "pos": [
        940,
        60
      ],
      "size": [
        330,
        334
      ],
      "flags": {},
      "order": 8,
      "mode": 0,
      "inputs": [
        {
          "name": "model",
          "type": "MODEL",
          "link": 1
        },
        {
          "name": "positive",
          "type": "CONDITIONING",
          "link": 6
        },
        {
          "name": "negative",
          "type": "CONDITIONING",
          "link": 8
        },
        {
          "name": "latent_image",
          "type": "LATENT",
          "link": 10
        }
      ],
      "outputs": [
        {
          "name": "LATENT",
          "type": "LATENT",
          "links": [
            11
          ],
          "slot_index": 0
        }
      ],
      "properties": {
        "Node name for S&R": "KSamplerAdvanced"
      },
      "widgets_values": [
        "enable",
        719411573,
        "randomize",
        20,
        3.5,
        "euler",
        "simple",
        0,
        10,
        "enable"
      ],
      "title": "Stage 1 — high-noise (steps 0-10)"
    },
    {
      "id": 9,
      "type": "KSamplerAdvanced",
      "pos": [
        1300,
        60
      ],
      "size": [
        330,
        334
      ],
      "flags": {},
      "order": 9,
      "mode": 0,
      "inputs": [
        {
          "name": "model",
          "type": "MODEL",
          "link": 2
        },
        {
          "name": "positive",
          "type": "CONDITIONING",
          "link": 7
        },
        {
          "name": "negative",
          "type": "CONDITIONING",
          "link": 9
        },
        {
          "name": "latent_image",
          "type": "LATENT",
          "link": 11
        }
      ],
      "outputs": [
        {
          "name": "LATENT",
          "type": "LATENT",
          "links": [
            12
          ],
          "slot_index": 0
        }
      ],
      "properties": {
        "Node name for S&R": "KSamplerAdvanced"
      },
      "widgets_values": [
        "disable",
        0,
        "fixed",
        20,
        3.5,
        "euler",
        "simple",
        10,
        10000,
        "disable"
      ],
      "title": "Stage 2 — low-noise (steps 10-20)"
    },
    {
      "id": 10,
      "type": "VAEDecode",
      "pos": [
        1660,
        60
      ],
      "size": [
        210,
        46
      ],
      "flags": {},
      "order": 10,
      "mode": 0,
      "inputs": [
        {
          "name": "samples",
          "type": "LATENT",
          "link": 12
        },
        {
          "name": "vae",
          "type": "VAE",
          "link": 5
        }
      ],
      "outputs": [
        {
          "name": "IMAGE",
          "type": "IMAGE",
          "links": [
            13
          ],
          "slot_index": 0
        }
      ],
      "properties": {
        "Node name for S&R": "VAEDecode"
      }
    },
    {
      "id": 11,
      "type": "RadianceSDRToHDRUniversal",
      "pos": [
        1660,
        170
      ],
      "size": [
        400,
        320
      ],
      "flags": {},
      "order": 11,
      "mode": 0,
      "inputs": [
        {
          "name": "image",
          "type": "IMAGE",
          "link": 13
        }
      ],
      "outputs": [
        {
          "name": "image",
          "type": "IMAGE",
          "links": [
            14,
            15
          ],
          "slot_index": 0
        },
        {
          "name": "highlight_mask",
          "type": "MASK",
          "links": [],
          "slot_index": 1
        },
        {
          "name": "shadow_mask",
          "type": "MASK",
          "links": [],
          "slot_index": 2
        },
        {
          "name": "highlight_confidence",
          "type": "MASK",
          "links": [],
          "slot_index": 3
        },
        {
          "name": "shadow_confidence",
          "type": "MASK",
          "links": [],
          "slot_index": 4
        }
      ],
      "properties": {
        "Node name for S&R": "RadianceSDRToHDRUniversal"
      },
      "widgets_values": [
        "sRGB",
        1000.0,
        203.0,
        "adaptive",
        0.75,
        1.6,
        0.85,
        "Linear",
        1.0,
        "Video Frames",
        0.05,
        "Expand",
        0.98,
        5,
        "",
        "Auto",
        "",
        512,
        64,
        "highlights",
        1.0
      ],
      "title": "SDR → HDR Universal (math path for video)"
    },
    {
      "id": 12,
      "type": "RadianceWrite",
      "pos": [
        2110,
        60
      ],
      "size": [
        420,
        420
      ],
      "flags": {},
      "order": 12,
      "mode": 0,
      "inputs": [
        {
          "name": "image",
          "type": "*",
          "link": 14
        },
        {
          "name": "audio",
          "type": "AUDIO",
          "link": null
        }
      ],
      "outputs": [],
      "properties": {
        "Node name for S&R": "RadianceWrite"
      },
      "widgets_values": [
        "./output/wan22_hdr",
        "SEQ │ EXR (16-bit half)",
        "wan22_hdr",
        1,
        "Linear (pass-through)",
        24.0,
        18,
        "ZIP",
        1001,
        4,
        "",
        false,
        true,
        0.0
      ],
      "title": "EXR sequence — scene-linear master"
    },
    {
      "id": 13,
      "type": "RadianceHDREncode",
      "pos": [
        2110,
        540
      ],
      "size": [
        420,
        200
      ],
      "flags": {},
      "order": 13,
      "mode": 0,
      "inputs": [
        {
          "name": "image",
          "type": "IMAGE",
          "link": 15
        }
      ],
      "outputs": [
        {
          "name": "IMAGE",
          "type": "IMAGE",
          "links": [
            16
          ],
          "slot_index": 0
        }
      ],
      "properties": {
        "Node name for S&R": "RadianceHDREncode"
      },
      "widgets_values": [
        "PQ (HDR10)",
        "1000",
        203.0,
        1.0,
        false
      ],
      "title": "PQ encode — HDR10 check"
    },
    {
      "id": 14,
      "type": "PreviewImage",
      "pos": [
        2580,
        540
      ],
      "size": [
        400,
        300
      ],
      "flags": {},
      "order": 14,
      "mode": 0,
      "inputs": [
        {
          "name": "images",
          "type": "IMAGE",
          "link": 16
        }
      ],
      "outputs": [],
      "properties": {
        "Node name for S&R": "PreviewImage"
      },
      "title": "PQ-encoded preview (dark mids = normal)"
    },
    {
      "id": 15,
      "type": "Note",
      "pos": [
        940,
        440
      ],
      "size": [
        690,
        300
      ],
      "flags": {},
      "order": 15,
      "mode": 0,
      "inputs": [],
      "outputs": [],
      "properties": {
        "Node name for S&R": "Note"
      },
      "widgets_values": [
        "WAN 2.2 → HDR — recommended path (v3.1.2+)\n\n• HDR conversion runs on the MATH path: for multi-frame video the\n  SDR→HDR Universal node intentionally skips RUDRA learned\n  reconstruction (WAN's video VAE compresses 81→21 frames, and the\n  current wan/ltx/hunyuan RUDRA checkpoints were trained on T=1\n  stills). Leave the node's optional 'vae' input DISCONNECTED for\n  video — connecting it just logs a skip notice.\n• adaptive knee 0.75 + temporal_smoothing 0.85 = flicker-free\n  highlight expansion; raise shoulder_gamma toward 2.0 if only\n  speculars should expand.\n• Linear output → EXR (16-bit half) is the grading master;\n  the PQ branch is a delivery/QC check (preview looks dim — that's\n  PQ, view on an HDR monitor or via the Radiance HDR Monitor node).\n• For stills: single-frame input + connected VAE + a trained RUDRA\n  checkpoint enables learned highlight reconstruction."
      ],
      "title": "READ ME — WAN 2.2 HDR"
    }
  ],
  "links": [
    [
      1,
      1,
      0,
      8,
      0,
      "MODEL"
    ],
    [
      2,
      2,
      0,
      9,
      0,
      "MODEL"
    ],
    [
      3,
      3,
      0,
      5,
      0,
      "CLIP"
    ],
    [
      4,
      3,
      0,
      6,
      0,
      "CLIP"
    ],
    [
      5,
      4,
      0,
      10,
      1,
      "VAE"
    ],
    [
      6,
      5,
      0,
      8,
      1,
      "CONDITIONING"
    ],
    [
      7,
      5,
      0,
      9,
      1,
      "CONDITIONING"
    ],
    [
      8,
      6,
      0,
      8,
      2,
      "CONDITIONING"
    ],
    [
      9,
      6,
      0,
      9,
      2,
      "CONDITIONING"
    ],
    [
      10,
      7,
      0,
      8,
      3,
      "LATENT"
    ],
    [
      11,
      8,
      0,
      9,
      3,
      "LATENT"
    ],
    [
      12,
      9,
      0,
      10,
      0,
      "LATENT"
    ],
    [
      13,
      10,
      0,
      11,
      0,
      "IMAGE"
    ],
    [
      14,
      11,
      0,
      12,
      0,
      "IMAGE"
    ],
    [
      15,
      11,
      0,
      13,
      0,
      "IMAGE"
    ],
    [
      16,
      13,
      0,
      14,
      0,
      "IMAGE"
    ]
  ],
  "groups": [
    {
      "id": 1,
      "title": "WAN 2.2 T2V generation",
      "bounding": [
        20,
        -10,
        1630,
        800
      ],
      "color": "#3f789e",
      "font_size": 24,
      "flags": {}
    },
    {
      "id": 2,
      "title": "Radiance HDR",
      "bounding": [
        1650,
        -10,
        1350,
        880
      ],
      "color": "#8f5f3f",
      "font_size": 24,
      "flags": {}
    }
  ],
  "config": {},
  "extra": {
    "note": "Radiance v3.1.2+ — SDR→HDR Universal math path for video"
  },
  "version": 0.4
}