# LivePortrait 表情编辑教程：给同一头像制作三种表情 PNG

从同一张虚构成人头像制作微笑、眨眼和中性三种静态素材，核对导出尺寸和人物身份。

## 本包身份

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

## 使用

1. 先保存一份未编辑头像

source.png 为原创虚构成人，尺寸 1254×1254。先保存 neutral 副本；三张表情要保留同一裁切和尺寸，防止表情包连续播放时位置跳动。本包没有伪造微笑或眨眼输出。

2. 打开图像重定向区域

按官方环境准备权重后启动 app.py，找到 Retargeting Image Input 与 Retargeting Result。它与顶部 Driving Video 动画区不同，不必上传动作视频；下方官方表情编辑图帮助定位区域。

3. 每次只编辑一个表情

先用 smile 控件做轻微微笑，保存实际参数，再 Reset 回到基线做 wink。眼睛开合、嘴唇开合和视线各自控制，默认值与范围以实际版本为准，不用夸张数值一口气改变所有细节。

4. 比较脸部结果与 Paste-back

Retargeting Result 是处理后的脸部结果，Paste-back Result 将脸部放回源图空间。制作同尺寸素材优先保存实际 Paste-back 图片；检查头发、耳朵和下巴周围是否出现边界。

5. 导出 PNG 并记录对应参数

通过实际界面保存 neutral.png、smile.png、wink.png，把生成版本及各项值填进 variants.json。包里的 variants.json 初始状态为 pending；不要把三份相同源图冒充编辑成功。

6. 用接触表检查三张素材

实际导出后并排检查眼镜/牙齿/发丝与中心位置，轻微表情即可。运行 check.py --result smile.png 做文件与尺寸检查，但表情自然度和人物一致性仍需看图，不由文件存在来证明。

```
# 在下载包内检查源图；模型环境另按官方 README 准备
python check.py
# 在 LivePortrait 仓库运行
python app.py
# 导出实际 PNG 后回到素材包
python check.py --result smile.png
```

## 离线检查

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

## 来源

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