SadTalker 怎么用 input_yaw、input_pitch、input_roll 从单张图片生成 4D 自由视角说话人头视频
2026/9/15 14:06:22 网站建设 项目流程

SadTalker 怎么用 input_yaw、input_pitch、input_roll 从单张图片生成 4D 自由视角说话人头视频

【免费下载链接】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 的基本输入是一张肖像图片加一段驱动音频,输出说话人头视频。在默认流程之外,它还提供了一组 free-view 参数:--input_yaw--input_pitch--input_roll,用于让生成的人物在视频过程中按你指定的角度序列改变头部朝向,从而从单张图片生成 4D 自由视角(novel view / free-view)说话人头视频。本文说明如何从环境准备到执行命令,完成这一生成任务,并核对结果输出。

需要先在源文档明确的两点限制:

  • 该模型只适用于真人或接近真人风格的肖像图片,动漫风格不在支持范围内(docs/best_practice.md 开头的提示)。
  • 驱动音频只支持 wav 或 mp3 格式(docs/FAQ.md)。

准备环境并下载模型

以下以 Linux 环境为例(README 的 Linux/Unix 安装流程)。在 SadTalker 仓库根目录依次执行:

git clone https://github.com/OpenTalker/SadTalker.git cd SadTalker conda create -n sadtalker python=3.8 conda activate sadtalker pip install torch==1.12.1+cu113 torchvision==0.13.1+cu113 torchaudio==0.12.1 --extra-index-url https://download.pytorch.org/whl/cu113 conda install ffmpeg pip install -r requirements.txt

要点:Python 3.8 的 conda 环境,PyTorch 1.12.1 + CUDA 11.3,以及ffmpeg(生成最终 mp4 依赖它)。

模型不会自动下载,需要用仓库自带的脚本拉取:

bash scripts/download_models.sh

该脚本会创建./checkpoints./gfpgan/weights两个目录,并下载 MappingNet 权重、SadTalker_V0.0.2_256.safetensorsSadTalker_V0.0.2_512.safetensors以及 gfpgan/facexlib 的检测与增强权重(见 scripts/download_models.sh)。inference.py--checkpoint_dir默认值就是./checkpoints,与脚本的下载位置一致,因此默认不需要额外指定。

input_yaw、input_pitch、input_roll 三个参数的含义

这三个参数在 docs/best_practice.md 的参数表中被归为同一项 "free-view Mode",默认值均为None,作用是从单张图片生成 novel view 或 free-view 4D talking head:

参数默认值控制对象
--input_yawNone头部 yaw(偏航)角度序列
--input_pitchNone头部 pitch(俯仰)角度序列
--input_rollNone头部 roll(翻滚)角度序列

三个参数在 inference.py 中的定义都接受可变长度的整数列表(nargs='+',单位是度),互相独立,可以只传其中一个。

文档给出的角度序列示例是:

--input_yaw -20 30 10

其含义是:输入的头部 yaw 角度先从 -20 变到 30,再从 30 变到 10。也就是说,你写入的角度值按顺序构成一段头部姿态变化轨迹,而不是单帧角度。文档示例只演示了 yaw,--input_pitch--input_roll接受相同格式的角度值序列。

生成 4D 自由视角说话人头视频

best practice 文档给出的 free-view 命令形式如下,<audio.wav><video.mp4 or picture.png><a file to store results>三处需要替换为你自己的音频、图片和结果目录:

python inference.py --driven_audio <audio.wav> \ --source_image <video.mp4 or picture.png> \ --result_dir <a file to store results> \ --input_yaw -20 30 10
  • --driven_audio:驱动音频路径,wav 或 mp3。
  • --source_image:单张肖像图片(文档写法也允许视频文件)路径,须是真人肖像。
  • --result_dir:结果保存目录。不传时默认为./results
  • --input_yaw -20 30 10:按上文说明控制头部 yaw 的 4D 变化轨迹。

如果不想准备自己的素材,可以直接用仓库自带的示例文件和默认结果目录验证整条流程:

python inference.py --driven_audio examples/driven_audio/bus_chinese.wav \ --source_image examples/source_image/full_body_1.png \ --result_dir ./results \ --input_yaw -20 30 10

这两个示例文件分别位于 examples/driven_audio 和 examples/source_image 目录,full_body_1.png也是inference.py--source_image的默认值。

命令执行时会先对源图做 3DMM 提取(终端打印3DMM Extraction for source image),再完成音频系数推理与渲染。默认--preprocesscrop,文档中的 free-view 示例没有改动该参数,按默认即可。

核对生成结果

README 对 CLI 输出的说明是:结果保存在results/$SOME_TIMESTAMP/*.mp4,即结果目录下按时间戳命名的子目录中生成 mp4 文件。指定了--result_dir时,最终视频会以时间戳目录名的形式落盘在对应目录下。

free-view 的实际效果可对照 docs/best_practice.md 中的示例图free_view_result.gif(文档示例,展示同一输入下默认结果、自由视角结果和新视角结果的差异),注意实际输出角度取决于你传入的角度序列和音频时长,与示例图数值无必然关系。

运行中可能遇到的问题

以下条目来自 docs/FAQ.md,都是与"下载模型 + 跑 inference.py 出视频"这条流程直接相关的:

  • ffmpegis not recognized:Linux 下用conda install ffmpeg,macOS 用brew install ffmpeg,Windows 需要把ffmpeg加入%PATH%。没有 ffmpeg 无法合成最终视频。
  • FileNotFoundError: ... checkpoints\BFM_Fitting\similarity_Lm3D_all.matRuntimeError: unexpected EOF ... The file might be corrupted:模型文件没有下全或放置位置不对,按下载模型一节重新执行bash scripts/download_models.sh并确认checkpoints/gfpgan/目录完整。
  • CUDA out of memory:文档给出的缓解方式是在运行python inference.py ...前设置环境变量,Windows 用set PYTORCH_CUDA_ALLOC_CONF=max_split_size_mb:128,Linux 用export PYTORCH_CUDA_ALLOC_CONF=max_split_size_mb:128
  • Error while decoding stream #0:0: Invalid data found ...:输入音频不是 wav/mp3,换成受支持的格式。

边界说明

  • 三个 free-view 参数只控制头部位姿轨迹;表情强度、增强、参考视频眨眼等其他调整项在 docs/best_practice.md 的参数表中单独列出,与 free-view 无必然绑定,本文不展开。
  • 如果换用--preprocess full--still等其他模式,头部姿态行为会变化(例如--still保持原图头部位姿),文档未给出 free-view 与这些组合的示例,建议先按本文主路径跑通再单独试验。

【免费下载链接】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),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询