AI学习者 · 2023年11月22日

与专属的角色虚拟人视频!字节基于LLM与StableDiffusion提出ChatAnything!

数源AI 最新论文解读系列

image.png

论文链接:https://arxiv.org/pdf/2311.06772.pdf

开源代码:https://chatanything.github.io/

image.png

引言

大型语言模型(LLM) 领域的最新进展使其处于学术讨论的最前沿,因为它们具有出色的泛化和上下文学习能力。这种模型促进了大量主题的交互,为用户提供了与类似人类的对话密切相关的体验。

如何基于用户指定的关键词,专门用于从文本输入中生成LLM增强的个人形象成了一个亟待解决的研究问题。比如综合一幅画像,以及相关的个性和声音,以便促进用户与结果人物的有意义互动。

本文介绍了一种零样本方法,旨在协调预训练生成模型和预训练说话模型之间的分布。这种对齐确保基于合成的头像画像生成富有表现力的面部动作。 

image.png

简介

这项工作旨在以在线方式生成基于LLM的角色的拟人化人物,包括视觉外貌、个性和语调,仅使用文本描述。为了实现这一目标,我们首先利用LLM的上下文学习能力来设计一组系统提示,用于个性生成。然后我们提出了两个新概念:声音混合(MoV)和扩散器混合(MoD),用于多样化的声音和外貌生成。对于MoV,我们利用文本转语音(TTS)算法,提供多种预定义的语调,并根据用户提供的文本描述自动选择最匹配的语调。对于MoD,我们结合了最近流行的文本到图像生成技术和说话头算法,以简化生成说话对象的过程。

image.png

我们将整个框架命名为ChatAnything。利用这个框架,用户只需输入几个文本,即可通过任何人物拟人化地使任何对象动画化。然而,我们观察到当前生成模型生成的拟人化对象常常无法被预训练的面部关键点检测器检测到,导致面部动作生成失败,即使这些面部具有人类外貌,因为这些图像在训练过程中几乎没有见过(例如,非样本外数据)。为了解决这个问题,在图像生成阶段,我们结合像素级引导,在生成过程中注入人脸关键点。为了基准测试这些度量指标,我们构建了一个评估数据集。通过这个数据集,我们验证了面部关键点的检测率从57.0%增加到92.5%,从而可以基于生成的语音内容自动进行面部动画。

模型与方法

ChatAnything框架的流程细节,包括四个主要模块: 

  1. 一个基于LLM的控制模块,用于从用户处初始化文本描述的个性,并管理系统操作以及根据与用户的互动调用应用程序。

image.png

  1. 一个为人物生成参考图片的肖像初始化器。它包括一组经过精调的扩散模型(MoD),以及它们的LoRA模块(如果适用)。每个模型都专门用于生成特定风格的图像。基于用户对人物的文本描述通过LLM,将自动调用最匹配的模型。
  2. 一种将人物角色的文本输入转化为具有定制音调的语音信号的文本转语音模块(MoV)的混合体。选择是根据用户文本描述通过LLM自动完成的。
  3. 一个接受语音信号并驱动生成图像的运动生成模块。

1 PRELIMINARIES

Diffusion 

近期流行的深度概率扩散模型旨在通过深度神经网络逼近一组数据的概率密度,其中大多数作品使用U-Net作为去噪器。U-Net被优化为模仿训练数据所抽样的分布。广泛使用的潜在扩散概率模型(LDM)是一类潜在生成模型,通过马尔可夫高斯扩散过程的逆过程来逼近训练数据的概率密度。

语音驱动的虚拟说话人

虚拟说话人是另一个活跃的研究领域,用于合成出具有说话声音表达的表情丰富的人脸。在众多当代虚拟说话人算法中,准确检测面部标记是一个关键的初始步骤,随后用于调节面部表情。在本研究中,我们使用了尖端的虚拟说话人框架SadTalker。然而,面部关键点检测器与LDM模型之间存在明显的分布差异。这种不一致导致了LDM合成的人脸无法被检测到。值得注意的是,LDM的分布广度超过了支撑面部关键点检测器的数据。因此,我们被迫解决LDM和面部关键点检测器之间的分布差距,以缩小LDM模型的分布

2 SYSTEM ARCHITECTURE

引导扩散 

