效果炸裂!Controlnet作者新作FramePack颠覆视频生成编码,6G显存即可完成单图到60秒视频生成。
仅用于站内搜索,没有排版格式,具体信息请跳转上方微信公众号内链接
近日,Controlnet作者又提出了一项效果炸裂的工作FramePack,它是一个预测下一帧(下一帧部分)的神经网络结构,可以逐步生成视频。FramePack将输入上下文压缩为恒定长度,从而使生成工作负载不受视频长度影响。即使在笔记本电脑GPU上,也能使用13B模型处理海量帧。可以使用更大的批量大小进行训练,类似于图像扩散训练的批量大小。
所有结果均由配备13BHY显卡的RTX30606GB笔记本电脑计算得出。
所有结果均由配备13BHY显卡的6GBRTX3060笔记本电脑计算得出。
使用6GB笔记本电脑GPU内存,通过13B模型以全fps-30扩散数千帧。
在单个8xA100/H100节点上以批次大小64对13B视频模型进行微调,以用于个人/实验室实验。
个人RTX4090的生成速度为2.5秒/帧(未优化)或1.5秒/帧(teacache)。
没有时间步长蒸馏。
虽然是视频扩散,但感觉像图像扩散。
下一帧(或下一帧部分)预测模型如下所示:
因此我们有许多输入帧并希望扩散一些新帧。
作者的想法是,可以将输入帧编码为某些GPU布局,如下所示:
该图表显示了逻辑GPU内存布局-帧图像未拼接。
或者说每个输入帧的上下文长度。
为了实现这一点,每个帧都使用不同的修补内核进行编码。
例如,在HunyuanVideo中,如果使用(1,2,2)修补内核,则480p帧可能有1536个标记。
然后,如果改为(2,4,4)修补内核,一帧就是192个token。
通过这种方式可以改变每一帧的上下文长度。
“更重要”的帧被赋予了更多的GPU资源(上下文长度)——在这个例子中,F0是最重要的,因为它是距离“下一帧预测”目标最近的帧。
对于流式传输来说,这是O(1)计算复杂度——是的,一个常数,甚至不是O(nlogn)或O(n)。
但是等等,如果……
上述想法是一个非常简短的概念-可以提出许多问题,例如:
如果框架的重要性不遵循这个简单的模式会怎样?
如果我想要不同的压缩率怎么办?
如果我想要将图像转换为视频,第一帧不是最重要的吗?
如果我有一些用户框架并且我希望这些框架更重要,该怎么办?
…
太棒了-事实上这些是FramePackScheduling,就像这些:
因此可以获得不同的压缩模式。
人们甚至可以使起始帧同等重要,这样图像到视频的转换会更加顺利。
所有这些调度都是O(1)。
我们在论文中对很多调度进行了详细的评估!
漂移是任何下一步预测模型的常见问题。
漂移是指随着视频变长,质量下降的情况。
有时这个问题也被称为错误累积或暴露偏差。
举个例子,你可以找一个任意的图像转视频模型,尝试反复使用最后生成的帧作为输入来生成长视频。重复5、6次后,结果很快就会变得一团糟,重复10次左右后,一切都会严重恶化。
另请参阅我们的论文,其中介绍了一些现有方法的实验,例如历史噪声增强、特殊cfg引导、滚动扩散时间步长等。我们发现,要从根本上解决漂移问题,需要打破因果关系,并使采样双向化。
考虑以下采样方法:
(阴影方块是每次流推理中生成的帧)
请注意,只有“香草采样”才是因果关系。
“防漂移采样”和“倒置防漂移采样”都是双向的。
“反向抗漂移采样”非常重要。这种方法是唯一一个在所有推理过程中始终将第一帧视为近似目标的方法。这种方法非常适合图像到视频的转换。
论文:http ://lllyasviel.github.io/frame_pack_gitpage/pack.pdf
主页:https ://lllyasviel.github.io/frame_pack_gitpage/
代码:https ://github.com/lllyasviel/FramePack
在左侧上传图像并写下提示。
右侧是生成的视频和潜在预览。
因为这是一个下一帧片段预测模型,所以生成的视频会越来越长。
你将看到每个部分的进度条和下一部分的潜在预览。
感谢你看到这里,也欢迎点击关注下方公众号并添加公众号小助手加入官方读者交流群,一个有趣有AI的AIGC公众号:关注AI、深度学习、计算机视觉、AIGC、StableDiffusion、Sora等相关技术,欢迎一起交流学习💗~