张吕敏和他的团队,包括Maneesh Agrawala,开发了名为Layer Diffuse的技术,这项技术能生成高清晰度的透明PNG格式素材,并能够将图像的前景和背景分别导出。
目前,Layer Diffuse仍在开发阶段,尽管性能有待进一步提升,但它已经展现出与视觉内容创作者的工作流程高度兼容的潜力,尤其是在为设计师分层生成素材方面。
此外,这项技术通过将透明度通道整合到潜在扩散模型中,采用了创新方法。
张吕敏及其团队成员Maneesh Agrawala在斯坦福大学发布了Layer Diffuse研究,这是一种利用扩散模型生成透明PNG图像和分层图像的新方法。Layer Diffuse让预训练的潜在扩散模型能生成带有"潜在透明度"的透明图像,保持了生产就绪的质量。通过分析100万个透明图层对进行训练,展示了其广泛应用,如图层生成控制。
用户研究显示,大多数人偏爱这种生成的透明内容,质量可与商业资源相媲美。
图像分层生成/输出
在图像生成领域,虽然大模型已成为核心技术,但对于生成分层或透明图像的研究相对较少,主要是因为缺乏高质量的训练数据和大模型对潜空间数据的敏感性。"潜在透明度"技术允许模型输出高质量的透明图像,并支持背景/前景条件生成等应用,克服了数据和技术挑战。
技术总结:
-提出了“潜在透明度”(latent transparency),一种使大规模预训练的潜在扩散模型能够生成单个透明图像或多个透明图层的方法
-提出了一个共享注意机制(share attention mechanism),用于生成具有一致和和谐混合的图层
-展示了一个包含使用人在环(human-in-the-loop scheme)方案收集的透明图像和图层的数据集
-提出了一个用于透明图像生成的预训练模型和两个用于多层生成的预训练LoRA模型。
文生透明背景图像
应用场景 --- 生成各类透明素材
不仅能生成高清的PNG物品素材,更是能完整的保留物体的全部细节。其他的AI算法会在物体边缘出现羽化或者瑕疵,layer diffuse不存在这类问题。这一特点在透明物体中体现的尤为明显。
Layer Diffuse
Remove Background - BRIA AI
其他高清素材包括人物,动物的毛发,都能完整地保留。质量和Shutter Stock 相当。
不仅可以生成真实系列的素材,也可以生成二次元高清素材。
搭配上LoRA模型,可以出各式各样的高清素材。
搭配上植物LoRA
根据背景生成前景
与局部重绘对比
Layer Diffuse
优点:素材生成完整性更佳;前景生成PNG素材可以完整导出方便二次修改;前景构图固定(居中)
不足:前景与背景融合度不够;分层生成没有考虑相互间的交互,“各画各的”;画面割裂感强
局部重绘
优点:画面融合度高,光影正确;前景与背景和谐统一;局部重绘区域灵活(取决于人工)
不足:难以二次修改
根据前景生成背景
与局部重绘对比
Layer Diffuse
优点:素材生成完整性更佳;生成完整背景方便二次编辑
不足:前景与背景融合度不够;分层生成没有考虑相互间的交互,“各画各的”;画面割裂感强
局部重绘
优点:画面融合度高,光影正确;前景与背景和谐统一
不足:难以二次修改;难以修改局部细节;局部重绘添加添加无关细节,破坏前景素材完整性/精确性
总结:当前版本的Layer Diffuse还处于一个不断迭代的阶段,前景与背景的生成关联度不高。希望在后续的版本可以参考局部重绘的生成方式,并保留分图层生成的技术架构,对设计师将是生产力的一大飞跃。
进阶用法
从背景分离主体
从前景分离背景
结合controlnet生成图像
可以结合controlnet对图像进行构图与内容的搭建,并使用文生图与图生图进行内容的生成,最后使用前景背景分离图层的技术使最后生成的图像可编辑。
可行技术路径
意义:
-大量节省寻找透明素材的成本
-开创了分层生成的方式
-为设计师真实需求而生的技术,符合设计师的工作习惯
潜力:
目前的工作流过于繁琐,在进一步迭代之后出现更简化的操作与更好的效果。
使用方法
在Stable Diffusion Forge WebUI中使用
Forge WebUI安装链接:
https://github.com/lllyasviel/stable-diffusion-webui-forge
sd-forge-layerdiffuse插件安装链接:
https://github.com/layerdiffusion/sd-forge-layerdiffuse
在ComfyUI中使用
安装地址:
https://github.com/huchenlei/ComfyUI-layerdiffuse
Layer-Diffuse模型
-自动下载:运行插件时自动下载
-自行下载:Huggingface下载链接:
https://huggingface.co/LayerDiffusion/layerdiffusion-v1/tree/main
-自行下载:百度网盘:
https://pan.baidu.com/s/13fyyls6FCEuPRxyVPV9UJg?pwd=57y3
以下为部分技术细节
原文地址:
https://arxiv.org/abs/2402.17113
透明图片处理
PPMatting 是一个从头开始训练的神经网络图像抠图模型,使用了标准的抠图数据集进行训练。Matting Anything 是一个使用 Segment Anything Model(SAM)作为骨干的图像抠图模型。VitMatte 是一种基于裁剪映射的抠图方法,使用了 Vision Transformer(ViT)技术。
这个方法使得潜在扩散模型(如稳定扩散)能够生成透明图像,并进一步扩展模型以共同生成多个透明图层。
带有潜在透明度(latent transparency)的扩散模型
由于具有潜在透明度的调整后的潜在空间明确受到限制,以与原始预训练潜在分布对齐,因此可以直接在调整后的潜在空间上对稳定扩散进行微调。
给定调整后的潜在空间xa,扩散算法逐渐向图像添加噪声,并产生带有噪声的图像xt,其中t表示添加噪声的次数。当t足够大时,潜在图像近似于纯噪声。
上图为可视化的基础模型生成透明图像的训练过程,以及生成多个图层的多层模型的训练过程。在训练基础扩散模型时(a),所有模型权重都是可训练的,而在训练多层模型时(b),只有两个 LoRA 是可训练的(前景 LoRA 和背景 LoRA)。
训练集准备和训练细节
训练步骤
1.数据集最初包含了20,000张高质量的透明 PNG 图像
2.使用等概率随机抽样的图像(批量大小为8)训练具有潜在透明度的 SDXL VAE 模型,然后使用相同的数据调整潜在空间来训练 SDXL 扩散模型。
3.重复以下步骤共25轮。
a.每一轮开始时,使用前一轮中的最后一个模型以及来自 LAIONPOP 的随机提示生成10,000个随机样本
b.手动挑选1000个样本添加回训练数据集中
c.新添加的样本在下一轮训练批次中出现的概率会增加2倍
d.再次训练潜在透明度编码器-解码器和扩散模型
4.所有图像都使用 LLaVA 进行标题标注(LLaVA 是一个类似于 GPT4v 的开源多模态 GPT)以获取详细的文本提示
5.VAE 和扩散模型的训练最终使用最终的100万数据集进行了另外15,000次迭代
多层数据集(Multi-layer Dataset)
将选中的{text,透明图像}数据集扩展成一个{text,前景图层,背景图层}数据集,以便训练多层模型。如图所示,然后请求GPT(我们使用ChatGPT进行了10万次请求,然后切换到LLAMA2进行了90万次请求)生成结构化提示对,例如前景图层的“一只可爱的猫”,整个图像的“花园里的猫”,背景的“花园里什么也没有”(我们要求GPT在背景提示中添加“nothing”一词)。前景提示经过我们训练过的透明图像生成器处理以获取透明图像。然后,我们使用Diffuser Stable Diffusion XL修补模型对所有像素进行修补,其中α小于1,以使用整个图像提示获得中间图像。最后,我们反转α掩码,侵蚀k = 8个像素,然后使用背景提示再次修补,以获取背景图层。我们重复这个过程100万次以生成100万个图层对。
割离性研究
将这个方法与两种替代架构进行比较:
直接将通道添加到UNet。直接将alpha通道编码为外部图像,并将4个通道添加到UNet中。
直接将通道添加到VAE。UNet在由更新的VAE编码的潜在图像上进行微调。
联结透明图层生成 | 自动抠图 | 人工抠图
效果对比