该存储库包含来自单个图像3:现在的身体项目的演示程序(?)动漫。顾名思义,该项目允许您动画动漫角色,并且您只需要该角色的单个图像即可。有两个演示程序:
manual_poser可让您操纵角色的面部表情,头部旋转,身体旋转和胸部膨胀,原因是通过图形用户界面呼吸。ifacialmocap_puppeteer可让您将面部运动转移到动漫角色。 如果您没有所需的硬件(下面讨论)或不想下载代码并设置环境来运行它,请单击以尝试在Google Colab上运行手动摆动器。
这两个程序都要求最近有力的NVIDIA GPU运行。我可以亲自使用NVIDIA TITAN RTX以良好的速度运行它们。但是,我认为最近的高端游戏GPU,例如RTX 2080,RTX 3080或更好的做法也一样。
ifacialmocap_puppeteer需要一个能够从视频提要中计算混合形状参数的iOS设备。这意味着该设备必须能够运行iOS 11.0或更高版本,并且必须具有truedepth的前置摄像头。 (有关更多信息,请参见此页面。)换句话说,如果您拥有iPhone X或更好的内容,则应该全部设置。就我个人而言,我使用了iPhone 12 mini。
请更新GPU的设备驱动程序,并安装与GPU兼容的CUDA工具包,并且比您将在下一个小节中安装的版本更新。
manual_poser和ifacialmocap_puppeteer均作为桌面应用程序可用。要运行它们,您需要为运行以Python语言编写的程序设置环境。环境需要具有以下软件包:
这样做的一种方法是安装Anaconda并在外壳中运行以下命令:
> conda create -n talking-head-anime-3-demo python=3.8
> conda activate talking-head-anime-3-demo
> conda install pytorch torchvision torchaudio cudatoolkit=11.3 -c pytorch
> conda install scipy
> pip install wxpython
> conda install matplotlib
截至2006年6月,您无法在Windows上使用WXPYTHON与Python 3.10使用。结果,在修复此错误之前,请勿使用Python 3.10。这意味着您不应在上面列表中的第一个conda命令中设置python=3.10 。
上面命令创建的环境为您提供了Python版本3.8和Pytorch的安装,该版本由CUDA工具包11.3编译。这种特定的设置将来可能不起作用,因为您可能会发现此特定的Pytorch软件包与您的新计算机无法使用。解决方案是:

manual_poser也可作为jupyter nootbook提供。要在本地机器上运行它,您还需要安装:
在某些情况下,您还需要启用widgetsnbextension 。所以,运行
> jupyter nbextension enable --py widgetsnbextension
安装上述两个软件包后。使用Anaconda,我设法通过以下命令进行以上操作:
> conda install -c conda-forge notebook
> conda install -c conda-forge ipywidgets
> jupyter nbextension enable --py widgetsnbextension
您也可以使用Anaconda下载并安装一个命令中的所有Python软件包。打开外壳,将目录更改为克隆存储库的位置,然后运行:
> conda env create -f environment.yml
这将创建一个称为talking-head-anime-3-demo的环境,其中包含所有必需的Python软件包。
如果您想使用ifacialmocap_puppeteer ,则还需要使用一个名为IfacialMocap的iOS软件(在App Store中购买了980日元)。这次您无需下载配对应用程序。您的iOS和您的计算机必须使用同一网络。例如,您可以将它们连接到同一无线路由器。
在运行程序之前,您需要从此Dropbox链接下载模型文件,然后将其解压缩到存储库的根目录下的data/models夹。最后,数据文件夹应该看起来像:
+ data
+ images
- crypko_00.png
- crypko_01.png
:
- crypko_07.png
- lambda_00.png
- lambda_01.png
+ models
+ separable_float
- editor.pt
- eyebrow_decomposer.pt
- eyebrow_morphing_combiner.pt
- face_morpher.pt
- two_algo_face_body_rotator.pt
+ separable_half
- editor.pt
:
- two_algo_face_body_rotator.pt
+ standard_float
- editor.pt
:
- two_algo_face_body_rotator.pt
+ standard_half
- editor.pt
:
- two_algo_face_body_rotator.pt
模型文件与Creative Commons Attribution 4.0国际许可证一起分发,这意味着您可以将其用于商业目的。但是,如果您分发它们,则必须说我是创造者。
manual_poser桌面应用程序打开外壳。将您的工作目录更改为存储库的根目录。然后,运行:
> python tha3/app/manual_poser.py
请注意,在运行上面的命令之前,您可能必须激活包含所需软件包的Python环境。如果您使用上面讨论的Anaconda创建环境,则需要运行
> conda activate talking-head-anime-3-demo
如果您尚未激活环境。
如项目的文章中所述,我创建了4个神经网络系统的变体。它们称为standard_float , separable_float , standard_half和separable_half 。它们都具有相同的功能,但它们的大小,RAM使用,速度和准确性有所不同。您可以指定manual_poser程序通过--model命令行选项使用的哪些变体。
> python tha3/app/manual_poser --model <variant_name>
其中<variant_name>必须是上述4个名称之一。如果未指定变体,则将使用standard_float变体(最大,最慢,最准确)。
manual_poser jupyter笔记本打开外壳。激活环境。将您的工作目录更改为存储库的根目录。然后,运行:
> jupyter notebook
浏览器窗口应打开。在其中,打开manual_poser.ipynb 。完成后,您应该看到它具有两个单元格。按顺序运行两个单元。然后,向下滚动到文档的末尾,您将在那里看到GUI。
您可以通过更改第一个单元格中的MODEL_NAME变量来选择要使用的系统变体。如果这样做,您将需要重新运行两个单元格,以便将变体加载,并正确更新GUI以使用它。
ifacialmocap_poser首先,在iOS设备上运行IfacialMocap。它应该向您显示设备的IP地址。记下它。保持应用程序打开。

打开外壳。激活Python环境。将您的工作目录更改为存储库的根目录。然后,运行:
> python tha3/app/ifacialmocap_puppeteer.py
您将看到一个带有标签“捕获设备IP”的文本框。写下您在那儿记下的iOS设备的IP地址。

单击“开始捕获!”按钮向右。

如果程序正确连接,则在移动头部时,您应该会看到窗口底部的数字更改。

现在,您可以加载角色的图像,并且应该跟随您的面部运动。
为了使系统运行良好,输入图像必须遵守以下约束:

有关输入图像的更多详细信息,请参见项目的写入。
如果您的学术工作从此存储库中的代码中受益,请引用该项目的网页如下:
Pramook khungurn。从单个图像3:现在身体也是身体的动漫。 http://pkhungurn.github.io/talking-head-anime-3/,2022。访问:yyyy-mm-dd。
您还可以使用以下Bibtex条目:
@misc{Khungurn:2022,
author = {Pramook Khungurn},
title = {Talking Head(?) Anime from a Single Image 3: Now the Body Too},
howpublished = {url{http://pkhungurn.github.io/talking-head-anime-3/}},
year = 2022,
note = {Accessed: YYYY-MM-DD},
}
虽然作者是Google Japan的雇员,但该软件不是Google的产品,也没有Google的支持。
该软件的版权属于我,因为我使用IARC流程要求它。但是,Google可能声称拥有本发明的知识产权的权利。
该代码是根据MIT许可发布的。该模型是在创意共享归因4.0国际许可下发布的。请参阅有关图像的许可证的data/images目录中的readme.md文件。