← 上一篇 · 区域识别版 SDR→HDR 系统
Inverse Tone Mapping · 新一代思路

SDR → HDR
让 AI 只当测光表

上一套系统靠规则式场景识别判断"哪里是光源",准但总有漏检。这一套换了思路: 用 LTX HDR 模型的 EXR 输出当"哪里该亮、该多亮"的增益图(gainmap), 再把这个增益只作用在原始 SDR 的像素上——既拿到 AI 的判断力,又一点不虚构画面细节

LTX HDR · EXR 线性输出 Gainmap = LTX亮度 ÷ SDR亮度 原片细节零改写 4K 原生 · Rec.2020 PQ 免规则 · 免漏检
01 · 承接

为什么要换思路

上一套区域识别系统用 YOLOE 开放词汇检测把每个像素分成 自发光 / 反射 / 普通三类,再差异化提亮。它在"懂内容"这件事上已经做得很细,但命门是规则本身

🕳️

规则覆盖不全 → 漏检

提示词、阈值、形态学全是人定的。遇到非常规光源、复杂反射、奇异材质,规则没覆盖到就漏提亮——这正是实际使用里最常见的抱怨。

🧩

多环节耦合,调一处动全身

检测、分类、色调映射、时序四个环节互相牵连。一个"效果不对"背后可能是四个问题叠加,调参像走钢丝。

🤖

而 AI 恰好擅长"理解画面"

LTX 这类模型对"哪里该亮"的语义判断又准又全——正好补上规则的短板。问题只剩:怎么用它,又不被它的副作用反噬。

补充 · 关于 LTX HDR

LTX HDR 是什么

本方案里的那个"AI 测光表",就是 LTX HDR——它建立在开源视频生成模型 LTX-Video(Lightricks)之上,是社区放出的一个 HDR IC-LoRA(In-Context LoRA)扩展(beta)。 给它一帧 SDR,它会"想象"出这帧在 HDR 下应有的样子,并以 线性光 EXR(scene-referred、亮度可超过 1.0)输出—— 相当于一张携带了真实高光亮度的"参考答案"。

🧠

它强在哪

靠生成模型的语义理解判断"哪里该亮、该多亮",能覆盖规则写不全的复杂光源与材质——基本不漏检

🎞️

它的副作用

毕竟是生成模型:会改写/虚构纹理与物体,分辨率受限(实测约 ~800p),且逐帧判断会抖动

💡

我们怎么用它

只取它 EXR 输出当"亮度参考"、提取增益图,丢掉它生成的像素——把判断力留下,副作用扔掉。

02 · 三条路线

三种做法,各有死穴

把同一段室内 SDR 升 HDR,有三条路可走。关键矛盾就一句话: "判断哪里该亮"和"保住画面真实细节",能不能兼得。

维度 路线 A · 区域识别(规则) 路线 B · LTX 直接输出 路线 C · LTX gainmap ✦
"哪里该亮"判断 规则检测,易漏检 AI 语义,准且全 AI 语义,准且全(借 LTX)
画面细节 原片,真实 被生成模型改写 / 虚构 原片,真实(增益只改亮度)
分辨率 原生(4K) 受模型限制(~800p) 原生 4K
时序稳定 中(检测抖动) 差(逐帧生成抖动) 中→好(增益是低频场,可时域滤波)
可控 / 可解释 低(黑盒生成) 高(增益场可视化、可限幅)
核心洞察:LTX 直接输出的两个死穴——改写细节分辨率低——都出在"它生成了像素"。 但我们其实不需要它的像素,只需要它的亮度判断。把"该多亮"抽出来、丢掉它生成的纹理,问题就解了。
03 · 原理

Gainmap:只借 LTX 的"亮度判断"

手机 HDR 照片的本质就是 SDR 基础层 + 增益图。我们把同一思路反过来用: 让 LTX 当那张增益图的"预言家"。

