【AIGC-图片生成视频系列-6】SSR-Encoder:用于主题驱动生成的通用编码器

news2024/11/24 20:27:59

目录

一. 贡献概述

二. 方法详解

a) 训练阶段

b) 推理生成阶段:

三. 综合结果

四. 注意力可视化

五. 选择性主题驱动图像生成

六. 人体图像生成

七. 可推广到视频生成模型

八. 论文

九. 个人思考


稳定扩散(Stable Diffusion)模型可以让广泛的用户群轻松地根据文本提示生成图像。

但人们越来越感兴趣的领域是主题驱动生成,比如关注焦点从创建通用主题(例如“一只猫”)转移到生成特定实例(例如“这只猫”)。主题驱动定义可以见之前一篇文章DreamTuner(点击可跳转)。

今天要介绍的SSR-Encoder就是可以用于主题驱动生成的通用编码器。

一. 贡献概述

上文提到,人们对主题驱动越来越感兴趣。但通过制作完美的文本提示来生成所需的主题内容是一大难点,并且对大多数用户而言门槛略高。

分析已有的解决策略,可以发现:

  1. 主题驱动的图像生成任务通过从参考图像中学习主题,并生成符合身份和风格等特定概念的图像。

  2. 一种方法是涉及test-time微调,虽然有效,但需要大量的计算资源来学习每个新主题。

  3. 一种方法是将参考图像编码到图像嵌入中以绕过微调成本。但是基于编码器的模型通常需要与基础扩散模型联合训练,限制了它们的通用性。

  4. 一个同期工作 IP-adapter 通过学习投影将图像信息注入 U-Net 来解决微调成本和通用性,避免了对基础的文本到图像模型进行微调,从而拓宽了在个性化模型中的应用。

但问题是:

  1. 尽管之前的策略都有进步,但经常被忽视的一个关键方面是精准提取主题最丰富的信息表示

  2. 图像是主题、背景和风格的复杂组合,因此专注于有效表现主题的最关键元素至关重要。

如何解决:

  1. 文中提出的SSR-Encoder是一种新颖的架构,旨在有选择地从单个或多个参考图像中捕获任何主题

  2. SSR-Encoder响应各种查询模式,包括文本和掩码,无需测试时微调

  3. SSR-Encoder结合了 Token-to-Patch Aligner(将查询输入与图像补丁对齐)和保留细节主题编码器(用于提取和保留主题的精细特征),从而生成主题嵌入。这些嵌入与原始文本嵌入结合使用,决定了生成过程。

  4. SSR-Encoder以其模型通用性和效率为特点,适用于一系列自定义模型和控制模块。通过嵌入一致性正则化损失来改进训练。

  5. 大量实验证明了SSR-Encoder在多功能和高质量图像生成方面的有效性,表明了其广泛的适用性。

图片

SSR 编码器是一种模型通用编码器,它能够根据所选的图像表示来指导任何定制的扩散模型,用于单个主题驱动的图像生成(顶部分支)从不同图像(中间分支)生成多个主题驱动的图像通过文本查询或掩码查询,无需任何额外的测试时间微调此外,我们的 SSR 编码器还可以应用于具有附加控制的可控生成(底部分支)。

二. 方法详解

图片

a) 训练阶段

图片

  1. 训练时候, SSR-Encoder的输入是参考图像以及查询输入(掩膜查询或者文字查询)。

  2. SSR-Encoder的编码输出注入基础T2I模型,做法类似IPAdapter。

  3. 可以与任何自定义扩散模型集成,而无需测试时微调。

  4. 训练过程固定文本编码器,VAE和基础模型的参数,只训练SSR-Encoder。

b) 推理生成阶段:

图片

  1. 给定一个查询文本-图像对,SSR-Encoder采用token-to-patch aligner来突出显示查询中参考图像中的选择性区域。

  2. 同时,它通过保留细节的主题编码器提取主题的细粒度细节,通过token-to-patch aligner投影多尺度视觉嵌入。

  3. 然后,采用主题条件生成来生成具有高保真度和创造性可编辑性的特定主题。

