查看原文
其他

驯服中文AI绘画!腾讯太极文生图大模型首次揭秘


最近,AI绘图🔥了

输入一段文字或者图片,就能获得一幅AI创造的画作

一瞬间,每个人都成了顶级"画师"

但,在体验画师速成快感的同时

也难免有翻车的场景

比如👇🏻

AI绘画之男女不分系列

甚至有时候是酱紫

就特别……离离原上谱   

以上图片来自网络,侵删

难道AI绘画真的如此不靠谱?

漏漏漏

那是你的AI绘画(又叫文生图)OUT啦!

最近,腾讯基于自身在自然语言处理和图像多模态等方面积累的经验,打造了通用场景的模型——太极文生图大模型,先来欣赏腾讯太极文生图根据文本描述生成图像的一些示例:



太极文生图模型算法揭秘


这些广受欢迎的文生图背后,离不开技术的支撑。目前,在社交平台上流传的文生图,一般来讲有两条技术路线:

  • autoregressive(OpenAI的DALL-E 1.0、facebook的Make a Scene、谷歌的Parti)
  • diffusion(谷歌的Imagen、stable diffusion)

上述两种路线没有绝对的好坏之分,大参数量autoregressive模型也能取得不错的效果,但同等参数量下autoregressive的效果没有diffusion模型好,因此太极文生图采用的是diffusion路线

使用在表情场景积累的Imagen生成技术(RGB空间Diffusion),生成的图片相关性很好;使用stable diffusion技术(Latent Diffusion)生成出来的图片细节相对更为丰富。因此太极文生图是两套模型并行研发的方案,并在原分辨率基础上进一步优化超分模型,支持1024 * 1024的分辨率。

下面我们分别来详细介绍几种文生图模型:

1、 太极-Imagen文生图模型

Imagen是2022年5月由google团队提出的15亿参数级别大规模文生图模型,它通过不同分辨率图片生成的级联式diffusion结构,结合强大的T5-XXL文本编码器,能够精准捕获输入文本中的语义,生成高分辨率的图片。

团队成员对Imagen模型进行了实现和改进,主要采用自研的中文文本编码器,优化模型训练过程,结合latent diffusion model优化超分辨率模型训练过程,在内部亿级别的中文场景数据上进行训练,获得了在中文场景下自研文生图模型。
Imagen 模型结构

2、太极-SD文生图模型

stable diffusion(简称SD)是由初创公司StabilityAI,CompVis与Runway基于latent diffusion model开发的扩散模型。相比于之前的生成模型,SD创新的在隐空间而非图像原始数据上进行噪声的扩散和学习,使得模型能够在不需要多阶段处理的情况下,以较低的计算量直接进行512*512等高分辨率图片的生成。

太极文生图所用的stable diffusion的结构图如下所示,训练时的输入为图像和对应的文本描述,图像通过VQ-GAN的encoder部分转换为隐空间上的向量ε,并通过中间的denoising u-net进行去噪;对应的文本信息则通过预训练文本encoder获取embedding,并通过cross-attention与denoising u-net中的各层进行融合,以指导图像的重建与生成。


在中文场景的SD训练中,一方面对文本编码器进行了替换,将其从原生的CLIP替换为自研的中文太极-ImageCLIP图文匹配模型,并且在训练过程中,优先对文本encoder部分进行训练,以保留SD预训练模型的生成能力;另一方面,为了提升模型对于文本内语义,数量,实体等不同方面的捕捉能力,我们综合了太极-ImageCLIP和混元-Sandwich两类不同的中文encoder所生成的embedding,来指导图片的生成;最后,为了更好的捕捉长文本的信息,我们还将池化后的文本embedding也融合进u-net中,提升整体的生成效果。

3、超分模型

Imagen原始的扩散模型出来的图片分辨率是64*64,Imagen论文中是做了两次超分将分辨率先扩大到256*256然后扩大到1024*1024,但是实际训练过程中,我们发现从256*256到1024*1024的过程中,显存需求急速增加、训练速度严重变慢,因此,我们针对性的对超分模型进行了优化,采用latent diffusion model的结构,让diffusion模型在图像的隐空间执行超分任务,并且在训练中增加文本信息输入,让生成的高分辨图像具有更多的细节。通过这样的方式,极大地提升了超分模型的训练效率,并提升了高分辨图像的生成质量。


