AIGC——DreamTuner通过单张图片生成与该图片主题风格一致的新图像

简介

DreamTuner的能力在于从单个图像生成主体驱动的新通用方法,这意味着用户只需提供一张图片,DreamTuner就能帮助他们生成与原始图片在主题和风格上一致的新图像。

算法重要之处在于其通用性和个性化定制的能力。无论是需要根据特定主题或条件创建个性化图像的场景,还是希望将一个特定主题或风格应用到已有图像中,DreamTuner都能够胜任。

DreamTuner的论文的发布可能会对多个领域产生重大影响。例如,在创意设计领域,设计师可以利用它快速生成符合特定主题或风格的创意作品;在数字内容创作领域,用户可以轻松创建个性化的图像内容,以满足特定需求或品牌形象;在娱乐行业,这项技术可能被用于影视特效、游戏开发等方面,为创作带来更多可能性。

在这里插入图片描述

在动漫制作领域,有了DreamTuner这样的工具,能够极大地简化动漫角色的创作过程,让创作者能够更轻松地实现他们的创意。在此之前,想要创建一个全新的动漫角色,可能需要通过不断尝试生成更多类似的角色,或者使用不太可控的图生图功能,这会花费很多时间和精力,并且无法保证生成的图片风格与我想要的一致。

但现在有了DreamTuner,只需上传我喜欢的参考图像,并添加文本描述,比如“坐在公园的长椅上”,DreamTuner就能根据提供的参考图像和描述来生成新的图像。在这个过程中,DreamTuner会保留原始参考图像的关键特征,比如角色的风格和特点,同时根据描述添加新的元素和场景。

这种方式不仅简化了创作过程,还能确保新生成的图像与原始参考图像保持一致的风格和主题,这对于动漫角色创作者来说是一个非常有用的工具。

论文地址:https://arxiv.org/abs/2312.13691
项目地址:https://dreamtuner-diffusion.github.io/

摘要

大型基于扩散的模型在文本到图像的生成方面已经展示了令人印象深刻的能力,并且有望用于需要使用一个或几个参考图像生成定制概念的个性化应用,即主题驱动生成。然而,现有的基于微调的方法需要在主题学习和维持预训练模型的生成能力之间进行权衡。此外,其他基于附加图像编码器的方法往往会由于编码压缩而丢失主题的一些重要细节。

为了解决这些问题,提出了一种新的方法DreamTuner,它将定制主题的参考信息从粗到细注入。首先提出了一种用于粗主题身份保存的主题编码器,其中压缩的一般主题特征在视觉-文本交叉注意之前通过额外的注意层引入。然后,我们注意到预训练文本到图像模型中的自注意层自然地执行详细的空间上下文关联功能,我们将它们修改为自主体注意层以细化目标主体的细节,其中生成的图像从参考图像和自身查询详细特征。值得强调的是,自我主体注意是一种优雅、有效且无需训练的方法,用于维护定制概念的详细特征,可以在推理过程中作为即插即用的解决方案使用。最后,通过对单张图像进行额外的微调,DreamTuner在由文本或姿势等其他条件控制的主题驱动图像生成方面取得了卓越的表现。

实现方法

提出DreamTuner作为一个基于微调和图像编码器的主题驱动图像生成的新框架,它保持了主题从粗到细的身份。DreamTuner包括三个阶段:主题编码器预训练、主题驱动微调和主题驱动推理。