三. 综合结果

SSR-Encoder 在不同生成能力下的结果,支持两种查询模式,并且适用于各种任务,包括单主体和多主体条件生成

其多功能性扩展到与其他定制模型的集成以及与现成 ControlNet 的兼容性。

四. 注意力可视化

注意力图的可视化

五. 选择性主题驱动图像生成

从单个图像中选择不同的主题以进行重新生成图像。

六. 人体图像生成

尽管 SSR-Encoder没有接受过特定领域设置(例如人脸)的训练,但它已经能够捕获对象的复杂细节

利用 OpenImages 数据集中的人脸图像作为生成人体图像的参考图像。为了更好地说明结果,还使用了两位名人的图像作为参考。

七. 可推广到视频生成模型

SSR-Encoder不仅具有足够的通用性,可以适应各种自定义模型和可控性模块,而且还可以有效地应用于视频生成,与视频生成模型无缝集成

下面演示了将 SSR-Encoder与 Animatediff 相结合的影响。尽管没有接受过视频数据的训练,该方法可以完美地与 Animatediff 结合起来,生成与参考图像保持一致的角色身份的视频

八. 论文

论文:https://arxiv.org/pdf/2312.16272.pdf

九. 个人思考

这个项目挺有意义的,可以用极少代价即可固定特定主题,扩展文生图和图生视频的生成能力上限,还能充分利用基础模型。整体的思路有点类似IPAdapter。等代码公开后可以对比分析一波。


欢迎加入AI杰克王的免费知识星球,海量干货等着你,一起探讨学习AIGC!

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

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

相关文章

OpenShift 4 - 使用 Model Serving 运行模型

《OpenShift / RHEL / DevSecOps 汇总目录》 说明:本文已经在 OpenShift 4.14 RHODS 2.50 的环境中验证 说明:请先根据《OpenShift 4 - 部署 OpenShift AI 环境,运行 AI/ML 应用(视频)》一文完成 OpenShift AI 环境的…

域名流量被劫持怎么办?如何避免域名流量劫持?

随着互联网不断发展,流量成为线上世界的巨大财富。然而一种叫做域名流量劫持的网络攻击,将会在不经授权的情况下控制或重定向一个域名的DNS记录,导致用户在访问一个网站时,被引导到另一个不相关的网站,从而劫持走原网站…

简单介绍Java 的内存泄漏

java最明显的一个优势就是它的内存管理机制。你只需简单创建对象,java的垃圾回收机制负责分配和释放内存。然而情况并不像想像的那么简单,因为在Java应用中经常发生内存泄漏。 本教程演示了什么是内存泄漏,为什么会发生内存泄漏以及如何预防…

C# 使用命名管道进行网络进程间通信

目录 写在前面 代码实现 服务端代码 客户端代码 调用示例 写在前面 使用 NamedPipeServerStream 和 NamedPipeClientStream 类,实现命名管道方式的网络通讯,支持跨网络和多个服务器实例的全双工通信、基于消息的通信以及客户端模拟;需要…

力扣:15.三数之和

1.做题链接:. - 力扣(LeetCode) 2.做题前须: 两数之和降低复杂度: 1.问题描述:一个数组中找到两个数字之和是taeget 例如:[2,7,11,15,19,21],target30 2.解法一:暴力枚举时间复…

权威认可!甄知科技猪齿鱼产品荣获信创产品评估证书

近日,依据《信息技术应用创新产品评估规范 第1部分:应用软件》(T/SSIA 2001-2022),经过严格评估,甄知科技旗下自主研发的猪齿鱼数智化开发管理平台 V2.0.0,通过信创测试认证,获得上海…

java基于SSM的毕业生就业管理系统+vue论文

摘 要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本毕业生就业管理系统就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信…

UE4运用C++和框架开发坦克大战教程笔记(十四)(第43~45集)

UE4运用C和框架开发坦克大战教程笔记(十四)(第43~45集) 43. 单个加载 UObject 功能获取资源 URL 链接实现异步加载单个 UObject 类型资源 44. 批量加载 UObject 功能测试加载单个 UObject 资源批量加载多个同类的 UObject 资源 45…

