SadTalker 如何用参考视频模式(--ref_eyeblink / --ref_pose)让眨眼和头部动作更自然
SadTalker 如何用参考视频模式--ref_eyeblink / --ref_pose让眨眼和头部动作更自然【免费下载链接】SadTalker[CVPR 2023] SadTalkerLearning Realistic 3D Motion Coefficients for Stylized Audio-Driven Single Image Talking Face Animation项目地址: https://gitcode.com/GitHub_Trending/sa/SadTalkerSadTalker 的默认流程是「单张人脸图片 一段音频」生成说话视频但生成的头部动作和眨眼来自音频驱动的预测模型有时显得僵硬。项目提供了参考视频模式再给一条真实人脸视频让生成结果从中借用眨眼及眉毛和头部姿态。--ref_eyeblink负责借用眨眼--ref_pose负责借用头部姿态两者在 inference.py 的命令行入口中暴露默认值都是None即不启用。本文的目标是在已装好 SadTalker 的环境中用这两个参数跑出一条参考视频模式的生成命令并确认输出视频位置。上图为 docs/best_practice.md 中的文档示例展示输入图片、使用参考视频后的生成结果以及参考视频本身。准备工作环境、依赖与模型参考视频模式没有额外的依赖或模型但要求完成 README.md 中「1. Installation」与「2. Download Models」两节的基础安装。以 Linux/Unix 为例conda create -n sadtalker python3.8 conda activate sadtalker pip install torch1.12.1cu113 torchvision0.13.1cu113 torchaudio0.12.1 --extra-index-url https://download.pytorch.org/whl/cu113 conda install ffmpeg pip install -r requirements.txt然后用仓库自带的脚本下载全部 checkpoint会执行网络下载模型文件较大请先确认磁盘空间bash scripts/download_models.sh模型默认放到./checkpoints/。这一步是 inference.py 中--checkpoint_dir的默认值不改动即可直接使用。两个参数分别做什么docs/best_practice.md 的 Advanced configuration 表格对两者的定义是参数默认值作用--ref_eyeblinkNone一条视频路径从中借用眨眼参考视频中的表情系数会替换源图的对应系数文档描述为让眉毛动作更自然--ref_poseNone一条视频路径从中借用头部姿态结合 docs/changlelog.md 中 2023.03.30 的记录参考视频模式的整体效果是「生成眨眼更自然、并带有一些眉毛动作的视频」。两者的默认值都是None不传参数时行为与默认模式完全一致。两点实现层面的行为可在源码中核对参考视频比音频短时会被循环拼接。docs/best_practice.md 明确说明 If the reference video is shorter than the input audio, we will loop the reference video对应实现见 src/generate_batch.py 中对参考系数的div/re拼接逻辑。两个参数可以指向同一条视频。inference.py 中当ref_pose ref_eyeblink时直接复用同一次 3DMM 提取结果不会重复处理。执行参考视频模式生成主路径命令如下所有示例文件路径都取自仓库自带资源可以直接复制到仓库根目录执行python inference.py --driven_audio ./examples/driven_audio/bus_chinese.wav \ --source_image ./examples/source_image/full_body_1.png \ --ref_eyeblink ./examples/ref_video/WDA_AlexandriaOcasioCortez_000.mp4 \ --ref_pose ./examples/ref_video/WDA_KatieHill_000.mp4各参数说明--driven_audio驱动音频决定视频长度--source_image被动画化的人脸图片也支持视频见 README 的video.mp4 or picture.png--ref_eyeblink/--ref_pose参考视频路径替换成你自己的视频即可想让两个参数走同一条视频时传同一路径即可程序会复用提取结果。也可以只启用其中一个只加--ref_eyeblink时仅替换眨眼只加--ref_pose时仅借用头部姿态src/test_audio2coeff.py 中using_refpose只替换 64:70 列的头部姿态系数而眨眼系数在 src/generate_batch.py 中替换前 64 列。执行过程中若参考视频被成功处理终端会打印摘自 inference.py3DMM Extraction for the reference video providing eye blinking 3DMM Extraction for the reference video providing pose这两行分别是两个参考视频 3DMM 系数提取的开始标志如果某一行没出现说明对应的参数没有被传入。结果验证inference.py 最后会打印输出文件名The generated video is named: save_dir.mp4save_dir是--result_dir默认./results加一个strftime(%Y_%m_%d_%H.%M.%S)时间戳目录例如results/2026_09_14_10.55.40.mp4时间戳为示例值实际以运行时刻为准。与 README 中「The results will be saved inresults/$SOME_TIMESTAMP/*.mp4」的描述一致。核对方式就是检查该文件存在并用播放器确认眨眼与头部动作参考了你提供的视频。如果需要保留中间产物源图首帧系数、参考视频的逐帧提取目录等加--verbose不加时中间目录save_dir会被程序删除只留下最终 mp4。边界与限制与--still冲突docs/best_practice.md 说明 Still mode will stop the eyeblink and head pose movement即--still会停止眨眼和头部动作与参考视频模式的目标直接冲突参考模式不应搭配--still使用。只适用于真实人像docs/best_practice.md 开头声明 Our model only works on REAL people or the portrait image similar to REAL person动漫风格图像不在支持范围内。参考视频同样要能被人脸检测参考视频会走与源图相同的CropAndExtract预处理source_image_flagFalse视频中检测不到人脸时该条参考路径无法产生系数。--preprocess保持默认crop即可参考模式没有文档要求特定的--preprocess取值full/resize模式服务于全身图与证件照类场景不属于本文任务路径。可选入口gradio demoREADME.md 提供本地 gradio demopython app_sadtalker.py需先pip install TTS。其底层类 src/gradio_demo.py 的test方法支持use_ref_video、ref_video与ref_info参数ref_info可取pose、blink、poseblink与 CLI 的两个参数一一对应但 demo 的完整 UI 选项以实际运行界面为准本文主路径仍是上面的 CLI 命令。生成完成后如果眨眼仍然不够自然检查参考视频是否包含清晰的眨眼片段、以及参考视频是否明显短于音频短了会被循环循环点可能可见。文档没有对这两个参数提供进一步的量化调优项效果以实际输出视频为准。【免费下载链接】SadTalker[CVPR 2023] SadTalkerLearning Realistic 3D Motion Coefficients for Stylized Audio-Driven Single Image Talking Face Animation项目地址: https://gitcode.com/GitHub_Trending/sa/SadTalker创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考