news 2026/9/12 9:20:54

SadTalker 完整指南:一张照片 + 一段音频,快速生成会说话的视频

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
SadTalker 完整指南:一张照片 + 一段音频,快速生成会说话的视频

SadTalker 完整指南:一张照片 + 一段音频,快速生成会说话的视频

【免费下载链接】SadTalker[CVPR 2023] SadTalker:Learning Realistic 3D Motion Coefficients for Stylized Audio-Driven Single Image Talking Face Animation项目地址: https://gitcode.com/GitHub_Trending/sa/SadTalker

把一张人物照片丢给它,再配上一段录音,几十秒后你会拿到一个会眨眼、会张嘴、而且嘴型和声音对得上的视频。这套东西叫 SadTalker,是一个 CVPR 2023 的开源项目,主打"音频驱动的单图说话人脸动画"——输入是静态图,输出是动态的说话视频。下面不讲原理推导,直接带你从零跑通,再把每个旋钮讲清楚。

先说清楚它到底解决什么问题

很多人手里有一张角色立绘、一个头像,或者一段想配上去的旁白,但想让脸"动"起来,以前要么逐帧手动画口型,要么找真人重拍。SadTalker 把这两步压成一个:图负责"长什么样",音频负责"说什么、什么节奏",模型负责让嘴、眼、头跟着声音自然地走。

它的价值就一句话:用最低成本,让一张不会动的图开口说话,并且口型大体对得上。不管是做虚拟形象、视频配音还是短视频素材,这个能力都是刚需。

一句话看懂核心原理:声音怎么变成脸的动作

别被"3DMM"吓到,你可以先把它理解成"把一张脸拆成一组可控的数字"。整个流水线其实就三步,对应仓库里三个位置:

  • 对齐裁剪:先找到脸的位置,把脸裁出来并对齐(人脸裁剪与对齐)。
  • 音频转系数:把声音波形喂进去,算出每一帧脸该怎么摆、嘴怎么张(音频到系数)。这一步是整个项目最核心的环节。
  • 系数转画面:拿着一帧帧的"脸该怎么摆",重新画出对应的画面,最后拼成视频(人脸渲染)。

所以它不是把嘴部区域单独抠出来贴上去,而是让整张脸的姿态和表情一起跟着音频走,这也是为什么它比单纯对口型看起来更自然。

从零搭建:安装与模型下载

环境这块跟官方安装文档保持一致,用 conda 建一个干净的 Python 3.8 环境最省心。下面这段命令直接照抄即可,一共 7 行:

git clone https://gitcode.com/GitHub_Trending/sa/SadTalker cd SadTalker conda create -n sadtalker python=3.8 conda activate sadtalker pip install torch torchvision torchaudio pip install -r requirements.txt bash scripts/download_models.sh

几点提醒,能帮你少走弯路:

  • 依赖看 依赖清单,里面锁了 numpy、librosa、facexlib、gfpgan 等具体版本,不要自己乱升降。
  • 模型靠脚本拉,模型下载脚本 会把推理需要的权重下到checkpoints/,还会把 GFPGAN 超分权重下到gfpgan/weights/。网络不稳就多跑几遍,脚本用了断点续传,不会重复下。
  • 系统层面最好先装好ffmpeg(Linux 用包管理器装,Windows 加进 PATH),后面读写音频和视频都依赖它。
  • 有显卡就直接跑,没有显卡它会自动落到 CPU,只是慢一些。

两种调用方式:网页和命令行

网页方式适合边点边看,改参数直观。入口就是根目录的app_sadtalker.py,在 SadTalker 目录下执行python app_sadtalker.py即可,浏览器打开对应地址后,左边传图和音频,右边调参数点生成。它还能在线把文字转成语音再驱动,适合懒得自己找音频的人。

命令行方式适合批量、进流水线,入口是 命令行入口。想跑全身、又要画面稳,用下面这条就够:

python inference.py --driven_audio examples/driven_audio/deyu.wav \ --source_image examples/source_image/full_body_1.png \ --preprocess full \ --still --enhancer gfpgan

