# LivePortrait 视频口部重定向：保留头部动作，制作闭口待机底片

在已有头肩视频上练习 Retargeting Video 的嘴部开合，制作待机底片并检查头部动作是否保留。

## 本包身份

所有 reference 音轨是原创程序合成，旁白是 macOS Tingting 系统朗读，杯子/门是脚本绘制输入；头像是 AI 生成原创虚构成人。官方 driving.mp4 明确标源。未执行 LivePortrait 推理/账号生成，不包含伪造的模型成功音频或成片。

## 使用

1. 选一段有头部动作的源片

素材包 driving.mp4 是官方源视频，portrait-input.mp4 是静止头像练习片；本题用前者观察动作是否保留，自己的工作换成已授权头肩片。下载后保留原音与原片，不覆盖输入。

2. 准备 Humans 模式和 FFmpeg

按官方仓库配置环境与权重，记录 commit 和设备。先运行 check.py 检查源片帧率、长度和视频流；脚本通过只表示素材可解码，不表示模型可用。

3. 找到 Retargeting Video 输入

将视频放到 Retargeting Video Input，而不是把静态图片放进视频框。官方视频重定向图展示原版入口；该面板并不提供与静态表情区完全相同的一组眼睛滑块。

4. 把目标 lip-open ratio 设为零做小样

按官方说明先用 target lip-open ratio=0 观察闭口效果，再检查当前版本 silence 选项的含义。保留 source crop 和 smoothing 的默认基线；头部大幅遮挡时不要承诺每帧都能重定向成功。

5. 执行 Retargeting Video 并保存输出

点击 Retargeting Video，将实际 Paste-back 结果另存 idle.mp4。先观看有声版确认画面，再按用途移除音轨；“闭口待机”是视觉目标，不能只把音频静音就声称嘴巴已闭合。

6. 把同一帧的唇线与头部姿态并排

选最大张口和最大转头处，看唇线是否闭合、下巴是否抖动、发际线与身体是否漂移。图中输入帧和标出的检查区不是本地重定向结果。本次未运行 GPU/模型，须以你实际输出验收。

```
# 原生环境准备完成后在 LivePortrait 仓库启动界面
python app.py
# 在素材包检查你的实际输出
python check.py --result idle.mp4
```

## 离线检查

`python check.py --self-test` 实读并校验输入与坏文件；真正软件输出后用 `python check.py --result 实际文件` 检查格式并人工回听/看图。结果与已知输入/参考完全相同时会拒绝，不能改名充当生成。格式通过不证明模型调用和内容质量。

## 来源

- https://github.com/KlingAIResearch/LivePortrait
- https://github.com/KlingAIResearch/LivePortrait/blob/main/app.py