在模型细节上,太极文生图采用Latent Diffusion Model的结构,通过VQ-GAN对图像进行编解码在图像的隐空间执行超分任务,能够在比原图像小4倍的特征空间中进行训练,从而大大地提升训练效率,同时我们结合Imagen超分模型训练的思路,在超分模型的训练中增加文本信息,能够更好地提升超分细节。另一方面,在Imagen原生的超分结构中,不同分辨率的模型需要单独训练,而通过LDM结构的模型,模型训练只固定了超分倍率,因此可以支持不同分辨率图像的生成,目前太极文生图模型最大可以支持到1024分辨率图像的生成。

给模型注入灵魂——训练数据


模型之外,如何处理、训练海量的图像数据,并同时对数据和模型进行迭代,以保证高质量图片的产出,也是文生图应用开发的关键。

1、数据获取及处理

首先是数据量级上的保证,太极原始的数据量级是10亿级,经过过滤,我们最终保留了1亿高质量数据,全面覆盖了包括中英文场景、风景、物体、名人、游戏、动画、动漫、艺术、概念的图片。

使用的过滤方法包括下面这些步骤:
  • 根据图片width、height绝对值和比例等过滤
  • 根据简单的纹理复杂度过滤
  • 根据太极-CLIP图文匹配模型的图文相关度过滤
  • 根据laion aesthitic提出来的美学分数过滤

我们发现,训练数据的质量对于模型的效果非常关键,宁缺毋滥;刚开始图片中包含了太多的卡通图片,导致最后生成的效果也是偏卡通风格的,因此我们后面把卡通图的比例降低,模型效果也随之正常。后期也专门收集了一批游戏和各种风格的数据,引入模型训练,使模型能够适配各种风格。数据迭代跟模型迭代是同步进行的,不断地优化数据集合,让模型生成效果更优。

2、数据示例

下面是一些训练数据的case:

游戏类的数据

写实类的数据

另外还有艺术类的图片

值得一提的是,我们对于中文场景特有的数据积累非常多,如风景、食物、节日

正是这些高质量的数据支持起了模型对于各种复杂场景的理解和衍生创作。

临门一脚——推理加速


为保证大模型快速高效落地,太极还定制开发了配套的太极-HCF ToolKit,它包含了从模型蒸馏、压缩量化到模型加速的完整能力。


在本文的文生图场景下,使用其中的HCF异构加速组件进行SD、Imagen的模型推理加速。整体性能持平业界领先水平。


后续,太极大模型将持续集成使用HCF ToolKit相关组件,并在算子定制、图优化、模型压缩等方向持续发力,确保文生图服务的整体性能。

效果如何?


在中文领域,业界各大互联网公司和知名研究机构都有做相关的文生图研究以及提供一些体验demo,另外还有一些创业公司也提供了app或者demo供使用。我们主要选取了头部大公司和研究机构的模型进行评估。

评估方案
目前学界对文生图的评估方式使用下面两种:
  • FID-30K和CLIP进行量化评估
  • 固定Prompt集合对生成出来的图片的相似度、逼真度等进行评分

中文的公司比较少详细计算FID-30K量化指标,因此我们主要采用对生成效果进行打分的机制来评估。

评估前,首先需要一个固定的、全面、公平的评测集合,我们主要参考了谷歌的drawBench构建的中文Prompt评测集——chDrawBench

在chDrawBench中,Prompt来源主要是基于谷歌的drawBench,同时参考DALL-E、ERNIE-ViLG 2.0等中英文SOTA的一些论文中提供的prompt。我们构建了一份同时包括了中文场景和英文场景的通用状态的Prompt集合,主要是考察生成图片颜色、位置、抽象表现、数量、小众物体、中文场景等各个维度的表现能力。

