Project Icon

EasyVtuber

开源虚拟主播系统提供高性能面捕动画

EasyVtuber是一个开源虚拟主播系统,提供高性能面部捕捉和动画功能。支持iOS设备和网络摄像头输入,可输出到OBS或Unity Capture,并支持RGBA透明通道。该项目优化了面捕刷新率,最高可达60fps。EasyVtuber提供简便的安装方法和启动器界面,适合创建高质量虚拟主播内容的用户,无需大量硬件投资即可使用。

EasyVtuber

把买皮的钱拿去买张3080吧!

OBS透明虚拟摄像头输入录制效果

本项目fork自 https://github.com/GunwooHan/EasyVtuber 为解决面部捕捉质量问题,又反向移植了原版demo https://github.com/pkhungurn/talking-head-anime-2-demo 中关于ifacialmocap的iOS面部捕捉逻辑 并且省略了ifacialmocap PC端,通过UDP直连方式使iOS面部捕捉刷新率达到最高60fps,解决了面部捕捉刷新率的瓶颈 最后,为EasyVtuber中使用的OBS虚拟摄像头方案增加配套的Shader支持,解锁RGBA输出能力,无需绿幕背景即可直接使用

视频介绍和安装说明

要求

硬件

  • 支持FaceID的iPhone(使用ifacialmocap软件,需购买,需要稳定的WIFI连接)或网络摄像头(使用OpenCV)
  • 支持PyTorch CUDA的NVIDIA显卡(参考:TUF RTX3080 默认频率 40FPS 80%占用)

软件

  • 本方案在Windows 10上测试可用
  • Python>=3.8
  • OBS或Unity Capture(虚拟摄像头方案)
  • Photoshop或其他图片处理软件
  • 科学上网方案,理解英文网站和错误提示的能力

安装(嵌入式Python版本)

bin文件夹内是基于Python 3.10.5的Win64嵌入式版构建的轻量化运行环境 对于只想体验这个库的用户,推荐使用这种安装方式。

下载ZIP并解压或克隆本仓库

点击Download ZIP下载并解压,或使用git克隆该仓库到你能找到的位置。 完整展开venv需要约5.5G硬盘空间。

下载预训练模型

使用00B快捷方式或以下链接下载模型文件 https://github.com/pkhungurn/talking-head-anime-3-demo#download-the-models 从原仓库下载(this Dropbox link)的压缩文件 解压到data/models文件夹中,与placeholder.txt同级 正确的目录结构为:

+ models
  - separable_float
  - separable_half
  - standard_float
  - standard_half
  - placeholder.txt

如不确定是否解压到正确位置,可使用00.检查并补齐必需文件.bat

构建运行环境

运行适合你所在地区的01A.构建运行环境(默认源).bat01B.构建运行环境(国内源).bat 此脚本会使用pip在bin目录下安装所有必要的依赖 两个脚本可互相替代,且支持从中断处继续 如遇网络相关错误,直接关闭控制台,调整网络后重新运行即可 step01success 完全安装完成后再次运行脚本的输出如图所示。通常情况下,安装过程中没有红字就表示成功完成。

使用启动器测试结果

运行02B启动器(调试输出).bat 直接点击界面底部的Save & Launch 如果看到弹出的OpenCV输出窗口,则安装成功完成 img.png

配置输入输出设备

成功进行调试输出后,请参考后续的输入输出设备部分进行进一步配置以输出到OBS。

安装(Venv版本)

如果你仍需使用之前的Venv方案,请参考以下步骤

下载ZIP并解压或克隆本仓库

点击Download ZIP下载并解压,或使用git克隆该仓库到你能找到的位置。 完整展开venv需要约5.5G硬盘空间。

创建虚拟环境

此处假设你已正确安装Python,如不会安装请使用前文的嵌入式方案 在项目目录下运行python -m venv venv创建虚拟环境

切换到虚拟环境

之后的操作都需在虚拟环境中进行,辨别方式为命令行前会有(venv)标识 在控制台运行venv\Scripts\activate.bat切换到刚创建的虚拟环境 之后你的python、pip等操作都将在虚拟环境中执行

安装依赖

在虚拟环境中执行以下命令 pip install -r .\requirements.txt pip install torch --extra-index-url https://download.pytorch.org/whl/cu113

运行启动器

在虚拟环境中执行以下命令 python launcher.py

安装(Conda版本)

克隆本仓库

克隆完成后,如直接用PyCharm打开,暂不要配置Python解释器。

Python和Anaconda环境

