IC-Light 简介
Controlnet作者张吕敏刚刚(5-08)公布了新项目IC-Light
https://github.com/lllyasviel/IC-Light
包括两种类型的模型:文本条件重新光照模型和背景条件模型。两种类型都将前景图像作为输入。
图1的灯光阶段为例,来自“外观混合”和“光源混合”的两个图像是一致的(理想情况下,在 HDR 空间中数学上是等效的)。
在训练重新照明模型时,加强了这种一致性(在潜在空间中使用 MLP)。
因此,该模型能够产生高度一致的重新光照 - 如此一致,甚至可以将不同的重新光照合并为法线贴图!尽管事实上这些模型是潜在扩散的。
效果看起来很不错,而且非常实用.
使用
目前(5-24-2024),只有ConfyUI和一个单独打包的Gradio版本可用。我用的ConfyUI的(虽然我ConfyUI基本没怎么玩过,但我觉得我能玩),ConfyUI有两个版本。
- 原生版本 https://github.com/huchenlei/ComfyUI-IC-Light-Native
- kijai大神的第三方版 https://github.com/kijai/ComfyUI-IC-Light
目前推荐是使用kijai的版本,官方版本自定义功能比较少,另外比较尴尬的是用官方版节点反而需要下载其他版本的模型,而kijai版本的只需要下论文原贴huggingface给出的模型。
kijai的版本还需要装一个 https://github.com/kijai/ComfyUI-KJNodes 的辅助节点,这个一般用来绘制各种光照mask
基础使用
基础使用都在example里了,把图片拖到ConfyUI就能出节点(这是我才知道的功能,刚看到别人演示的时候直接瞳孔地震.jpg)
目前存在的问题和对应解决方法
出图灰
左边是原图,右边是ic-light处理后的图片。可以看到出的图明显的灰了很多(焦内都如奶油般化开)
在平时webui处理中,出图灰往往是和VAE有关,但是我换了很多个VAE出图任然灰的一。
出图灰有两个特征:
- 细节缺失,原图上非常多的细节缺失,例如发丝,眼睫毛这些。
- 整体画面对比度饱和度低
灰图的一些解决方法
增细节
在ic-light刚出来后,就有很多人进行尝试,也发现了灰图的问题,我看到discord上有一个人的方法很神奇。
通过原图减去原图低通滤波(高斯模糊之类的)得到原图的高频信息(图形剧烈变化的地方例如轮廓线,明暗交界线),再把原图的高频部分在生图完成后后处理的方式叠加上去,能大幅度增加画面细节(图形学死去的回忆开始攻击我)。
即叠加一张高通滤波图像增加缺失的细节。
下面放一张GAMES101里的讲义截图
后处理
对于低饱和度,低对比度,最无脑的方式就是去对图片进行后处理加工。直接拉图片的饱和度和对比度曲线。
传统图像处理处理这些特征明显的问题还是非常好用的。(下图是对比图,左图是处理前右图是处理后,可以看到效果还蛮好的)
光源控制困难
虽然有了kijai的自定义蒙版操作,可以做出不少同质化的光影效果,但是对于艺术创作我更喜欢完全掌控,例如我不止希望面部受光,我还希望控制鼻子有一半受光一般不受光(伦勃朗光)
然而在实际使用过程中,即使我通过把的球型蒙版盖住,放在人物脸部,AI给出的图片仍然很少有这样的伦勃朗光。
如下图,这是一个渐变遮罩加上一个圆然后进行高斯模糊后的遮罩生成的图像
蒙版:
out:
可以看到人物面部虽然受到了部分光照,但是对比不强烈。
光源控制上的一些个人理解
谈理论前,我们先看几张对比图:
潜空间
参考
美学:
技术:
频域叠加:https://www.bilibili.com/video/BV14m421M74A
GAMES101(图像高通滤波): https://www.bilibili.com/video/BV1X7411F744?p=6
Q.E.D.