​一、背景

随着大规模预训练模型的蓬勃发展和算力的大规模提升,业界和学界在图片生成这个领域也取得了非常大的进展。在AIGC(AI Generated Content)这个领域,随着英文Stable Diffusion模型的开源,催生出了很多AI绘画相关的应用和场景,带动了英语为主的整个下游文生图生态的蓬勃发展。

然而在中文场景,业界有些做法是基于翻译+英文开源stable diffusion模型,导致在中文特有的场景、人物、事物上表现比较差。另外还有一些做法是基于少量的中文数据在一些特殊的场景做了finetune,让模型去适配某个特殊的领域或者风格,这种直接用英文预训练的模型+中文小数据finetune也存在对中文理解不足和不通用的问题。

因此我们团队针对中文场景,基于长期以来在搜索及网页内容处理领域积累的海量高质量中文-图片数据对,同时协同腾讯混元AI大模型团队在图文、视频等多模态预训练领域的实践经验,开发了具备中文内核并全场景覆盖的通用文本生成图片模型-太极文生图大模型。

我们先来欣赏下太极文生图根据文本描述生成图像的一些示例:

二、模型算法

在文生图的领域,一般来讲有两条技术路线:

  • 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的分辨率。

2.1、 太极-Imagen文生图模型

Imagen是2022年5月由google团队提出的15亿参数级别大规模文生图模型,它通过不同分辨率图片生成的级联式diffusion结构,结合强大的T5-XXL文本编码器,能够精准捕获输入文本中的语义,生成高分辨率的图片。团队成员对Imagen模型进行了实现和改进,主要采用自研的中文文本编码器,优化模型训练过程,结合latent diffusion model优化超分辨率模型训练过程,在内部亿级别的中文场景数据上进行训练,获得了在中文场景下自研文生图模型。

Imagen 模型结构

太极-Imagen文生图模型的优化点主要包括:

  • 中文文本编码器

在训练Imagen模型的过程中,我们发现文本编码器对于生成模型的语义理解至关重要,在英文场景中Imagen采用了T5-XXL作为文本编码器并通过固定了文本编码器训练生成模型的方法使得模型具有强大的文本理解能力。在中文场景中,我们采用自研的混元sandwich模型作为文本编码器,该文本编码器在中文场景中强大的语义理解能力为中文文生图模型的训练奠定了良好的基础。

同时,Imagen模型训练过程中,我们发现文本embedding和Imagen模型参数的匹配也对生成结果起了至关重要的作用。在模型训练的第一阶段,我们首先固定文本编码器,训练diffusion模型的参数,通过文本embedding来指导模型的生成结果。当第一阶段训练收敛后,我们发现模型对于中文场景的实体,物体关系等已经有了较好的理解,但是对于更难,更细粒度的语义提升困难。因此在第二阶段,我们通过放开文本编码器的参数,将其与diffusion model一起进行端到端的训练,能够进一步提升模型对于细粒度语义的理解。

  • 多阶段不同分辨率级联生成

Imagen通过级联的diffusion模型生成不同分辨率的图像,其中第一阶段的模型生成64x64分辨率的图像,第二阶段和第三阶段分别生成256x256分辨率和1024x1024分辨率的图像。通过多阶段级联的结构,可以使得第一阶段模型的文生图模型训练更加的高效。

  • 文生图大模型训练策略优化

最后,针对自研Imagen,我们训练了不同参数量和大小的模型。我们首先训练了u-net核心参数量为3亿的模型,已经能够获得中文场景下不错的效果,之后我们将模型规模扩大到核心参数量为13亿,基于团队在太极-DeepSpeed的大规模预训练加速优化技术,在亿级数据上,32*A100只需要2周时间即可收敛。经过实验对比,13亿参数的大模型比3亿参数模型在生成图像细节和语义捕获能力上都获得了更好的效果。

2.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中,提升整体的生成效果。

2.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分辨率图像的生成。

三、训练数据

3.1、数据获取及处理

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

使用的过滤方法包括下面这些步骤

  1. 根据图片width、height绝对值和比例等过滤

  2. 根据简单的纹理复杂度过滤

  3. 根据太极-CLIP图文匹配模型的图文相关度过滤

  4. 根据laion aesthitic提出来的美学分数过滤

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

3.2、数据示例

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

游戏类的数据

写实类的数据

另外还有艺术类的图片

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

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

四、推理加速

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

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

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

五、效果评估

中文文生图公司

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

评估方案

目前学界对文生图的评估方式使用下面两种1)FID-30K和CLIP进行量化评估 2)固定Prompt集合对生成出来的图片的相似度、逼真度等进行评分。中文的公司比较少详细计算FID-30K量化指标,因此我们主要采用对生成效果进行打分的机制来评估。

那么首先需要一个固定的、全面、公平的评测集合,下面我们简单介绍下我们参考谷歌的drawBench构建的中文Prompt评测集—chDrawBench。

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档。

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

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

评估总结

首先是物体生成的形状这个角度,可以看出来模型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

记得关注我们,及时接收精彩内容哦~

