Transcript
00:00:00哦哇,这看起来有点悲伤,可怜的凯特·温斯莱特,天哪,就那样独自站在那里,
00:00:09没有杰克。
00:00:11Netflix 刚刚发布了一个非常有趣的开源 AI 工具,名为视频对象与交互
00:00:17删除(Video Object and Interaction Deletion),简称 VOID。
00:00:19大多数 AI 视频工具已经很擅长擦除物体了,这没什么新鲜的。
00:00:24但它们在擦除场景中这些物体产生的后果方面表现得很糟糕。
00:00:29例如,如果你要移除一个撞击保龄球瓶的球,大多数模型会让球瓶
00:00:34无缘无故地倒下,但 VOID 试图解决这个问题。
00:00:39这是由 Netflix 和 Insight 合作开发的新框架,它能理解因果关系并根据
00:00:44被移除的物体来修改视频内容。
00:00:47所以在这段视频中,我们将近距离观察这个模型,看看它是如何运作的,而且我实际上
00:00:52构建了一个 Web 应用程序来全面测试这个模型,所以我们会亲自进行一些
00:00:57视频测试。
00:00:58这会非常有趣,让我们开始吧。
00:01:05VOID 代表视频对象与交互删除。
00:01:09要理解为什么这如此重要,你必须看看视频补全(inpainting)通常是
00:01:15如何运作的。
00:01:16标准的 AI 擦除器基本上是增强版的“内容识别填充”。
00:01:20它们观察空洞周围的像素,并尝试猜测那里应该有什么。
00:01:24这对水印或静止不动的人很有效,但一旦涉及到物理交互,
00:01:29它就会失效。
00:01:31如果你移除一个正在用搅拌机做奶昔的女孩,普通 AI 会抹去人,
00:01:36但会让搅拌机无缘无故地继续旋转搅拌。
00:01:40它修复了外观,但忽略了周围其他物体的物理特性。
00:01:46VOID 旨在通过重新构想反事实现实来解决这种“幽灵交互”问题。
00:01:53基本上就是视频的一个版本,其中该物体或人从一开始
00:01:57就不存在。
00:01:58它实现这一点的方式其实非常聪明。
00:02:01它并不仅仅是立即开始绘制。
00:02:03相反,它使用的是双重处理系统。
00:02:06在第一步中,它们进行推理阶段。
00:02:08首先,VOID 使用视觉语言模型和 SAM2(Segment Anything Model 2)来观察
00:02:15场景。
00:02:16我之前专门做过一个关于 SAM2 运作原理的视频,感兴趣的话可以去看看。
00:02:22当 SAM2 对你想要移除的物体创建像素级追踪时,AI 会问
00:02:28自己一个问题:“如果我移除这个,还有什么会改变?”
00:02:32如果你从一叠多米诺骨牌中移除一个,AI 会识别出其他多米诺骨牌也随之
00:02:38受到影响。
00:02:39然后它会创建研究人员所说的“Quad Mask”,这是一种特殊的地图,它告诉
00:02:44扩散模型不仅要在哪里擦除,还要在哪里重写周围区域的
00:02:50物理规则。
00:02:51接下来第二步是生成和优化。
00:02:54一旦生成了该地图,视频扩散模型就会生成新的画面。
00:03:00现在,有时这些模型可能会有点“梦幻”,比如物体可能会变形或失去形状。
00:03:05为了解决这个问题,VOID 有一个可选的第二次处理。
00:03:08它使用一种称为“流扭曲噪声”(flow warp noise)的技术来锁定这些形状,确保
00:03:14在物理特性改变的同时,剩余的物体保持坚实和一致。
00:03:19但你可能会好奇,如何教会 AI 那些从未发生过的事情?
00:03:23Netflix 和 Insight 的团队不能仅仅为了获取训练数据,而在现实生活中
00:03:28拍摄一场车祸然后让它“复原”。
00:03:30相反,他们使用了像 Kubrick 这样的合成环境。
00:03:34他们运行了数千次物理模拟,其中有“发生前”和“发生后”的版本。
00:03:40一个版本有碰撞,而另一个版本中该物体从未出现过。
00:03:44通过向 AI 展示这两个版本,它学会了物体存在与
00:03:49其对环境影响之间的关系。
00:03:51这一切听起来都超级引人入胜,让我们亲自动手测试一下这个工具吧。
00:03:57运行它的最佳方式是使用云端 GPU,比如运行在
00:04:02H100 GPU 或同等设备上的 RunPod 模块。
00:04:05但我必须马上告诉你,设置它一点也不简单。
00:04:10GitHub 文档有很多漏洞和误导性信息。
00:04:14为了让它正常工作,有几件事你必须注意。
00:04:18例如,这个命令可能会失败,因为他们从未说明此过程
00:04:23需要 SAM3 模型。
00:04:25而这个命令可能会失败,因为他们从未说明 quad mask 必须严格命名为
00:04:30quad_mask_0.mp4 才能正常工作。
00:04:35这里还有很多类似的小问题没有在文档中说明。
00:04:38如果你已经有了用 SAM2 分割好的遮罩,他们的 Gradio 演示还不错,但他们
00:04:44没有提供实际创建该遮罩的图形用户界面。
00:04:48所以我做的是构建一个自定义 Web 应用程序,修复了所有这些问题,并为您
00:04:54提供了一个开箱即用的 UI,涵盖了分割步骤、推理步骤,
00:05:00甚至是双重处理系统。
00:05:02所以你只需上传视频,分割遮罩并渲染出最终输出。
00:05:07这就是我们现在要做的。
00:05:09首先,你需要启动一个带有强力 GPU 的 RunPod 实例。
00:05:14我将在这次测试中使用 H100。
00:05:17在模板部分,确保将容器大小增加到 100 GB。
00:05:22在端口部分,添加端口 8998,因为这是我们将要映射
00:05:27Web 应用程序的地方。
00:05:29然后你要做的就是通过 SSH 进入 pod,克隆我的仓库,进入目录并运行 run.sh
00:05:36命令。
00:05:38它还会要求你提供 Hugging Face 令牌以便下载
00:05:42模型,另外确保你有权访问 SAM3 仓库,因为这是一个受限
00:05:48模型,你需要申请使用权限。
00:05:51不过通常过程很快,几分钟内就能获得批准。
00:05:55然后你还需要一个 Gemini API 密钥,因为在分割步骤中,模型
00:06:00使用 Gemini 来确定姿态估计,从而生成精确的 quad mask。
00:06:06好的。
00:06:07如果你已经准备好了这两项凭据,就让 run.sh 命令安装一切吧。
00:06:13一旦完成,我们现在就可以使用这里列出的命令启动
00:06:18Web 应用程序。
00:06:19现在在 RunPod 页面上,点击这个端口,就会打开我们的
00:06:24Web 应用程序。
00:06:25现在我们终于可以开始测试模型了。
00:06:28在第一个测试中,我将使用《黑客帝国》中的经典场景,尝试将
00:06:32尼奥(Neo)从场景中移除,看看会发生什么。
00:06:35所以你要做的第一件事就是指定移除指令提示语。
00:06:41在这种情况下,我们可以指定类似“从场景中移除穿着白色和服的
00:06:45格斗者”。
00:06:46之后,进入分割环节,你只需在想要移除的物体或人周围
00:06:51点选一些点,以便 SAM2 模型知道要关注哪个形状,
00:06:57然后指定存储结果文件的输出文件夹。
00:07:02你必须记住这个文件夹的名称,因为这将是我们在其他标签页中
00:07:06识别正在处理哪个视频的唯一标识符。
00:07:11之后,我们可以进入第二个标签页,它将运行分割步骤并
00:07:16处理流程。
00:07:17完成后,我们可以移动到第三个标签页,即推理步骤,在这里
00:07:22模型将实际尝试移除目标物体或人。
00:07:26这里我们需要再次输入那个文件夹名称。
00:07:29这里我们需要指定一段提示语,描述在没有被移除物体或人的
00:07:34情况下,视频应该是什么样子的。
00:07:37在我们的例子中,那应该是类似“一个穿着深色和服的格斗者站在
00:07:42健身房里”。
00:07:43他们还建议不要提到被移除的物体或人,只需专注于
00:07:48视频中需要保留的内容,然后运行推理步骤。
00:07:52完成后,我们现在可以前往结果标签页查看最终视频。
00:07:58再次强调,我们需要指定视频文件夹。
00:08:01瞧。
00:08:03看看这个。
00:08:04是的,看起来墨菲斯(Morpheus)正在和一个幽灵格斗。
00:08:07我们可以看到在移除手部和其他部分时存在一些不一致。
00:08:12虽然并不完美,但我们还可以采取另一种方法来尝试改进它。
00:08:18我们现在可以通过第四个标签页运行第二次处理滤镜,以尝试获得更好的结果。
00:08:24运行完第二次处理后,我们现在得到了这个额外的窗口,可以看到
00:08:29第二次处理的结果。
00:08:32再次重申,看起来还是有点奇怪。
00:08:34感觉墨菲斯还是在和幽灵打架,或者是在跳舞之类的。
00:08:39所以如你所见,它并非适用于所有场景。
00:08:42有些场景会变得非常诡异,但它在将尼奥从
00:08:48场景中完全移除方面确实做得很好。
00:08:49话虽如此,让我们再尝试两个有趣的例子。
00:08:53这是《爱乐之城》中著名的跳舞场景。
00:08:56在这里,我将尝试将艾玛·斯通(Emma Stone)从场景中移除,看看会发生什么。
00:09:01哇,看看这个。
00:09:03这看起来几乎完美无瑕。
00:09:05我真的相信瑞恩·高斯林(Ryan Gosling)是在独自跳舞。
00:09:09你看艾玛·斯通走到瑞恩·高斯林前面的那个瞬间。
00:09:13这个过渡几乎是无缝的。
00:09:15我们可以看到一些微小的伪影,但在很大程度上,哇,这是一个令人惊叹的结果。
00:09:21在我测试的所有结果中,这个是最好的。
00:09:24出于某种原因,我原本以为这将是最难运行的例子。
00:09:28但令人惊讶的是,在我所做的所有测试中,它的效果最好。
00:09:33好的。
00:09:34我想再尝试一个例子。
00:09:35这次,我想尝试在著名的《泰坦尼克号》场景中移除莱昂纳多·迪卡普里奥,
00:09:41看看会发生什么。
00:09:42噢,哇,那看起来有点悲伤。
00:09:48可怜的凯特·温斯莱特。
00:09:49我的天呐。
00:09:50就这样独自站在那里,没有杰克。
00:09:53这看起来很有趣。
00:09:55我们可以看到这个模型在将莱昂纳多从场景中移除方面做得很好。
00:09:59虽然我们可以看到凯特·温斯莱特的手臂上有一些残留的伪影。
00:10:03天呐,这太诡异了。
00:10:06在另一边居然还有一只诡异的残留手抓着凯特的手臂。
00:10:10噢不。
00:10:11我现在无法直视它了。
00:10:14老实说,这是我的失误,因为在分割步骤中,我没有
00:10:19点选那些特定的点来移除。
00:10:21所以这是我的问题。
00:10:23我们还看到凯特·温斯莱特的脸有一点变形。
00:10:26所以这里确实有一点恐怖谷效应。
00:10:30总的来说,我认为这个工具确实达到了它所宣传的效果。
00:10:33这主要取决于具体的视频及其性质。
00:10:37显然,我们无法在这个场景中强迫墨菲斯静止不动。
00:10:41但如果我们看看他们项目页面上的其他例子,它们绝对令人难以置信。
00:10:46所以我认为这个模型确实具有很强的能力,也许经过额外的训练,
00:10:51它会变得更好。
00:10:52这就是全部内容了,各位。
00:10:53简而言之,这就是 VOID 模型。
00:10:55老实说,我测试这个过程非常开心。
00:10:58既然它是 Netflix 开发的,我其实超级好奇他们会把它
00:11:03用在什么地方?
00:11:04它是否会被用来根据用户的喜好或选择来改变视频叙事?
00:11:09类似于 Netflix 在《黑镜:潘达斯奈基》中加入的那种
00:11:15“选择你自己的冒险”式的交互体验?
00:11:17你还记得那个吗?
00:11:18谁知道呢?
00:11:19但无论如何,看到这个工具的使用在未来如何演变将会
00:11:23非常有趣。
00:11:24那么,你觉得这个框架怎么样?
00:11:27这个工具在哪种用例下会有用?
00:11:30请在下面的评论区告诉我们你的想法。
00:11:33各位,如果你喜欢这类技术解析,请通过点击
00:11:37视频下方的点赞按钮让我知道。
00:11:39也别忘了订阅我们的频道。
00:11:42我是来自 Better Stack 的 Andres,我们下个视频再见。