MuseTalk - 数字人唇部同步

news2024/9/21 12:34:36

文章目录

    • 一、关于 MuseTalk
      • 概览
      • 新闻
      • 模型
      • 案例
      • 待办事项:
      • 第三方集成
    • 二、安装
        • 构建环境
        • mmlab 软件包
        • 下载 ffmpeg-static
        • 下载权重
    • 三、快速入门
      • 推理
        • 使用 bbox_shift 以获得可调整的结果
        • 结合 MuseV 和 MuseTalk
        • 🆕实时推理
        • 实时推理注意事项
    • 四、其它
      • 致谢
      • 限制
      • 引文
      • 免责声明/许可证


一、关于 MuseTalk

MuseTalk:具有 潜在空间修复 的 实时高质量唇部同步
作者:Yue Zhang , Minhao Liu, Zhaokang Chen, Bin Wu†, Yingjie He, Chao Zhan, Wenjiang Zhou (*Equal Contribution, †Corresponding Author, benbinwu@tencent.com)

由 腾讯音乐娱乐Lyra Lab 发布。

  • github : https://github.com/TMElyralab/MuseTalk
  • huggingface : https://huggingface.co/TMElyralab/MuseTalk
  • space : https://huggingface.co/spaces/TMElyralab/MuseTalk

ai浮世绘 : 4090 MuseTalk实测 | 来看看开源方案距离实时唇纹合成还有多远
https://www.bilibili.com/video/BV13T42117uM/


我们介绍MuseTalk,一种实时的高质量对口型模型(NVIDIA特斯拉V100上的30fps+)。MuseTalk可以应用于输入视频,例如,由MuseV生成的,作为一个完整的虚拟人解决方案。

🆕更新:我们很高兴地宣布MusePose 已经发布。MusePose是一个图像到视频生成框架,用于控制信号下的虚拟人,如姿势。与MuseV和MuseTalk一起,我们希望社区能够加入我们,朝着能够生成具有全身运动和交互能力的end2end虚拟人的愿景前进。


概览

MuseTalk是一个实时高质量的音频驱动唇同步模型,在ft-mse-vae的潜在空间中训练

  1. 根据输入音频修改看不见的脸,脸区域的大小为256 x 256
  2. 支持各种语言的音频,如中文、英文和日文。
  3. 在NVIDIA特斯拉V100上支持30fps+的实时推理。
  4. 支持修改人脸区域的中心点,这对生成结果有很大影响。
  5. 在HDTF数据集上训练的检查点可用。
  6. 训练代码(即将推出)。

新闻

  • [04/02/2024]发布MuseTalk项目和预训练模型。
  • [04/16/2024]在HuggingFace Spaces上发布Gradiodemo(感谢HF团队的社区资助)
  • [04/17/2024]📣我们发布了一个利用MuseTalk进行实时推理的管道。

模型

Model Structure

MuseTalk在潜在空间中进行训练,图像由冻结的VAE编码。音频是由一个冻结的 whisper-tiny 模型编码的。

生成网络的架构借鉴了 stable-diffusion-v1-4,其中音频嵌入通过交叉关注融合到图像嵌入中。

请注意,尽管我们使用与 Stable Diffusion, 非常相似的架构,但MuseTalk的不同之处在于它不是扩散模型。相反,MuseTalk通过一步在潜在空间中修复来运行。


案例

详见:https://github.com/TMElyralab/MuseTalk?tab=readme-ov-file#cases


待办事项:

  • 训练过的模型和推理代码。
  • Huggingface Gradio演示.
  • 实时推理代码。
  • 技术报告。
  • 训练代码。
  • 更好的模型(可能需要更长的时间)。

第三方集成

感谢第三方集成,让大家安装使用更加方便,我们也希望大家注意,我们没有验证、维护、更新第三方,具体结果请参考本项目。


ComfyUI : https://github.com/chaojie/ComfyUI-MuseTalk


二、安装

要准备Python环境并安装其他软件包,如opencv、扩散器、mmcv等,请按照以下步骤操作:


构建环境

我们推荐python版本>=3.10和cuda版本=11.7。然后构建环境如下:

pip install -r requirements.txt

mmlab 软件包
pip install --no-cache-dir -U openmim 
mim install mmengine 
mim install "mmcv>=2.0.1" 
mim install "mmdet>=3.1.0" 
mim install "mmpose>=1.1.0" 

下载 ffmpeg-static

