Loading...

文章背景图

LatentSync 保姆级部署教程:字节开源音频驱动潜空间唇形同步模型,8G 显存就能跑

2026-10-30
0
- 字
- 分钟
|

LatentSync 保姆级部署教程:字节开源音频驱动潜空间唇形同步模型,8G 显存就能跑

LatentSync(仓库 bytedance/LatentSync)是字节跳动开源的端到端唇形同步(lip-sync)模型:给一段人物视频 + 一段新音频,它把人物的嘴型重新对齐到新音频上,输出"这个人说了另一段话"的视频。与 Wav2Lip 这类在像素空间做两阶段生成的老方法不同,LatentSync 直接在音频条件的潜空间扩散模型里建模音视频关联(基于 Stable Diffusion 体系),中间不经过任何显式的运动表示。项目从 2024 年 12 月首次发布到 2025 年 6 月连续迭代到 1.6 版(512×512 分辨率、缓解模糊问题),GitHub 6.2k+ Star。

它和之前本站写过的 Wav2Lip、MuseTalk 是同类但不同路线:LatentSync 官方数据显示 1.5 版推理只要 8GB 显存,对消费级显卡极其友好;本文按官方 README 把环境一键脚本、Gradio 界面、命令行推理、训练配置全部走一遍。

一、项目介绍与适用场景

LatentSync 的定位是"音频条件潜扩散模型 + SyncNet 监督"的唇形同步框架:用 Whisper 把音频转成 mel 频谱嵌入,再通过 cross-attention 注入 U-Net,参考帧与遮罩帧和噪声潜空间拼接后送入扩散,最后解码成视频。官方同时开源了推理代码、数据处理流水线、训练代码三部分。

典型场景:给已有视频换配音 / 换语言(比如把英文口型视频换成中文口型)、口播视频后期改词、影视配音对上嘴型、虚拟主播视频的音频对齐。个人本地用它,一张 8G 显存的卡就能跑 1.5 版。

二、核心功能逐条拆解

  1. 端到端唇形同步:音频驱动潜扩散模型直接生成对齐嘴型的视频,无需中间运动表示。
  2. 8G 低显存推理:LatentSync 1.5 版最低 8GB 显存;1.6 版 18GB(512×512)。
  3. Gradio 图形界面:python gradio_app.py 起可视化界面上传视频音频。
  4. 命令行批量推理:./inference.sh 脚本化跑批。
  5. 可调推理参数:inference_steps(20-50)、guidance_scale(1.0-3.0)。
  6. 完整数据处理流水线:5 步脚本做场景检测、人脸仿射对齐、质量筛选。
  7. U-Net 训练:官方提供 5 个 stage 配置文件,从 20G 到 55G 显存覆盖。
  8. SyncNet 训练与评测:官方开源 94% 准确率的 SyncNet 权重,可评测同步置信度。

三、全套官方链接

