(2024,LayerDiffusion,图层生成与混合,SD,LoRA)使用潜在透明度的透明图像层扩散

Transparent Image Layer Diffusion using Latent Transparency

公和众和号:EDPJ(进 Q 交流群:922230617 或加 VX:CV_EDPJ 进 V 交流群)

目录

0. 摘要

2. 相关工作

2.1 将图像隐藏在扰动内

2.2 扩散概率模型和潜在扩散

2.3 定制扩散模型和图像编辑

2.4 透明图像处理

3. 方法

3.1 潜在透明度

3.2 具有潜在透明度的扩散模型

3.3 生成多个图层

4. 实验

4.10 限制

附录

A. 补零的 RGB 通道

B. 神经网络架构

C. PatchGAN 判别器


0. 摘要

我们提出了 LayerDiffusion,一种使大规模预训练的潜在扩散模型(latent diffusion model,LDM)能够生成透明图像的方法。该方法允许生成单个透明图像或多个透明层。该方法学习了一个 “潜在透明度(latent transparency)”,将 alpha 通道透明度编码到预训练的潜在扩散模型的潜在流形中。通过将添加的透明度调节为潜在偏移(latent offset),最小限度地改变预训练模型的原始潜在分布,从而保留了大规模扩散模型的生产就绪(production-ready)质量。通过对调整后的潜在空间进行微调,以这种方式,任何潜在扩散模型都可以转换为透明图像生成器。我们使用人工参与的方案收集了 100 万透明图像层对进行模型训练。我们展示了潜在透明度可以应用于不同的开源图像生成器,或者适应于各种条件控制系统,实现诸如前景/背景条件的层生成、联合层生成、层内容的结构控制等应用。一项用户研究发现,在大多数情况下(97%),用户更喜欢我们本地(natively)生成的透明内容,而不是先生成然后进行抠图等以前的临时解决方案。用户还报告说,我们生成的透明图像的质量与像 Adobe Stock 等真实商业透明资产相媲美。

2. 相关工作

2.1 将图像隐藏在扰动内

多个领域的研究都指出了一个现象:神经网络有能力在现有特征内部 “隐藏” 特征,而不改变整体特征分布,例如通过微小而看不见的像素扰动在另一幅图像中隐藏一个图像。典型的 CycleGAN [60] 实验展示了人脸对拉面(face-to-ramen),其中人脸身份可以通过微小的不可见像素扰动隐藏在拉面图片中。类似地,可逆降尺寸(invertible downscaling) [52] 和可逆灰度(invertible grayscale) [51] 表明神经网络可以在较小的图像中隐藏一个大图像,或者在灰度图像中隐藏一个彩色图像,然后重构原始图像。在另一个扩展验证的实验中,Goodfellow 等人 [14] 展示了对抗样本信号可以隐藏在特征扰动中,以影响其他神经网络的行为。在本文中,我们提出的 “潜在透明度”利用了类似的原理:通过将透明图像特征隐藏在添加到 Stable Diffusion [43] 潜在空间的小扰动中,同时避免对潜在空间整体分布的更改。这使得从现有的非透明图像扩散模型无缝过渡到透明扩散模型,并且便于进一步的微调。

2.2 扩散概率模型和潜在扩散

(2022|CVPR,LDM)使用潜在扩散模型进行高分辨率图像合成 

2.3 定制扩散模型和图像编辑

(2023,ControlNet,CFGRW,diffusion,控制组合)向文本到图像扩散模型添加条件控制 

2.4 透明图像处理

透明图像处理与图像分解、图层提取、调色板处理以及图像抠图(matting) [49, 2, 1] 等密切相关。典型的基于颜色的分解可以看作是一个 RGB 颜色空间几何问题 [45, 46, 47, 48, 11]。这些思想也被扩展到更高级的图像层混合[25]。基于解混的颜色分离也有助于图像分解 [3],并且语义特征可以用于图像软分割 [4]。在我们的实验和讨论中,我们将我们的方法与几种最先进的基于深度学习的抠图方法进行比较。PPMatting [9] 是一个从头开始使用标准抠图数据集训练的神经网络图像抠图模型。Matting Anything [26] 是使用 Segment Anything Model(SAM)[22] 作为骨干的图像抠图模型。VitMatte [56] 是一种使用 Vision Transformer(ViT)的基于 trim-map 的抠图方法。 

3. 方法

我们的方法使 Latent Diffusion Model(LDM),如 Stable Diffusion,能够生成透明图像,并进一步扩展模型以共同生成多个透明图层。