下载 ffmpeg-static 和

export FFMPEG_PATH=/path/to/ffmpeg

例如:

export FFMPEG_PATH=/musetalk/ffmpeg-4.4-amd64-static

下载权重

您可以手动下载权重,如下所示:

  1. 下载我们训练的重量。
  2. 下载其他组件的权重:
    • sd-vae-ft-mse
    • whisper
    • dwpose
    • face-parse-bisent
    • resnet18

最后,这些权重应按以下models组织:

./models/
├── musetalk
│   └── musetalk.json
│   └── pytorch_model.bin
├── dwpose
│   └── dw-ll_ucoco_384.pth
├── face-parse-bisent
│   ├── 79999_iter.pth
│   └── resnet18-5c106cde.pth
├── sd-vae-ft-mse
│   ├── config.json
│   └── diffusion_pytorch_model.bin
└── whisper
    └── tiny.pt

三、快速入门


推理

在这里,我们提供了推理脚本。

python -m scripts.inference --inference_config configs/inference/test.yaml 

configs/inect/test. yaml 是推理配置文件的路径,包括 video_pathaudio_pathvideo_path 应该是视频文件、图像文件或图像目录。

建议您输入25fps的视频,与训练模型时使用的fps相同。如果您的视频远低于25fps,建议您应用插帧或直接使用 ffmpeg 将视频转换为25fps。


使用 bbox_shift 以获得可调整的结果

🔎我们发现掩膜的上界对张口有重要影响。因此,为了控制掩膜区域,我们建议使用bbox_shift参数。正值(向下半部分移动)增加张口,而负值(向上半部分移动)减少张口。

您可以首先使用默认配置运行以获取可调整的值范围,然后在此范围内重新运行脚本。

例如,在Xinying Sun的情况下,运行默认配置后,它显示可调值愤怒是[-9,9]。然后,为了减少嘴张开,我们将值设置为-7

python -m scripts.inference --inference_config configs/inference/test.yaml --bbox_shift -7 

📌更多技术细节可以在bbox_shift中找到。


结合 MuseV 和 MuseTalk

作为虚拟人生成的完整解决方案,建议您首先应用MuseV通过引用此生成视频(文本到视频、图像到视频或姿势到视频)。帧插值建议增加帧率。然后,您可以使用MuseTalk通过引用此生成唇同步视频。


🆕实时推理

在这里,我们提供了推理脚本。该脚本首先应用必要的预处理,如人脸检测、人脸解析和VAE预先编码。在推理过程中,只涉及UNet和VAE解码器,这使得MuseTalk是实时的。

python -m scripts.realtime_inference --inference_config configs/inference/realtime.yaml --batch_size 4

configs/inference/realtime.yaml 是实时推理配置文件的路径,包括preparationvideo_pathbbox_shiftaudio_clips

  1. realtime.yaml中将preparation设置为True以准备新avatar的材料。(如果bbox_shift发生了变化,您还需要重新准备材料。)
  2. 之后,avatar 将使用从 audio_clips 中选择的音频剪辑 来生成视频。
Inferring using: data/audio/yongen.wav
  1. 当MuseTalk进行推理时,子线程可以同时将结果流式传输给用户。生成过程可以在NVIDIA特斯拉V100上实现30fps+。
  2. preparation设置为False 并运行此脚本,如果您想使用相同的头像生成更多视频。

实时推理注意事项
  1. 如果您想使用同一个头像/视频生成多个视频,您也可以使用此脚本显着加快生成过程。
  2. 在之前的脚本中,生成时间也受到I/O的限制(例如保存图像)。如果你只是想在不保存图像的情况下测试生成速度,你可以运行
python -m scripts.realtime_inference --inference_config configs/inference/realtime.yaml --skip_save_images

四、其它

致谢

  1. 我们感谢开源组件,如 whisper, dwpose, face-alignment, face-parsing, S3FD。
  2. MuseTalk提到了很多 diffusers 和 isaacOnline/whisper.。
  3. MuseTalk建立在HDTF数据集上。

感谢开源!


限制

  • 分辨率:尽管MuseTalk使用256 x 256的人脸区域大小,这使得它比其他开源方法更好,但它还没有达到理论分辨率界限。我们将继续处理这个问题。
    如果您需要更高的分辨率,您可以将GFPGAN等超分辨率模型与MuseTalk结合使用。
  • 身份保存:原始脸部的一些细节没有保存好,如小胡子、唇形和颜色。
  • 抖动:由于当前流水线采用单帧生成,因此存在一些抖动。

