【新智元导读】最近,Stable Diffusion已经掀起一股热潮。让我们看看《哈利·波特》中的人物进入《权力的游戏》中,会变成什么样子?
最近,Stable Diffusion正在网上大火,谁用谁是艺术家。作为一种从文本到图像的AI工具,它之所以能掀起这么大的波澜,是因为它能够从简单的文本提示生成著名人物的逼真图像。与传统的竞争对手Dall-E2相比,Stable Diffusion把生成图像的速度提高了足足三倍。论文地址:https://arxiv.org/abs/2112.10752让我们看一看,用Stable Diffusion把《哈利·波特》中的角色变成《权力的游戏》中的角色,是什么效果吧。Prompt: !dream “emma watson as hermione granger in game of thrones “ -n 4 -i -S 3220803958
赫敏格兰杰进入权游的世界后,挺像丹妮莉丝·坦格利安的。评论:可塑性很强的演员,非常适合《权力的游戏》系列。Prompt: !dream “Daniel Radcliffe as Harry Potter in game of thrones “ -n 5 -i -S 1325472740
Prompt: !dream “rupert grint as ron weasley in game of thrones “ -n 5 -i -S 2721137669
乍一看,他看起来像拉姆齐·博尔顿(剥皮警告)。但他的形象一点都不像一个能在权力的游戏中呼风唤雨、指挥部下的人。Prompt: !dream “lord voldemort in game of thrones “ -n 5 -i -S 2427598534
伏地魔变身维斯特洛武士后,还挺像模像样的。奇妙的是,他与Night King也很适配。Prompt: !dream “ian mckellen as gandalf in game of thrones “ -n 5 -i -S 2948575077
谁会想到,霍格沃茨的校长进入权游后,简直就像是从这里土生土长的角色。他看起来像是洋葱骑士(Davos Seaworth)和沃尔德·弗雷(Walder Frey)的结合。顾名思义,Stable Diffusion基于的是扩散模型(Diffusion Model)。其中,扩散是将小的、随机的噪声重复地添加到图像中的过程(从左到右)。而扩散模型是将这一过程逆转,将噪声逐位变成图像(从右到左)。那么,扩散模型是如何将噪音变成图像的呢?很简单,训练一个神经网络即可。现在有噪声图像的序列=x_1, x_2, ... x_T。神经网络通过学习一个函数f(x,t),对x进行「一点点」去噪,并产生x在时间步骤t-1时的样子。所以说,扩散模型的输出实际上只是:f(f(f(....f(N, T), T-1), T-2) ..., 2, 1)。其中,N是纯噪音,T是扩散步骤的数量,神经网络f则通常被实现为一个UNet。实践上,在大型512 x 512图像上训练和计算扩散模型是非常缓慢和昂贵的。所以,Stable Diffusion是在图像的_embedding_上进行计算的,而不是直接在图像本身上。因此,Stable Diffusion的工作分为两步。第一步:使用编码器将图像「x」压缩成一个较低维度的潜空表征「z(x)」;潜在空间表示z(x)的维度比图像x小得多。这使得_latent_扩散模型比普通扩散模型更快、更有表现力。其实,Stable Diffusion并没有像最开始所说的那样学习一个函数f(x,t)来对x进行「一点点」的去噪。而是学习了一个函数f(x,t,y),其中y是指导x去噪的context(上下文)。比如,在下面这张图中,y就是图像的标签「北极狐」。当使用Stable Diffusion生成图像时,输入的文本提示就是y。y和时间步长t一起,可以通过以下两种方式注入潜在空间表示z(x)中:而Stable Diffusion则同时使用这两种方法。比如让y=一个图像掩码,或者y=一个场景分割,而不只是让y=一个图像标签。经过在不同的数据上训练的Stable Diffusion,就可以做图像修复和语义图像合成了 。在Stable Diffusion论文中,通过改变「上下文」的表征方法,作者展示了图像修复和图像合成的情况。你说巧不巧,8月22日团队发文表示,1.4版本的Stable Diffusion模型正式向大众开放。团队表示,v1.4的推荐权重是470k,比提供给研究人员的v1.3的440k,多了几个训练步骤。
目前,模型仅支持英伟达显卡,最终占用的显存为6.9Gb。
在接下来的时间里,团队还将持续发布模型的优化版本,以及更多性能和质量得到改善的变体和架构。
之后,Stable Diffusion模型也将能够在AMD、苹果M1/M2和其他芯片组上运行。
不想自己去调教的话,也可以尝试HuggingFace的demo。