通义万相wan2.2-animate-mix视频换人模型,能够依据人物图片和参考视频,将视频中的主角替换为图片中的角色,同时保留原视频的场景、光照和色调,实现无缝换人。
- 核心功能: 在不改变原始视频的动作、表情及环境的条件下,将视频中的角色替换为指定图片中的人物。 
- 适用场景:适用于二次创作、影视后期制作等需要进行角色替换的场景。 
本文档仅适用于“中国大陆(北京)”地域,需使用“中国大陆(北京)”地域的API Key。
模型概览
效果示例
| 人物图片 | 参考视频 | 输出视频(视频换人-标准std) | 输出视频(视频换人-专业pro) | 
| 
 | 
模型与价格
wan2.2-animate-mix 模型提供标准和专业两种服务模式,以满足不同场景对视频换人效果的需求。
| 模型名称 | 模型服务 | 服务简介 | 限流(主账号与RAM子账号共用) | 计费单价 | 免费额度(查看) | |
| 任务下发接口RPS限制 | 同时处理中任务数量 | |||||
| wan2.2-animate-mix | 视频换人-标准std | 生成速度快,满足基础动画演示等轻需求,性价比高。 | 5 | 1 | 0.6元/秒 | 两种服务共50秒 | 
| 视频换人-专业pro | 动画流畅度高,动作表情过渡自然,效果更接近真实拍摄。 | 0.9元/秒 | ||||
HTTP调用
您需要已获取API Key并配置API Key到环境变量。
POST https://dashscope.aliyuncs.com/api/v1/services/aigc/image2video/video-synthesis/
由于视频生成耗时较长,HTTP API 采用异步模式,调用流程分两步:
- 创建任务获取任务ID:发送一个请求创建任务,该请求会返回任务ID(task_id)。 
- 根据任务ID查询结果:使用task_id轮询任务状态,直到任务完成并获得视频URL。 
步骤1:创建任务获取任务ID
- 创建成功后,使用接口返回的 - task_id查询结果,task_id 有效期为 24 小时。请勿重复创建任务,轮询获取即可。
- 新手指引请参见Postman。 
| 请求参数 | 视频换人 | 
| 请求头(Headers) | |
| Content-Type  请求内容类型。此参数必须设置为 | |
| Authorization  请求身份认证。接口使用阿里云百炼API-Key进行身份认证。示例值:Bearer sk-xxxx。 | |
| X-DashScope-Async  异步处理配置参数。HTTP请求只支持异步,必须设置为 重要  缺少此请求头将报错:“current user api does not support synchronous calls”。 | |
| 请求体(Request Body) | |
| model  模型名称,必须设置为 | |
| input  输入参数对象,包含以下字段: | |
| parameters  | 
| 响应参数 | 成功响应请保存 task_id,用于查询任务状态与结果。 异常响应创建任务失败,请参见错误信息进行解决。  | 
| output  任务输出信息。 | |
| request_id  请求唯一标识。可用于请求明细溯源和问题排查。 | |
| message  请求失败的详细信息。请求成功时不会返回此参数,详情请参见错误信息。 | |
| code  请求失败的错误码。请求成功时不会返回此参数,详情请参见错误信息。 | 
步骤2:根据任务ID查询结果
GET https://dashscope.aliyuncs.com/api/v1/tasks/{task_id}
| 请求参数 | 查询任务结果您需要将  | 
| 请求头(Headers) | |
| Authorization  请求身份认证。接口使用阿里云百炼API-Key进行身份认证。示例值:Bearer sk-xxxx。 | |
| URL路径参数(Path parameters) | |
| task_id  任务ID。 | 
| 响应参数 | 任务执行成功视频URL仅保留24小时,超时后会被自动清除,请及时保存生成的视频。 任务执行失败若任务执行失败,task_status将置为 FAILED,并提供错误码和信息。请参见错误信息进行解决。  | 
| output  任务输出信息。 | |
| usage  输出信息统计。只对成功的结果计数。 | |
| request_id  请求唯一标识。可用于请求明细溯源和问题排查。 | 
使用限制与建议
使用限制
- 输入内容限制:以下是输入图片与视频的内容限制,对于视频,相关要求适用于首帧。 - 人数:必须仅包含一个人,不能无人或多人。 
- 清晰度:必须清晰,特别是人脸部分,不能过暗或模糊。 
- 完整性:人脸必须 完整无遮挡。 
- 朝向:人物需要正面朝向镜头,不能是背身。人脸朝向应基本正对,不能有严重偏斜。 
- 构图:人物在图片中的占比要适中,不能过大(如大头贴)或过小。 
 