首先,对主题编码器进行粗身份保持训练。主题编码器是一种为生成模型提供压缩图像特征的图像编码器。利用冻结控制网实现内容与布局的解耦。然后我们在参考图像和一些在DreamBooth中生成的常规图像上对整个模型进行微调。注意,主体编码器和自我主体注意用于常规图像生成,以细化常规数据。在推理阶段,使用主体编码器、自我主体注意和通过微调得到的主题词[S*],实现由粗到精的主体身份保持。预训练的ControlNet也可用于布局控制生成。
在这里插入图片描述

  1. 主题编码器作为图像编码器被提出,为主题驱动的生成提供了一个粗略的参考。这里采用冷冻CLIP图像编码器来提取参考图像的压缩特征。通过显著目标检测(SOD)模型或分割模型去除输入图像的背景,以突出主题。

  2. 引入了一些残差块(ResBlock)来进行域移位。CLIP提取的多层特征在通道维度上进行拼接,然后通过残差块调整到与生成的特征相同的维度。采用额外的主题编码器-注意(S-E-A)层,将主题编码器的编码参考特征注入到文本-图像模型中。这一注意层在视觉-文本交叉注意层之前添加,因为交叉注意层是控制生成图像一般外观的模块。

  3. 根据与交叉注意相同的设置和输出层的初始值为零,构建主题编码器注意。引入一个附加系数β来调节主体编码器的影响。此外,主题编码器将为文本到图像的生成提供参考图像的内容和布局。然而,在大多数情况下,主题驱动生成不需要布局。

  4. 进一步引入ControlNet来帮助解耦内容和布局。具体来说,训练主题编码器连同冻结深度控制网。由于ControlNet提供了参考图像的布局,因此主题编码器可以更加专注于主题内容。

在这里插入图片描述
由于主题编码器为生成过程提供了特定主题的总体外观,我们进一步提出了基于原始自注意层的自我主题注意,以保持良好的主题身份。这个方法涉及将预先训练好的文本到图像U-Net模型提取的参考图像特征注入到自注意层中。参考特征与生成图像的特征具有相同的分辨率,可以提供精细化的详细参考。具体而言,在每个时间步长t对参考图像进行扩散前处理,然后从噪声后的参考图像中提取每个自注意层前的参考特征,使其与时间步长t生成的图像特征具有相同的数据分布。利用参考特征将原始自注意层修改为自主体注意层。将生成图像的特征作为查询,将生成图像特征与参考图像特征的拼接作为键和值。为了消除参考图像背景的影响,使用显著目标检测(SOD)模型创建前景蒙版,用0和1表示背景和前景。此外,遮罩还可以通过权重策略来调整参考图像的影响程度,即将遮罩乘以调整系数ωref。掩码作为注意偏差,因此使用log函数作为预处理。
在这里插入图片描述
将原来的分类器自由引导方法也修改为:
在这里插入图片描述
其中zt为时间步长t时生成的图像,c为条件,uc为不希望的条件,rt - Δt和rt Δt '为时间步长t - Δt和t Δt '时的扩散噪声参考图像,Δt和Δt '为小时间步长偏差,ωr和ωc为引导尺度,λ t为最终输出。第一个方程强调参考图像的引导,第二个方程强调条件的引导,其中pr控制选择第一个的可能性。
自我主体注意图的可视化
我们将生成过程的中间时间步(t=25)和最后时间步(t=0)的自我主体注意图可视化,文字为“1girl [S*],坐在桌旁,手里端着一杯茶,阳光从窗户射进来”。我们选择Diffusion U-Net模型的Encoder layer 7、8和Decoder layer 4、5的注意图,即当生成的图像分辨率为512512时,特征分辨率为1616的层。生成的图像显示在左边,参考图像显示在右边。注意力地图上,影响力大的区域呈红色,影响力小的区域呈蓝色。红色框表示查询。解码器第5层的一些关键注意图如下所示。可以发现所生成的图像将从参考图像中查询精炼的主题信息。
在这里插入图片描述
所有的注意力图都被可视化为视频:
在这里插入图片描述

实验结果

文本控制动画角色驱动图像生成的结果

在这里插入图片描述
结果显示了文本控制的主题驱动的图像生成的输出,重点是动画角色。既进行了局部编辑(如第一行的表情编辑),也进行了全局编辑(包括随后五行的场景和动作编辑),即使输入复杂的文本,也能获得非常详细的图像。值得注意的是,图像准确地保持了参考图像的细节。

