用几行代码把照片变成会说话的视频:Stand-In 入门与实践

读完本文,你将知道:

  • 为什么 Stand-In 能在 1% 额外参数的前提下,比传统“全模型训练”效果更好;
  • 如何只用一张证件照,让 AI 生成一段你本人出现的 5 秒短视频;
  • 如何把社区 LoRA 风格模型叠加到同一段视频里;
  • 常见踩坑与排查清单。

1. Stand-In 是什么?

一句话:它是轻量、即插即用的身份保持视频生成框架
核心特点:

关键词 具体含义 对普通用户的好处
轻量化 只新增 1% 参数 下载快、显存省
身份保持 面部特征不变形 视频里就是“你”
即插即用 不改主模型 可叠加社区 LoRA 或风格模型

2. 它能做什么?(附官方结果示例)

  1. 证件照 → 说话视频
    上传一张正面照,输入一句中文或英文提示,得到 5 秒 720p 视频。

  2. 非人类主体
    卡通人物、宠物、手办都能保持外观一致。

  3. 风格化
    叠加 Ghibli LoRA,把真人变成吉卜力画风,脸还是你的脸。

  4. 视频换脸
    给一段参考视频,把主角的脸换成你上传的照片。

  5. 姿态驱动
    配合 VACE,让生成的你跟着指定骨骼动作跳舞。


3. 快速开始:10 分钟跑通第一支视频

以下命令全部在 Linux & Python 3.11 实测通过;Windows/Mac 大同小异。

3.1 下载项目

git clone https://github.com/WeChatCV/Stand-In.git
cd Stand-In

3.2 准备环境

conda create -n Stand-In python=3.11 -y
conda activate Stand-In
pip install -r requirements.txt

可选:开启 Flash-Attention 加速

pip install flash-attn --no-build-isolation

3.3 一键获取模型

python download_models.py

脚本会自动放入 checkpoints/ 目录,包含:

  • wan2.1-T2V-14B:基础文本-视频模型
  • antelopev2:人脸特征提取
  • Stand-In:官方 153 M 身份保持权重

如果你已有 wan2.1-T2V-14B,把本地路径写进 download_models.py 注释对应行即可。

3.4 运行第一条命令

准备一张正面照,命名为 me.jpg,放在 test/input/

python infer.py \
  --prompt "一位年轻女性坐在咖啡馆窗边,阳光洒在侧脸,她微笑着看向镜头" \
  --ip_image test/input/me.jpg \
  --output test/output/my_first_video.mp4

大约 2-3 分钟(RTX 4090),你会得到 5 秒 720p 视频。


4. 把吉卜力风格叠上去:LoRA 实战

社区已有 Ghibli LoRA 权重(链接在项目 README)。假设你已下载 ghibli.safetensors

python infer_with_lora.py \
  --prompt "一位吉卜力画风的少女在樱花树下旋转,花瓣飞舞" \
  --ip_image test/input/me.jpg \
  --lora_path ghibli.safetensors \
  --lora_scale 0.8 \
  --output test/output/ghibli_me.mp4
  • lora_scale 越大,风格越浓。
  • 可叠加多个 LoRA,只需多次 --lora_path--lora_scale

5. 深入原理:为什么 1% 参数够用?

传统做法 Stand-In 做法
全模型微调(>14 B 参数) 冻结主模型,插入 153 M 身份适配器
需要大量配对数据(视频+文本+人脸) 用预训练人脸编码器提取特征,训练数据需求下降 70%
换脸需重新训练 推理时直接替换人脸特征向量

形象比喻:主模型是一位专业导演,Stand-In 只是递上一张演员定妆照,导演就能让演员出现在任何场景,而不用重新学表演。


6. 常见问题 FAQ

问题 原因 解决
显存不足 默认 720p、50 帧 infer.py 里把 --height/--width 改成 512×288
面部不像 照片角度过大或遮挡 换正面、无遮挡、光照均匀的照片
视频模糊 基础模型本身分辨率限制 等待官方 1080p 权重
生成速度慢 未开 Flash-Attention 见 3.2 安装命令
输出有水印 官方权重无水印,检查 LoRA 关闭或换 LoRA

7. 扩展任务速查表

任务 关键参数 示例脚本
姿态驱动 --pose_path examples/pose_guided.md
视频换脸 --reference_video examples/face_swap.md
批量生成 --batch_prompts examples/batch.sh

8. 训练自己的身份适配器(待官方开源)

官方已承诺近期开源:

  • 训练数据集
  • 数据清洗脚本
  • 训练代码

届时你只需准备 100-200 张同一主体的短视频片段(15-30 秒),即可微调属于自己的 153 M 适配器。


9. 社区资源索引


10. 小结与下一步

今天,你学会了:

  1. 用 4 条命令把照片变视频;
  2. 用社区 LoRA 叠加风格;
  3. 排查显存、面部不像等常见问题。

下一步,可以:

  • 把 Stand-In 接入你的短视频自动化工作流;
  • 等待官方训练代码,定制“公司老板形象”专属适配器;
  • 关注 GitHub Release,第一时间获取 Wan2.2 适配权重。

祝你玩得开心,生成愉快!