评分细则:
对生成图片的评分分为1~5档,1档最低,5档最高,具体的评判标准如下:

  • 5: 相关性强,所有物体细节丰富,物体还原逼真
  • 4:相关性强,所有物体还原较为逼真
  • 3:相关性较强,部分物体还原逼真
  • 2:相关性较强,但是物体扭曲
  • 1:相关性弱,物体扭曲

具体的标注的case,例如下图所示“船上的自行车”这个Prompt,模型1的较为完美,太极文生图自行车稍微扭曲因此是4档,其他几个要么自行车扭曲,要么没有完整生成“船”这个物体,都是2档。

模型1 太极文生图 模型2 模型3 模型4

例如“彩虹色的冰糖葫芦”这个Prompt,模型1和太极表现都不错,模型2、3生成的完全不是冰糖葫芦,更别提彩虹色这个修饰词,因此是1档,模型4的冰糖葫芦下面的竹签很混乱,而且扭曲了,因此判为3档。

模型1 太极文生图 模型2 模型3 模型4

下面是太极文生图和其他文生图模型在chDrawBench上的一些代表性的文本的对比:

太极文生图 模型2 模型3 模型4 模型1

评估总结
首先是物体生成的形状这个角度,可以看出来模型3和模型4的模型都存在扭曲,例如模型3在“踢足球的汽车”这个prompt上面,汽车明显扭曲了,模型3和模型4都在“自行车”这个物体上扭曲了,我们的太极模型、模型1和模型2都表现不错;

而从相关性这个角度,可以看到在“踢足球的汽车”这个prompt下面,模型2明显只生成出来足球,没有生成出来汽车;在“婺源的油菜花”这个prompt下面,模型2只生成了油菜花,看不出来是在婺源;因此从这个角度来讲,太极模型、模型1表现的又略胜一筹。

综合体验下来,太极文生图大模型在通用场景略弱于模型1,但在某些特定领域仍有一定优势。同时二者相较于其他开源模型,在生成的物体细节和相关性上都显著更优。后续,太极将联合腾讯混元AI大模型相关团队,一起攻坚文生图领域,做出更强大的版本。

“是时候展示真正的技术了”


剖析了这么多,太极文生图的实际效果究竟如何呢?下面请看⬇️

主打效果一:中国场景
各种中国风景的写实、绘画、水彩、素描、中国画等风格的生成效果

西湖的春夏秋冬

当然也包括各种风格的物体

主打效果二:中文诗句
中文诗句考察的是对中文的理解,得益于强大的预训练sandwich模型,即使是训练数据中没有包括这些诗句,太极也能较好的生成出来。

“长河落日圆”

“日暮苍山远”

“清泉石上流”

“曲径通幽处”

主打效果三:中国元素
对于一些中国风效果也不错,例如水墨画元素:

剪纸艺术:

主打效果四:各种游戏风格的生成
游戏风格之我的世界:
可以看到在“我的世界”这种风格下,都是生成像素块状的物体和风景。

游戏风格之原神:
原神风格偏可爱,而且色彩很明亮,蓝天白云的感觉。

游戏风格之赛博朋克2077:
在赛博朋克场景中,哈士奇不再呆萌二是比较科幻,凤凰古城和桂林都充满了灯火和拥挤的楼房,女人看着花瓶的背景灯光炫目。

游戏风格之生化危机:
总体画面比较冷色调,而且比较阴森,特别是第二幅故宫,阶梯上的雪感觉在流血。

游戏风格之战地:
战地这款游戏主要是写实类的风格,而且画面复杂程度较高,例如布达拉宫地下复杂的城墙将其牢牢围住,非常符合战争的游戏背景。例如女人的衣服穿着打扮也符合游戏中的原设定。

游戏风格之英雄联盟:
英雄联盟的训练数据主要是一些人物的原画,因此生成出来的图片以人物的风格比较明显,下面选了4张小姐姐的生成图片:

我们还可以看到“一只狗戴着墨镜站在沙滩上”在不同的游戏中的样子

两种完全不同风格的长着翅膀的小姐姐

业务探索


