AIGC——Layer Diffusion使用潜在透明度的透明图像层扩散

news2024/11/26 22:43:29

前言

ControlNet的作者Lvmin Zhang大佬在新的一年又发布了新的工作LayerDiffusion,这个工作再次让人眼前一亮,和ControlNet一样,LayerDiffusion也是解决文生图中比较实际的问题,那就是生成透明的4通道RGBA图像,而且效果不输一些商业抠图工具。它通过对大规模预训练的潜在扩散模型进行改进,使其能够生成具有透明性的图像以及多个透明图层。这项技术的出现填补了在生成图像领域中的一项重要空白,因为以往的生成模型往往只能生成不透明的图像,而无法生成带有透明效果的图像,这在实际的视觉内容编辑中是不可忽视的需求。

这项技术的关键在于如何在潜在空间(latent space)中表示和控制透明度信息。通常情况下,潜在空间是一个高维的向量空间,它包含了生成模型学习到的所有图像特征。通过在潜在空间中引入透明度的概念,并且对透明度进行建模和控制,这项技术使得生成模型能够在生成图像时考虑到透明效果,从而生成具有透明性的图像或图层。

这项技术的应用前景非常广泛,特别是在视觉内容编辑软件和工作流程中。通过这项技术,用户可以更加灵活地进行图像合成、编辑和设计,例如在图像叠加、背景替换、特效添加等方面,都能够获得更加自然和逼真的效果。此外,这项技术还有望在虚拟现实、增强现实、电影特效等领域发挥重要作用,为这些领域带来更加丰富和生动的视觉体验。

算法简介

这种"latent transparency(潜在透明度)“方法的一个典型示例是对给定的文本提示生成具有透明度的多个图层。例如,对于文本提示"头发凌乱的女人,在卧室里”,该方法可以生成包含多个图层的图像,其中包括:

  1. 女人的前景图层:包括女人的头发和身体等前景元素。
  2. 卧室的背景图层:包括卧室的墙壁、家具等背景元素。

在这个示例中,生成的图像不仅反映了文本提示中描述的场景,还将前景和背景进行了分层。具体来说:

  • 女人的前景图层会包括头发凌乱的女人的形象,她可能会站在卧室里的某个位置。
  • 卧室的背景图层则会包括卧室的环境,例如床、衣柜、窗户等元素。

通过将图像分成多个图层,生成模型能够更好地捕捉到文本提示中的细节信息,并且能够更加准确地生成与文本描述相符的图像。此外,通过控制图层的透明度,模型还能够使得前景和背景之间的过渡更加自然,从而生成具有更高逼真度的图像。
在这里插入图片描述
这项研究通过人机交互的方式来训练模型框架并同时收集数据,最终建立了一个规模达到100万张透明图像的数据集,涵盖了多种内容主题和风格。随后,研究将数据集扩展到多图层样本,这使得数据集不仅可以用于训练透明图像生成器,还可以用于其他应用,如背景/前景条件生成、结构引导生成、风格迁移等。

实验结果显示,在绝大多数情况下(达到97%),用户更倾向于使用本文方法生成的透明内容,而不是之前的解决方案,比如先生成图像然后再抠图。当研究者将生成的图像质量与商业网站如Adobe Stock等的搜索结果进行比较时,也取得了不错的成绩。

这项研究的作者是 Lvmin Zhang 和 Maneesh Agrawala,其中 Lvmin Zhang 还是 ContorlNet 的作者。这表明了这项研究得到了来自该领域的专家的认可和支持,也从侧面反映了该研究在图像生成领域的重要性和影响力。

算法原理

本文的目标是为像 Stable Diffusion (SD) 这样的大规模潜在扩散模型添加透明度支持。这些模型通常使用一个潜在编码器(VAE)将 RGB 图像转换为潜在图像,然后再将其输入到扩散模型中。在此过程中,VAE 和扩散模型应共享相同的潜在分布,因为任何重大不匹配都可能显著降低潜在扩散框架的推理、训练或微调性能。