跑完后,结果视频会落在results/下按时间戳命名的目录里。--preprocess full是让全身入镜,--still让头的动作收着点更自然,--enhancer gfpgan是对脸做超分补细节。

参数对照表:口型自然度的几个关键旋钮

不用记全部参数,先把下面这几个玩明白,效果就能拉开差距:

参数管什么怎么选
--preprocess怎么处理原图:crop只取脸 /full取全身想要全身出镜就full,只要脸就crop
--still让头的晃动更少、更稳全身图建议加,半身图看口味
--pose_style头部姿态的"幅度档位",0 到 45越大头动得越夸张,默认 0
--expression_scale表情强度表情发木就调到 1.2 左右,太浮夸就调小
--size渲染分辨率,256 或 512先 256 快速看效果,定稿再上 512
--enhancer脸部超分,可选gfpgan脸糊就开,能明显提清晰度

一个小技巧:先用 256 分辨率把preprocessstill试到位,确认构图和动作都满意,再切到 512 出正式片。这样调试成本低很多。

怎么确认它跑对了:验证与避坑

判断成功与否不用猜,直接看三样东西:

  • 看产出:去results/里按最新时间戳找到那个.mp4,正常能播,时长和你给的音频一致。
  • 对口型:把视频音画一起看,嘴的张合是否大致跟着说话走。个别字不准很常见,整体对得上就算正常。
  • 看脸是否被找到:如果提示No face is detected,多半是图里人脸太小或角度太偏,换一张脸占比更大、正脸一点的图再试。

几个高频坑,提前排掉:

  • 音频格式优先用 WAV;给 MP3 也行,程序会自动转成 16kHz 的 WAV 再处理。
  • 脸糊、想更清晰:加--enhancer gfpgan,前提是gfpgan/weights/里的权重已经下全。
  • 显卡显存吃紧:把--size降到 256、--batch_size调小,或者干脆不加超分先跑通。

下一步建议:先拿仓库自带的examples/里的图和音频把上面那条命令行命令原样跑一遍,确认results/里能出片;跑通后,再把你自己的图和音频换进去调--preprocess--expression_scale,很快就能找到适合自己素材的甜点位。

【免费下载链接】SadTalker[CVPR 2023] SadTalker:Learning Realistic 3D Motion Coefficients for Stylized Audio-Driven Single Image Talking Face Animation项目地址: https://gitcode.com/GitHub_Trending/sa/SadTalker

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/12 9:18:40

mailcow 邮件服务器 Docker 部署:30 分钟从零到可用

mailcow 邮件服务器 Docker 部署:30 分钟从零到可用 【免费下载链接】mailcow-dockerized mailcow: dockerized - 🐮 🐋 💕 项目地址: https://gitcode.com/GitHub_Trending/ma/mailcow-dockerized mailcow-dockerized 是…

作者头像 李华
网站建设 2026/9/12 9:17:06

钉钉与微信小程序开发对比及跨平台实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/12 9:15:01

Jetpack Compose实现Material Design双行卡片组件开发

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/12 9:14:32

使用 cilium-dbg bpf srv6 sid 排查 Cilium SRv6 SID 映射表

使用 cilium-dbg bpf srv6 sid 排查 Cilium SRv6 SID 映射表 【免费下载链接】cilium eBPF-based Networking, Security, and Observability 项目地址: https://gitcode.com/GitHub_Trending/ci/cilium cilium-dbg bpf srv6 sid 是 Cilium 数据面排障工具 cilium-dbg 中…

作者头像 李华
网站建设 2026/9/12 9:13:37

基于STM32的智能扬尘监测与自动喷淋系统设计

1. 项目背景与核心需求在建筑工地、矿区等露天作业场所,扬尘污染一直是环境治理的难点。传统的人工巡查方式存在监测盲区大、响应滞后等问题。我们设计的这套系统正是为了解决这一痛点——通过物联网技术实现扬尘浓度的实时监测与自动喷洒控制。这个系统的核心价值在…

作者头像 李华