刚刚,ControlNet作者张吕敏又发布了一个的图像打光新项目LuminaBrush,LuminaBrush 是一个构建交互式工具的项目,用于在图像上绘制光照效果。该框架采用两阶段方法:首先将图像转换为均匀光照的外观;然后通过用户的涂鸦生成光照效果。
LuminaBrush也是基于最新的开源SOTA文生图模型Flux构建,下面是一些图像打光的效果图:
LuminaBrush和之前的IC-Light的区别,你可以通过交互式地涂鸦来改变图像主体的光照,IC-Light只是依靠文本描述或者背景图,而LuminaBrush可以通过区域涂鸦更精细地控制光照。
LuminaBrush的架构图如下所示,它是一个两阶段算法。
将光照绘制问题分解为两个阶段,使学习过程更加简单和直接——否则(例如,仅使用单阶段),可能需要考虑外部约束或规则(如光传输一致性等)来稳定模型的行为。
为了训练LuminaBrush,这里首先收集一组相对较小的、具有均匀光照外观的图像集,例如以下这些:
然后,基于这一数据集上在Flux上训练LoRA,并用LoRA生成的图像来扩展这个图像数据集。
使用这些均匀光照图像作为中间表示具有一些优势,比如避免来自 3D 反照率(albedo)的过于锐利的网格边界或过于平坦的表面。而这些图像在细节层面也足够细腻,可以处理皮肤纹理、头发、毛发等细节。
接下来,通过合成随机法线,将这些均匀光照图像进行随机再光照,以训练一个可以从任何输入图像中提取均匀光照外观的模型。第一阶段的这个模型目前也提供了在线demo:
https://huggingface.co/spaces/lllyasviel/lumina_brush_uniform_lit
第二阶段,会从数百万张高质量的自然场景图像中提取均匀光照外观图像,以构建成对数据集,用于训练最终的交互式光照绘制模型。
下面是实测的一个例子,首先用第一阶段模型提取均匀光照图像:
然后用第二阶段模型,以涂鸦的方式给图像主体上新的光照:
整体感觉,图像打光效果还可以,但是人物的ID变化得有点多。
文章来自于“AI小小将”,作者“AI小将”。