潜在透明度的目标是在调整潜在空间以支持透明度时,尽可能保留原始的潜在分布。为了确定这个看似不明确的目标,可以通过一个直接的测量来进行:可以检查修改后的潜在分布被原始预训练的冻结潜在解码器解码后是否产生了人工痕迹。如果解码修改后的潜在图像创建了严重的人工痕迹,那么潜在分布就是不对齐或损坏的。这一过程可视化结果如下图所示:
在这里插入图片描述
生成多个图层:该研究进一步使用注意力共享和 LoRA 将基础模型扩展为多图层模型,如图 3-(b) 所示。图 3-(a) 为训练可视化结果。
在这里插入图片描述
图 4 引入了几种替代架构,以实现更复杂的工作流程。研究者可以向 UNet 添加零初始化通道,并使用 VAE(有或没有潜在透明度)将前景、背景或图层组合编码为条件,并训练模型生成前景或背景(例如,图 4-( b,d)),或直接生成混合图像(例如,图 4-(a,c))。

在这里插入图片描述
数据准备及其训练细节
训练数据集包括基础数据集(图 5-(a))以及多图层数据集 (5-(b)) 。
在这里插入图片描述
训练设备为 4 × A100 80G NV-link,整个训练时间为一周(为了减少预算,在人工收集下一轮优化数据时暂停训练),实际 GPU 时间约为 350 A100 小时。该方法适合个人规模或实验室规模的研究,因为 350 个 GPU 小时预算通常在 1K 美元内。

测试

图 6 展示了使用单图像基础模型生成的图像定性结果。这些结果展示了该模型可以生成原生透明图像,包括但不限于高质量的玻璃透明度、头发、毛发、发光、火焰、魔法等效果。这些结果进一步证明了该模型具有很好的泛化性能,能够适应不同的场景,并生成出具有各种透明效果的图像。

这些定性结果表明该模型在生成透明图像方面取得了很好的效果,并且能够处理复杂的透明效果,如玻璃、发光物体、火焰等。这些结果的展示不仅证明了该模型的有效性,还为其在实际应用中的使用提供了可靠的基础。
在这里插入图片描述

图 7 展示了使用具有不同主题的提示来生成图片的定性结果。每个示例展示了混合图像以及两个输出图层。这些图层不仅在照明和几何关系方面保持一致,而且还展示了稳定扩散模型的美学品质,例如,背景和前景的颜色选择看起来和谐且美观。

这些定性结果表明,该模型在根据不同主题的提示生成图像时能够保持一致的照明和几何关系,同时展现了良好的美学品质。这种一致性和美观性可以为实际应用中的图像生成提供重要的指导和参考,确保生成的图像在视觉上具有吸引力和连贯性。

在这里插入图片描述
图 8 展示了条件层生成的结果,即以前景为条件的背景生成和以背景为条件的前景生成。从图中可以看出,本文的模型能够生成具有一致几何和照明效果的连贯构图。

在"教堂中悬挂的灯泡"示例中,可以观察到该模型尝试通过一种对称性审美设计来匹配前景,从而生成一个与教堂背景相适应的灯泡图案。这表明了模型在生成图像时考虑了场景中的几何和照明关系,使得生成的图像看起来更加自然和连贯。

而在"坐在长登上或坐在沙发上"示例中,模型能够推断出前景和背景之间的交互,并生成相应的几何。例如,当前景是一个人坐在椅子上时,模型会相应地生成一个适应的背景,如长凳或沙发。这种能力使得模型能够根据给定的条件生成与之匹配的图像,从而实现更加准确和连贯的图像生成。

总的来说,条件层生成的结果展示了该模型在考虑前景和背景之间的关系时的优秀表现,以及在生成连贯构图方面的能力。这些结果为模型在实际应用中的图像生成任务提供了有力的支持和指导。

在这里插入图片描述
在图 9 中,研究者展示了迭代生成的结果。他们可以迭代使用以背景为条件的前景生成模型来实现构图或任意数量的层。对于每个新的层,他们将之前生成的所有层融入到一个 RGB 图像中,并将其作为条件输入到以背景为条件的前景模型中。研究者观察到,该模型能够在背景图像的上下文中解释自然语言,例如在一只猫的面前生成一本书。此外,该模型展现了强大的几何构图能力,例如生成一个人坐在箱子上的组合图像。

这种迭代生成的方法使得模型能够逐步构建出更加复杂和丰富的图像,每一步都考虑了之前生成的所有层,并在新的层上进行进一步的生成。这种方法不仅能够生成具有高度连贯性和自然性的图像,还能够实现对复杂场景和构图的灵活控制。这为图像生成任务提供了一种有效的方法,并展示了该模型在处理多层级图像生成任务时的强大能力。