引文

@article{musetalk,
  title={MuseTalk: Real-Time High Quality Lip Synchorization with Latent Space Inpainting},
  author={Zhang, Yue and Liu, Minhao and Chen, Zhaokang and Wu, Bin and He, Yingjie and Zhan, Chao and Zhou, Wenjiang},
  journal={arxiv},
  year={2024}
}

免责声明/许可证

  1. code:MuseTalk的代码是在MIT许可证下发布的。学术和商业用途没有限制。
  2. model:经过训练的模型可用于任何目的,甚至商业用途。
  3. other opensource model:使用的其他开源模型必须符合其许可,如whisperft-mse-vaedwposeS3FD等。
  4. 测试数据收集自互联网,仅用于非商业研究目的。
  5. AIGC:这个项目致力于对人工智能驱动的视频生成领域产生积极影响。用户被授予使用这个工具创建视频的自由,但他们应该遵守当地法律并负责任地使用它。开发人员不承担用户潜在滥用的任何责任。

2024-08-03(六)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1972710.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Taro学习记录

一、安装taro-cli 二、项目文件 三、项目搭建 1、Eslint配置 在项目生成的 .eslintrc 中进行配置 {"extends": ["taro/react"], //一个配置文件,可以被基础配置中的已启用的规则继承"parser": "babel/eslint-parser…

1688中国站获得工厂档案信息 API

公共参数 名称类型必须描述keyString是免费申请调用key(必须以GET方式拼接在URL中)secretString是调用密钥api_nameString是API接口名称(包括在请求地址中)[item_search,item_get,item_search_shop等]cacheString否[yes,no]默认y…

【动态规划-最大子段和】力扣1191. K 次串联后最大子数组之和

给定一个整数数组 arr 和一个整数 k ,通过重复 k 次来修改数组。 例如,如果 arr [1, 2] , k 3 ,那么修改后的数组将是 [1, 2, 1, 2, 1, 2] 。 返回修改后的数组中的最大的子数组之和。注意,子数组长度可以是 0&…

Delphi5实现多窗体

效果图 新建窗体 窗体的显现 procedure TForm2.btn2Click(Sender: TObject); beginForm1.Show;Form2.Hide; end;第一个窗体完整代码 注意引用第二个窗体 unit Unit1;interfaceusesSysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,Dialogs, Forms,Form…

《中国数据库前世今生》观影——2000年代/数据库分型及国产数据库开端

引出 《中国数据库前世今生》观影——2000年代/数据库分型及国产数据库开端 第3集:2000年代/数据库分型及国产数据库开端 y2k问题 千年虫,又叫做“计算机2000年问题”“电脑千禧年千年虫问题”或“千年危机”。缩写为“Y2K]”。是指在某些使用了计算机…

ESP8266 完结日志 2024/8/2 23:50

呼!经历这么长 的时间终于完工了, 从零开始一步一步走过来,还是有一丢丢成就感的 功能: 上传文件 控制引脚 获取信息 重启设备 清空flash 期间接触:web开发 uni-app开发 c开发 python 开发 MQTT AI很棒,棒到我任何问题都想问AI, 甚至一丢丢逻辑下的操作都期盼AI解决. 抖音也…

yolov5的学习part1

还是基础的anoconda,在opencv的时候就已经安装过了 此视频疑似在2020年底录制,因为他安装anaconda使用如下代码 bash ~/Downloads/Anaconda3-2020.07-Linux-x86_64.sh 由于版本兼容问题,可能要mini conda PASCAL VOC PASCAL VOC挑战赛在…

Node.js(6)——npm软件包管理

npm npm是Node.js标准的软件包管理器。 使用: 初始化清单文件:npm init-y(得到package.json文件,有则略过此命令)下载软件包:npm i 软件包名称使用软件包 示例: 初始状态下npm文件夹下只有server.js,下载软件包前看…

揭秘最“硬”的物质,你听说过神秘的“0”号元素吗?

“尽管我们还没有找到它,但这并不意味着它不存在。”——斯蒂芬威廉霍金 亲爱的朋友们,今天我们来探讨一个引人入胜的话题——宇宙中最坚硬的物质是什么?别急,这不是去健身房的邀请,而是一次探索宇宙奥秘的旅程。听说过神秘的“0”号元素吗?让我们一探究竟! 在浩瀚的宇…

