EasyVtuber
- 使用面部特征点和GAN进行角色面部生成
- 在Google Meets、Zoom等平台上用你自己的网络漫画或动漫角色进行对话!
- 添加一些配件也能很好地运行!
- 遗憾的是,在低于RTX 2070的显卡上可能无法实时运行 ㅠㅠ
演示
要求
- Python >= 3.8
- Pytorch >= 1.7
- pyvirtualcam
- mediapipe
- opencv-python
快速开始
- ※ 使用本项目前必须安装OBS
- 请务必按照以下安装顺序进行!
- 安装OBS studio
- 为了使用OBS虚拟摄像头,必须先安装OBS Studio
pip install -r requirements.txt
- 必须先安装OBS虚拟摄像头,requirements中包含的pyvirtualcam才能正常安装和使用
- 下载预训练模型
- 请将以下文件放入pretrained文件夹
combiner.pt
eyebrow_decomposer.pt
eyebrow_morphing_combiner.pt
face_morpher.pt
two_algo_face_rotator.pt
- 请将以下文件放入pretrained文件夹
- 将角色图片放入character文件夹
- 角色图片文件必须满足以下条件:
- 包含alpha通道(png格式)
- 只有一个人形角色
- 角色正面朝向
- 角色的头部应在128 x 128像素范围内(因为默认会调整为256 x 256,所以基于256 x 256的尺寸,头部应在128x128内)
- 角色图片文件必须满足以下条件:
5.python main.py --webcam_output
- 如果想查看实际面部特征是如何捕捉的,请添加
--debug
选项运行
如何制作自定义角色
- 在百度、Google等搜索引擎中寻找你想要的角色!
- 尽量符合上述4个条件!
- 尽量符合上述4个条件!
- 将找到的图片裁剪成1:1比例,使角色面部位于中央!
- 图片裁剪网站 非广告 X
- 图片裁剪网站 非广告 X
- 去除图片背景,生成alpha通道!
- 背景去除网站 非广告 X
- 背景去除网站 非广告 X
- 完成!
- 将图片放入character文件夹,然后运行
python main.py --output_webcam --character (不包含.png的角色文件名)
- 将图片放入character文件夹,然后运行
文件夹结构
│
├── character/ - 角色图片
├── pretrained/ - 保存预训练模型
├── tha2/ - Talking Head Anime2库源文件
├── facial_points.py - 面部特征点常量
├── main.py - 主执行脚本
├── models.py - 定义GAN模型
├── pose.py - 将面部特征点处理为姿态向量
└── utils.py - 图像预处理/后处理的工具函数
使用方法
使用网络摄像头输出
python main.py --output_webcam
指定角色
python main.py --character (character文件夹中不包含.png的角色文件名)
查看面部特征
python main.py --debug
视频文件推理
python main.py --input 视频文件路径 --output_dir 帧保存目录
待办事项
- 添加眉毛特征
- 参数控制器GUI
- 自动化制作可驱动角色
鸣谢
- 感谢ScatterLab Iruda团队允许使用
Iruda
图像,感谢纯粹的杂质允许使用Ddolsuni MK1
图像,感谢成民锡导师、朴成浩、朴范洙学员深夜协助制作README示例视频,感谢金宝灿导师为项目方向提供建议!
致谢
- EasyVtuber 是基于 TalkingHeadAnime2 制作的。
- 请查看原作者仓库的许可证,然后再使用 tha2 文件夹中的源代码和预训练模型文件。