扩散算法的图像生成过程是一个迭代过程,其中噪声被迭代地去除。因此,如果在早期去噪阶段注入面部标志,就有可能获得无视觉伪影的生成图像。具体而言,生成过程在前Tf步中改为pΘ(x|xt, xlandmark),并且通过对预定义外部内存中检索的选定面部标志应用t步的q采样来生成xlandmark。为简化表示,故意忽略下标t。此外,我们经验性地发现,简单地应用xlandmark是不够的:如果停止xlandmark的条件过早,则生成的面部倾向于过于花哨,无法被后续面部驱动模块检测到;如果停止xlandmark的条件,则对文本条件的控制倾向于丧失控制,生成的图像倾向于与从外部内存中检索到的人脸相似。因此,我们寻求使用一种更加柔和的方法进一步调整对面部标志的注入。

结构控制 

为此,我们利用最近流行的ControlNet,其中控制以二阶方式注入。可以肯定的是,对于预训练扩散模型的导数,使用预训练扩散模型进行微调的Controlnet同样适用,因为导数扩散模型和Controlnet对数据分布有共同的相关性。我们使用了一个公共的面部标志-控制网络3在图像生成过程中注入面部特征。实验结果表明,面部标志控制信号首先确保了生成图像中具有可接受的较准确的面部标志。在扩散反演强度和控制信号强度的权衡下,可以得到一个令人信服的图像,其中包含了目标艺术风格并适用于面部动画算法。

扩散与声音变换的混合 

然而, 我们观察到使用LoRA微调的专门化模型在某些风格上表现更好。因此, 我们构建了一个包括以下基于扩散的风格生成模型的池子,这些模型可从Civitai4下载: Game Iconinstitutemode、 anything-v5、 dreamshaper、3D Animation Diffusion以及基于原始模型的stable-diffusion-v1-5。注意,基础模型的选择是通过LLM根据用户对目标对象的描述自动完成的。我们以模块化的方式设计了该框架,以便直观地将新的基于扩散的风格生成模型添加到外部内存中。有关详细信息,请参阅我们的项目页面。类似地,我们创建了一组声音变换器,根据用户对他们想要与之聊天的对象的文本描述来自定义音调和性别。我们以模块化的方式设计了该框架。我们首先使用开放库TTS5将文本转换为语音信号。之后,我们使用Voice-Changer将语音合成为特定的声音。注意,音调、性别和语言的选择在初始化阶段自动完成。

个性建模 

根据用户提供的生成人物形象的关键词,我们将人物的个性进行分类。我们使用大型语言模型(LLMs)来刻画用户指定的各种主题的个性。具体来说, LLM代理被定制为剧本编写角色,遵循以下提示模板:

image.png

有了这个提示模板,LLMs可以将用户输入对象的特征相关联,并根据这些属性自由构建个性。以下示例展示了基于用户输入的“苹果”生成的个性。

image.png

实验与结果

为了量化引导扩散的影响,我们首先创建一个验证数据集。我们从不同类别中选择了8个关键词:真实、 动物、 水果、 植物、 办公用品、 包包、 服装和卡通。然后, 我们使用ChatGPT在每个类别下生成50个提示。生成的提示将作为扩散过程的条件。在SadTalker的基础上,我们使用预训练的人脸关键点检测器Deng et al. (2019)对每个图像进行人脸关键点检测,并计算检测率。

image.png

直接应用SD1.5生成肖像往往会产生抽象的面部图像。这些图像在训练讲述人模型时很少见,因此不能用作面部表情生成的输入。不同的是,在ChatAnything中应用了提出的技术(包括面部地标指导、提示工程和LoRA微调以改善美学),模型 tend to 生成更具人类特征的高质量图像,这些图像可以作为预训练讲述人模型的输入。

image.png

作者:小源
文章来源:数源AI

推荐阅读

更多嵌入式AI干货请关注嵌入式AI专栏。欢迎添加极术小姐姐微信(id:aijishu20)加入技术交流群,请备注研究方向。

推荐阅读
关注数
18838
内容数
1371
嵌入式端AI,包括AI算法在推理框架Tengine,MNN,NCNN,PaddlePaddle及相关芯片上的实现。欢迎加入微信交流群,微信号:aijishu20(备注:嵌入式)
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息