unity2D游戏开发12单例

单例 我们先了解一种被称为单例的软件设计模式。当应用程序需要在生命周期内创建特定类的单个实例时,可以使用单例。当一个类提供了游戏中其他几个类使用的功能时,单例会很有用,例如,在Game Manager 类中协调游戏逻辑,单例可以提供对该类及其功能的公共统一访问入口。单例…

C++客户端Qt开发——多线程编程(一)

多线程编程(一) ①QThread 在Qt中,多线程的处理一般是通过QThread类来实现。 QThread代表一个在应用程序中可以独立控制的线程,也可以和进程中的其他线程共享数据。 QThread对象管理程序中的一个控制线程。 run() 线程的入口…

用Python插入表格到PowerPoint演示文稿

有效的信息传达是演示文稿中的重点,而PowerPoint演示文稿作为最广泛使用的演示工具之一,提供了丰富的功能来帮助演讲者实现这一目标。其中,在演示文稿中插入表格可以帮助观众更直观地理解数据和比较信息。通过使用Python这样的强大编程语言&a…

前端优化之图片的渐进式加载

起因&#xff1a; 在访问自己部署的前端项目的时候发现&#xff0c;背景图片加载太慢&#xff0c;并不是很美观。 这是因为&#xff0c;除了 JavaScript 和 CSS&#xff0c;网站通常还会包含大量的图片。当自己把<img> 元素添加到网站里面时&#xff0c;对应的所有图片…

计算机网络-基于PIM-DM+IGMP的组播实验配置

前面我们将IGMP协议和PIM-DM协议理论知识都学完了&#xff0c;现在开始进入实践&#xff0c;毕竟只有完成实践是最好的检验方式。IGMP是用于感知组播组成员&#xff0c;而PIM-DM是用于在域内构建组播分发树的的协议&#xff0c;本次实验使用这两项技术进行分析与实践。 一、拓扑…

操作系统与进程简单介绍

操作系统与进程 操作系统进程 操作系统 上一篇博客中介绍了操作系统到底层硬件它们之间的一个关系&#xff0c;那么还是这张图 操作系统到用户它们之间的关系又是如何的呢&#xff1f; 又回到了最根本的问题上&#xff1a;为什么要有操作系统呢&#xff1f; 1、向下管理好软…

jQuery入门(五)Ajax和json

一、Ajax 简介 AJAX(Asynchronous JavaScript And XML)&#xff1a;异步的 JavaScript 和 XML。 本身不是一种新技术&#xff0c;而是多个技术综合。用于快速创建动态网页的技术。 一般的网页如果需要更新内容&#xff0c;必需重新加载个页面。 而 AJAX 通过浏览器与服务器进行…

一篇文章读懂抖音短视频矩阵系统:核心功能与优势分析

抖音短视频矩阵系统作为当下备受欢迎的内容创作与分发平台&#xff0c;已经吸引了大量用户和创作者的关注。本文将详细介绍抖音短视频矩阵系统的核心功能与优势&#xff0c;帮助您全面了解这一强大的内容创作工具。 1. 抖音短视频矩阵系统 抖音短视频矩阵系统是一个集创作、编…

【Hot100】LeetCode—287. 寻找重复数

目录 题目1- 思路2- 实现⭐287. 寻找重复数——题解思路 3- ACM 实现 题目 原题连接&#xff1a;287. 寻找重复数 1- 思路 快慢指针 2- 实现 ⭐287. 寻找重复数——题解思路 class Solution {public int findDuplicate(int[] nums) {int slow nums[0];int fast nums[0];//…

DB-Engines Ranking 2024年8月数据库排行

DB-Engines Ranking 2024年8月数据库排行 DB-Engines排名根据数据库管理系统的受欢迎程度进行排名。排名每月更新一次。 2024年8月&#xff0c;共有423个数据库进入排行。 排行榜 前15名趋势图 关系型数据库前 10 名 键值数据库前 10 名 文档数据库前 10 名 时序数据库前 10 …

从0到1:构建高性能的视频美颜SDK和直播美颜插件

本篇文章&#xff0c;笔者将探讨如何从0到1&#xff0c;构建一个高性能的视频美颜SDK和直播美颜插件&#xff0c;助力开发者打造出色的产品。 1.需求分析与技术选型 通常情况下&#xff0c;视频美颜功能需要包括基础的滤镜效果、磨皮美白、面部特征优化等。这些功能既要保证实…