EMO 的全名是 Emote Portrait Alive,论文编号 arXiv 2402.17485,作者是阿里巴巴智能计算研究院的 Linrui Tian、Qi Wang、Bang Zhang、Liefeng Bo,中稿 ECCV 2024。它的做法是两段式:先用 ReferenceNet 从参考图和运动帧里抽特征,再在扩散主干里挂三组注意力——Reference-Attention 锁身份、Audio-Attention 由 wav2vec 音频特征调制口型与表情、Temporal Modules 管帧间连贯。输入只要一张肖像图加一段人声,输出视频长度直接跟着音频走。唱歌、说话、多语种、油画肖像和 AI 生成的脸都能驱动,这是它当年一炮而红的原因。
但真正要动手的人都会撞到同一堵墙:GitHub 上的 HumanAIGC/EMO 仓库里根本没有推理代码。README 只有几个 badge、演示视频链接和一段 BibTeX,权重从未上传,两百多个未关闭的 issue 里绝大部分都在问同一句话——什么时候开源。想用 EMO 本尊,官方只留了一条口子:阿里云百炼(DashScope)上的 emo-detect-v1 加 emo-v1 两个云端模型。约束也很硬——参考图最短边 400px、最长边 7000px,音频 wav/mp3 且不超过 15MB、60 秒,输出按动态区域比例定死在 512×512(1:1)或 512×704(3:4),1:1 计费 ¥0.08/秒、3:4 计费 ¥0.16/秒,QPS 5、同时只跑 1 个任务,视频链接 24 小时过期。续作 EMO2(arXiv 2501.10687)把音频先映射成手部末端姿态再驱动半身带手势的画面,同样只有论文和 demo 页。
所以「EMO 私有化部署」的真实答案不是去找 EMO 的权重,而是选一个架构同源、能落地的开源模型。今天真正跑得动的三条线:蚂蚁集团的 EchoMimicV3,1.3B 参数、Apache 2.0、已中 AAAI 2026,基于 Wan2.1-Fun-V1.1-1.3B-InP,Flash 版本 8 步出片且免人脸 mask、12GB 显存就能开工;通义万相的 Wan2.2-S2V-14B,Apache 2.0,480P/720P 电影级语音驱动,官方脚本单卡要 80GB;MeiGen 的 InfiniteTalk,基于 Wan2.1-I2V-14B-480P,专治长视频配音与换口型,流式模式可以无限延长。这些模型的共同点是:显存吃多少完全取决于你选哪条线,而 NexGPU 按秒计费、无最低消费,让你在 3090 和 A100 之间来回试错的成本低到可以忽略。
01 —
EMO 家族与能真正跑起来的开源同构方案
上面两行是原版 EMO 的现状,下面四行才是你能 clone 到自己机器上的东西。
| 版本 | 参数量 | 显存 | 上下文 | 说明 |
|---|---|---|---|---|
| EMO(Emote Portrait Alive) | SD1.5 扩散主干 + ReferenceNet + 时序模块,参数量未公开 | 无权重可下载;只能调 emo-v1 云端 API | 音频 ≤ 60 秒 / ≤ 15MB,输出 512×512 或 512×704 | arXiv 2402.17485,ECCV 2024。仓库只有 README 与引用信息,官方明示仅供学术研究与效果演示。 |
| EMO2(End-Effector Guided) | 两阶段:音频 → 手部末端姿态 → 半身视频 | 同样未开源,无权重 | 半身带手势,长度随音频 | arXiv 2501.10687。核心洞察是音频与手部姿态的相关性远强于与全身动作,所以先出手再出画。 |
| EchoMimicV3-Flash | 1.3B,底座 Wan2.1-Fun-V1.1-1.3B-InP + wav2vec2 | bf16 约 12GB 起;768×768 长片段建议 24GB | 最高 768×768,8 步采样 | 蚂蚁集团出品,Apache 2.0。免人脸 mask,是目前「单卡跑 EMO 效果」最现实的一条路。 |
| EchoMimicV3-Preview | 1.3B,bf16 safetensors | ComfyUI 工作流约 16GB;GradioUI 量化版约 12GB | 最高 768×768,talking head 5 步 / talking body 15–25 步 | 官方实测卡型 A100 80G、RTX4090D 24G、V100 16G。AAAI 2026 收录,CUDA 12.1+、Python 3.10/3.11。 |
| Wan2.2-S2V-14B | 14B 语音驱动视频模型 | 官方脚本单卡建议 ≥ 80GB;ComfyUI 的 wan2.2_s2v_14B_fp8_scaled 权重占用显著更低 | 480P / 720P,帧数随音频自动对齐,可用 --num_clip 控制 | 通义万相开源线,Apache 2.0。画面质感和镜头语言是这几个里最强的,代价是显存。 |
| InfiniteTalk / Sonic / Hallo2 | InfiniteTalk:Wan2.1-I2V-14B-480P + 音频条件 LoRA;Sonic:SVD-XT + Whisper-tiny;Hallo2:SD1.5 + AnimateDiff + wav2vec2 | InfiniteTalk 支持 FP8 单卡与 --num_persistent_param_in_dit 0 低显存模式;Sonic 官方在单张 32GB 卡上验证;Hallo2 在 A100 上测试 | InfiniteTalk 默认 1000 帧(约 40 秒)、流式可无限长;Hallo2 可做 4K、最长 1 小时 | 许可要看清:InfiniteTalk 是 Apache 2.0,Sonic 是 CC BY-NC-SA 4.0 不可商用,Hallo2 的超分环节沿用 CodeFormer 的 S-Lab License 1.0。 |
02 —
按你要跑的那条线选卡
1.3B 的 EchoMimic 和 14B 的 Wan2.2-S2V 差着一个数量级,别拿同一张卡硬上。
先把 EchoMimicV3-Flash 跑通,出几条样片验证效果
RTX 3090 24GB$0.193/卡·时
Flash 版 12GB 就够,24GB 留足余量跑 768×768,而这是整个列表里最便宜的 24GB 卡。
ComfyUI 工作流批量出片,768×768 长片段不想降 partial_video_length
RTX 4090 24GB$0.540/卡·时
官方实测卡型就是 RTX4090D 24G,Ada 的算力让 15–25 步的 talking body 采样明显更快。
跑 Sonic(官方只在单张 32GB 卡上验证)或 InfiniteTalk 的 FP8 单卡模式
RTX 5090 32GB / RTX A6000 48GB$0.723 / $0.817(卡·时)
32GB 正好卡在 Sonic 的验证配置上;48GB 则给 14B 底座的 FP8 权重和长序列 KV 留下喘息空间。
Wan2.2-S2V-14B 官方 generate.py 单卡全精度推理,或 Hallo2 出 4K 长视频
A100 PCIE 80GB$0.824/卡·时
官方白纸黑字写着单卡推理需要至少 80GB 显存,这是达标里最便宜的一张;要更快就上 H100 SXM 80GB($3.582/卡·时)。
03 —
在 NexGPU 上四步跑通音频驱动数字人
从开机到出第一条视频,前三步是开源线,第四步是你确实非要 EMO 本尊时的做法。
- 01
开一台带 CUDA 12.1+ 的实例
从 2,000+ 预置镜像里选 PyTorch 或 ComfyUI 镜像,EchoMimicV3 要求 CUDA 12.1 以上、Python 3.10 或 3.11。开机后先确认卡型和驱动对得上,SSH、Jupyter、Web 终端三种入口任选。
nvidia-smi && python -c "import torch; print(torch.__version__, torch.cuda.get_device_name(0))" - 02
拉 EchoMimicV3 代码与依赖
官方在 CentOS 7.2 与 Ubuntu 22.04 上验证过。建议单独建 conda 环境,避免和镜像里预装的 diffusers 版本打架。
git clone https://github.com/antgroup/echomimic_v3 && cd echomimic_v3 && conda create -n echomimic_v3 python=3.10 -y && conda activate echomimic_v3 && pip install -r requirements.txt - 03
下三份权重,然后出片
要下的是三样东西:底座 Wan2.1-Fun-V1.1-1.3B-InP、音频编码器 wav2vec2-base(中文素材换 chinese-wav2vec2-base)、以及 EchoMimicV3-Flash 或 Preview 权重,各自放进对应目录。调参有官方给的甜区:audio CFG 取 1.8–2.0,text CFG 取 3–6,纯口播 5 步就够,带身体动作的给 15–25 步。显存吃紧就把 partial_video_length 往下压到 81 或 65。
bash run_flash.sh # 或 python infer_preview.py;想要网页界面就 python app_mm.py - 04
确实需要 EMO 本尊效果时,用异步 API 兜底
先调 emo-detect-v1 拿到人脸框 face_bbox 与动态区域框 ext_bbox,再把它们连同 image_url、audio_url 一起提给 emo-v1。必须带 X-DashScope-Async: enable 头,拿到 task_id 后轮询 GET /api/v1/tasks/{task_id}。style_level 可选 normal / calm / active。注意任务 ID 与结果链接都只有 24 小时有效,出片后要立刻回传到你自己的对象存储。
curl -X POST 'https://dashscope.aliyuncs.com/api/v1/services/aigc/image2video/video-synthesis' -H 'X-DashScope-Async: enable' -H "Authorization: Bearer $DASHSCOPE_API_KEY" -H 'Content-Type: application/json' -d '{"model":"emo-v1","input":{"image_url":"...","audio_url":"...","face_bbox":[],"ext_bbox":[]},"parameters":{"style_level":"normal"}}'
把这条选型做完,到底要花多少钱
算一笔真账。第一条线:开一张 RTX 3090 24GB,$0.193/卡·时。装环境加下三份权重约 40 分钟,EchoMimicV3-Flash 8 步采样连着出 20 条样片约 2 小时,合计 2.7 小时 → 0.193 × 2.7 ≈ $0.52。看完样片想用 14B 的画质复核一遍,换 A100 PCIE 80GB 跑 Wan2.2-S2V-14B,$0.824/卡·时 × 3 小时 = $2.47。两条线加起来 $2.99,一杯咖啡都不到,你就拿到了自己素材上的横向对比结论。存储另算:约 40GB 的权重和素材常驻,$0.414/GB·月 × 40 = $16.56/月,但实例一停计算就停止计费,卷不销毁才继续算存储,跑完把权重清掉这笔就归零。导出 20 条样片约 1GB,出网 $0.0081/GB × 1 ≈ $0.01。对照一下 EMO 官方 API:1:1 视频 ¥0.08/秒,20 条各 5 秒共 100 秒 = ¥8,确实更省事,但你换来的是 512×512 封顶、60 秒封顶、并发只有 1,而且一行参数都改不了、一个 LoRA 都挂不上。
04 —