- 内容审核:输入的图片与视频均会经过内容安全审核,包含违规内容的请求将报错“IPInfringementSuspect”或“DataInspectionFailed”,具体参见错误信息。 
- 数据时效:任务task_id和视频URL均只保留 24 小时,过期后将无法查询或下载,请及时下载视频到本地。 
使用建议
为了优化视频换人效果,请参考以下建议::
- 确保输入图片与参考视频中的人物画幅占比相似。 
- 尽量保持图片和视频中人物的身材比例一致。 
- 使用高清素材,避免使用模糊图片和低帧率视频,确保细节识别准确。 
下载视频到本地
import requests
video_url = "http://dashscope-result-bj.oss-cn-beijing.aliyuncs.com/xxx?Expires=xxx"
save_path = "ouput_video.mp4"
try:
    response = requests.get(video_url, stream=True, timeout=300) # 设置超时
    response.raise_for_status() # 如果HTTP状态码不是200,则引发异常
    with open(save_path, 'wb') as f:
        for chunk in response.iter_content(chunk_size=8192):
            f.write(chunk)
    print(f"视频已成功下载到: {save_path}")
except requests.exceptions.RequestException as e:
    print(f"视频下载失败: {e}")import java.io.FileOutputStream;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
public class ImageDownloader {
    public static void downloadImage(String videoUrl, String savePath) {
        try {
            // 创建 URL 对象
            URL url = new URL(videoUrl);
            // 打开连接
            HttpURLConnection connection = (HttpURLConnection) url.openConnection();
            // 设置超时时间
            connection.setConnectTimeout(5000);
            connection.setReadTimeout(300000); // 5分钟
            // 设置请求方法
            connection.setRequestMethod("GET");
            // 获取输入流
            InputStream inputStream = connection.getInputStream();
            // 创建文件输出流
            FileOutputStream outputStream = new FileOutputStream(savePath);
            // 缓冲区
            byte[] buffer = new byte[8192];
            int bytesRead;
            // 写入文件
            while ((bytesRead = inputStream.read(buffer)) != -1) {
                outputStream.write(buffer, 0, bytesRead);
            }
            // 关闭流
            inputStream.close();
            outputStream.close();
            System.out.println("视频已成功下载到: " + savePath);
        } catch (Exception e) {
            System.err.println("视频下载失败: " + e.getMessage());
        }
    }
    public static void main(String[] args) {
        String videoUrl = "http://dashscope-result-bj.oss-cn-beijing.aliyuncs.com/xxx?Expires=xxx";
        String savePath = "output_video.mp4";
        downloadImage(videoUrl, savePath);
    }
}计费与限流
计费规则
- 计费项:按成功生成的 视频秒数 计费,采用按量后付费模式。 
- 计费公式:费用 = 计费单价 × 视频时长(秒)。 
- 抵扣顺序:优先消耗免费额度。额度用尽后,默认转为按量付费。 - 您可开启“免费额度用完即停”功能,以避免免费额度耗尽后产生额外费用。详情请参见免费额度。 
 
- 失败不计费:模型调用失败或处理错误不产生任何费用,也不消耗免费额度。 
免费额度
关于免费额度的领取、查询、使用方法等详情,请参见免费额度。
调用量查询
模型调用完约一小时后,请在模型观测页面,查看调用量、调用次数、成功率等指标。
限流
模型限流规则及常见问题,请参见限流。
错误码
如果模型调用失败并返回报错信息,请参见错误信息进行解决。