在这里插入图片描述
在图 10 中,研究者展示了使用 ControlNet 等现有的可控模型来扩展他们的模型,以提供更丰富的功能。通过引入 ControlNet 信号,本文的模型可以保留全局结构,并生成具有一致照明效果的和谐构图。此外,研究者还通过一个"反射球"示例展示了本文的模型可以与前景和背景的内容进行交互,从而生成反射等一致性照明效果。

这些结果表明,本文的模型在利用现有的可控模型进行扩展时表现出色。通过引入 ControlNet 信号,模型能够更好地控制生成的图像,保持全局结构和照明效果的一致性。同时,模型还能够与前景和背景的内容进行交互,生成反射等一致性照明效果,使生成的图像更加真实和自然。
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

在Mac上安装nginx+rtmp 本地服务器

需要使用终端命令,如果没有Homebrew,要安装Homebrew,执行: ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 一、安装Nginx 1、先clone Nginx项目到本地: brew tap de…

目标检测5:采用yolov8, RK3568上推理实时视频流

上一个效果图,海康球机对着电脑屏幕拍,清晰度不好。 RK3568接取RTSP视频流,通过解码,推理,编码,最终并把结果推出RTSP视频流。 数据集采用coco的80个种类集,通过从yovo8.pt,转换成R…

在 Flutter 中使用 flutter_gen 简化图像资产管理

你是否厌倦了在 Flutter 项目中手动管理图像资产的繁琐任务? 告别手工输入资源路径的痛苦,欢迎使用“Flutter Gen”高效资源管理的时代。在本文中,我将带您从手动处理图像资源的挫折到动态生成它们的便利。 选择1:痛苦手动添加–…

网络编程(3/4)

广播 ​ #include<myhead.h>int main(int argc, const char *argv[]) {//1、创建套接字int sfd socket(AF_INET, SOCK_DGRAM, 0);if(sfd -1){perror("socket error");return -1;}//2、将套接字设置成允许广播int broadcast 1;if(setsockopt(sfd, SOL_SOC…

基于FastAPI构造一个AI模型部署应用

前言 fastapi是目前一个比较流行的python web框架&#xff0c;在大模型日益流行的今天&#xff0c;其云端部署和应用大多数都是基于fastapi框架。所以掌握和理解fastapi框架基本代码和用法尤显重要。 需要注意的是&#xff0c;fastapi主要是通过app对象提供了web服务端的实现代…

SINAMICS V90 PN 指导手册 第7章 回参考点功能

如果伺服是增量式编码器&#xff0c;共有三种回参考点模式&#xff0c;分别是 通过数字量输入信号REF设置回参考点通过外部参考挡块和编码器零脉冲回参考点仅通过编码器零脉冲回参考点 如果伺服是绝对值编码器&#xff0c;除了这三种以外&#xff0c;还可以通过“ABS”调整绝…

利用 Redis 和 Lua 实现高效的限流功能

简介 在现代系统中&#xff0c;限流是一种重要的机制&#xff0c;用于控制服务端的流量并保护系统免受恶意攻击或请求泛滥的影响。本文将介绍如何利用 Redis 和 Lua 结合实现高效的限流功能。 一、什么是限流 限流指的是对系统中的请求进行控制和调节&#xff0c;确保系统在…

Nginx 可视化管理软件 Nginx Proxy Manager

一、简介 Nginx Proxy Manager 是一款开源的 Nginx 可视化管理界面&#xff0c;基于 Nginx 具有漂亮干净的 Web UI 界面。他允许用户通过浏览器界面轻松地管理和监控 Nginx 服务器&#xff0c;可以获得受信任的 SSL 证书&#xff0c;并通过单独的配置、自定义和入侵保护来管理…

ARM单片机中程序在ROM空间和RAM空间的分布(分散加载文件,Scatter-Loading Description File)

对于 K e i l u V i s i o n I D E Keil\quad uVision\quad IDE KeiluVisionIDE&#xff0c;程序编译好之后&#xff0c;代码的下载位置&#xff08; R O M ROM ROM空间&#xff09;以及代码运行的时候使用的 R A M RAM RAM空间&#xff08; R A M RAM RAM空间&#xff09;默认…

第二证券|重大转变!全球资金正重回中国股市!