类型 链接
GitHub 仓库 https://github.com/bytedance/LatentSync
官方文档 仓库 README(https://github.com/bytedance/LatentSync/blob/main/README.md)
官方 Demo HuggingFace Space:https://huggingface.co/spaces/fffiloni/LatentSync
License Apache-2.0

四、硬件与环境前置要求

官方 README 明确给出的显存门槛:

  • 推理最低显存:LatentSync 1.5 版 8 GB;1.6 版(512×512)18 GB。
  • 训练显存(官方配置表):stage1 23GB;stage2 30GB;stage2_efficient 20GB(官方点名 RTX 3090 可用);stage1_512 30GB;stage2_512 55GB。
  • 依赖:Python 环境 + ffmpeg;权重通过官方 setup_env.sh 一键下载。
  • 权重:checkpoints/latentsync_unet.pt + checkpoints/whisper/tiny.pt,官方 HF 仓库 ByteDance/LatentSync-1.6。

五、多平台部署步骤

官方只提供源码部署(一个 setup 脚本装环境 + 下权重),未提供 Docker,本文不展开 Docker 小节。

5.1 源码部署

第 1 步:克隆仓库。

git clone https://github.com/bytedance/LatentSync.git
cd LatentSync

第 2 步:一键装环境并下载权重。

source setup_env.sh

官方 README 原文:"Install the required packages and download the checkpoints via: source setup_env.sh"。这个脚本会创建/激活 conda 环境、安装 pip 依赖、并从 HuggingFace 下载权重。成功后 checkpoints/ 目录应为:

./checkpoints/
|-- latentsync_unet.pt
|-- whisper
|   `-- tiny.pt

解释:latentsync_unet.pt 是 LatentSync 主权重,whisper/tiny.pt 是音频编码器。如果自动下载失败,可手动到 https://huggingface.co/ByteDance/LatentSync-1.6 下载这两个文件放到对应位置。

5.2 Docker 部署

官方未提供 Docker 部署方式,本文不展开。

六、配置文件全部参数解释

官方 README "Inference" 一节给出两个可调推理参数:

参数 作用 官方区间 调大效果 来源
inference_steps 扩散采样步数 20 ~ 50 画面质量更好但更慢 README "Inference"
guidance_scale 引导强度 1.0 ~ 3.0 唇形更准但可能画面抖动/失真 同上

训练配置方面,官方在 configs/unet/ 目录下提供 5 个 yaml,对应显存如第四节所列。官方未在 README 中逐字段展开 yaml 内部参数,此处不臆造。

七、启动、后台常驻与开机自启

7.1 启动 Gradio 界面

python gradio_app.py

预期:终端打印 Gradio 本地地址(默认 7860),浏览器打开后上传视频和音频即可。

7.2 命令行推理

./inference.sh

解释:官方 CLI 入口,按脚本内指定的输入输出路径批量跑。

7.3 后台常驻

Gradio 服务可用 nohup:

nohup python gradio_app.py > gradio.log 2>&1 &

或写 systemd unit(把 ExecStart 指向 conda run -n <env> python /path/to/gradio_app.py),systemctl enable 开机自启。

7.4 修改端口

Gradio 启动时加 --server_port(如 --server_port=7861),以 python gradio_app.py --help 为准。

八、功能实操教程

第 1 步:确认 source setup_env.sh 跑通,checkpoints/ 下两个文件就位。

第 2 步:启动 Gradio python gradio_app.py,浏览器打开。

第 3 步:上传一段人物正面视频(mp4)和一段新音频(wav/mp3),先把 inference_steps 设 30、guidance_scale 设 2.0,点生成。

第 4 步:观察输出视频——嘴型应与新音频对齐。不满意时把 guidance_scale 提到 3.0 看唇形是否更紧,注意画面是否抖动(官方提示 guidance 过高会失真)。

第 5 步:切命令行跑批——编辑 inference.sh 里的输入路径,执行 ./inference.sh。

第 6 步(可选):评测同步质量——官方提供:

./eval/eval_sync_conf.sh

计算生成视频的 sync confidence score,验证唇形对齐好坏。

第 7 步(可选,训练党):如果你要自己训 U-Net,先按官方 5 步数据流水线处理数据:

./data_processing_pipeline.sh

然后用官方预训练 SyncNet(94% 准确率):

huggingface-cli download ByteDance/LatentSync-1.6 stable_syncnet.pt --local-dir checkpoints

再按显存选配置——stage1 23G、stage2_efficient 20G(RTX 3090 可跑)、stage2 30G、512 分辨率的 stage2_512 要 55G:

./train_unet.sh

官方提示要先在 configs/unet/*.yaml 里改数据目录、checkpoint 保存路径、训练超参;写数据文件列表用:

python -m tools.write_fileslist

九、全套报错故障排查

  1. OOM / CUDA out of memory 原因:1.6 版要 18G,1.5 版 8G。 解决:显存不够切回 1.5 权重;降低分辨率;inference_steps 调小。

  2. 权重下载失败 / latentsync_unet.pt 不存在 原因:setup_env.sh 中途断网。 解决:手动从 https://huggingface.co/ByteDance/LatentSync-1.6 下载 latentsync_unet.pt 与 tiny.pt,放到 checkpoints/ 与 checkpoints/whisper/。

  3. ffmpeg not found 原因:系统缺 ffmpeg。 解决:sudo apt install ffmpeg(Ubuntu)或官网下载 Windows 版加入 PATH。

  4. 生成视频嘴型对不上 / 画面模糊 原因:guidance 太低或步数太少;1.5 版本身在 512 上偏糊。 解决:guidance_scale 提到 2.5~3.0;inference_steps 提到 40~50;追求清晰度用 1.6 的 512 权重(需 18G 显存)。

  5. 训练时数据流水线报错 原因:官方要求先跑 ./data_processing_pipeline.sh,且要改 input_dir。 解决:编辑脚本里的 input_dir 指向数据目录;按官方 5 步流程(去损坏→25fps/16k 重采样→场景检测→5-10s 切段→人脸仿射对齐)逐步排查。

十、升级、回滚与卸载

  • 升级:git pull;按官方 changelog(docs/changelog_v1.5.md、changelog_v1.6.md)重新下载对应版本权重;pip install -r 重装依赖。
  • 回滚:git checkout <旧tag>;权重保留多版本目录(1.5 / 1.6 分目录)。
  • 卸载:删除仓库目录、checkpoints/;conda env remove。

十一、商用许可与合规风险提示

  • 代码与权重为 Apache-2.0,允许商用、修改、分发。
  • 官方致谢部分明确代码基于 AnimateDiff 构建,并借鉴了 MuseTalk、Wav2Lip、StyleSync、SyncNet 等,各自开源协议需一并遵守。
  • 唇形同步技术有天然的深度伪造滥用风险:必须对真实人物的音视频使用取得本人授权,不得用于冒充他人、虚假宣传等违法用途。

参考链接

  • 官方 README:https://github.com/bytedance/LatentSync/blob/main/README.md
  • 权重(HF):https://huggingface.co/ByteDance/LatentSync-1.6
  • 论文:https://arxiv.org/abs/2412.09262
  • 在线 Demo:https://huggingface.co/spaces/fffiloni/LatentSync
评论交流

文章目录