ControlNet作者新作LayerDiffusion,让SD直接生成生成透明图像,堪比商用抠图软件

news2024/12/21 10:41:17

        ControlNet作者又出新工作,这次的工作LayerDiffusion它使得大规模预训练的Stable Diffusion能够生成透明图像。该方法允许生成单个透明图像或多个透明图层,效果堪比商业产品Adobe Stock。而且LayerDiffusion和ControlNet一样支持基于SD微调的模型。

        "LayerDiffusion绝不是简单的抠图,重点在于生成。"

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

        例如来一句:

“头发凌乱的女性,在卧室里。”

“在乡下,在桌子上烧柴。”

图片

        可以看到,AI不仅生成了符合prompt的完整图像,就连背景和人物也能分开。可以生成具有透明度的多个图层。这些层可以混合产生与提示相对应的图像。放大可以看到细节,包括凌乱的头发和半透明的火。


目录

相关链接

论文解读

摘要

方法

效果展示        

关于作者


相关链接

  • 论文链接: https://arxiv.org/abs/2402.17113
  • Github链接: https://github.com/layerdiffusion/LayerDiffusion
  • 原理解读:https://zhuanlan.zhihu.com/p/685029401

论文解读

图片

摘要

        我们提出了LayerDiffusion,一种能够使大规模预训练的潜在扩散模型生成透明图像的方法。该方法可以生成单个透明图像或多个透明层。该方法学习了一个“潜在透明度”,将Alpha通道透明度编码到预训练潜在扩散模型的潜在流形中。通过将添加的透明度作为潜在偏移量进行调节,并对预训练模型的原始潜在分布进行最小改变,它保持了大规模扩散模型的生产就绪质量。通过使用人机协同收集方案收集1M个透明图像层对来训练模型。我们展示了潜在透明性可以应用于不同的开源图像生成器,或者被调整为各种条件控制系统以实现前景/背景条件下的层生成、联合层生成、层内容结构控制等应用。用户研究发现,在大多数情况下(97%),用户更喜欢我们本地生成的透明内容,而不是之前的临时解决方案,如先生成再抠图。用户还报告说我们所生成的透明图片质量与Adobe Stock等真实商业可见资产相当好。

方法

        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的发明人——张吕敏。他本科就毕业于苏州大学,大一的时候就发表了与AI绘画相关的论文,本科期间更是发了10篇顶会一作。目前张吕敏在斯坦福大学攻读博士。LayerDiffusion在GitHub中并没有开源,但截至目前已经斩获1.1k星。


        感谢你看到这里,也欢迎点击关注下方公众号,一个有趣有AI的AIGC公众号:关注AI、深度学习、计算机视觉、AIGC、Stable Diffusion、Sora等相关技术,欢迎一起交流学习💗~

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

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

相关文章

Flutter的线程模型

在Flutter框架中,Embedder层负责把Flutter嵌入到各个平台上去,其所做的主要工作包括线程设置、渲染Surface设置,以及插件等。因此, Embedder负责线程的创建和管理,并且提供Task Runner给Engine使用。Engine则是负责提供…

钉钉h5应用 环境报错Error: Do not support the current environment:notInDingTalk

钉钉h5应用 环境报错 Error: Do not support the current environment:notInDingTalk problem Error: Do not support the current environment:notInDingTalk reason 前端页面运行在普通浏览器 solution 需要将h5页面在后台发布后,在钉…

Java中的日期时间类详解(建议收藏)!!!

Java中的日期时间类详解 1. LocalDate、LocalTime和LocalDateTime2. DateTimeFormatter3. 日期时间计算和比较4. **时区和日历**: 总结 本文详细解释了Java提供了 java.time 包来处理日期和时间的方式。 1. LocalDate、LocalTime和LocalDateTime LocalDate &#…

【HarmonyOS】鸿蒙开发之Stage模型-UIAbility的启动模式——第4.4章

UIAbi lity的启动模式简介 一共有四种:singleton,standard,specified,multion。在项目目录的:src/main/module.json5。默认开启模式为singleton(单例模式)。如下图 singleton(单实例模式)启动模式 每个UIAbility只存在唯一实例。任务列表中只会存在一…

【EI会议征稿通知】第四届控制与智能机器人国际学术会议(ICCIR 2024)

第四届控制与智能机器人国际学术会议(ICCIR 2024) 2024 4th International Conference on Control and Intelligent Robotics 第四届控制与智能机器人国际学术会议(ICCIR 2024)由华南理工大学自动化科学与工程学院主办&#xff…

【Android移动开发】helloworld项目文件剖析

本文讨论了一个Android应用的Gradle项目的各个方面。涵盖了Gradle的启动脚本,项目的配置文件(如build.gradle和gradle.properties),以及应用的源代码和资源文件。具体内容包括了项目结构、Gradle插件的配置、AndroidManifest.xml文…

SSM框架,SpringMVC框架的学习(上)

