原文:一种基于 EasyVtuber 和 Stable Diffusion 的零成本虚拟形象直播方案
TL;DR: 本文描述了一种基于 EasyVtuber 和 Stable Diffusion 项目的零成本虚拟形象直播方案,允许您使用 Stable Diffustion 从零创建您自己的二维虚拟形象,并籍由 EasyVtuber 的 AI 模型令您的虚拟形象“动起来”,以达到媲美 Live2D 模型的效果。
我一直很想整个 Live2D 模型拿来直播,奈何囊中羞涩,因此只得另辟蹊径。网上搜寻了类似 PNGTuber 之类的方案后,依然觉得不够满意。结果前些天和朋友聊起此事,被推荐了 EasyVtuber ,经过一番倒腾后,完美满足了我的需求,本文则作为教程介绍如何使用 EasyVtuber 配合 Stable Diffusion 零成本创建自己的虚拟形象进行直播。
当然要注意的是,此方案对计算机性能要求不低(因为需要 AI 模型实时计算绘图),拿来做游戏直播之类的可能需要你有一张强劲的显卡。
首先,需要部署 Stable Diffusion 以帮助我们生成我们自己的 OC 形象。如果你使用外部平台生成 OC 形象,则可以直接跳到下一节。
为此,请前往 lllyasviel/stable-diffusion-webui-forge,然后在 README 的 Installing Forge
一节中点击 >>> Click Here to Download One-Click Package (CUDA 12.1 + Pytorch 2.3.1) <<< 以下载 Stable Diffusion Webui Forge ( Stable Diffusion Webui 的一个下游分支,提供了很多常用的工具和性能优化)一键部署包。
随后,请解压此压缩包,然后运行 update.bat
以应用更新,随后运行 run.bat
以启动 Stable Diffusion Webui Forge 。
当然,如果您希望手动安装,您也可以直接使用 Git clone 该仓库,并运行 webui-user.bat
(需要 Python 环境)。
如果您的控制台提示 Running on local URL: http://127.0.0.1:7860
且电脑自动打开了浏览器,则证明 Stable Diffusion 启动成功,可以正常使用。
如果您正在使用 NVIDIA CPU ,则可以设置 webui-user.bat
的以下部分,添加命令行参数:
set COMMANDLINE_ARGS=--cuda-stream --pin-shared-memory --cuda-malloc
可以提升您的图像生成速度。
接下来,您还需要为 Stable Diffusion Webui Forge 部署模型,以令其可用于生成图像。为此,您可以在诸如 Civital 这样的网站上搜寻您喜欢的模型。为了确保生成质量,(在您计算机性能足够的前提下)请尽量选用 SDXL 系列模型。
本例中使用了 WAI-NSFW-illustrious-SDXL 进行生成。
一旦您下载您心仪的模型,即可将模型文件放入 models/Stable-diffusion
目录(一键部署包的路径应为 webui/models/Stable-diffusion
,点击 webui 页面左上角的刷新按钮(或是直接重启 Stable Diffusion Webui Forge ),即可看到新安装的模型并选中。
接下来,需要部署 EasyVtuber 用于计算图像并输出结果。为此,请前往 yuyuyzl/EasyVtuber,然后在 README 的 整合包版本
一节中点击 夸克网盘 或 谷歌网盘 以下载 EasyVtuber 一键部署包。
随后,请解压此压缩包,运行 02A.启动器.bat
以启动 EasyVtuber 。
同样,如果您希望手动安装,您也可以直接使用 Git clone 该仓库,然后遵照 README 的部署要求进行部署(需要 Conda 环境)。
如果您看到了您的电脑弹出了名为 EasyVtuber Launcher
的窗口,则证明 EasyVtuber 启动成功,可以正常使用。
如果您在使用 EasyVtuber 时遇到了此报错,请手动运行 pip install protobuf==3.20.1
,更换 protobuf 版本即可解决。
EasyVtuber 支持将计算生成的模型推流到 OBS 场景中,为此,需要安装一个名为 Spout2 的 OBS 插件。请前往 Off-World-Live/obs-spout2-plugin 发布页,下载 win-spout-1.9.0-windows-x64.zip,并将该压缩包解压到 C:\ProgramData\obs-studio\plugins
目录中以安装。
随后,应当可以在 OBS 场景中添加 Spout2 捕获
源,所有设置保持默认即可。
OpenSeeFace 为 EasyVtuber 提供了脸部变化输入支持,此方案是 EasyVtuber 唯一支持的 PC 端输入方案。要安装 OpenSeeFace ,请前往 emilianavt/OpenSeeFace 发布页,下载 OpenSeeFace-v1.20.4.zip 并解压,运行 run.bat
,并按照提示选择摄像头、分辨率、帧率。如果您看到了您的电脑弹出了可以正常识别您脸部特征的窗口,则证明 OpenSeeFace 启动成功,可以正常使用。
( Tips:你也可遵照 EasyVtuber README 中的要求,使用 --model 4
参数以支持模型的眨眼功能)
目前最推荐的方案,使用苹果结构光硬件,捕捉效果追踪准确度都最好,demo 中使用了此输入。
请自行遵照 EasyVtuber README 中的要求安装,并在 EasyVtuber Launcher 中选择其作为 Input Device
即可。
前往 EasyVtuber 安装目录,运行 02.构建 TensorRT 模型( N 卡使用).bat
,等待模型构建。此过程只需要进行一次,但需要近半小时的时间进行构建,过程中控制台可能不会有显著的提示,请仔细等待,直到进度条完成。
首先,需要使用 Stable Diffusion 生成我们自己的 OC 形象,为此,请启动 Stable Diffusion Webui Forge ,输入 Prompt ,点击 Generate 进行生成( SDXL 模型推荐输出分辨率 768*1366 ,其余配置因模型而不同,请参照模型发布页的要求进行调整)。
由于 EasyVtuber 要求我们生成的图片必须是无背景的正身像,因此,可添加如下 Prompt 以保证生成质量:
transparent background, standing, full body, arms at sides, looking at viewer, straight-on, portrait
如需添加其他 Prompt ,推荐可参照 danbooru 提供的标签名称输入。
接下来,使用您所熟悉的图像处理软件去除纯色背景即可(例如 Photoshop 就支持一键去除背景)。
最后,将修改好的图片放入 EasyVtuber 的 data/images
目录中即可。
接下来,请启动 EasyVtuber 和 OpenSeeFace ,并在 EasyVtuber Launcher 中选择刚才添加的角色图片,设置 Input Device
为 OpenSeeFace ,选择输出目标为 Spout2 (也可选择 Debug Output 以预览),启用 TensorRT (如果已构建),并根据生成的图片是半身(half
)还是全身(full
)选择对应的超分和补帧模型。最后点击 Save & Launch
以启动。
随后,启动 OBS ,如果你已经正确配置 Spout 2 捕获源,那么此时你应该就可以正常看到你的 OC 栩栩如生的展现在你的面前了!
1
aeron 1 天前
实时的吗,帧率怎么样
|