量子位 | "大众年夜众号 QbitAI

“绝不是大略的抠图。

ControlNet作者最新推出的一项研究受到了一波高度关注——

给一句prompt,用Stable Diffusion可以直接天生单个或多个透明图层(PNG)!

ControlNet作者新作AI绘画能分图层了未开源就斩获660 Star

例如来一句:

头发缭乱的女性,在寝室里。
Woman with messy hair, in the bedroom.

可以看到,AI不仅天生了符合prompt的完全图像,就连背景和人物也能分开。

而且把人物PNG图像放大细看,发丝那叫一个根根分明。

再看一个例子:

燃烧的柴火,在一张桌子上,在乡下。
Burning firewood, on a table, in the countryside.

同样,放大“燃烧的火柴”的PNG,就连火焰周边的黑烟都能分离出来:

这便是ControlNet作者提出的新方法——LayerDiffusion,许可大规模预演习的潜在扩散模型(Latent Diffusion Model)天生透明图像。

值得再强调一遍的是,LayerDiffusion绝不是抠图那么大略,重点在于天生。

正如网友所说:

这是现在动画、视频制作最核心的工序之一。
这一步能够过,可以说SD同等性就不再是问题了。

还有网友以为类似这样的事情并不难,只是“顺便加个alpha通道”的事,但令他意外的是:

结果这么久才有出来的。

那么LayerDiffusion到底是如何实现的呢?

PNG,现在开始走天生路线了

LayerDiffusion的核心,是一种叫做潜在透明度(latent transparency)的方法。

大略来说,它可以许可在不毁坏预演习潜在扩散模型(如Stable Diffusion)的潜在分布的条件下,为模型添加透明度。

在详细实现上,可以理解为在潜在图像上添加一个精心设计过的小扰动(offset),这种扰动被编码为一个额外的通道,与RGB通道一起构成完全的潜在图像。

为了实现透明度的编码和解码,作者演习了两个独立的神经网络模型:一个是潜在透明度编码器(latent transparency encoder),另一个是潜在透明度解码器(latent transparency decoder)。

编码器吸收原始图像的RGB通道和alpha通道作为输入,将透明度信息转换为潜在空间中的一个偏移量。

而解码器则吸收调度后的潜在图像和重修的RGB图像,从潜在空间中提取出透明度信息,以重修原始的透明图像。

为了确保添加的潜在透明度不会毁坏预演习模型的潜在分布,作者提出了一种“无害性”(harmlessness)度量。

这个度量通过比较原始预演习模型的解码器对调整后潜在图像的解码结果与原始图像的差异,来评估潜在透明度的影响。

在演习过程中,作者还利用了一种联合丢失函数(joint loss function),它结合了重修丢失(reconstruction loss)、身份丢失(identity loss)和判别器丢失(discriminator loss)。

它们的浸染分别是:

重修丢失:用于确保解码后的图像与原始图像尽可能相似;身份丢失:用于确保调度后的潜在图像能够被预演习的解码器精确解码;判别器丢失:则是用于提高天生图像的真实感。

通过这种方法,任何潜在扩散模型都可以被转换为透明图像天生器,只需对其进行微调以适应调度后的潜在空间。

潜在透明度的观点还可以扩展到天生多个透明图层,以及与其他条件掌握系统结合,实现更繁芜的图像天生任务,如前景/背景条件天生、联合图层天生、图层内容的构造掌握等。

值得一提的是,作者还展示了如何把ControlNet引入进来,丰富LayerDiffusion的功能:

与传统抠图的差异

至于LayerDiffusion与传统抠图上的差异,我们可以大略归整为以下几点。

原生天生 vs. 后处理

LayerDiffusion是一种原生的透明图像天生方法,它直接在天生过程中考虑并编码透明度信息。
这意味着模型在天生图像的同时就创建了透明度通道(alpha channel),从而产生了具有透明度的图像。

传统的抠图方法常日涉及师长西席成或获取一个图像,然后通过图像编辑技能(如色键、边缘检测、用户指定的遮罩等)来分离前景和背景。
这种方法常日须要额外的步骤来处理透明度,并且可能在繁芜背景或边缘处产生不自然的过渡。

潜在空间操作 vs. 像素空间操作

LayerDiffusion在潜在空间(latent space)中进行操作,这是一个中间表示,它许可模型学习并天生更繁芜的图像特色。
通过在潜在空间中编码透明度,模型可以在天生过程中自然地处理透明度,而不须要在像素级别上进行繁芜的打算。

传统的抠图技能常日在像素空间中进行,这可能涉及到对原始图像的直接编辑,如颜色更换、边缘平滑等。
这些方法可能在处理半透明效果(如火焰、烟雾)或繁芜边缘时碰着困难。

数据集和演习

LayerDiffusion利用了一个大规模的数据集进行演习,这个数据集包含了透明图像对,使得模型能够学习到天生高质量透明图像所需的繁芜分布。

传统的抠图方法可能依赖于较小的数据集或者特定的演习集,这可能限定了它们处理多样化场景的能力。

灵巧性和掌握

LayerDiffusion供应了更高的灵巧性和掌握能力,由于它许可用户通过文本提示(text prompts)来辅导图像的天生,并且可以天生多个图层,这些图层可以被稠浊和组合以创建繁芜的场景。

传统的抠图方法可能在掌握方面更为有限,尤其是在处理繁芜的图像内容和透明度时。

质量比较

用户研究显示,LayerDiffusion天生的透明图像在大多数情形下(97%)被用户偏好,这表明其天生的透明内容在视觉上与商业透明资产相称,乃至可能更优。

传统的抠图方法可能在某些情形下无法达到同样的质量,尤其是在处理具有寻衅性的透明度和边缘时。

总而言之,LayerDiffusion供应的是一种更前辈且灵巧的方法来天生和处理透明图像。

它在天生过程中直接编码透明度,并且能够产生高质量的结果,这在传统的抠图方法中是很难实现的。

关于作者

正如我们刚才提到的,这项研究的作者之一,正是大名鼎鼎的ControlNet的发明人——张吕敏。

他本科就毕业于苏州大学,大一的时候就揭橥了与AI绘画干系的论文,本科期间更是发了10篇顶会一作。

目前张吕敏在斯坦福大学攻读博士,但他为人可以说是非常低调,连Google Scholar都没有注册。

就目前来看,LayerDiffusion在GitHub中并没有开源,但即便如此也挡不住大家的关注,已经斩获660星。

毕竟张吕敏也被网友调侃为“韶光管理大师”,对LayerDiffusion感兴趣的小伙伴可以提前mark一波了。

参考链接:[1]https://arxiv.org/abs/2402.17113[2]https://twitter.com/op7418/status/1762729887490806159[3]https://github.com/layerdiffusion/LayerDiffusion

— 完 —

量子位 QbitAI · 头条号签约

关注我们,第一韶光获知前沿科技动态