# LivePortrait 照片动起来教程：用表情视频驱动原创头像

将一张原创虚构成人正面头像与有明确表情的驱动片配对，先做短动画，再逐帧检查身份与脸部边界。

## 本包身份

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

## 使用

1. 分清头像、驱动与结果

source.png 是 AI 生成的原创虚构成人，driving.mp4 是官方仓库 d0 示例，均为输入。先播放驱动片观察头部、眨眼和嘴部；原作者示例与许可来源见 provenance.json，自己的正式任务改用有权使用的自录动作。

2. 准备匹配官方说明的环境

依官方 README 建独立 Python 3.10 环境，准备 FFmpeg 与官方预训练权重。macOS Apple Silicon 的 Humans 模式有官方说明，但可能比 NVIDIA 慢；Animals 的 XPose 条件不同。本包不含权重，本次没有运行 LivePortrait。

3. 在真实界面配对 Source 与 Driving

启动 app.py，在 Source Image 放 source.png，在 Driving Video 放 driving.mp4。先用正面中性首帧、头部占主体的驱动；肩膀大幅位移会使对齐困难。下方官方截图是原版界面，不是本页头像的生成结果。

4. 只在需要时裁切驱动

自录驱动不是头肩近景时启用 driving auto-crop，必要时调裁切比例和纵向偏移。先保留官方默认 relative 与 stitching，用同一个驱动做基线；不要同时换头像、动作和多个控制项。

5. 执行一次并保留真正输出

在 LivePortrait 仓库运行下方命令；-s/-d 换成下载包的绝对路径。成功后查看 animations 内实际 MP4 与 concat 对照。本站完成的是输入文件和视频解码校验；只有你的模型运行才能产生这张头像的动画。

6. 同帧核对身份与边缘

官方练习驱动长 3.12 秒，按 0/1/2 秒和最大转头帧回看；检查双眼、牙齿、发际线及颈部拼回边界。输入帧拼图只帮助定位动作，不是成功输出。若脸部漂移，先缩小驱动动作，再重跑并保存失败版。

```
# 在已准备权重的 LivePortrait 仓库运行
python inference.py -s /绝对路径/source.png -d /绝对路径/driving.mp4
# Apple Silicon 按官方说明启用回退
PYTORCH_ENABLE_MPS_FALLBACK=1 python app.py
```

## 离线检查

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

## 来源

- https://github.com/KlingAIResearch/LivePortrait
- https://github.com/KlingAIResearch/LivePortrait/blob/main/LICENSE