跟着小德学C++之日志记录

嗨,大家好,我是出生在达纳苏斯的一名德鲁伊,我是要立志成为海贼王,啊不,是立志成为科学家的德鲁伊。最近,我发现我们所处的世界是一个虚拟的世界,并由此开始,我展开了对我们这个世界…

VS2017 搭建opencv工程

VS2017 搭建opencv工程 opencv在处理图像方面具有很强的能力,在使用opencv之前先需要造好轮子。 1、opencv 官网 ,下载对应的资源文件包。 根据自身选择。下载包之后,解压。分为build和sources source目录下分别存放: modules: …

Java面试项目推荐,异构数据源数据流转服务DatalinkX

前言 作为一个年迈的夹娃练习生,每次到了春招秋招面试实习生时都能看到一批简历,十个简历里得有七八个是写商城或者外卖项目。 不由得想到了我大四那会,由于没有啥项目经验,又想借一个质量高点的项目通过简历初筛,就…

Pytest的测试报告——Allure

一、html-report测试报告 html-report测试报告。是pytest下基本的测试报告。要使用pytest-html测试报告,就要确保python版本在3.6及以上即可。本身pytest所提供的测试结果汇总,是基于控制台的文本输出形式。 pytest-html是基于HTML格式实现的测试报告的…

三、C语言分支与循环知识点补充——随机数生成

本章分支结构的学习内容如下: 三、C语言中的分支与循环—if语句 (1) 三、C语言中的分支与循环—关系操作符 (2) 三、C语言中的分支与循环—条件操作符 与逻辑操作符(3) 三、C语言中的分支与循环—switch语句(4)分支结构 完 本章循环结构的…

Python 中的==操作符 和 is关键字

Python是一种功能强大的通用编程语言,提供了各种比较值和对象的方法。其中包括操作符和is关键字,它们的用途不同,但由于它们有时可以达到相同的目的,所以经常会被混淆。在本文中,我们将深入研究和is之间的区别&#xf…

解决:ModuleNotFoundError: No module named ‘bs4’

解决:ModuleNotFoundError: No module named ‘bs4’ 文章目录 解决:ModuleNotFoundError: No module named bs4背景报错问题报错翻译报错位置代码报错原因解决方法方法一,直接安装方法二,手动下载安装方法三,编译安装…

odoo17 | 视图字段验证约束

前言 前一章介绍了向模型添加一些业务逻辑的能力。现在我们可以将按钮链接到业务代码,但是我们如何防止用户输入错误的数据呢?例如,在我们的房地产模块中,没有什么可以阻止用户设置负预期价格。 Odoo提供了两种方法来设置自动验证的不变量…

Spring学习 Spring IOC

创建工程: 2.1.程序的耦合 耦合:耦合指的就是对象之间的依赖关系。对象之间的耦合越高,维护成本越高。 案例:没有引入IOC容器时系统的Web层、业务层、持久层存在耦合 /*** 持久层实现类*/ public class UserDaoImpl implements U…

如何实现无人机识别功能

无人机识别算法可以基于不同的传感器和技术,结合多种方法进行实现。以下是一些常见的无人机识别算法和技术: 视觉识别: 图像处理: 使用计算机视觉技术对无人机图像进行处理,包括特征提取、目标检测和跟踪等。深度学习&…

PHP语言B/S架构医院(安全)不良事件上报系统源码

医院安全(不良)事件上报系统采用无责的、自愿的填报不良事件方式,有效地减轻医护人员的思想压力,实现以事件为主要对象,可以自动、及时、实际地反应医院的安全、不良、近失事件的情况,更好地掌握不良事件的…

【python实战】python一行代码,实现文件共享服务器

一行代码实现文件共享 在一个局域网内,需要共享一个文件夹里内容。 我们可以在任意一台有python环境的电脑上,迅速架起一个http协议的服务,然后将文件夹里的文件内容共享出来。是的仅仅需要一行代码 就是这么简单 把电脑的相关项目文件通…