❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发非常感兴趣,我会每日跟你分享最新的 AI 资讯和开源应用,也会不定期分享自己的想法和开源实例,欢迎关注我哦!
🥦 微信公众号|搜一搜:蚝油菜花 🥦
🚀 快速阅读
- 功能:将驱动视频中的头部姿态和面部表情迁移到参考图像中,生成动态视频内容。
- 技术:采用空间编织注意力机制和模块化设计,优化特征图的注意力操作。
- 应用:适用于社交媒体内容创作、视频娱乐与游戏、电影制作等多个领域。
正文(附运行示例)
HelloMeme 是什么
HelloMeme 是一个基于最新的 Diffusion 生成技术的框架,专门用于实现面部表情与姿态的迁移。它集成了空间编织注意力(Spatial Knitting Attentions)机制,基于 Stable Diffusion 1.5 模型的理解能力,将头部姿态和面部表情信息融合到去噪网络中,生成自然且物理合理的表情包视频。
HelloMeme 不仅保持了基础模型的泛化能力,还具有扩展到全身或半身构图的潜力。通过模块化设计,HelloMeme 能够高效地处理复杂的表情与姿态迁移任务,生成多样化的内容。
HelloMeme 的主要功能
- 表情与姿态迁移:将驱动视频中的头部姿态和面部表情迁移到参考图像中,生成具有夸张表情和姿态的动态视频内容。
- 保持泛化能力:在执行复杂下游任务时,保持基础模型的泛化能力,生成多样化的内容不局限于特定任务。
- 兼容性与扩展性:与 SD1.5 衍生模型具有良好的兼容性,并有潜力扩展到全身或半身构图的应用。
HelloMeme 的技术原理
- 空间编织注意力(Spatial Knitting Attentions):优化 2D 特征图的注意力机制,先进行行注意力操作,再进行列注意力操作,保持 2D 特征图的空间结构信息,类似于纺织时经纬线的交织。
- 模块化设计:HelloMeme 由三个主要模块组成:
- HMReferenceNet:用于从参考图像中提取细节丰富的特征。
- HMControlNet:负责编码头部姿态和面部表情信息。
- HMDenoisingNet:接收前两个模块的特征,实现可控的去噪生成。
- 解耦控制信息:将头部姿态和面部表情信息解耦,分别编码,然后用 SKCrossAttention 机制融合,提高信息的表达能力和减少身份信息泄露的风险。
- 视频生成流程:为提高视频帧之间的连续性,采用两阶段生成流程,先粗略生成视频帧,再通过再噪声化和运动模块生成平滑的视频片段。
如何运行 HelloMeme
1. 创建 Conda 环境
conda create -n hellomeme python=3.10.11
conda activate hellomeme
2. 安装 PyTorch 和 FFmpeg
请参考 PyTorch 官方网站 安装最新版本的 PyTorch。此外,代码将调用系统的 ffmpeg 命令进行视频和音频编辑,因此运行环境必须预先安装 ffmpeg。安装指南请参考 FFmpeg 官方网站。
3. 安装依赖
pip install diffusers transformers einops scipy opencv-python tqdm pillow onnxruntime-gpu onnx safetensors accelerate peft imageio imageio[ffmpeg] torchvision
4. 克隆仓库
git clone https://github.com/HelloVision/HelloMeme
cd HelloMeme
5. 运行代码
python inference_image.py # 用于图像生成
python inference_video.py # 用于视频生成
6. 安装 Gradio App
pip install gradio
python app.py
资源
- 项目官网:https://songkey.github.io/hellomeme
- GitHub 仓库:https://github.com/HelloVision/HelloMeme
- arXiv 技术论文:https://arxiv.org/pdf/2410.22901
- 在线体验 Demo:https://www.modelscope.cn/studios/songkey/HelloMeme
❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发非常感兴趣,我会每日跟你分享最新的 AI 资讯和开源应用,也会不定期分享自己的想法和开源实例,欢迎关注我哦!
🥦 微信公众号|搜一搜:蚝油菜花 🥦