外资巨头最新发声。 摩根士丹利在最新发布的陈述中称&#xff0c;全球资金正在重返我国股市。跟着部分基金对我国商场的看跌心情有所平缓&#xff0c;全球长时间出资者撤出我国股票商场&#xff08;A股和港股&#xff09;的举动现已按下暂停键。 按下暂停键或许是一个前期痕迹…

leetcode刷题(javaScript)——二叉树、平衡二叉树相关场景题总结

二叉树的知识点很多&#xff0c;在算法刷题中需要有想象力的数据结构了。主要是用链表存储&#xff0c;没有数组更容易理解。在刷二叉树相关算法时&#xff0c;需要注意以下几点&#xff1a; 掌握二叉树的基本概念&#xff1a;了解二叉树的基本概念&#xff0c;包括二叉树的定义…

pytorch什么是梯度

目录 1.导数、偏微分、梯度1.1 导数1.2 偏微分1.3 梯度 2. 通过梯度求极小值3. learning rate 1.导数、偏微分、梯度 1.1 导数 对于yx 2 2 2 的导数&#xff0c;描述了y随x值变化的一个变化趋势&#xff0c;导数是个标量反应的是变化的程度&#xff0c;标量的长度反应变化率的…

next/future/image图片根据外部容器100%填充

官网文档地址&#xff1a; https://nextjs.org/docs/pages/api-reference/components/image 主要需要使用属性fill。外部元素需要设置好position:relative <Imagexsrc"/images/1.jpg"fillsizes100vw />

浅谈块存储、文件存储、对象存储

**块存储、文件存储和对象存储各自有其独特的特点和适用场景**。具体来说&#xff1a; 1. **块存储**&#xff1a; - 描述&#xff1a;块存储将存储空间分割成固定大小的块&#xff0c;这些块可以直接映射到主机操作系统。它提供的是原始的存储空间&#xff0c;不带文件系统…

hive实战项目:旅游集市数仓建设

旅游集市数仓建设 文章目录 旅游集市数仓建设为什么要设计数据分层&#xff1f;分层设计ODS&#xff08;Operational Data Store&#xff09;&#xff1a;数据运营层DW&#xff08;Data Warehouse&#xff09;&#xff1a;数据仓库层DWD&#xff08;Data Warehouse Detail&…

软考63-上午题-【面向对象技术】-面向对象的基本概念2

一、动态绑定、静态绑定 1-1、动态绑定、静态绑定的定义 编译时进行的绑定 静态绑定 运行时进行的绑定 动态绑定 动态绑定&#xff0c;和类的继承和多态想关联的。 在运行过程中&#xff0c;当一个对象发送消息请求服务时&#xff0c;要根据接受对象的具体情况将请求的操作…

gitlab的安装

1、下载rpm 安装包 (1)直接命令下载 wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-11.6.10-ce.0.el7.x86_64.rpm&#xff08;2&#xff09;直接去服务器上下载包 Index of /gitlab-ce/yum/el7/ | 清华大学开源软件镜像站 | Tsinghua Open Source…

html标签之列表标签,含爱奇艺,小米,腾讯,阿里

什么是css块元素&#xff1f; 块级元素是独占一行显示的。它的兄弟元素必定不会与其在同一行中&#xff08;除非脱离了文档流&#xff09;。通俗点来说&#xff0c;就是块元素(block element)一般是其他元素的容器元素&#xff0c;能容纳其他块元素或内联元素。 css块元素的三…

Mol2文件处理-拆分、合并、提取名称、计数与格式转换

欢迎浏览我的CSND博客&#xff01; Blockbuater_drug …点击进入 文章目录 前言一、Mol2文件合并二、Mol2文件拆分为含有单个分子的文件三、Mol2文件分子名称修改与提取3.1 分子名称修改去除空格3.2 文件名称提取 四、Mol2文件包含分子计数4.1 Mol2文件中分子计数4.2 分子计数传…

容器化软件应用简化传统设备的连接

| Docker容器如何简化工业物联网解决方案 制造和包装工厂可通过集成IT和OT技术来改善运营&#xff0c;从而释放预测性维护、数据分析以及接入强大的企业管理应用等优势。然而&#xff0c;对于缺乏员工、时间或资源的企业而言&#xff0c;实施工业物联网解决方案并不容易。对此…