商业 API 实现「换人跳舞视频」详细方案
目标:输入「一段别人的跳舞视频(动作来源)」+「一张目标人物图(外观来源)」,输出「目标人物跳同一支舞的视频」。
路线 A 的核心是用已托管的 Motion Control / 动作模仿模型 API,无需自备 GPU,几天即可出 MVP。
1. 技术本质与数据流
换人跳舞 =动作迁移(motion transfer)+ 角色替换(character replacement),不是换脸。
源跳舞视频 ──┐ ├─► [商业 Motion Control API] ──► 换人后的跳舞视频 目标人物图 ──┘ (图=谁在跳, 视频=怎么跳)API 内部做三件事(你无需自己实现):
- 动作提取:从驱动视频抽骨架/3D 动作轨迹(只看动作,不看脸)。
- 角色注入:用参考图锁定身份、服装、比例。
- 视频扩散生成:把动作 + 外观合成连续帧视频,可选保留原音轨。
你只需要:上传两个文件 → 调用 API → 拿回视频 URL。
2. 主流 API 对比(2025–2026)
| 服务 | 模型/接口 | 输入 | 时长上限 | 分辨率 | 多人 | 参考价(约) |
|---|---|---|---|---|---|---|
| 可灵 Kling Motion Control | kling-motion-control / v2.6 / v3.0 | 角色图 + 驱动视频 | 3–30s(video模式) | 720p / 1080p | 否(绑定画面最大人物) | 720p ≈ $0.06–0.14/s;1080p ≈ $0.10–0.18/s |
| 即梦 动作模仿 2.0 | jimeng_dreamactor_m20_gen_video | 角色图 + 模版视频 | 按视频长度 | 720p / 25fps | 支持(视频人数=图片人数更稳) | 0.4 元/秒(≈$0.055/s) |
| Runway / DomoAI / Viggle | 各自动作控制 | 类似 | 各异 | 各异 | 部分支持 | 订阅制或按秒 |
价格因聚合商/地区/档位(std/pro)差异很大,且变动频繁,以官方最新文档为准。即梦单价目前最低且支持多人;可灵动作还原与面部一致性更强。
接入难度:可灵及其聚合商(Vidgo / APIModels / reAPI 等)多为Bearer Token+ REST,最简单;即梦走火山引擎签名鉴权(API Key + HMAC 签名),略复杂,建议直接用官方 SDK。
3. 统一异步调用范式(所有家都一样)
视频生成是异步任务,标准四步,千万别提交完立刻去取 URL(常见坑):
1. POST 提交任务 ──► 立即返回 task_id(≠完成) 2. GET 轮询状态 ──► queued / running / succeeded / failed 3. 轮询到终态 succeeded 4. 取 video_url,下载并转存(URL 有有效期!)生产环境优先用callback_url接收完成通知,比轮询更省。
4. 关键参数详解(以可灵为例)
| 参数 | 说明 |
|---|---|
image_url/input_urls | 角色图(谁在跳)。全身照最佳;JPEG/PNG/WEBP,<10MB,短边≥340px,宽高比 0.4–2.5 |
video_url/video_urls | 驱动视频(怎么跳)。MP4/MOV/WEBM,<100MB,单镜头、无剪辑/转场/运镜 |
character_orientation | video:跟驱动视频朝向(≤30s);image:跟角色图朝向(≤10s,身份更稳) |
mode | std(快/便宜)/pro(高清/慢) |
prompt | 描述场景/灯光/相机,不要描述动作(动作由视频决定)。如:plain grey studio, soft lighting, static camera |
negative_prompt | 抑制瑕疵:warped background, extra fingers, motion blur, duplicate limbs |
keep_original_sound | 是否保留原视频音轨 |
callback_url | 完成回调地址(替代轮询) |
5. 调用示例(Python)
5.1 可灵(Bearer,最简)
importos,time,requests BASE="https://api.apimodels.app/v1"# 换成你选用的聚合商/官方端点API_KEY=os.environ["KLING_API_KEY"]H={"Authorization":f"Bearer{API_KEY}","Content-Type":"application/json"}defsubmit(image_url,video_url,mode="720p"):r=requests.post(f"{BASE}/video/generations",headers=H,json={"model":"kling-motion-control","input_urls":[image_url],# 角色图"video_urls":[video_url],# 驱动视频"mode":mode,"character_orientation":"video",},timeout=60)r.raise_for_status()returnr.json()["data"]["task_id"]defwait(task_id,interval=5,timeout=600):deadline=time.time()+timeoutwhiletime.time()<deadline:r=requests.get(f"{BASE}/video/generations",params={"task_id":task_id},headers=H,timeout=60)d=r.json()["data"]ifd["state"]=="completed":returnd["resultUrls"][0]ifd["state"]=="failed":raiseRuntimeError(d.get("failMsg"))time.sleep(interval)raiseTimeoutError("timeout")task_id=submit("https://your-cdn.com/char.png","https://your-cdn.com/dance.mp4")print("video:",wait(task_id))5.2 即梦 动作模仿 2.0(火山引擎签名)
# 即梦需要火山引擎 HMAC 签名鉴权,建议直接用官方 Python SDK(volcengine-python-sdk)# 核心字段如下,签名细节见火山文档「公共参数 - 签名」importrequests SUBMIT_URL="https://visual.volcengineapi.com?Action=CVSync2AsyncSubmitTask&Version=2022-08-31"# 查询接口:同样的 host,Action=CVSync2AsyncGetResult(见官方文档)payload={"req_key":"jimeng_dreamactor_m20_gen_video",# 固定服务标识"image_url":"https://your-cdn.com/char.png",# 角色图(公网可访问)"video_url":"https://your-cdn.com/dance.mp4",# 模版视频# 可选隐性水印(合规):"req_json": '{"aigc_meta": {...}}'}# 提交后返回 task_id → 轮询 → 取 video_url(有效期仅 1 小时,务必下载转存)6. 工程架构(落地结构)
[前端] 上传源视频 + 目标人物图 │ ▼ [后端] 1. 存到对象存储(OSS/COS/S3/七牛) → 拿到公网 URL ← 关键!API 必须公网可访问 │ 2. POST 提交任务 → task_id │ 3. 轮询 / callback 等完成 │ 4. 下载结果视频转存到自己存储(结果 URL 有有效期) │ 5. 返回最终视频 URL 给用户 ▼ [队列/限流] 即梦并发=1,需排队;可灵注意额度必踩的坑(提前规避):
- URL 必须公网可访问:本地
localhost不行,先传对象存储/图床再传 URL。 - 结果 URL 有有效期:即梦 1 小时、可灵各档 30 天不等 → 生成后立刻下载转存到自己服务器。
- 驱动视频要单镜头:不能有剪辑、转场、相机运动;单人画面最稳(即梦支持多人但要求视频人数=图片人数)。
- 动作别太快:快速运动易模糊;减少遮挡、手持物、背面。
- 身份漂移:用更高档位(pro)更稳;
character_orientation=image在 10s 内更稳。 - 鉴权差异:可灵用 Bearer 简单;即梦需火山签名,直接用官方 SDK。
7. 成本估算(一段 10 秒跳舞视频)
| 方案 | 单价 | 10 秒成本 |
|---|---|---|
| 即梦 动作模仿 2.0 | 0.4 元/秒 | 4 元 |
| 可灵 720p(聚合) | ~$0.06/s | ~4.3 元 |
| 可灵 1080p | ~$0.10/s | ~5.2 元 |
| 可灵 3.0 Pro | ~$0.18/s | ~13 元 |
量大时即梦最省;追求质量/面部一致性选可灵 Pro。失败任务一般不计费(可灵类自动退款)。
8. 合规提醒(务必保留)
- 版权 + 肖像权:用「别人的视频」涉及原视频版权与被换人物肖像权,商用/公开传播前必须取得授权,避免 Deepfake 滥用、侵犯肖像权/名誉权。
- AIGC 标识:国内《人工智能生成合成内容标识办法》要求隐式/显式标识。即梦原生支持
aigc_meta隐性水印,建议接入。 - 产品侧加「仅限授权素材」提示与溯源水印。
9. 推荐落地步骤
- 注册可灵 / 即梦开发者,申请 API Key,充少量测试额度。
- 开通对象存储(OSS/COS/七牛),用于输入与输出文件。
- 写统一调用封装:提交 → 轮询/回调 → 下载转存。
- 先做单视频 MVP:上传 → 生成 → 播放,验证效果。
- 加队列、限流、超时重试、失败退款处理。
- 加合规水印与授权声明,灰度上线。
下一步可选:若量大/有隐私/要深度定制,再评估路线 B(Wan2.2-Animate-14B / ComfyUI 自部署)。