文本控制自然图像驱动图像生成的结果
在这里插入图片描述
方法是在DreamBooth数据集上进行评估的,其中每个主题的一张图像被用作参考图像。通过使用主体编码器和自我主体注意,生成了一个精细的参考,这使得DreamTuner能够成功地产生与文本输入一致的高保真图像,同时还保留了关键的主题细节,包括但不限于,小狗头上的白色条纹,袋子上的标志,图案和罐头上的文字。

姿态控制驱动图像生成的结果
在这里插入图片描述
可以与ControlNet相结合,以扩大其对姿态等各种条件的适用性。在下面的例子中,只使用一张图像进行DreamTuner微调,并使用参考图像的姿态作为参考条件。为了保证帧间的一致性,参考图像和生成图像的前一帧都被用于自主体注意,参考权重分别为10和1。

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

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

相关文章

【深度学习笔记】优化算法——学习率调度器

学习率调度器 🏷sec_scheduler 到目前为止,我们主要关注如何更新权重向量的优化算法,而不是它们的更新速率。 然而,调整学习率通常与实际算法同样重要,有如下几方面需要考虑: 首先,学习率的大…

cefsharp(winForm)调用js脚本,js脚本调用c#方法

本博文针对js-csharp交互(相互调用的应用) (一)、js调用c#方法 1.1 类名称:cs_js_obj public class cs_js_obj{//注意,js调用C#,不一定在主线程上调用的,需要用SynchronizationContext来切换到主线程//private System.Threading.SynchronizationContext context;//…

Elasticsearch 分享

一、Elasticsearch 基础介绍 ElasticSearch 是分布式实时搜索、实时分析、实时存储引擎,简称(ES), 成立于2012年,是一家来自荷兰的、开源的大数据搜索、分析服务提供商,为企业提供实时搜索、数据分析服务,…

AHU 汇编 实验四