增益图 gainmap = LTX 亮度 ÷ SDR 亮度  (曝光归一 · 置信门控 · 引导平滑 · 亮度封顶)
HDR 结果 = 原始 SDR 的 RGB × gainmap
LTX 只决定"哪里、提多少";所有真实像素 / 颜色 / 纹理都来自原片 SDR → 数学上不可能混入虚构细节。
IN·a
SDR 源
16-bit 读取,保住母版细节
IN·b
LTX EXR
线性 HDR,直接读不做 gamma
01
几何对齐
宽匹配 + 居中裁切复原
02
算增益图
LTX÷SDR 亮度比
03
归一·门控·平滑
去全局曝光 / 护栏 / 引导滤波
04
贴回原片
增益升采样 × 4K SDR
OUT
HDR10 / JXL
Rec.2020 PQ

为什么这能成立

  • EXR 是线性、scene-referred 的,真实携带了高光超白亮度,正是"该多亮"的答案;
  • 实测 LTX 与 SDR 在中间调的亮度比≈1.17、结构相关 0.86——结构一致,增益图有意义;
  • 增益图是低频平滑场,升采样贴回 4K 不损原片任何细节。

几个关键护栏

  • 曝光归一化:用中间调比值中位数去掉 LTX 的全局曝光漂移,只留语义提亮;
  • 亮度空间封顶:按输出 nits(而非增益倍数)封顶——既不压暗处真实光源,又让高光不撞钳位、消除高光偏色
  • 暗部噪点保护:暗区默认压住、真实亮源可越权,避免放大 SDR 噪点。
04 · 交互对比

拖动中线:左 SDR ↔ 右 HDR

同一帧(室内 · 第 11 秒)。左边永远是 SDR 原片,右边是可切换的 HDR 方案。 拖动中间的竖线,直接看同一处在 SDR 与 HDR 下的差别;点上方按钮切换右侧的 HDR 技术方案。

HDR 图在支持 HDR 的浏览器(Chrome / Safari)+ HDR 屏上才会真正"亮起来"。非 HDR 环境下,仍可对比右侧画面细节是否被改写——切到「LTX 直接」尤其明显。
右侧 HDR 方案:
SDR 原片 HDR 结果
SDR
HDR · LTX gainmap
❮❯

LTX gainmap(选定):借 LTX 的亮度判断、像素全用原片。4K 原生、细节真实、提亮精准——三者兼得。拖动时右侧只是变亮,画面结构和左侧 SDR 完全一致。

05 · 结论

为什么选 LTX gainmap

把三条路线放回最初那句矛盾——"判断哪里该亮" × "保住真实细节"——只有路线 C 同时占住两头:

拿了 AI 的长处

"哪里该亮、该多亮"交给 LTX 的语义理解,不再靠规则、不再漏检——直接解决上一套系统的命门。

丢了 AI 的副作用

只取它的亮度判断,丢掉它生成的像素。细节、颜色、分辨率全来自原片 → 数学上不可能虚构细节

保留了工程可控性

增益图可视化、可限幅、可时域滤波。延续上一套"有真值评测 + 单帧诊断"的方法论,黑盒变白盒。

一句话:LTX 直接输出是"AI 重画一遍",区域识别是"人写规则提亮", 而 LTX gainmap 是"让 AI 只当测光表,原片自己变亮"——这才是既准又真、还能上 4K 的解。
06 · 仍在打磨

已知局限与下一步

室内场景已经很稳;当前主要待解的是室外的帧间一致性

问题 · 室外局部闪烁

实测全片高光闪烁均值仅 2.4%,但室外大动态区(天空 / 树叶 / 水面高光)存在局部闪烁。根因是 LTX 逐帧对这些高频亮区的判断在抖,而室外常伴随平移/推拉,固定像素位置的时域平滑会错位。

方向 · 运动补偿时域滤波

增益图是低频场,特别适合时域处理:先估相邻帧运动把上一帧增益 warp 对齐再做时域中值/EMA, 即可强力压闪而不糊运动;更进一步可让 LTX 跑关键帧 + 中间帧光流插值,从源头消抖动还省算力。

方法论不变:先实测定位(是闪烁还是真变化、在哪一段),再针对性上时域方案,用 nit/JXL 对比验证压制效果——而不是盲调参数。