商业 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 Controlkling-motion-control / v2.6 / v3.0角色图 驱动视频3–30svideo模式720p / 1080p否绑定画面最大人物720p ≈ $0.06–0.14/s1080p ≈ $0.10–0.18/s即梦 动作模仿 2.0jimeng_dreamactor_m20_gen_video角色图 模版视频按视频长度720p / 25fps支持视频人数图片人数更稳0.4 元/秒≈$0.055/sRunway / 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/WEBP10MB短边≥340px宽高比 0.4–2.5video_url/video_urls驱动视频怎么跳。MP4/MOV/WEBM100MB单镜头、无剪辑/转场/运镜character_orientationvideo跟驱动视频朝向≤30simage跟角色图朝向≤10s身份更稳modestd快/便宜/pro高清/慢prompt描述场景/灯光/相机不要描述动作动作由视频决定。如plain grey studio, soft lighting, static cameranegative_prompt抑制瑕疵warped background, extra fingers, motion blur, duplicate limbskeep_original_sound是否保留原视频音轨callback_url完成回调地址替代轮询5. 调用示例Python5.1 可灵Bearer最简importos,time,requests BASEhttps://api.apimodels.app/v1# 换成你选用的聚合商/官方端点API_KEYos.environ[KLING_API_KEY]H{Authorization:fBearer{API_KEY},Content-Type:application/json}defsubmit(image_url,video_url,mode720p):rrequests.post(f{BASE}/video/generations,headersH,json{model:kling-motion-control,input_urls:[image_url],# 角色图video_urls:[video_url],# 驱动视频mode:mode,character_orientation:video,},timeout60)r.raise_for_status()returnr.json()[data][task_id]defwait(task_id,interval5,timeout600):deadlinetime.time()timeoutwhiletime.time()deadline:rrequests.get(f{BASE}/video/generations,params{task_id:task_id},headersH,timeout60)dr.json()[data]ifd[state]completed:returnd[resultUrls][0]ifd[state]failed:raiseRuntimeError(d.get(failMsg))time.sleep(interval)raiseTimeoutError(timeout)task_idsubmit(https://your-cdn.com/char.png,https://your-cdn.com/dance.mp4)print(video:,wait(task_id))5.2 即梦 动作模仿 2.0火山引擎签名# 即梦需要火山引擎 HMAC 签名鉴权建议直接用官方 Python SDKvolcengine-python-sdk# 核心字段如下签名细节见火山文档「公共参数 - 签名」importrequests SUBMIT_URLhttps://visual.volcengineapi.com?ActionCVSync2AsyncSubmitTaskVersion2022-08-31# 查询接口同样的 hostActionCVSync2AsyncGetResult见官方文档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_orientationimage在 10s 内更稳。鉴权差异可灵用 Bearer 简单即梦需火山签名直接用官方 SDK。7. 成本估算一段 10 秒跳舞视频方案单价10 秒成本即梦 动作模仿 2.00.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上传 → 生成 → 播放验证效果。加队列、限流、超时重试、失败退款处理。加合规水印与授权声明灰度上线。下一步可选若量大/有隐私/要深度定制再评估路线 BWan2.2-Animate-14B / ComfyUI 自部署。