DALLE(01/21) OpenAI提出,120亿参数
Cogview(05/21) 清华提出,支持中文
GLIDE(12/21) OpenAI提出
ERNIE-ViLG(12/21) 百度提出,支持中文,模型特别大,有100亿参数
DALLE2(04/22) OpenAI提出
Cogview2(04/22) 清华提出
Imagen(05/22) Google提出,模型简单很多,效果与DALLE不相上下,与DALLE2一样底层使用了扩散模型。
数据集
文本图像对,主流的数据集是MS COCO,使用的部分是该数据集中的caption部分,即图像描述。还有的数据集就是LAION机构收集的一个开源跨模态数据库,是目前最大规模的开源跨模态数据库,包含了5.85Billion个的CLIP-filtered图片-文本对。该数据集是在clip模型出来后发布的,比较新。但是需要注意的是目前主流的数据集都是英文文本,而中文文本的数据集各大公司貌似不开源,例如清华的Cogview是使用他们自己收集的图像中文文本对来训练的,而百度的数据集则是依靠于百度贴吧等社交软件和一些公开的数据集。
评价指标
主要是IS指标和FID指标
IS指标是从生成的图片质量和生成的图片多样性来评价生成图像模型的性能,IS指标越大说明模型性能越好
而FID指标分为普通的FID指标和zero-shot FID指标,普通的FID指标还考虑了真实数据的影响,更多的考虑了生成图像和真实图像之间的联系,相对于IS指标而言有更好的鲁棒性。而zero-shot FID的计算则是从验证集中抽文本作为prompt来生成图像,用该图像与验证集中的图像进行FID计算。
DALL.E
论文:Zero-Shot Text-to-Image Generation
https://arxiv.org/abs/2102.12092v2
未开源!
输入文本:一个穿着芭蕾舞裙的小白萝卜遛狗的插图
DALLE-mini
已开源!但是没有论文,是别人实现的一个轻量版DALLE,与DALLE的一个区别就是DALLE的训练是全部从0开始训练,而DALLE-mini则是基于预训练模型训练的。
该模型在限于更小的硬件资源情况下,效果不错,模型相比于原来的DALLE小了27倍,在单个TPU v3-8上训练三天。
模型在训练过程中输入的是图像文本对,输入图像通过一个VQGAN编码器进行编码,文本通过一个BART编码器进行编码,然后BART的输出和编码后的图像被送入BART解码器,这是一个自回归模型,目标是预测下一个token,损失函数是预测文本token和图像token的softmax交叉熵。
可以使用该模型作为尝试,先从该小模型入手实现功能,后续在此基础上进行优化改进。
CogView
论文:CogView: Mastering Text-to-Image Generation via Transformers
https://arxiv.org/abs/2105.13290v3
已开源
验证集是MS COCO。
使用VQ-VAE对中文文本和图像进行大规模生成性联合与训练,实现文本生成图像的任务模型,可以微调来完成一些下游任务,例如风格学习、超分辨率、文本图像排名和时装设计,以及稳定预训练的方法。
整体流程:
- 将文本部分利用SentencePiece模型转换为token
- 将图像部分通过一个离散化的AE转换为token
- 文本token和图像token拼接在一起,输入到GPT模型中学习生成图像
- 生成图像后计算一个Caption Score对生成图像进行排序,选择与文本最为匹配的图像作为结果。
支持中文,使用sentencepiece模型进行分词,并且可以收集童话故事风格的文本图像对进行童话风格的fine-tune,就像上图的动画风格一样,缺点是生成速度慢,因为是自回归模型
GLIDE
论文:GLIDE: Towards Photorealistic Image Generation and Editing with Text-Guided Diffusion Models
https://arxiv.org/abs/2112.10741v3
未开源!
GLIDE模型是基于Classifier-Free Guidance Diffusion,相比于过去的模型,GLIDE的特点是:
- 模型更大,采用了Guided Diffusion的AE结构,但是通道数量更大,模型参
Stable diffusion
论文:High-Resolution Image Synthesis with Latent Diffusion Models
https://arxiv.org/pdf/2112.10752.pdf
使用的也是扩散模型,扩散模型允许通过对相应的损失项进行欠采样来忽略感知上下不相关的细节,但是仍需要在像素空间中进行昂贵的函数评估,这回导致对计算时间和能源资源的巨大需求,但是Stable diffusion通过将压缩与生成学习阶段显式分离来规避这个问题,最终降低了训练扩散模型对高分辨率图像合成的计算需求。
Stable diffusion目前已经完全开源了代码、模型、权重参数库,可以在消费级GPU上的10GB VRAM下运行,并在几秒钟内生成512*512像素的图像,并且无需预处理和后处理。并且自己部署已开源的Stable diffusion生成的图片著作权和如何对外授权都归你自己定义,Stability.ai不做约束。
绘画风格可以根据输入的prompt进行约束
训练集是LAION机构收集的一个开源跨模态数据库,是目前最大规模的开源跨模态数据库,包含了5.85Billion个的CLIP-filtered图片-文本对。在4000个A100 Ezra-1 Al超大集群上训练的。
有一个难点就是该模型也是只支持英文,并且生成的图像质量也很依赖于prompt的选择,而对于长文本的中文故事而言可能还需要进行一步处理才能送入该模型中该模型接受。
ERNIE-ViLG
论文:ERNIE-ViLG: Unified Generative Pre-training for Bidirectional Vision-Language Generation
https://arxiv.org/abs/2112.15283
未开源!只能使用文心大模型进行体验,生成图像带有文心水印
数据集来源
(1)Chinese Webpages
从各种Webpages收集带有文字的配图
(2)Image Search Engine
通过query-clicked这个逻辑去收集
(3)Public image-text Datase
一些公开数据比如CC、CC12M等等
采用的框架是transformer,再具体点就是UniLM没有将encoder和decoder分开,而是通过mask来达到生成,说白了就是encoder端是bidirectional的,而decoder通过对角线mask来实现单向。
DALL.E2
论文:Hierarchical Text-Conditional Image Generation with CLIP Latents
https://arxiv.org/abs/2204.06125
未开源!github上有复现代码
DALL.E 2 可以根据现有图片进行风格迁移 也可以进行文本到图片的生成,生成的图片是原创性图片,即fake image;不是一对一映射,而是一对多映射,也就是不止生成一副图片
需要的训练集是图像文本对,类似于那种图像和标题的对
将CLIP和扩散模型结合在一起,总共三个阶段:
- 首先pre-train一个CLIP网络
- 然后使用扩散模型作为prior网络进行训练,将caption转换为CLIP image embedding
- 最后使用扩散模型作为decoder,把CLIP image embedding作为先验生成图像
缺点就是还不支持中文,或许可以套用一个翻译api进行使用
Cogview2
论文:CogView2: Faster and Better Text-to-Image Generation via Hierarchical Transformers
https://arxiv.org/abs/2204.14217
已开源,但是貌似放弃了cogview中的style fine-tune
针对cogview以及类似使用Auto Regressive的方案(例如DALL-E)都存在如下几点问题:
- 生成速度慢。这是自回归生成模型的生成方式决定的,从左到右一个个token生成。
- 无法生成高清的图片。这是因为生成的token数量与模型中attention的复杂度为O(n2)。
- 单向性。生成token时无法学习到右边的信息,影响生成的效果,另外也无法进行infilling任务。
相比cogview,cogview2采用分层Transformer以及并行自回归的方式进行生成,并且也训练了国产跨模态的生成模型CogLM。
方案主要包括如下几步:
- 通过CogLM先生成20*20的image token,并且通过CogView中post-selection 的方式对结果进行筛选。
- 通过upsample(direct super-resolution),将20*20的token,扩展为60 × 60的image token。
- 通过local parallel autoregressive的方法refine 第2步中的结果,生成高像素的图片。
Imagen
论文:Photorealistic Text-to-Image Diffusion Models with Deep Language Understanding
https://arxiv.org/abs/2205.11487v1
未开源!
采用了fixed text model提取text-based conditions,使用large-scale text-only的text encoder可以带来显著提升,在超分过程中使用efficient Unet结构,包括更多的residual,channel的调整,新定义的降采样和上采样模块,但是未公开代码和模型,同时也只支持英文。
总结
目前多模态的生成领域最火热的方向还是Text-to-Image,它是根据自然语言描述去指导图像的生成,但是是否能够支持故事生成的大篇幅自然语言来指导图像的生成还未可知,或许这些模型的text encoder可以充分提取到长文本中的语义信息,又或许提取不到,那么就需要套用文摘模型对长篇幅进行一个精炼。
并且从这些年该领域发表的文章看来,基于扩散模型的T2I模型越来越火了,这也得益于扩散模型能够生成更多样、分辨率更高的图片。
除了模型的效果之外,还需考虑长文本中文故事与各文本转图片的文本格式问题,首先长文本的中文故事语言是中文,如果模型不支持中文,那可能需要使用翻译软件进行处理,并且我在调研过程中发现很多人在测试这些模型的过程中在都在摸索一个比较好的prompt,那么一个好的prompt也是会较大程度影响模型的效果甚至是风格,例如Stable diffusion和ERNIE-ViLG都是由输入文本中的风格词汇来约束图像风格的,所以如何处理故事文本得到一个好的prompt也是一个难点。
- 怎么能够把故事的很多句话分成几幅图像(分割问题:一句话一个图像或者两三句话一个图像)生成几幅图像
- 把句子变成相对规范的序列