❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发感兴趣,我会每日分享大模型与 AI 领域的开源项目和应用,提供运行实例和实用教程,帮助你快速上手AI技术!
🥦 微信公众号|搜一搜:蚝油菜花 🥦
大家好,我是蚝油菜花,今天跟大家分享一下 FlashVideo 这个由字节跳动和香港大学联合推出的高分辨率视频生成框架。
🚀 快速阅读
FlashVideo 是一个高效的高分辨率视频生成框架,解决了传统单阶段扩散模型在高分辨率视频生成中的计算成本问题。
- 核心功能:通过两阶段方法实现高效生成高分辨率视频。
- 技术原理:采用参数高效微调(PEFT)技术和流匹配技术,分阶段生成低分辨率和高分辨率视频。
FlashVideo 是什么
FlashVideo 是由字节跳动和香港大学联合推出的一个高效的高分辨率视频生成框架。该框架通过两阶段方法解决了传统单阶段扩散模型在高分辨率视频生成中面临的巨大计算成本问题。
具体来说,FlashVideo 在第一阶段使用 50 亿参数的大型模型在低分辨率(270p)下生成与文本提示高度一致的内容和运动,基于参数高效微调(PEFT)技术确保计算效率。第二阶段通过流匹配技术,将低分辨率视频映射到高分辨率(1080p),仅需 4 次函数评估即可生成细节丰富的高质量视频。
FlashVideo 的主要功能
- 高效生成高分辨率视频:FlashVideo 通过两阶段框架实现高分辨率视频的快速生成。第一阶段在低分辨率下生成与文本提示高度一致的视频内容,第二阶段则通过流匹配技术将低分辨率视频增强为高分辨率,同时保持细节和运动的一致性。
- 快速预览与调整:用户可以在全分辨率生成之前预览低分辨率的初步结果,允许用户快速评估生成效果,并在必要时调整输入提示,从而显著减少计算成本和等待时间,提升用户体验。
- 细节增强与伪影校正:第二阶段专注于细节的精细化处理,能够有效增强小物体的结构和纹理细节,同时校正第一阶段可能产生的伪影,显著提升视频的视觉质量。
- 高效的计算策略:FlashVideo 在保持高质量输出的同时,通过策略性分配模型容量和函数评估次数(NFEs),大幅减少了计算资源的消耗。例如,生成 1080p 视频仅需 102 秒,远低于传统单阶段模型的 2150 秒。
FlashVideo 的技术原理
- 两阶段框架设计:FlashVideo 将视频生成过程分为两个阶段:低分辨率阶段(Stage I)和高分辨率阶段(Stage II)。这种设计策略性地分配了模型容量和函数评估次数(NFEs),平衡生成的保真度和质量。
- 第一阶段(低分辨率阶段):
- 参数高效微调(PEFT):通过低秩自适应(LoRA)技术对模型进行微调,适应低分辨率生成任务。LoRA 在注意力层、前馈网络(FFN)和自适应层归一化层中应用,显著提高了模型的鲁棒性和效率。
• 足够的 NFEs:在低分辨率下保留足够的 NFEs(50 次),确保生成内容的高保真度。
- 参数高效微调(PEFT):通过低秩自适应(LoRA)技术对模型进行微调,适应低分辨率生成任务。LoRA 在注意力层、前馈网络(FFN)和自适应层归一化层中应用,显著提高了模型的鲁棒性和效率。
- 第二阶段(高分辨率阶段):
- 流匹配技术:通过线性插值在低分辨率和高分辨率潜在表示之间建立映射关系,直接从低质量视频生成高质量视频,避免了从高斯噪声开始的传统扩散过程。
- 低质量视频模拟:通过像素空间退化(DEGpixel)和潜在退化(DEGlatent)生成低质量视频,训练模型在保持保真度的同时增强细节。
- 全 3D 注意力机制:确保在显著运动和尺度变化的视频中保持增强视觉细节的一致性。
- 3D 因果变分自编码器(VAE):将视频像素压缩为潜特征,减少计算复杂度。
- 3D RoPE(相对位置编码):在高分辨率阶段使用 3D RoPE 替代传统的绝对位置嵌入,提高模型对分辨率的适应性和扩展性。
- 从粗到细的训练策略:先在低分辨率上进行大规模预训练,再逐步扩展到高分辨率,最后通过少量高质量样本进行微调,以提高模型性能。
如何运行 FlashVideo
1. 环境设置
此代码库已通过 PyTorch 2.4.0+cu121 和 Python 3.11.11 测试。您可以使用以下命令安装必要的依赖项:
pip install -r requirements.txt
2. 准备检查点
要获取 3D VAE(与 CogVideoX 相同),以及 Stage-I 和 Stage-II 的权重,请按以下步骤操作:
cd FlashVideo
mkdir -p ./checkpoints
huggingface-cli download --local-dir ./checkpoints FoundationVision/FlashVideo
检查点应按以下方式组织:
├── 3d-vae.pt
├── stage1.pt
└── stage2.pt
3. 文本到视频生成
Stage-I 和 Stage-II 均仅使用长提示进行训练。为了获得最佳结果,请在提示中包含详细描述。
Jupyter Notebook
您可以通过 Jupyter Notebook 方便地提供用户提示。建议使用具有 80G 容量的单个 GPU。或者,您可能需要调整 VAE 解码器的空间和时间切片。
sat/demo.ipynb
从包含提示的文本文件生成视频
您可以通过在文本文件中提供用户提示并使用多个 GPU 生成视频。
bash inf_270_1080p.sh
资源
- 项目主页:https://jshilong.github.io/flashvideo-page/
- GitHub 仓库:https://github.com/FoundationVision/FlashVideo
❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发感兴趣,我会每日分享大模型与 AI 领域的开源项目和应用,提供运行实例和实用教程,帮助你快速上手AI技术!
🥦 微信公众号|搜一搜:蚝油菜花 🥦