定义。为了清晰起见,我们首先定义一些术语。对于任何具有 RGBA 通道的透明图像 I_t ∈ R^(h×w×4),我们将前 3 个 RGB 颜色通道表示为 Ic ∈ R^(h×w×3),将 alpha 通道表示为 Iα ∈ R^(h×w×1)。由于在 alpha 值严格为零的像素处颜色在物理上未定义,因此在本文中,Ic 中的所有未定义区域始终由迭代高斯滤波(附录 A)填充,以避免失真和不必要的边缘模式。我们称 Ic 为“填充的 RGB 图像”(图 2)。可以将 I_t 转换为 “预乘图像(premultiplied image)”,即 I = Ic ∗ Iα,其中 ∗ 表示逐像素乘法。在本文中,所有 RGB 值都在范围 [-1, 1](与 Stable Diffusion 一致),而所有 alpha 值都在范围 [0, 1]。预乘图像 I 可以看作是一个常规的非透明 RGB 图像,可以由任何 RGB 格式的神经网络处理。这些图像的可视化显示在图 2 中。

3.1 潜在透明度

我们的目标是为大规模潜在扩散模型(如 Stable Diffusion,SD)添加透明度支持,该模型通常使用潜在编码器(VAE)将 RGB 图像转换为潜在图像,然后将其馈送到扩散模型。在这里,VAE 和扩散模型应共享相同的潜在分布,因为任何主要(major)不匹配都可能显著降低潜在扩散框架的推断/训练/微调。当我们调整潜在空间以支持透明度时,必须尽可能保留原始潜在分布。这个看似不明确的目标可以通过一个简单的测量来确定:我们可以检查修改后的潜在分布如何被原始预训练的冻结潜在解码器解码——如果解码修改后的潜在图像会导致严重的伪影,那么潜在分布是不匹配或破损的。 

我们可以将这个 “有害性” 度量数学地表示如下。给定一个 RGB 图像 I,预训练且冻结的 Stable Diffusion 潜在编码器 E*_sd(·) 和解码器 D*_sd(·),其中 * 表示冻结的模型,我们将潜在图像表示为 x = E*_sd(I)。假设这个潜在图像 x 被任何偏移 x_ϵ 修改,产生了调整后的潜在 x_a = x + x_ϵ。然后,解码的 RGB 重建可以写成 ˆI = D*_sd(x_a),我们可以评估偏移 x_ϵ 的 “有害性” 如下:

其中,∥⋅∥_2​ 是 L2 范数距离(均方误差)。直观地说,如果 L_identity​ 相对较高,x_ϵ 可能是有害的,可能破坏了 SD 编码器-解码器的重建功能;否则,如果 L_identity​ 相对较低,偏移 x_ϵ 不会破坏潜在重建,修改后的潜在仍然可以由预训练的 Stable Diffusion 处理。

我们利用潜在偏移 x_ϵ 来建立用于编码/解码透明图像的 “潜在透明度”。更具体地说,我们从头开始训练一个潜在透明度编码器 E(·, ·),它将 RGB 通道 Ic 和 alpha 通道 Iα 作为输入,将像素空间的透明度转换为潜在偏移 xϵ:

然后,我们从头开始训练另一个潜在透明度解码器 D(·, ·),它将调整后的潜在 xa = x + xϵ 和前述的 RGB 重建 ˆI = D*_sd(xa) 作为输入,从调整后的潜在空间中提取透明图像:

其中,ˆIc, ˆIα 是重建的颜色和 alpha 通道。E(·, ·) 和 D(·, ·) 的神经网络层架构详见附录 B。我们使用以下公式评估重建:

并且实验证明通过引入 PatchGAN 判别器损失,结果质量可以进一步提高:

其中,L_disc​(⋅,⋅) 是来自 5 层 Patch 判别器的 GAN 目标(详见附录 C)。最终目标可以联合写成:

其中,λ... 是权重参数,默认情况下我们使用 λrecon​=1, λidentity​=1, λdisc​=0.01。通过使用 L_vae 训练这个框架,可以从透明图像中编码出调整后的潜在 xa,反之亦然,并且这些潜在图像可以用于微调 Stable Diffusion。我们在图 2 中可视化了这个流程。

3.2 具有潜在透明度的扩散模型

由于潜在透明度的调整潜在空间明确受到规范以与原始预训练潜在分布对齐(式 1),因此 Stable Diffusion 可以直接在调整后的潜在空间上进行微调。给定调整后的潜在 xa,扩散算法逐渐向图像添加噪音并生成由 t 表示添加噪音次数的噪音图像 xt。当 t 足够大时,潜在图像逼近纯噪音。考虑一组条件,包括时间步长 t 和文本提示 ct,图像扩散算法学习一个网络 ϵθ,该网络预测添加到噪音潜在图像 xt 的噪音,具体如下:

