最近Midjourney和Stable Diffusion都实现了文生视频中的镜头拉伸效果,而且用户反馈都很不错,很多脑洞大开的使用场景视频都流出来了。
蠢蠢欲动的我也赶紧尝试了下,我用Stable Diffusion实现了一个从近到远观看《蒙娜丽莎的微笑》,下面来看看效果吧。
链接地址:https://mp.weixin.qq.com/s?__biz=MzI3ODU3MzQ2Ng==&mid=2247485650&idx=1&sn=ecb41d5d940473b3b4f7aba3d7c96ae6&chksm=eb55b027dc223931ace6d0c4997984a9c3196a42386094a7f8fd57477f4efd70b044e68ab59f&token=1437414647&lang=zh_CN#rd
要实现从近到远观看景物,相当于镜头后拉,或者人后退,视野逐渐开阔,对于真实摄影机来讲,没有问题。但是对于计算机,后退的过程中原来的景物比例逐渐缩小,视野逐步放大,从而能够看到更多的景物,但是计算机该看到什么,是未知的,完全靠想象,可是计算机可没有这种想象能力,怎么处理呢?好在AI的扩散模型实现了基于文本的图像生成能力。
下面请看我对它的实现方式解析。这个视频6秒钟,实际上用了5张图像(第一张图像作为初始图像),也就是outpaint的step数。每个图像展现时间1秒,准确说是,假如帧率是30,1秒有30张图象,接下来再说这个。
我们先看如何生成这5张图像。
第一步输入文本: Mona Lisa's smile。我们可以得到下面这样一张图像:
这张图象看起来像是真人正面照,实际上可以让她变成裱过的相框照片。
第二步,我们以这张图为基础,根据
photograph of the Mona Lisa's smile
这样的文本提示生成一张相框中的图像,效果是这样的:
第三步,随着视角放大,假如我们看到了挂相框的整张墙壁,以上步的相框图像和引导语“Photo frame on the wall”生成挂在墙上的图像,效果是这样的:
第四步,视角继续放大,我们还看到了其他照片,哦,这里是展馆。继续以上图为基础,外加“a museum”来引导新的图像生成:
第五步,继续后退,我们看到了走廊,用“a Corridor”引导新的图像生成:
通过这样5步,实现了演示中的视频的主体内容,但是仅仅这5张图象还不足以构成视频,我们必须让它从上一张图像渐变到下一张图像,为了达到对人类视网膜成像非常好的“欺骗”效果,这个渐变过程至少要提供30张图象,这样我们看起来才比较连续。
最后,在视频播放过程中,还需要实现缩放和填充新的图像内容。为了说明这一点,我举个例子,比如我们使用的初始图象:
我们对它按比例缩放,得到下面这张缩略图:
仅仅看图像内容,新的图像要小很多,但是实际尺寸跟原图一样,只是它的周围是白色的而已,如果我们把它周围全部变成黑色,再看就很明显了:
这一张带黑边的、经过缩放的图像其实就是用来生成下一张图像的掩码。将它覆盖到下一张图像,黑边部分就变成新的图像内容了,这个过程也是图像插值过程,效果如下:
按照上面的方法,逐步调节缩放比例,我们就可以得到一系列这样的图像。下面以相框中的图像渐变到墙壁上的图像(从第二步到第三步的图像)为例:
将中间渐变图像连接到一起,它们连接到一起,来看看渐变效果:
链接地址:https://mp.weixin.qq.com/s?__biz=MzI3ODU3MzQ2Ng==&mid=2247485650&idx=1&sn=ecb41d5d940473b3b4f7aba3d7c96ae6&chksm=eb55b027dc223931ace6d0c4997984a9c3196a42386094a7f8fd57477f4efd70b044e68ab59f&token=1437414647&lang=zh_CN#rd
将上面5张图象按照类似插值处理就得到了我们示例中的视频。