❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发非常感兴趣,我会每日分享大模型与 AI 领域的最新开源项目和应用,提供运行实例和实用教程,帮助你快速上手AI技术,欢迎关注我哦!
🥦 微信公众号|搜一搜:蚝油菜花 🥦
🚀 快速阅读
- 功能:支持实时动画生成、无限视频流处理、高质量与一致性保障。
- 技术:基于帧标记注意力机制、去噪优化、一致性模型和流扩散技术。
- 应用:适用于虚拟角色互动、动画制作、虚拟主播和在线教育等场景。
正文(附运行示例)
RAIN 是什么
RAIN(Real-time Animation Of Infinite Video Stream)是一款创新的实时动画生成工具,旨在基于消费级硬件(如单个 RTX 4090 GPU)实现无限视频流的实时动画化。其核心在于高效计算不同噪声水平和长时间间隔的帧标记注意力,同时去噪大量帧标记,以极低的延迟生成视频帧,保持视频流的长期连续性和一致性。
RAIN 通过引入少量额外的一维注意力块,对 Stable Diffusion 模型进行微调,能在几轮训练后,实时、低延迟地生成高质量、一致性的无限长视频流。这一技术在实时动画领域具有重大意义,为在线互动、虚拟角色生成等应用场景提供了强大的技术支持。
RAIN 的主要功能
- 实时动画生成:能在消费级 GPU 上,如单个 RTX 4090,以低延迟实时生成动画,适用于需要实时互动的场景,如直播、在线会议等。
- 无限视频流处理:打破了视频长度的限制,可以持续生成无限长的视频流,满足长时间直播或连续动画展示的需求。
- 高质量与一致性保障:通过在不同噪声水平和长时间间隔内高效计算帧标记注意力,确保生成的视频在视觉质量上保持高标准,同时维持长期的连续性和一致性。
- 模型微调与适配:对 Stable Diffusion 模型进行针对性微调,快速适应实时动画生成任务,仅需少量训练周期就能达到理想的生成效果。
RAIN 的技术原理
- 帧标记注意力机制:通过扩大 StreamBatch 的大小,将每 p 个连续的帧标记分配到具有相同噪声水平的去噪组中,逐步增加这些组的噪声水平,显著提高了生成视频流的一致性和连续性。
- 去噪过程的优化:结合不同去噪组之间的长期注意力,跨噪声水平的注意力计算有效提高了连续性和视觉质量。
- 一致性模型的应用:基于一致性模型(Consistency Model)来加速扩散模型的采样过程,通过一致性蒸馏损失函数,训练能快速采样的模型,实现多步采样。
- 流扩散技术:借鉴流扩散(Stream Diffusion)技术,将不同噪声水平的帧推入一个批处理中,充分利用 GPU 的批计算能力。
- 参考机制:通过预训练的 2D UNet 作为 ReferenceNet,对参考图像进行推理,缓存空间注意力操作前的输入隐藏状态。
- 两阶段训练策略:第一阶段训练参考网和姿势引导器以及去噪 UNet,第二阶段对视频帧添加噪声,根据特定的时间步长对运动模块进行微调,适应时间变化。
如何运行 RAIN
1. 安装依赖
首先确保 Python 版本 >= 3.10,并安装 PyTorch(推荐版本 >= 2.3.0)。
git clone https://github.com/Pscgylotti/RAIN.git
cd RAIN
pip install -r requirements_inference.txt
2. 下载权重
从 Google Drive 或 HuggingFace Hub 下载 RAIN 的权重文件,并将其放入 weights/torch/
目录中。
3. 启用 TensorRT 加速
在 configs/rain_morpher.yaml
中,将 tensorrt: False
修改为 tensorrt: True
以启用 TensorRT 加速。
4. 启动演示
执行以下命令启动演示:
python gradio_app.py
然后在浏览器中打开 http://localhost:7860/
,上传角色上半身肖像,启用摄像头并调整参数即可开始实时动画生成。
资源
- 项目官网:https://pscgylotti.github.io/pages/RAIN
- GitHub 仓库:https://github.com/Pscgylotti/RAIN
- arXiv 技术论文:https://arxiv.org/pdf/2412.19489
❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发非常感兴趣,我会每日分享大模型与 AI 领域的最新开源项目和应用,提供运行实例和实用教程,帮助你快速上手AI技术,欢迎关注我哦!
🥦 微信公众号|搜一搜:蚝油菜花 🥦