前言: GitHub 上又火了个项目,蛮有趣的:可以让你在 ZOOM 、腾讯会议等等软件中“换脸”成别人。自己 fork 到本地,调了一调。作者封装的已经相当好了,当然了,像我这种 CRUD 程序员 + AI 小白 肯定是要调一天的,不调一天是不可能的,也就调调就崩溃+一顿改环境这样子。咱们聊聊这个程序的原理与应用时的注意事项。
今天上午开了个班会,用的腾讯会议,变身哈利波特、C罗、施瓦辛格完全没问题…
项目地址:https://github.com/alievk/avatarify
作者是个俄罗斯老哥,Mac、Linux、Windows三大平台的配置步骤,老哥都在 README
.md 里写的明明白白了,前提是,老哥假设你有这些基础知识:
- 懂一点
git
命令,起码知道如何配置其到命令行终端; - 已经安装了
Mini Conda
(Anaconda
也没问题); - 足够快的外网的网速(我们要下载
神经网络权重文件 730MB
,单独配置的环境中要有PyTorch 700MB
+openCV
等等包))。
在配置过程中,我们要至少要留出三个G的空间:
- 我们需要为本项目单独创建一个
conda
环境,其中包含PyTorch=1.0.0
这种大体量框架; - 我们要下载
OBS Studio
(对,就是主播们都在用的视频推流软件); - 我们要下载神经网络模型文件 fomm 。
运行机制
我画了一张图。
原理大概是:
- 利用俄罗斯老哥的程序,把你的标签提炼到你提供的照片上,实现“变脸”;
- OBS Studio 是“生成的视频”与“会议程序”的接口,把生成的“变脸视频”抓下来,推给“会议程序”(如腾讯会议)吓唬你朋友们…
安装+配置+应用流程
老哥已经写得很清楚了,我这里厚颜无耻地翻译一下,以 windows 为例,顺便聊聊每步我都遇到了什么困难。
原文地址:link
绝大部分玩 python 的朋友电脑里都有 Anaconda 或者 Miniconda 吧,无需多讲。
老哥写的 .bat
是基于 conda 命令的,不用 conda 还真有点麻烦。
绝大部分玩编程语言的朋友都按照 Git 了吧,这个无需多讲。
其实你也可以不装 Git ,这里我们就是利用其克隆个仓库罢了,因此我们完全可以去 GitHub 上以压缩包形式把仓库下载下来。
老哥说:“请在终端执行以下命令,请原封不动输入。”
咱来看看这些代码都啥意思。
git clone https://github.com/alievk/avatarify.git
# 下载(克隆)老哥的项目
# 前面说了,你去 GitHub 下载压缩包也行,不一定要 git
cd avatarify
# 进入这个项目
scripts\install_windows.bat
# 执行批处理文件
- 1
- 2
- 3
- 4
- 5
- 6
- 7
咱来看看批处理文件 install_windows.bat
里有啥。
call scripts/settings_windows.bat
# 调用配置文件,实际上就是知道了新建环境叫啥
call conda create -y -n %CONDA_ENV_NAME% python=3.7
call conda activate %CONDA_ENV_NAME%
# 为咱这个项目新建个 conda 环境,然后激活这个环境
call conda install -y pytorch==1.0.0 torchvision==0.2.1 cuda100 -c pytorch
# 安装 PyTorch
REM ###FOMM###
call rmdir fomm /s /q
call git clone https://github.com/alievk/first-order-model.git fomm
# 把咱这个项目中要用到的模型下载到 fomm 文件夹中
call pip install -r requirements.txt
# 给咱这个 conda 环境中加点料
# 利用 pip 包管理器吓一大堆库
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
这个安装过程总结起来,就一个字:
- 等。
pip
、git clone
这种命令都需要咱科学、合理地加速上网
,才能获得较为可观的速度。
神经网络模型贼老大,权重文件肯定也小不了,有 716 MB 。老哥给了四个链接:
我推荐第四个 Google Drive ,不用“科学上网”,内网就能几百 K/s。
下载好后,放在根目录下就行了,不用解压。
原文翻译:运行 run_windows.bat
。如果成功安装,会弹出两个窗口,分别为“cam”和“avatarify”。先不管。如果你的系统里有多个“相机”,你应该选择对的那个。在 scripts/settings_windows.bat
中修改 CAMID
的值,如 0, 1, 2, …
OBS Studio 开源免费,主播都在用!
bilibili 上有个 OBS 教程,我看了,觉得不错:
- OBS教程:六分钟学会直播与视频录制
- https://www.bilibili.com/video/BV1kW411K7HA/
(有了 OBS 神器,没准你还能顺便成了主播啥的,不要谢我…)
OBS 本身是不带“虚拟摄像头”功能的,你需要下载插件,然后安装在你的 OBS Studio/bin 目录下。
地址:https://obsproject.com/forum/resources/obs-virtualcam.539/
注意:在安装时选择 register only 1 virtual camera 。
打开 OBS 后:
新建一个场景,在来源中点击“+”好,选择“python.exe avatarify” 。
这样,你的 OBS 就会捕获你用 AI 生成的“脸”了。
此外,别忘了让图片适应屏幕大小(快捷键为 CTRL + F
来自适应屏幕)。
在 OBS 中,点击“工具->虚拟摄像头”,打开它。
好了,现在你可以开始吓唬人了(准备挨打了…)。