本项目使用Anaconda进行包管理 首先前往 https://www.anaconda.com/ 安装Anaconda 启动Anaconda Prompt控制台 国内用户建议此时切换到清华源(pip和conda都要更换,尤其是conda的PyTorch Channel,PyTorch本体太大了) 然后运行 conda env create -f env_conda.yaml 一键安装所有依赖 如遇报错(通常是网络问题),删除配置了一半的环境,运行conda clean --all清除下载缓存,调整配置后重试

安装完成后,在PyCharm中打开本项目,点击右下角解释器菜单,选择Add Interpreter...->Conda Environment->Existing environment 选择你电脑上的conda.exe和刚创建的talking-head-anime-2-demo环境中的python.exe 点击OK,依赖全部亮起即可

下载预训练模型

https://github.com/pkhungurn/talking-head-anime-3-demo#download-the-models 从原仓库下载(this Dropbox link)的压缩文件 解压到data/models文件夹中,与placeholder.txt同级 正确的目录结构为:

+ models
  - separable_float
  - separable_half
  - standard_float
  - standard_half
  - placeholder.txt

运行启动器

在Conda环境中执行以下命令 python launcher.py

输入输出设备

OBS虚拟摄像头

目前更推荐这个方案,UnityCapture存在未查明的性能瓶颈

如果你选择自己进行抠像,你可以直接输出到OBS。如果你需要RGBA支持,则需要额外使用一个着色器。

下载并安装StreamFX https://github.com/Xaymar/obs-StreamFX 下载着色器(感谢树根的协助)https://github.com/shugen002/shader/blob/master/merge%20alpha2.hlsl

之后,使用--alpha_split参数运行 alpha split

你会看到这样的输出画面,透明通道单独使用灰度方式发送了

然后对OBS中的视频采集设备添加滤镜-着色器-选择你下载的merge alpha2.hlsl-关闭

这样透明通道就应用回左边的图像了

你可能需要手动调整一下裁剪把右侧的无用画面切掉

(如果看不到着色器滤镜,那可能是StreamFX没安装好或者OBS不是最新版)

UnityCapture

如果需要使用透明通道输出,参考 https://github.com/schellingb/UnityCapture#installation 安装好UnityCapture 只需要正常完成Install.bat的安装,在OBS里能看到对应的设备(Unity Video Capture)就行

在OBS添加完摄像头后,还需要手动配置一次摄像头属性才能支持ARGB 右键属性-取消激活-分辨率类型自定义-分辨率512x512(与--output_size参数一致)-视频格式ARGB-激活

iFacialMocap

https://www.ifacialmocap.com/download/ 你很可能需要购买正式版(非广告,只是试用版时长不太够) 购买前请确认自己的设备是否支持 不需要下载PC软件,只需安装iOS端的软件即可,连接信息通过参数传入Python

OpenSeeFace

https://github.com/emilianavt/OpenSeeFace/releases 直接下载最新版本的Release包并解压 然后进入解压目录的Binary文件夹 右键编辑run.bat,在倒数第二行运行facetracker的命令后加上--model 4,切换到模型4可以实现眨眼 facetracker -c %cameraNum% -F %fps% -D %dcaps% -v 3 -P 1 --discard-after 0 --scan-every 0 --no-3d-adapt 1 --max-feature-updates 900 --model 4(仅供参考) 然后保存并双击run.bat运行,按照提示选择摄像头、分辨率、帧率,如果捕获正常,你应该能看到输出画面 最后在启动器中选择OpenSeeFace输入,或添加启动参数--osf 127.0.0.1:11573即可接入OpenSeeFace

运行

完整的运行命令python main.py --output_webcam unitycapture --ifm 192.168.31.182:49983 --character test1L2 --extend_movement 1 --output_size 512x512

参数名值类型说明
--character字符串character目录下的输入图像文件名,不需要带扩展名
--debug打开OpenCV预览窗口输出渲染结果,如果没有任何输出配置,该参数默认生效
--input字符串不使用iOS面捕时,传入要使用的摄像头设备名称,默认为设备0,有ifm参数时无效
--ifm字符串使用iOS面捕时,传入设备的IP:端口号,如192.168.31.182:49983
--output_webcam字符串可用值为obsunitycapture,选择对应的输出种类,不传则不输出到摄像头
--extend_movement浮点数使用iOS面捕返回的头部位置,对模型输出图像进一步进行移动和旋转,使得上半身可动
传入的数值表示移动倍率(建议值为1)
--output_size字符串格式为256x256,必须是4的倍数。
增大它并不会让图像更清晰,但配合extend_movement会增大可动范围
项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号