是什么让人工智能突然开始画画了?

时间:2022-12-05 21:54:16

封面图就是用扩散模型画的。

这是最近两个大火的模型,直接冲到抱抱脸的首页。

最先火起来的是图二。因为DALLE-2出来了,由于DALLE-2只对部分大佬开放,因此它的替代品DALLE-mini就火了起来。

之后没几天stable diffusion出来了!最最重要的一点是stable diffusion已经向公众开放了(当然是付费的)。今天就来说一下这几个模型背后的东西。

是什么让人工智能突然开始画画了?

是什么让人工智能突然开始画画了?

今天我们来看一下这俩模型的生成效果,然后浅浅说一下背后的算法支撑。

stable diffusion生成的图片:

下面这三个例子都是直接调用stable diffusion生成的图片。在这里是直接做的zero-shot的text-to-image生成。

先看第一个,我用的是A dog is writing a blog,就是一个狗正在写博客。他一共给我生成了4张候选,我在这里只截了其中的两张图片。我们可以看到第二张好像还是比较真实的,就是一个狗趴在地上拴个绳,正在拿着笔在纸上写什么东西。我们可以勉强认为它达到了我的要求,生成了一个狗正在写博客的图片。

然后看第二张图,第二张图我的提示是a black cat wears a red skirt。就是一只黑猫穿着一个红色的裙子。它也是生成了4个候选,我截图了最现实的一张,可以看到一个黑猫穿着一个红色的小衣服。

然后再看第三组图片,我的提示是a Teddy bear plays computer games。就是一个泰迪熊正在打游戏。可以看到图二还是比较正常的,好像是在打游戏的样子。

可能因为我这几个例子都比较奇葩,所以它生成不太出来。整体效果还算是差强人意的。

差强人意:勉强使人满意。

是什么让人工智能突然开始画画了?

所谓zero-shot生成,你可以简单的理解为我可以直接拿来就用,不用再对模型进行调教了。

说几个相关的概念

微调: 想一下这样,比如我拿掘金沸点训练一个说话的模型,那这个模型说出来的内容必然是沸点摸鱼的内容、和程序员相关的内容、和彩礼孩子起名相关的内容。你要让他说一下去长沙旅游怎么样,他大概率是说不出来的。

那怎么能让它说旅游相关的东西?你可以用去那儿、鞋程、马蜂喔、妹团等网站的一些用户评论来训练它。这样你问他长沙,那他就能和你说长沙旅游的事了。

few-shot: 那你想说,我一个普通用户,哪里会微调模型,所以能不能别让我微调? 可以。当训练的数据量足够大,模型能记住足够多的东西的时候,你可以不用自己训练了。但是他记住的东西太多了,还没有那么智能,他回答你之前你需要给他一点提示。这就是few-shot。

one-shot: 对比上边,不用给几个提示,给一个提示就够了。

zero-shot:我根本不用提示,直接开搞好吧。

DALLE-2

接下来看一下DALLE-2的效果:

因为这个我前面提到了它只对部分大佬开放。虽然开放了一些用户内测的申请,但是像我这种肯定是申请不上的,毕竟亚马逊的大佬也没有申请上,还在排队中。这里我就放了一下大力兔(DALLE-2)论文原文中的几个示范图片。

它的文本信息以及它生成的图片,我们可以看到这个九宫格。生成的还是非常真实的。大力兔可以生成不同风格的完全原创的图片,就是说在模型生成之前,世界上根本不存在这张照片。

是什么让人工智能突然开始画画了?

并且它能做的不止图中这几个,它还可以给你往图片上添加东西。比如说你给他一个图片。然后给他指定不同的位置,再给他说你要往那边添加什么,他就可以根据你的要求生成不同的图像。

下图我们可以看到在一个屋子内的不同位置给它添加火烈鸟。

如果你设置位置在室内,可以看到它会变成一个火烈鸟的游泳圈。如果你设置在室外的话,它会生成两个真实的火焰鸟。如果你设置在室内的泳池内,它又会生成一个火烈鸟的游泳圈。我们可以看到他身上的图片是比较贴合实际的,并且他会考虑到图片的阴影,光效的变化。就是普通的图像合成无法做到的东西。

是什么让人工智能突然开始画画了?

是什么支撑着上面图像的生成?

从第一个名字中我们就可以知道支撑它背后的模型是什么。diffusion model,换成中文就叫扩散模型。其实这个东西火起来是非常偶然的事情,我看大家都在调侃这个东西,说本来大家做text to image是为了增强图像生成的能力的,没想到大家突然在这个莫名其妙的方向上卷了起来。

其实它并不是第一个图像生成模型。之前已经做的如火如荼的比如说GAN呀,GAN的生成已经非常成熟了。

先看这张图。这张图是用一张照片可以生成他年幼时候的样子。我们可以在途中看到两个非常眼熟的面孔:第一个是吴恩达。第三张图是闫乐坤。

是什么让人工智能突然开始画画了?

然后再看这张图。这张图是使用gan做了4个对比,用一张图片生成他老年的样子,生成他戴眼镜的样子,生成他变性的样子,以及让他做一些其他的动作。

是什么让人工智能突然开始画画了?

通过上述两个例子,我们可以看到gan生成的图像已经是非常真实的了。由于它生成的图像过于真实,所以他刚开始如火如荼的时候美国甚至为此颁布了两条法令:

  1. 禁止使用相关算法拿人脸生成淫秽色情资源。
  2. 禁止使用政治人物的脸说一些他没说过的话,做一些他没做过的事。

除此之外常用的图像生成模型还有VAE、flow等。在这里就不多做介绍了。

你想说既然人家的模型都已经生成的这么好了,那你为什么还要做一个扩散模型呢?

存在必然合理,时代发展必然有它的要求。相对于之前的模型扩散模型有它不可或缺的优点。我今天这篇文章主要就是为了让大家知道现在很火的两个生成模型,背后用的是扩散模型而已,至于之后的生成模型对比啊或者更详细的一些内容以及扩散模型的讲解和推导就是纯纯的算法知识了,想看的可以挪到这里:突然火起来的diffusion model是什么?。在这篇新闻性的文章中就不折磨大家了。