其中 L 是整个扩散模型的总体学习目标。这个训练过程在图 3-(a) 中可视化。

3.3 生成多个图层

我们通过使用注意力共享和 LoRAs([17])将基本模型扩展为多层模型,如图 3-(b) 所示。我们将前景噪音潜在表示为 xf,背景表示为 xb,并训练两个 LoRA 模型,一个由 θf 参数化的前景 LoRA 和一个由 θb 参数化的背景 LoRA,以去噪潜在图像。如果两个模型独立地去噪两个图像,我们具有以下两个目标:

其中,ϵf,ϵb 是前景和背景的潜在噪音。然后,我们合并两个独立的扩散过程以实现协同生成。对于扩散模型中的每个注意力层,我们将由两个图像激活的所有 {key, query, value} 向量连接起来,以便两个传递可以合并为一个联合优化的大模型 ϵθ,θf,θg(·)。我们将合并的噪声表示为连接的 ϵm = [ϵf, ϵb],并且我们有最终目标:

以协同生成多个图层。我们还可以对此目标进行简单修改以支持条件图层生成(例如,以前景为条件的背景生成,或以背景为条件的前景生成)。更具体地说,通过对前景使用干净的潜在而不是噪音潜在(即始终设置 ϵf = 0),模型将不会对前景进行去噪,该框架将成为前景条件生成器。类似地,通过设置 ϵb = 0,该框架将成为背景条件生成器。我们在实验中实现了所有这些条件变体。

我们还在图 4 中引入了几种更复杂工作流的替代架构。我们可以向 UNet 添加零初始化的通道并使用 VAE(具有或没有潜在透明度)将前景、背景或图层组合编码成条件,并训练模型生成前景或背景(例如,图 4-(b, d)),或直接生成混合图像(例如,图 4-(a, c))。

4. 实验

4.10 限制

正如图 15 所示,我们的框架存在 “生成 ‘清晰透明元素’” 和 “和谐混合” 的权衡。例如,如果透明图像是一个没有任何特殊照明或阴影效果的清晰可重复使用的元素,生成一个可以与前景和谐混合的背景可能非常具有挑战性,模型可能无法在所有情况下成功(图 15-(c) 是一个失败的案例)。如果我们只使用背景作为条件来生成前景,以迫使和谐混合,可以在一定程度上解决这种现象(图 15-(d))。然而,这也会导致照明影响透明对象,使透明对象的可重复使用性降低。有人可能会认为图 15-(a) 中的图像对设计师和野外应用更具可重复性,而图 15-(d) 中的透明图像包含许多与背景相关的特定图样。 

附录

A. 补零的 RGB 通道

在透明 RGBA 图像的 RGB 通道中,我们将完全不可见的像素称为 “未定义” 像素,即 alpha 值严格等于零的像素。由于这些像素是绝对不可见的,用任意颜色处理它们不会影响经过 alpha 混合后图像的外观。然而,由于神经网络往往会在图像边缘产生高频图样(pattern),我们避免在 RGB 通道中出现不必要的边缘,以避免潜在的伪影。我们定义一个局部高斯滤波器:

其中,ϕ(·) 是具有 13x13 内核的标准高斯滤波器,p 是像素位置。我们对此滤波器执行 64 次,以完全传播颜色到所有“未定义”像素。

B. 神经网络架构

潜在透明度编码器与 Stable Diffusion 潜在 VAE 编码器 [31] 具有完全相同的神经网络架构(但输入包含 4 个通道,对应 RGBA)。该模型是从头开始训练的。输出卷积层被零初始化,以避免初始有害噪音。

潜在透明度解码器是一个 UNet。这个 UNet 的编码部分具有与 Stable Diffusion 潜在 VAE 编码器相同的架构,而解码部分具有与 Stable Diffusion VAE 解码器相同的架构。输入潜在被添加到中间块,所有编码器的特征图通过跳跃连接添加到每个解码器块的输入。具体而言,假设输入图像是 512 × 512 × 3,输入潜在是 64 × 64 × 4,特征图经过以下过程:

512×512×3→512×512×128→256×256×256→128×128×512→64×64×512512×512×3→512×512×128→256×256×256→128×128×512→64×64×512

其中每个 → 是两个 ResNet 块。然后,输入潜在通过卷积层投影以匹配通道,然后添加到中间特征。然后解码器经过以下过程:

64×64×512→128×128×512→256×256×256→512×512×128→512×512×364×64×512→128×128×512→256×256×256→512×512×128→512×512×3