目前,太极文生图的demo已支持下面这些风格选项以及自研的SD和Imagen两个模型路线,Prompt方面也做了一些优化工作,支持Prompt补全和推荐。由于算力的限制,目前太极文生图暂限内部体验,择期将对外开放。

下面是太极demo的一个示例:一只戴着眼镜穿着披风的猫,原神

业务应用上,太极-文生图大模型在微信表情、QQ超秀、游戏原图生成领域做了一些探索。

在表情领域,我们用一张原始表情+文字生成衍生表情,用图片和描述同时输入,然后在扩散过程中同时加入到其attention中,所用的结构如下所示:


下面是一些生成的表情包的效果(最上面为原始表情,下面的都是生成出来的表情):


表情模型是基于太极Imagen模型微调而来,主要在attention的过程中加入图片token。

在超秀领域,用一个原始形象+动作词生成主体不变的相关动作:


还可以应用到游戏领域,用文本生成游戏原画,给美术同学提供灵感等。

展望AIGC的明天


AIGC在未来中文领域的机遇非常大,相信不远的未来,AIGC一定能在中文文化产业中占据不可或缺的一席之地,但是当前中文场景的文生图技术参差不齐,得益于庞大的数据积累、太极大模型的经验、太极算力平台支持,太极文生图模型在中文场景、中文诗句、各种游戏风格、各种艺术风格的图片生成上都做到了业界先进水准。

当然,太极现在的技术也有非常大的提升空间。未来太极将在定制化的领域,往更加精细化的生成、更高分辨率的图片、更快的生成速度上继续做优化。下一步,太极文生图团队将开放太极文生图大模型的预训练、后训练、领域精调、蒸馏、模型压缩直至推理加速的全套saas化产品管线能力。

Reference

[1] Tadas Baltrušaitis, Chaitanya Ahuja, and Louis-Philippe Morency. Multimodal machine learning: A survey and taxonomy. IEEE transactions on pattern analysis and machine intelligence, 41(2):423–443, 2018.

[2] Geoffrey Hinton, Li Deng, Dong Yu, George E Dahl, Abdel-rahman Mohamed, Navdeep Jaitly, Andrew Senior, Vincent Vanhoucke, Patrick Nguyen, Tara N Sainath, et al. Deep neural networks for acoustic modeling in speech recognition: The shared views of four research groups. IEEE Signal processing magazine, 29(6):82–97, 2012.

[3] Aaron van den Oord, Sander Dieleman, Heiga Zen, Karen Simonyan, Oriol Vinyals, Alex Graves, Nal Kalch- brenner, Andrew Senior, and Koray Kavukcuoglu. Wavenet: A generative model for raw audio. arXiv preprint arXiv:1609.03499, 2016.

[4] Oriol Vinyals, Alexander Toshev, Samy Bengio, and Dumitru Erhan. Show and tell: A neural image caption generator. In Proceedings of the IEEE conference on computer vision and pattern recognition, pages 3156–3164, 2015.

[5] Jason Tyler Rolfe. Discrete variational autoencoders. arXiv preprint arXiv:1609.02200, 2016.

[6] Aaron Van Den Oord, Oriol Vinyals, et al. Neural discrete representation learning. Advances

in neural information processing systems, 30, 2017.

[7] Alec Radford, Karthik Narasimhan, Tim Salimans, and Ilya Sutskever. Improving language

understanding by generative pre-training. 2018.

[8] Soravit Changpinyo, Piyush Sharma, Nan Ding, and Radu Soricut. Conceptual 12M: Pushing

web-scale image-text pre-training to recognize long-tail visual concepts. In CVPR, 2021.

[9] Rewon Child. Very deep vaes generalize autoregressive models and can outperform them on images. CoRR, abs/2011.10650, 2020. 3

[10] Rewon Child, Scott Gray, Alec Radford, and Ilya Sutskever. Generating long sequences with sparse transformers. CoRR, abs/1904.10509, 2019. 3

[11] Bin Dai and David P. Wipf. Diagnosing and enhancing VAE models. In ICLR (Poster). OpenReview.net, 2019. 2, 3


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存