SpringMVC介绍 Spring Web MVC是基于Servlet API构建的原始Web框架,从一开始就包含在Spring Framework中。正式名称“Spring Web MVC”来自其源模块的名称( spring-webmvc ),但它通常被称为“Spring MVC”。 SpringMVC涉及组件 …

复合式统计图绘制方法(3)

复合式统计图绘制方法(3) 常用的统计图有条形图、柱形图、折线图、曲线图、饼图、环形图、扇形图。 前几类图比较容易绘制,饼图环形图绘制较难。 在统计图的应用方面,有时候有两个关联的统计学的样本值要用统计图来表达&#xff0…

Python电能质量扰动信号分类(六)基于扰动信号特征提取的超强机器学习识别模型

目录 往期精彩内容: 前言 1 数据集和特征提取 1.1 数据集导入 1.2 扰动信号特征提取 2超强模型XGBoost——原理介绍 2.1 原理介绍 2.2 特征数据集制作 3 模型评估和对比 3.1 随机森林分类模型 3.2 支持向量机SVM分类模型 3.3 XGBoost分类模型 代码、数据…

windows7怎么改ip地址?win7设置ip地址的步骤

随着网络的普及和技术的不断发展,IP地址对于计算机用户来说,已经不再是一个陌生的概念。在Windows 7操作系统中,根据网络环境和个人需求,有时我们需要手动修改IP地址。本文旨在向读者介绍如何在Windows 7系统中修改IP地址&#xf…

Redis常用指令,jedis与持久化

1.redis常用指令 第一个是key的常用指令,第二个是数据库的常用指令 前面的那些指令都是针对某一个数据类型操作的,现在的都是对所有的操作的 1.key常用指令 key应该设计哪些操作 key是一个字符串,通过key获取redis中保存的数据 对于key…

keil 中使用了cks32F103C8T6的芯片如何安装pack

首先是本来想使用stm32的芯片,结果商家给发过来的无法写入,一查是因为商家把cks的芯片给磨皮了,冒充stm来卖 那就花点时间来研究一下这个cks怎么在keil中写入 好不容易找到一个下载包 Keil.CS32F1xx_DFP.pack 【免费】中科芯CKSF103的PACK…

网络安全: Kali Linux 使用 hping3 阻塞目标主机

目录 一、实验 1.环境 2. 物理机测试远程连接 Windows server 3.Kali Linux 使⽤ hping3 ⼯具 二、问题 1. 常见的 DoS ⽅式有哪些 2.hping3 测试⼯具的命令格式和选项参数 一、实验 1.环境 (1)主机 表1 主机 系统版本IP备注Kali Linux2024.…

Python实现向量自回归移动平均模型(VARMA算法)项目实战

说明:这是一个机器学习实战项目(附带数据代码文档视频讲解),如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 向量自回归移动平均模型(Vector Autoregressive Moving Average, VARMA)是一种…

在 Rust 中实现 TCP : 2.解析原始字节

解析原始字节 现在已经设置了虚拟网络接口并且它接收了数据位,实现 TCP 之旅的下一步是从接收到的数据字节中解析出数据包。默认情况下,除了从虚拟网络接口发送和接收的数据包之外,还会在数据包前面附加 4 个字节的数据。 Tun/TAP documenta…

Flutter混合栈管理方案对比

1.Google官方(多引擎方案) Google官方建议的方式是多引擎方案,即每次使用一个新的FlutterEngine来渲染Widget树,存在的主要问题是每个引擎都要有比较大的内存等资源消耗,虽然Flutter 2.0之后的FlutterEngineGroup通过在…

AI学习集合-前瞻

AI学习前瞻 工作岗位 算法工程师机器学习工程师图像算法工程师ai工程师NLP高级算法工程师 学习路线 应用场景 计算机视觉技术应用场景 自然语言应用 AI流程 AI拟人流程 机器人历史数据经验模型规律依据模型预测未来依据规律做出判断 AI基本流程 术语所用到的技术手段数据数…

收藏4款免费又好用的甘特图软件

zz-plan zz-plan(https://zz-plan.com/) 是一款基于甘特图的项目管理协作软件。无论项目大小、简单复杂都能轻松管理。任务、进度、工时、资源、周期、依赖关系都能一目了然。支持私有化部署,可完全控制、灵活定制、确保数据安全&#xff0c…

峟思测斜仪:工程斜坡稳定性的精确守护者

在工程建设领域,斜坡的稳定性始终是一个关键的安全问题。斜坡失稳不仅可能导致工程项目的延误,更可能威胁到人们的生命安全。为了有效监测和评估斜坡的稳定性,工程师们依赖于一种先进的设备——峟思测斜仪。 测斜仪的工作原理 峟思测斜仪采用…

分层解耦-IOCDI

内聚:软件中各个功能模块内部的功能联系。 耦合:衡量软件中各个层/模块之间依赖、关联的程度 软件设计原则:高内聚低耦合 控制反转:Inversion Of Control,简称IOC。对象的创建控制权由程序自身转移到外部(…