在这里,每个 → 还将对应于编码器的层的跳跃特征添加到解码器的输入。

C. PatchGAN 判别器

我们使用与 Latent Diffusion VAE[34] 相同的 PatchGAN 判别器架构、学习目标和训练调度。我们直接使用其官方代码库中的 Python 类 LPIPSWithDiscriminator(输入通道设置为 4)。生成器侧的目标(来自[34])可以表示为:

其中 z 是形状为 h × w × 4 的矩阵,relu(⋅) 是修正线性单元。Ddisc​(⋅) 是一个具有 5 个卷积-归一化-SiLU 层的神经网络,结构为 512×512×3→512×512×64→256×256×128→128×128×256→64×64×512→64×64×1512×512×3→512×512×64→256×256×128→128×128×256→64×64×512→64×64×1

最后一层是一个面向补丁的真/假分类层。最后一层不使用归一化和激活。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/430919.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

功能强大使用简单的截图/贴图工具,PixPin

一、下载链接 PixPin 截图/贴图/长截图/文字识别/标注 | PixPin 截图/贴图/长截图/文字识别/标注 (pixpinapp.com) 二、功能 截图/贴图/长截图/文字识别/标注 三、安装教程 根据提示安装即可: 四、快捷键 1.软件自带快捷键(右击PixPin查看 &#xff09…

kuangbin专题——简单搜索

1.棋盘问题&#xff08;dfs&#xff09; 思路 1.dfs 参数里枚举每一行&#xff0c;然后在里面弄两个分支&#xff0c;选或者不选&#xff0c;选的话就枚举这一行的所有元素 2.注意最后一行要先判断&#xff0c;再返回 #include<iostream> using namespace std; const i…

uniapp制作--进步器的选择

介绍&#xff1a; 进步器的选择,一般用于商城购物选择物品数量的场景 注意&#xff1a;该输入框只能输入大于或等于0的整数 效果展示&#xff1a; 代码展示&#xff1a; 以下是一个简单的购物车页面示例&#xff0c;包括选择商品和显示数量的功能&#xff1a; 在这个示例中…

docker 安装 Jenkins

一、安装 jenkins 中文文档&#xff1a; https://www.jenkins.io/zh/doc/book/installing/#docker jenkins 提供了详细的安装方式和步骤&#xff0c;这里咱们使用 docker 进行安装 根据文档上的命令&#xff0c;自己修改如下&#xff1a; docker run \ -u root \ --name jenki…

三八妇女节送礼推荐:送给她的五款超值好物,绝不踩雷!

随着三八妇女节的临近&#xff0c;我们开始思考如何向身边的女性表达我们的尊重和关爱。这个特殊的节日不仅是对女性贡献的认可&#xff0c;更是展示我们关怀与感激之情的绝佳时机。在众多礼物中&#xff0c;如何挑选一份既能体现心意又实用的礼品呢&#xff1f;为了让您在这个…

Win UI3开发笔记(八)多语言切换

要实现的目标&#xff1a;checkbox选定什么语言&#xff0c;当前应用程序的文字就是这一门语言。 步骤如下&#xff1a; 参考现有的一个程序的代码&#xff0c;先定义资源文件。 如果只有一个按钮、一个文本、一个列表框的话 新建String 在这个文件夹下定义en-us&#xff0c;z…

智能物联时代下RFID技术在汽车零部件智能制造中的引领作用

RFID&#xff08;Radio Frequency Identification&#xff0c;射频识别&#xff09;技术在汽车零部件加工中有广泛的应用&#xff0c;其工作原理是通过无线电频率进行自动识别。在汽车零部件加工中&#xff0c;RFID技术可以发挥重要作用&#xff0c;提高生产效率、降低成本和减…

LVS集群(Linux Virtual server)相关介绍及LVS的NAT模式部署

群集的含义 ●Cluster&#xff0c;集群、群集由多台主机构成&#xff0c;但对外只表现为一个整体&#xff0c;只提供访问入口(域名或IP地址)&#xff0c;相当于一台大型计算机 问题&#xff1a; 互联网应用中&#xff0c;随着站点对硬件性能、响应速度、服务稳定性、数据可靠…

网络工程师笔记7

路由器需要知道下一跳和出接口才能把数据转发出去 各个协议的优先级 直连&#xff1a;0 OSPF&#xff1a;10 ISIS&#xff1a;15 静态&#xff1a;60 RIP :100 静态路由 ip route-static <目的ip地址> 掩码 下一跳地址 例…

哈希的简单介绍

unordered系列关联式容器 在C98中&#xff0c;STL提供了底层为红黑树结构的一系列关联式容器&#xff0c;在查询时效率可达到 l o g 2 N log_2 N log2​N&#xff0c;即最差情况下需要比较红黑树的高度次&#xff0c;当树中的节点非常多时&#xff0c;查询效率也不理想。最好的…

开展“3·15”金融消费者权益保护教育宣传活动怎样联系媒体投稿?

在组织“315”金融消费者权益保护教育宣传活动时,传统的方式通常是银行、金融机构或其他主办单位主动联系各类媒体,包括但不限于电视台、广播电台、报纸、杂志、新闻网站、金融专业媒体、社交媒体平台等,通过邮件、电话、传真等方式提供活动新闻稿、宣传材料、现场照片等素材,请…

列车调度——典型的验证栈的出栈合不合法的问题,值得一看

题目描述 有n列火车按照1,2,3...n的顺序排列&#xff0c;现所有的火车需要掉头&#xff0c;所以需要火车先驶入一个调度站&#xff0c;再开出来。 由于只有一根铁轨&#xff0c;所以要么最前面的一辆火车进去调度站&#xff0c;要么调度栈内最上面一辆火车开出调度栈。 现给…

图书馆管理系统(1)

图书馆管理系统的框架图 图书馆管理系统的基本的功能代码&#xff0c;就是围绕上面这幅图的内容来写&#xff0c; 其中大一点的模块相当于主菜单&#xff0c;小一点的模块相当于子菜单&#xff0c;那就有了主菜单和子菜单如何响应&#xff08;主到子&#xff0c;子回主&#…

使用Weaviate向量数据库:从Embeddings到Applications (Multilingual Search和RAG)

Vector Databases: from Embeddings to Applications 课程地址&#xff1a;https://www.deeplearning.ai/short-courses/vector-databases-embeddings-applications/ 下面是这门课程的笔记。 使用Weaviate向量数据库&#xff1a;从Embeddings到应用&#xff0c;比如Multilin…

【GIS技术】GIS在地质灾害易损性评价、危险性评估与灾后重建中的实践技术应用

地质灾害是指全球地壳自然地质演化过程中&#xff0c;由于地球内动力、外动力或者人为地质动力作用下导致的自然地质和人类的自然灾害突发事件。由于降水、地震等自然作用下&#xff0c;地质灾害在世界范围内频繁发生。我国除滑坡灾害外&#xff0c;还包括崩塌、泥石流、地面沉…

[数据结构]队列

1.队列的概念及结构 队列&#xff1a;只允许在一端进行插入数据操作&#xff0c;在另一端进行删除数据操作的特殊线性表&#xff0c;队列具有先进先出 FIFO(First In First Out) 入队列&#xff1a;进行插入操作的一端称为队尾 出队列&#xff1a;进行删除操作的一端称为队头 2…

2024/3/5打卡线性DP--最长上升子序列**

题目&#xff1a; 给定一个长度为 N 的数列&#xff0c;求数值严格单调递增的子序列的长度最长是多少。 输入格式 第一行包含整数 N。 第二行包含 N 个整数&#xff0c;表示完整序列。 输出格式 输出一个整数&#xff0c;表示最大长度。 数据范围 1≤N≤1000&#xff0c; −10^…

密码安全:保护你的数据不被入侵的重要性

title: 密码安全&#xff1a;保护你的数据不被入侵的重要性 date: 2024/3/5 17:54:56 updated: 2024/3/5 17:54:56 tags: 密码安全个人隐私保护身份盗窃防护金融损失防范弱密码危害安全密码创建双因素认证 在数字时代&#xff0c;密码安全是保护个人和机构数据的关键。然而&am…

【python】堆排序

堆的概念 堆&#xff1a;一种特殊完全二叉树&#xff0c;也就是二叉树必须全部是满的&#xff0c;但是最后一排可以从右向左缺失。 大根堆&#xff1a;每个节点都比他的子节点大 小根堆&#xff1a;每个节点都比子节点小 堆在代码中的形式 堆在代码中实际上就是列表&#…

制作耳机壳的UV树脂耳机壳UV胶和塑料材质有什么不同?

制作耳机壳的UV树脂耳机壳UV胶和塑料材质有什么不同&#xff1f; 制作耳机壳的UV树脂和塑料材质在以下几个方面存在区别&#xff1a; 硬度与耐磨性&#xff1a;UV树脂具有较高的硬度和耐磨性&#xff0c;能够有效保护耳机内部零件&#xff0c;延长耳机使用寿命。而塑料材质相…
最新文章