公众号/视频号:腾讯太极机器学习平台

腾讯太极机器学习平台,致力于让用户更加聚焦业务AI问题解决和应用,一站式解决算法工程师在应用过程中特征处理、模型训练、模型服务等工程问题。

腾讯太极文生图大模型,带你一起感受祖国大好河山相关推荐

  1. 【文生图系列】文生图大模型合集与效果对比

    文章目录 DELL · E DELL · E 1 DELL · E 2 ERNIE-ViLG ERNIE-ViLG 1 ERNIE-ViLG 2 Paddlehub Imagen Midjourney ...

  2. 程序员盒子接入百度文心大模型文生图能力

    原文:https://www.coderutil.com/article?id=203 一.前言 AI时代是一个快速发展的时代,它带来了很多机会和挑战.对于普通人来说,AI技术的应用可以帮助我们更高效 ...

  3. AI绘画最强工具:集成所有国内外主流大模型AI绘画能力文生图、图生图、图修复和超分辨率能力。

    AIGC(Artificial Intelligence Generated Content)登上舞台,以高效.精准.定制化等能力特征,重新定义了内容生产方式. 只需通过4行代码就能实现强大的文图生成 ...

  4. AIGC周报|30秒定制一个文生图模型;60美元让AI玩转《我的世界》;手机版“文生图”模型:2秒不到出一张图

    AIGC(AI Generated Content)即人工智能生成内容.近期爆火的 AI 聊天机器人 ChatGPT,以及 Dall·E 2.Stable Diffusion 等文生图模型,都属于 A ...

  5. Diffusion扩散模型学习2——Stable Diffusion结构解析-以文本生成图像(文生图,txt2img)为例

    Diffusion扩散模型学习2--Stable Diffusion结构解析-以文本生成图像(文生图,txt2img)为例 学习前言 源码下载地址 网络构建 一.什么是Stable Diffusion ...

  6. 『中秋赏月』程序员用文心大模型带你玩转不一样的中秋

    『中秋赏月』文心大模型带你玩转不一样的中秋 中秋 文心大模型使用 安装wenxin_api 利用ERNIE-ViLG文生图模型生成图片 下载生成的图片 使用ERNIE 3.0模型,生成有关中秋的佳句 ...

  7. 百度回应文心一言文生图功能争议

    允中 发自 凹非寺 量子位 | 公众号 QbitAI 文心一言文生图功能是"中翻英"?对此质疑,百度刚刚作出回应. 回应说明如下: 1.文心一言完全是百度自研的大语言模型,文生图能 ...

  8. 阿里系文生图(PAI+通义)

    PAI-Diffusion模型来了!阿里云机器学习团队带您徜徉中文艺术海洋 - 知乎作者:汪诚愚.段忠杰.朱祥茹.黄俊导读近年来,随着海量多模态数据在互联网的爆炸性增长和训练深度学习大模型的算力大幅提 ...

  9. AI 绘画Stable Diffusion 研究(五)sd文生图功能详解(下)

    大家好,我是风雨无阻. 上一篇文章详细介绍了sd文生图的功能及使用注意事项,感兴趣的朋友可以前往查看:AI 绘画Stable Diffusion 研究(四)sd文生图功能详解(上) . 那今天这篇文章 ...

最新文章

  1. vmware虚拟化(二)安装vsphere5.1
  2. javascript控制validator
  3. GetLastError()函数返回值及含义
  4. 进程知识点,只需这一篇
  5. 腾讯极客挑战赛邀你“码上种树”
  6. linux资源隔离是哪些,【转载】Linux cgroup资源隔离各个击破之
  7. 商汤使用AutoML设计Loss函数,全面超越人工设计
  8. ERROR 程序出错,错误原因:'bytes' object has no attribute 'read'
  9. 详解淘宝直播背后的技术!
  10. python 代码行数统计工具_Python实现代码行数统计工具
  11. 找不到匹配的key exchange算法_AC自动机 | 多字符串匹配你会吗?
  12. MZY项目笔记:session歧路
  13. admob 服务器验证_Admob广告植入过程中遇到的错误汇总
  14. android转发短信到邮箱,利用短信通知的方式在Tasker中实现收到Android手机短信自动转发到邮箱...
  15. 一些奇怪的东西以及寄几需要注意的地方
  16. minigui学习笔记四
  17. 麻将番型计算(二人麻将)
  18. 【数据降维】数据降维方法分类
  19. Interconnection
  20. (附Matlab程序)(二)基于DCT编码的图像压缩:对分解后的每个数据小方块进行DCT及IDCT变换

热门文章

  1. 如何跳出深层递归调用(不使用异常)
  2. React Native手动实现调用原生相机相册(Android端)
  3. 使用CNNs网络,基于caltech 101数据集实现分类
  4. 我的梦想就是不工作,有什么错?
  5. BN和Dropout在训练和测试时的差别
  6. java个人所得税计算器
  7. avahi服务的使用
  8. 一、与电视有关的视觉特性:
  9. ffmpeg推送rtsp流或者视频文件到rtsp服务器
  10. 常见的web攻击手段