还记得我们上次分享的使用DALL-E生成神奇宝贝的文章吗,这次Reddit的网友又给出了效果更好的版本。
每年数以百万计的人都热切地等待着新一代神奇宝贝的发布。尽管收藏不断增加,但目标始终如一——Gotta Catch 'Em All!
作为一个狂热的神奇宝贝粉丝和人工智能爱好者,我曾多次尝试将两者融合都失败了。几年前,由于生成对抗网络 (GAN) 的出现,当图像生成开始蓬勃发展时,我尝试使用当时最先进的模型人工生成 Pokémon 图像。首先看看失败的作品。
随着图像生成领域的进步,可以生成的神奇宝贝的质量也在不断提高。一年后使用 ProGAN 的第二次尝试产生了稍微好一点的结果。虽然它捕捉到了神奇宝贝的清晰轮廓,但它严重缺乏任何细节 。
最近几年,生成建模领域取得了重大进展。随着 Transformer 的出现及其在海量数据上进行自监督学习的使用,图像生成进入了一个新时代。这些模型通常规模庞大,能够利用大量未标记的数据来学习高质量的表示。因此,这些模型可以在少量数据上进行微调,利用这些预先训练的表示来产生出色的结果。
值得一提的是模式崩溃的想法。当模型找到它认为最合理的图像时,它过于专注于产生特定的输出,导致图像缺乏多样性。早期的 GAN 深受这个问题的困扰,这反映在生成的 Pokémon 缺乏多样性上。
OpenAI 的 DALL-E,这是一种基于transformer 语言模型,能够使用文本-图像对的数据集从文本中生成高保真的图像。DALL-E 使用离散变分自编码器 (dVAE) 的组合来获得离散的潜在表示,同时利用强大的基于自回归transformer 的解码器来生成高质量的图像。dVAE 的使用有助于规避后验崩溃的问题——当它们与强大的自回归解码器配对时,潜在变量被忽略。
如果我们可以管理一个描述 Pokémon 及其相关图像的文本图像对数据集会怎样?然后可以用 DALL-E 对其进行微调以学习文本中视觉概念之间的相关性,例如神奇宝贝的类型,从而可以控制它生成的图像的属性。例如,将句子“草毒类神奇宝贝”传递给模型将生成草和毒类神奇宝贝的图像(通常被描绘成绿色和花朵状)。
在最近完成了该系列最新游戏《神奇宝贝:璀璨钻石》的通关过程中,我注意到每个神奇宝贝都拥有自己的 3D 模型。我们又有一个不错的新数据集可以玩了!
有了这些新发现的知识,我匆忙开始策划一个数据集来微调 DALL-E。这包括神奇宝贝的图像和类型的文字描述,以及神奇宝贝一些独特的属性。
在一些现成的 DALL-E notebook的帮助下拼凑一些 PyTorch 代码,并将新创建的数据集放入模型中进行几个小时的微调,模型已经可以创建一些新的神奇宝贝!
生成 Pokémon 就像用文本描述提示模型一样简单。这里有一堆例子供你娱乐。
A grass type Pokémon
A fire type Pokémon
A water type Pokémon
A dragon type Pokémon
A fairy type Pokémon
A legendary water and dragon type Pokémon
图像生成在过去几年中取得了长足的进步。从生成模糊的像素块到能够根据文本描述生成神奇宝贝的合理图像是一项巨大的壮举。虽然图像还需要修复,但是它可以给我们带来无穷无尽的创意。
这些生物都没有名字,所以我欢迎大家提交你认为适合这些“神奇宝贝”的名字!
作者:Liam Eloie
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。