实验名称:实验四 两个数的相乘 实验内容: 用子程序形式编写: A*B:从键盘输入a和b,计算A*B,其中乘法采用移位和累加完成 实验过程: 源代码: data segmentmul1 db 16,?,16 dup(?…

树莓派安装Nginx服务搭建web网站结合内网穿透实现公网访问本地站点

文章目录 1. Nginx安装2. 安装cpolar3.配置域名访问Nginx4. 固定域名访问5. 配置静态站点 安装 Nginx(发音为“engine-x”)可以将您的树莓派变成一个强大的 Web 服务器,可以用于托管网站或 Web 应用程序。相比其他 Web 服务器,Ngi…

什么是高级编程语言?——跟老吕学Python编程

什么是高级编程语言?——跟老吕学Python编程 高级编程语言简介高级编程语言发展历程高级编程语言特点高级编程语言分类命令式语言函数式语言逻辑式语言面向对象语言 常见的高级编程语言及其特点和应用领域高级编程语言性能分析高级编程语言的工作方式 高级编程语言简…

GPT出现Too many requests in 1 hour. Try again later.

换节点 这个就不用多说了,你都可以上GPT帐号了,哈…… 清除cooki

平面纯弯梁单元Matlab有限元编程 |欧拉梁单元| 简支梁|悬臂梁|弯矩图 |变形图| Matlab源码 | 视频教程

专栏导读 作者简介:工学博士,高级工程师,专注于工业软件算法研究本文已收录于专栏:《有限元编程从入门到精通》本专栏旨在提供 1.以案例的形式讲解各类有限元问题的程序实现,并提供所有案例完整源码;2.单元…

容灾演练双月报|美创DRCC助力银行高效验证数据库高可用架构

了解更多灾备行业动态 守护数字化时代业务连续 目录 CONTENTS 01 灾备法规政策 02 热点安全事件 03 容灾演练典型案例 01 灾备法规政策 2月,工信部印发《工业领域数据安全能力提升实施方案(2024—2026年)》,要求到2026年…

专属你的时尚盛宴,尽在手机无人直播!

时尚,是一个永恒的话题。在这个充满活力的时代,时尚不仅仅是穿着打扮,更是一种生活态度,一种表达自我的方式。每个人都有自己独特的时尚理念,每个人都可以在时尚的世界里找到属于自己的一席之地。 手机无人直播&#…

鼠标在QTreeView、QTableView、QTableWidget项上移动,背景色改变

目录 1. 前言 2. 需求 3. 功能实现 3.1. 代码实现 3.2. 功能讲解 4. 附录 1. 前言 本博文用到了Qt的model/view framework框架,如果对Qt的“模型/视图/委托”框架不懂,本博文很难读懂。如果不懂这方面的知识,请在Qt Assistant 中输入Model/View…

力扣大厂热门面试算法题 15-17

15. 三数之和,16. 最接近的三数之和,17. 电话号码的字母组合,每题做详细思路梳理,配套Python&Java双语代码, 2024.03.11 可通过leetcode所有测试用例。 目录 15. 三数之和 解题思路 完整代码 Java Python ​…

Ubuntu 24.04 抢先体验换国内源 清华源 阿里源 中科大源 163源

Update 240307:Ubuntu 24.04 LTS 进入功能冻结期 预计4月25日正式发布。 Ubuntu22.04换源 Ubuntu 24.04重要升级daily版本下载换源步骤 (阿里源)清华源中科大源网易163源 Ubuntu 24.04 LTS,代号 「Noble Numbat」,即将与我们见面! Canonica…

vue provide 与 inject使用

在vue项目中,如果遇到跨组件多层次传值的话,一般会用到vuex,或者其他第三方共享状态管理模式,如pinia等,但是对于父组件与多层次孙子组件时,建议使用provide 与 inject,与之其他方式相比&#x…

如何使用Everything+cpolar实现公网远程搜索下载内网储存文件资料

文章目录 前言1.软件安装完成后,打开Everything2.登录cpolar官网 设置空白数据隧道3.将空白数据隧道与本地Everything软件结合起来总结 前言 要搭建一个在线资料库,我们需要两个软件的支持,分别是cpolar(用于搭建内网穿透数据隧道…

高分1、2号卫星原始遥感影像数据

高分一号 高分一号卫高分一号卫星是中国高分辨率对地观测系统的首发星,突破了高空间分辨率、多光谱与宽覆盖相结合的光学遥感等关键技术,设计寿命5至8年。 高分辨率对地观测系统工程是《国家中长期科学和技术发展规划纲要(2006~2020年)》确定…

StarRocks实战——欢聚集团极速的数据分析能力

目录 一、大数据平台架构 二、OLAP选型及改进 三、StarRocks 经验沉淀 3.1 资源隔离,助力业务推广 3.1.1 面临的挑战 3.1.2 整体效果 3.2 稳定优先,监控先行,优化运维 3.3降低门槛,不折腾用户 3.3.1 与现有的平台做打通 …

分库分表浅析原理

数据库存放数据大了,查询等操作就会存在瓶颈,怎么办? 1. 如果是单张表数据大了,可以在原有库上新建几张表table_0、table_1、table_2、.....table_n 写程序对数据进行分表: --这里提供一种一种分表策略,这里只需维护…

容器安全是什么?

容器安全定义 容器安全是指保护容器的完整性。这包括从其保管的应用到其所依赖的基础架构等全部内容。容器安全需要完整且持续。通常而言,企业拥有持续的容器安全涵盖两方面: 保护容器流水线和应用保护容器部署环境和基础架构 如何将安全内置于容器流…

Java开发从入门到精通(一):Java的基础语法项目案例

Java大数据开发和安全开发 Java 案例练习案例一:买飞机票案例二:开发验证码案例三:评委打分案例四:数字加密案例五:数组拷贝案例六: 抢红包案例七:找素数案例八:模拟双色球[拓展案例] Java 案例练习 案例一:买飞机票 分析: 方法是需要接收数据?需要接收机票原价、当前月份、舱…