SadTalker 是一个开源的音频驱动数字人(说话头像)生成工具,由 OpenTalker 团队开发,论文发表于 CVPR 2023(arXiv:2211.12194)。它的核心能力可以概括为一句:输入一张人脸图片和一段语音,输出一段唇形同步、头部姿态自然的说话视频。与需要绿幕、动作捕捉或专业建模的传统数字人方案不同,SadTalker 在推理时对目标人物零训练,单张消费级 NVIDIA 显卡即可运行,代码以 Apache 2.0 协议开源,支持完全离线私有化部署。 技术路线上,SadTalker 属于 3DMM 方案:3DMM(三维可形变模型,把一张人脸抽象为「平均脸 + 一组控制身份、表情、姿态的参数」)先把人脸参数化,再由两个神经网络分别从音频预测表情系数与头部姿态系数,最后用生成式渲染器把系数还原为逼真的 2D 视频帧,并可选接入 GFPGAN、CodeFormer 等画质增强模型。相比只改嘴部的 2D 唇形同步工具,它能生成自然的头部运动;相比商业云端数字人,它完全离线、可二次开发。 本篇按「速览 → 安装 → 快速上手 → 核心能力 → 生产部署 → 选型对比 → 版本迭代 → 应用场景 → 误区与面试题」组织,命令与参数均基于官方 README 与源码,读者按顺序操作即可跑通第一个数字人视频。
对 AI 从业者而言,SadTalker 是学习音频驱动说话人生成的最佳开源基线之一,也是以最低成本把「数字人口播」落到内网业务的实用方案。
目录
速览卡是工具类内容的固定首屏模块:30 秒判断「这工具是什么、能不能商用、适不适合我」。
为什么需要 SadTalker:从「只动嘴」到「会说话、会转头」的数字人
在 SadTalker 出现之前,想低成本生成一个「会说话的人」有三条路,各有硬伤。其一是 2D 唇形同步(如 Wav2Lip),它只在原视频的嘴部做像素替换,头部僵硬、侧脸时嘴形错位明显,且必须有一条现成视频作为底片。其二是传统 3D 数字人管线:建模、绑定、动作捕捉、渲染,一套流程动辄数周,需要专业团队与昂贵设备。其三是调用商业数字人 API,按分钟计费,且人脸素材与音频都要上传云端,在金融、政务、直播合规等场景难以落地。
SadTalker 用「3DMM 系数生成 + 生成式渲染」绕开这三条路的局限。它先把人脸参数化为 3DMM 系数——一份「人脸数字模板」,用一组数字就能描述长相、表情和姿态——然后设计两个轻量网络:ExpNet(音频转表情网络)从音频预测逐帧表情系数,PoseVAE(头部姿态生成网络)从音频预测头部姿态系数(带随机采样,所以头部动作不呆板)。得到系数序列后,基于 face-vid2vid 的面部渲染器把它们逐帧还原成视频,最后经 GFPGAN/CodeFormer(两套开源人脸修复模型)增强画质。推理阶段对目标人物零训练,一张照片即可开工。
与同类工具相比,SadTalker 的定位是「可解释、可控制、可私有化的开源基座」:相比 Wav2Lip 多出真实的头部姿态,相比实时方案 MuseTalk 牺牲了速度,但姿态、表情、表情幅度都有显式参数可控。它的效果上限低于 HeyGen 这类商业产品,但胜在完全离线、协议宽松,适合作为数字人业务的底层引擎二次开发。
安装与环境配置:4 步就绪
步骤一 · 克隆仓库并创建虚拟环境。 官方推荐 Python 3.8,用 conda 隔离环境,避免与现有项目依赖冲突。注意不要用 Python 3.10+,face-alignment 等依赖在旧版本上最稳。
步骤二 · 安装依赖。 先装 GPU 版 PyTorch(CUDA 11.8 轮子),再装 requirements.txt。无 NVIDIA 显卡时也可装 CPU 版跑通流程,但速度慢一个数量级。
步骤三 · 验证运行。 直接跑 README 中的官方示例命令(见下方代码块)。首次运行会自动下载约 1-2GB 预训练权重到 checkpoints/ 目录,下载源为 Hugging Face 与 Google Drive,国内网络经常超时;失败时按 README 提供的链接手动下载并解压到 checkpoints/。关键权重包括 3DMM 重建网络(epoch_20.pth)、运动映射网络(mapping_00229_model.pth.tar)、256 分辨率运动模型(SadTalker_V0.0.2_256.safetensors)以及渲染器、增强模型权重。
git clone https://github.com/OpenTalker/SadTalker.gitcd SadTalkerconda create -n sadtalker python=3.8 -yconda activate sadtalker # GPU 版 PyTorch(无 NVIDIA 显卡时去掉 --index-url 即为 CPU 版)pip install torch==2.0.1 torchvision==0.15.2 --index-url https://download.pytorch.org/whl/cu118pip install -r requirements.txt # 跑通官方示例,验证安装python inference.py \ --driven_audio ./examples/driven_audio/bus_chinese.wav \ --source_image ./examples/source_image/full_body_1.png \ --result_dir ./results \ --still --preprocess full --enhancer gfpgan# 生成产物:./results 目录下的 mp4 视频文件
快速上手:5 分钟跑通第一个数字人视频
最省事的方式是用官方 WebUI(基于 Gradio,一个把 Python 函数包成网页界面的开源库),全程点选,无需写代码;需要批量时再用 CLI。
1. 终端运行 python app.py,等待模型加载完成,用浏览器打开终端输出的本地地址(默认 http://localhost:7860)。首次启动要加载全部权重,耗时 1-2 分钟属正常。
2. 在图片上传组件中选择源图片:要求正面或接近正面、人脸清晰、五官无遮挡。
3. 上传或录制驱动音频:WAV 格式,工具内部统一按 16kHz 处理。
4. 在高级选项(Advanced Options)中做最小配置:预处理方式选 crop(自动裁剪人脸)、勾选 still(减小头部晃动)、增强方式选 GFPGAN,其余保持默认。
5. 点击生成按钮,等待输出视频。256 分辨率、10 秒音频在 RTX 3090 上通常需要 1-5 分钟,耗时取决于是否开启增强。
6. 进阶技巧:pose_style(姿态风格参数)先控制在 0-6 之间,避免头部摆动过大导致五官扭曲;exp_scale(表情放大倍数)建议 1.0-1.5,越大越夸张。
CLI 方式与 WebUI 等价,适合批量与脚本化:
python inference.py \ --driven_audio ./examples/driven_audio/bus_chinese.wav \ --source_image ./examples/source_image/full_body_1.png \ --result_dir ./results \ --still --preprocess crop --enhancer gfpgan
核心能力详解:5 大支柱
支柱一 · 3DMM 运动系数生成。 这是 SadTalker 不同于 2D 唇形同步的核心。输入音频被转换为时序特征后,由两条分支并行处理:ExpNet 输出逐帧表情系数(控制嘴型、眼睛、眉毛),PoseVAE 输出逐帧头部姿态系数。PoseVAE 本质是一个变分自编码器(VAE,一类通过学习数据概率分布来生成新样本的神经网络),它从「真实头部运动」的分布中采样,因此同一段音频每次生成的头部动作都略有不同,比纯回归更自然。用户通过 pose_style(姿态风格,0-45)和 exp_scale(表情放大倍数,0-3)显式控制这两路的输出强度。
支柱二 · 生成式面部渲染。 系数是抽象数字,必须还原成像素。SadTalker 采用 face-vid2vid(一种生成式图像动画框架)以源图身份信息为条件,把逐帧 3D 系数渲染为 2D 帧序列。这是整个管线中最耗 GPU 的环节,也是分辨率与画质的瓶颈。渲染器输出 256 分辨率基础帧,供后续增强。
支柱三 · 输入自适应与姿态控制。 针对不同素材形态,--preprocess 提供三种策略:crop(自动按检测到的人脸裁剪正方形区域)、resize(按指定尺寸缩放)、full(不裁剪,保留全身或多人带背景的原图,只局部动画化面部)。--still 参数用于降低头部位移幅度,适合证件照等希望画面「稳一点」的输入。三者组合即可覆盖口播、全身形象、直播画面等常见业务形态。
支柱四 · 画质后处理管线。 直接渲染的 256 帧存在磨皮感与细节丢失。SadTalker 内置两阶段增强:先上采样到目标分辨率,再通过 --enhancer 选择 GFPGAN 或 CodeFormer 对每一帧做人脸修复。代价是显著增加推理时间与显存——增强逐帧跑神经网络,10 秒视频可能要多等 2-4 倍时间。
支柱五 · 多形态输出。 默认输出为合成好音频流与画面的 MP4;打开 --face3dvis 会额外导出一段 3D 头部模型可视化视频,便于调试姿态系数,也是论文演示中最常用的展示形态。配合 --result_dir 组织产物目录,每个任务输出独立文件夹。
生产部署与监控:从上线到运维
部署方式一 · Gradio 内网服务。 python app.py 即是一个完整的 Web 服务,适合团队体验、评审与低并发使用。多人同时提交时 Gradio 会排队串行执行,显存压力可控;但服务重启后模型需要重新加载(约 1-2 分钟),建议用 systemd 或 supervisor 托管为常驻进程。
部署方式二 · CLI 批处理 + 任务队列。 把 inference.py 封装成批处理脚本:遍历输入目录中的「图片-音频」配对,循环调用 CLI,输出到独立结果目录。生产环境建议用 Redis 或数据库做任务队列、多进程并发消费;并发数按显存规划,例如 24GB 显存可同时跑 2-3 个不开启增强的任务。注意渲染任务不可中断——进程被杀会留下半成品视频,出队前需做产物完整性校验。
可观测性。 三件事:一是日志,inference.py 会在终端打印预处理、系数生成、渲染、保存各阶段信息,定位瓶颈看各阶段耗时即可;二是资源,用 nvidia-smi 观察显存占用,--batch_size 1 是低显存机器的保底方案;三是产物校验,输出 MP4 应同时包含视频流与音频流,用 ffprobe -v error -show_entries stream=codec_type -of default=noprint_wrappers=1 out.mp4 检查流信息与时长,确认音画同步后再对外交付。
<p class="para-label">避坑清单:</p>
<ul class="dash-list"><li>Python 版本务必用 3.8/3.9,3.10+ 在 face-alignment 等依赖上容易编译失败;坚持用 conda 独立环境隔离。</li><li>首次运行自动下载权重在国内网络常超时,失败后按 README 链接手动下载并解压到 checkpoints/,不要反复重试自动下载。</li><li>人脸检测失败是最高频报错:侧脸、闭眼、遮挡、多人合照都会失败或导致五官扭曲;选用正面清晰照并配合 --preprocess crop。</li><li>输入音频必须是 WAV(内部按 16kHz 处理),mp3 直接报错;统一用 ffmpeg -i in.mp3 -ar 16000 out.wav 预转码。</li><li>开启 --enhancer gfpgan 后耗时与显存成倍增加,8GB 以下显存先关增强或设 --batch_size 1,否则容易 OOM。</li><li>--pose_style 设置过大或源图非正脸时容易出现五官扭曲,降低 pose_style、换正面图或加 --still 均可缓解。</li></ul>
| 维度 | SadTalker | Wav2Lip | MuseTalk | HeyGen |
|---|---|---|---|---|
| 定位 | 音频驱动单图说话视频生成(开源) | 2D 唇形同步工具(开源) | 实时唇形数字人(开源) | 商业级云端数字人平台(闭源 SaaS) |
| 技术路线 | 3DMM 系数预测 + face-vid2vid 渲染 | GAN 判别器监督,直接修改嘴部像素 | 时间 VAE 潜在空间 + UNet 去噪 | 私有模型与云端渲染管线(未公开) |
| 输入要求 | 单张人脸图 + WAV 音频 | 现成视频 + 目标语音 | 参考视频 + 音频 | 上传照片/视频 + 配音文案 |
| 头部姿态 | PoseVAE 从音频生成,带自然随机 | 完全不生成,保留原视频姿态 | 跟随参考视频,可调整 | 平台模板驱动,姿势可控 |
| 推理速度 | 分钟级(GPU),非实时 | 较快,逐帧处理接近实时 | 实时优先,低延迟 | 云端异步,分钟级返回 |
| 部署方式 | 本地/内网私有化,完全离线 | 本地 GPU,依赖轻 | 本地 GPU,适合流式服务 | 云端 API,按量计费订阅制 |
| License | Apache 2.0 + 第三方组件各有限制 | 开源,详见仓库 LICENSE | 开源(MIT),详见仓库 LICENSE | 商业闭源 |
| 适合谁 | 数字人研发、离线合规场景 | 视频翻译、已有视频改口型 | 直播、实时客服、低延迟应用 | 品牌营销、快速上线、非技术团队 |
选型建议:需要头部姿态与表情可控、能完全离线私有化的数字人底座,选 SadTalker;已有真人视频只需要改口型,Wav2Lip 成本最低;直播、实时客服等低延迟场景优先 MuseTalk;非技术团队要快速上线品牌级数字人且预算充足,直接用 HeyGen 类 SaaS。
版本迭代
SadTalker 于 2023 年 2 月随 CVPR 2023 论文开源,随后快速迭代:上半年以功能与参数扩展为主,年中引入更强的 2D/3D 姿态生成模型与高质量权重,下半年转入稳定维护期,此后更新频率明显降低(截至训练数据,可能已有更新版本)。
| 版本 | 时间 | 变化 | 提升 |
|---|---|---|---|
| v0.0.1 | 2023-02 | 论文开源首个版本 | 单图 + 音频生成说话视频,提供 WebUI 与 CLI |
| v0.1.0 | 2023-03 | 稳定性与易用性 | 修复人脸检测与渲染问题,完善参数项 |
| v0.2.0 | 2023-04 | 参数控制扩展 | 增加 exp_scale、enhancer 等关键参数 |
| v0.6.0 | 2023-06 | 姿态模型升级 | 新增 SadTalker-V0.0.2-256 权重,姿态更自然 |
| v0.11.0 | 2023-12 | 维护版本 | 修复已知问题、补充文档(最新正式版) |
SadTalker 没有面向 LLM/AI 领域的公开榜单分数;论文(CVPR 2023)在 FID(生成质量指标)、F-LMD(面部关键点距离,衡量姿态精度)等指标上对比了 Wav2Lip、PC-AVS 等基线,但官方未提供可逐版本复现的评测表,故评测数据表省略。选型上直接采用最新版即可:v0.6.0 之后的权重与参数已覆盖绝大多数业务场景,后续版本以修复为主,无需追更。
AI 应用场景
口播短视频批量生产
阶段:音频驱动说话视频合成(RAG 文案 → TTS 语音 → SadTalker 渲染)
解决的问题:真人口播需要演员档期、拍摄场地与后期剪辑,单条成本高;SadTalker 让同一张形象照配合任意配音批量产出视频,素材可无限复用。相比纯 2D 换嘴方案,头部姿态让成片更接近真人出镜。
具体案例:某内容团队把「大模型生成文案 → TTS 合成语音 → SadTalker 批量渲染 → 人工质检」串成流水线,一条 2 分钟口播视频的制作时间从约 2 小时(含拍摄与剪辑)压缩到约 15 分钟,人力成本下降 80% 以上。
私有化数字人客服与培训(数据合规)
阶段:本地推理服务部署(RAG 问答 → TTS → SadTalker 离线渲染)
解决的问题:金融、政务等场景要求数据不出内网,云端数字人 API 无法使用;SadTalker 完全离线运行,人脸素材与客户语音都在本地处理。配合 RAG 问答系统,可按需生成政策解读、常见问题解答视频,替代部分录播。
具体案例:某企业内部将 SadTalker 封装为 HTTP 服务,接入企业微信机器人:用户提问 → 大模型生成答复文案 → TTS 合成语音 → 调用 SadTalker 生成 30 秒以内的人物解答视频,全程内网处理,单次任务从提交到出片 3-5 分钟。
说话人脸训练数据增强
阶段:合成数据生成(为视觉模型提供训练样本)
解决的问题:训练唇语识别、说话人检测等模型需要大量带姿态变化的说话人脸视频,真实采集涉及多轮拍摄与肖像授权;用公开人脸图配合 TTS 批量合成说话视频,可低成本扩充样本多样性。
具体案例:研究团队用 1000 张授权人脸图 + TTS 生成 5000 条 5 秒说话视频作为预训练补充数据,相比纯真实数据训练,采集与标注成本下降约 60%,模型在下游唇语任务上的收敛速度明显加快。
常见误区
误区我拿一张旅游侧脸照、或者一张多人合照输入 SadTalker,应该也能生成说话视频吧?
正解不行。SadTalker 的第一步是人脸检测与 3DMM 参数化,侧脸、闭眼、遮挡、人脸太小、多人合照都会导致检测失败或参数提取不准,直接表现是报错或生成五官扭曲的画面。正确做法是准备正面或接近正面的清晰单人照,配合 --preprocess crop 让工具自动裁剪人脸区域;多人图需先手动裁剪出目标人脸再输入。
为何常见:WebUI 样例图都是精挑细选的正面照,给人「随手一传就行」的错觉;实际人脸检测对姿态和清晰度非常敏感。
误区我用 SadTalker 就能凭空造一个虚拟主播,像 HeyGen 那样输入一段文字就出一个新形象和视频。
正解SadTalker 做的是「照片活化」:它把一个真实存在的脸部图像做动画化,并不具备凭空生成全新人脸的能力。想得到虚拟形象,需要先用 Stable Diffusion、Midjourney 等图像生成工具画出形象图,再交给 SadTalker 驱动;且形象越接近真实人脸、角度越正,效果越好。这是开源工具与商业全栈平台最本质的差距。
为何常见:数字人 SaaS 把「形象生成」和「口型驱动」打包成一个产品,用户容易把整条链路都归因于拍视频这一个环节。
误区我勾选了 still,为什么嘴还在动?它不应该让图片完全静止吗?
正解--still 的含义是「保持静态姿态」:显著降低头部位移幅度,让画面观感更稳,适合证件照、半身像等场景。但唇部同步、眨眼、细微表情仍然在动——这正是它作为「说话视频」的意义。若希望完全不转头,还需要配合较低的 pose_style(如 0-2)。
为何常见:参数名 still 容易按字面理解成 freeze(冻结),而文档里并未逐字解释其作用边界。
误区代码是 Apache 2.0,那我直接拿去商用、甚至集成到付费产品里都没问题吧?
正解Apache 2.0 只覆盖 SadTalker 仓库自身代码。仓库内置的第三方组件各有独立许可证,如 GFPGAN、CodeFormer 等增强模型以及 face-vid2vid 渲染器权重,商用前需要逐项核查各自 LICENSE。此外,被驱动的人脸图片涉及肖像权,商用前必须获得本人授权。建议把「代码许可证」「模型权重许可」「人脸数据授权」分开做合规清单。
为何常见:只看到仓库根目录的 Apache 2.0 LICENSE,忽略了模型权重与第三方依赖往往另有许可证。
误区反正只是生成几分钟的视频,用服务器 CPU 慢慢跑也一样,省下显卡钱。
正解CPU 推理在数学上可行,但速度慢一到两个数量级:一段 10 秒音频、256 分辨率、开启 GFPGAN 增强,在一台 8 核 CPU 上耗时可达 10 分钟以上,无法支撑任何线上服务。生产部署至少需要一块 8GB 以上显存的 NVIDIA GPU,T4、A10、RTX 3090 是社区常用的低成本选项。
为何常见:安装阶段 CPU 也能「跑通 demo」,让初学者误把可行性当作可用性。
面试题
Q1. SadTalker 的核心输入是什么?
- A.一段文本与一张人脸图片
- B.一段语音与一张人脸图片← 正确答案
- C.一段文本与一段语音
- D.一段视频与一段语音
答案:B。SadTalker 是音频驱动方案,输入为「单张人脸图(source image)+ 驱动音频(driven audio)」,输出说话视频。它不包含文本转语音(TTS)功能,也不做视频换脸;文本需先经 TTS 变成音频,视频只作为可选源素材。
Q2. 启动 SadTalker 官方本地 WebUI 的命令是?
- A.python main.py
- B.python webui.py
- C.python app.py← 正确答案
- D.python server.py
答案:C。仓库根目录的 app.py 基于 Gradio 搭建 WebUI,运行后默认监听 7860 端口;inference.py 是命令行批量推理入口。main.py、webui.py、server.py 均不是官方入口文件。
Q3. SadTalker 生成头部运动的模型采用的技术路线是?
- A.基于 3DMM 系数的预测与渲染← 正确答案
- B.基于 2D 像素的直接替换合成
- C.基于扩散模型的逐帧图像生成
- D.基于神经辐射场的三维重建
答案:A。SadTalker 先把人脸参数化为 3DMM(三维可形变模型)系数,由 ExpNet 预测表情、PoseVAE 预测姿态,再经 face-vid2vid 渲染器还原为像素。2D 像素替换是 Wav2Lip 的路线;扩散模型与神经辐射场均非 SadTalker 所用。
Q4. CLI 中 --enhancer 参数的作用是?
- A.用 GFPGAN 修复画质与人脸细节← 正确答案
- B.提升输入音频的采样率与清晰度
- C.降低输出视频的码率压缩体积
- D.令头部姿态幅度变得更加平滑自然
答案:A。--enhancer 指定画质修复模型,可选 gfpgan 或 codeformer,对渲染帧逐帧做上采样与人脸修复,改善磨皮感与细节丢失。它作用于视频,不处理音频,也不改变码率;姿态平滑由 still 与 pose_style 控制。
Q5. --pose_style 数值调大时,通常会导致?
- A.输出视频头部姿态幅度更大← 正确答案
- B.输出音频变得更加清晰自然
- C.唇形同步的精度显著提升
- D.生成速度明显加快且降低显存
答案:A。pose_style(0-45)控制 PoseVAE 采样时头部姿态的「风格强度」,数值越大头部摆动越明显。它不影响音频质量、唇形精度或推理速度;过大会导致视频观感不稳甚至五官扭曲。
Q6. --preprocess full 模式最适合哪种输入?
- A.包含完整身体的照片或多人场景← 正确答案
- B.正面清晰的单人头像证件照
- C.分辨率极低的模糊视频截图
- D.经过裁切的局部五官特写图
答案:A。full 表示不裁剪,直接在全图上完成人脸检测与动画化,适合全身照、带背景构图的照片——面部被驱动的同时身体和背景保持原样。普通单人头像建议用 crop 裁剪后处理,清晰度与稳定性更好。
Q7. PoseVAE 模块在 SadTalker 中的具体作用是?
- A.从音频特征采样生成自然头部姿态← 正确答案
- B.将音频直接映射为面部表情系数
- C.将 3DMM 系数渲染成 2D 视频帧
- D.对音频降噪并提取音高特征
答案:A。PoseVAE 是一个变分自编码器,学习真实头部运动分布,从音频特征中采样姿态系数,使头部动作自然且带随机性。表情系数由 ExpNet 预测;系数到像素的还原由 face-vid2vid 渲染器完成;音频特征提取在前处理阶段,不属于 PoseVAE。
Q8. 首次运行 SadTalker,预训练权重的获取途径有哪些?
- A.首次运行时自动从 Hugging Face 下载← 正确答案
- B.从 Google Drive 手动下载到 checkpoints← 正确答案
- C.pip 安装过程中自动编译生成预训练权重
- D.用少量人脸数据自行训练得到全部权重
答案:AB。官方设计了两条获取路径:运行时自动下载(Hugging Face 或 Google Drive)与手动下载后放到 checkpoints/ 目录。pip 只安装 Python 依赖,不产出权重;重训练需要大规模数据与多卡算力,不是首次运行时的正常路径。
Q9. 以下哪些情况会导致 SadTalker 生成质量明显下降?
- A.输入侧脸、遮挡或多人合照← 正确答案
- B.驱动音频为 16kHz 采样的 WAV
- C.显存不足时仍开启 GFPGAN 增强← 正确答案
- D.使用 RTX 4090 进行批量推理
答案:AC。侧脸、遮挡、多人合照会导致人脸检测或 3DMM 参数化失败,是质量劣化的首要原因;显存不足时开启 GFPGAN 逐帧增强极易 OOM 或生成撕裂帧。16kHz WAV 正是工具内部的标准输入格式;RTX 4090 显存充足,反而能提升批量规模。
Q10. 关于 SadTalker 的开源协议与部署,正确的说法是?
- A.代码仓库采用 Apache 2.0 许可证← 正确答案
- B.内置的 GFPGAN 等组件各有独立许可← 正确答案
- C.模型可完全离线部署,不依赖云端← 正确答案
- D.所有组件均可无限制地商业使用
答案:ABC。仓库代码是 Apache 2.0,但第三方组件(GFPGAN、CodeFormer、face-vid2vid 等)许可证需逐项核查,不能笼统认为「全部可商用」;同时人脸素材还涉及肖像权授权。离线部署是 SadTalker 的核心优势,推理与权重加载均不需要联网。
参考来源
- webpageSadTalker GitHub 仓库源码、安装说明与参数文档
- webpageGitHub Release 页面版本迭代记录与更新日志