
功能 | 说明 | 效果示意 | 计费说明 |
AI 换脸 | 替换视频中指定人脸,支持多人物、多参考图,保留身体动作与服装。 | ![]() | 收取“视频重制 – AI 换脸”费用。 |
AI 换人 | 替换视频中人物的整体形象,包含体型、服装等全身特征 | ![]() | 收取“视频重制 – AI 换人”费用。 |
画中画 | 将原视频缩小嵌入 AI 生成的背景中。 | | 收取“视频重制 – 画面调整”费用。 |
背景扩展 | 在视频中插入扩展背景画面。 | | |
垂直填充 | 竖屏填充,为横屏视频生成上下补充内容。 | | |
水平填充 | 横屏填充,为竖屏视频生成左右补充内容。 | | |
模式 | 限制 |
AI 换脸 | 视频时长建议 ≤ 20 分钟;分辨率 ≤ 1920×1920;单张图片 < 10M,支持 jpg/png,分辨率 ≤ 4K。 |
AI 换人 | 视频时长 ≤ 20 分钟;图片大小 ≤ 5M;需正面全身照。 |
参数 | 类型 | 说明 |
InputInfo | object | 输入文件信息,支持 COS 或 URL。 |
OutputStorage | object | 输出存储配置(COS)。 |
OutputDir | string | 输出目录路径。 |
AiAnalysisTask.Definition | int | 固定填 29。 |
AiAnalysisTask.ExtendedParameter | string | 扩展参数 JSON 字符串(需转义)。 |
{"InputInfo": {"Type": "URL","UrlInputInfo": {"Url": "https://your-bucket.cos.ap-guangzhou.myqcloud.com/input/video.mp4"}},"OutputStorage": {"Type": "COS","CosOutputStorage": {"Bucket": "your-bucket","Region": "ap-guangzhou"}},"OutputDir": "/output/","AiAnalysisTask": {"Definition": 29,"ExtendedParameter": "{\\"vremake\\":{\\"mode\\":\\"SwapFaceV2\\",\\"swapFaceV2\\":{\\"srcFaces\\":[[\\"https://your-bucket.cos.../p1_ref1.jpg\\",\\"https://your-bucket.cos.../p1_ref2.jpg\\"],[\\"https://your-bucket.cos.../p2_ref1.jpg\\"]],\\"dstFaces\\":[\\"https://your-bucket.cos.../p1_dst.jpg\\",\\"https://your-bucket.cos.../p2_dst.jpg\\"]}}}"}}
ExtendedParameter 需要对 JSON 字符串进行转义。AiAnalysisResultSet[0].VideoRemakeTask.Output.Path → 输出视频路径AiAnalysisResultSet[0].VideoRemakeTask.Output.OutputStorage → 输出存储信息
ExtendedParameter 扩展参数说明ExtendedParameter 传入,顶层结构为:{"vremake": {"mode": "<模式名>","<模式参数对象>": { ... }}}
功能 | mode 值 |
AI 换脸 | SwapFaceV2 |
AI 换人 | SwapCharacter |
画中画 | PicInPic |
背景扩展 | BackgroundExtend |
垂直填充 | VerticalExtend |
水平填充 | HorizontalExtend |
ExtendedParameter 扩展参数示例:{"vremake": {"mode": "SwapFaceV2","swapFaceV2": {"srcFaces": [["<人物1参考图1>", "<人物1参考图2>"],["<人物2参考图1>"]],"dstFaces": ["<人物1目标脸>","<人物2目标脸>"]}}}
参数 | 必选 | 类型 | 说明 |
srcFaces | 是 | string[][] | 视频中需要被替换的人物列表。外层下标对应一个人物,内层是该人物的全部参考图(不同角度/表情)。每人至少 1 张,单图 < 10M。 |
dstFaces | 是 | string[] | 目标人脸图 URL 列表,与 srcFaces 按人物一一对应,长度必须相等。每人 1 张,单图 < 10M。 |
srcFaces[i] 的全部参考图对应同一个人物,建议提供多张正面和侧面图以提升追踪精度。dstFaces[i] 建议使用正脸无遮挡的清晰照片。<成品文件名>_intermediates/ 目录。该目录中的 project.json 是整个项目的单一事实源,后续微调操作均基于此文件进行。<OutputDir>/├── <finalOutBase>.mp4 # 最终成品视频└── <finalOutBase>_intermediates/├── project.json # 项目描述文件(微调的核心依据)├── scenes/│ ├── scene_000.mp4 # 切镜后的分镜视频│ ├── scene_001.mp4│ └── ...├── masks/│ ├── scene_000_face_0.mp4 # 各分镜的人脸轨迹 mask│ ├── scene_000_face_1.mp4│ └── ...└── swapped/├── scene_000.mp4 # 各分镜的换脸结果├── scene_001.mp4└── ...
{"faces": [{"face_id": "face_0","face_ref_urls": ["<人物0参考图1>", "<人物0参考图2>"],"face_dst_url": "<人物0目标脸>"}],"scenes": [{"video": "<分镜源视频URL>","dst_video": "<分镜换脸结果URL>","start_time": 0,"end_time": 5.32,"faces": [{"face_id": "face_0","face_ref_urls": ["<参考图URL>"],"face_dst_url": "<目标脸URL>","face_mask_url": "<人脸轨迹mask视频URL>"}]}],"dst_video": "<最终成品视频URL>"}
字段 | 类型 | 说明 |
faces | object[] | 项目级人物列表,由入参 srcFaces/dstFaces 派生,按 face_<i> 编号。 |
scenes | object[] | 按镜头切片得到的分镜列表,数组顺序即拼接顺序。 |
scenes[i].video | string | 该分镜的源视频 URL。 |
scenes[i].dst_video | string | 该分镜换脸后的结果视频 URL。 |
scenes[i].start_time / end_time | float | 分镜在原始视频中的起止时间(秒)。 |
scenes[i].faces[j].face_mask_url | string | 该人物在本分镜的人脸轨迹 mask 视频,可人工微调后回写。 |
dst_video | string | 全部分镜拼接后的最终成品视频 URL。 |
project.json 在回调上报前完成最终落盘,读到的一定是终态。project.json,可以对任意分镜进行微调后重新生成:SwapFaceV2(一把梭)│ 产出 project.json▼对某个分镜重新追踪 → SwapFaceV2TrackFace│ 回写 face_mask_url▼对某个分镜重新换脸 → SwapFaceV2SwapFace│ 回写 dst_video▼重新拼接整片 → SwapFaceV2Concat│ 更新 project.dst_video▼保存 project.json 到 COS 同一路径(幂等覆盖)
project.json 对应字段,并将整份 JSON 重新 PUT 回用户 COS 的同一路径。project.json,可以对任意分镜进行微调后重新生成:SwapFaceV2(一把梭)│ 产出 project.json▼对某个分镜重新追踪 → SwapFaceV2TrackFace│ 回写 face_mask_url▼对某个分镜重新换脸 → SwapFaceV2SwapFace│ 回写 dst_video▼重新拼接整片 → SwapFaceV2Concat│ 更新 project.dst_video▼保存 project.json 到 COS 同一路径(幂等覆盖)
mode | 用途 | 计费说明 |
SwapFaceV2TrackFace | 仅追踪人脸(单分镜):输出人脸轨迹 mask。 | 收取“视频重制 – AI 换脸”费用。 |
SwapFaceV2SwapFace | 仅换脸(单分镜):输入 mask + 目标脸,输出本分镜的换脸结果视频。 | 收取“视频重制 – AI 换脸”费用。 |
SwapFaceV2Concat | 仅拼接:输入是多段视频 URL(videoUrls),按数组顺序统一分辨率和帧率拼接为最终成品视频。 | 收取“视频重制 – 画面调整”费用。 |
project.json 对应字段,并将整份 JSON 重新 PUT 回用户 COS 的同一路径。{"vremake": {"mode": "SwapFaceV2TrackFace","swapFaceV2TrackFace": {"srcFaces": [["<人物1参考图1>", "<人物1参考图2>"],["<人物2参考图1>"]]}}}
face_mask_url(人脸轨迹 mask 视频)。{"vremake": {"mode": "SwapFaceV2SwapFace","swapFaceV2SwapFace": {"faces": [{"face_id": "face_0","mask_url": "<追踪输出的mask视频URL>","dst_face_url": "<目标人脸图URL>"}]}}}
{"vremake": {"mode": "SwapFaceV2Concat","swapFaceV2Concat": {"videoUrls": ["<分镜1换脸结果URL>","<分镜2换脸结果URL>"]}}}
InputInfo 指定外部音频源(推荐传入原始整片),避免分片拼接时的音频卡顿。{"vremake": {"mode": "SwapCharacter","swapCharacter": {"srcCharacter": "<原视频中人物的正面全身图URL>","character": "<目标人物的正面全身图URL>"}}}
参数 | 必选 | 类型 | 说明 |
srcCharacter | 是 | string | 原视频中人物的 URL(正面全身照)。 |
character | 是 | string | 目标替换人物的 URL(正面全身照)。 |
templateId | 否 | string | 模板 ID,可实现特定效果(如仅换头),默认为全身换人。 |
{"vremake": {"mode": "PicInPic","picInPic": {"llmPrompt": "生成一张科技感背景图片"}}}
参数 | 必选 | 类型 | 说明 |
llmVideoPrompt | 二选一 | string | 生成背景视频的提示词。 |
llmPrompt | 二选一 | string | 生成背景图片的提示词。 |
randomMove | 否 | bool | 是否随机移动,默认 false。 |
frontRect | 否 | Rect | 上层视频的位置与大小(x/y 默认居中,width/height 默认 0.5)。 |
{"vremake": {"mode": "BackgroundExtend","backgroundExtend": {"minSceneSecs": 2.0}}}
参数 | 必选 | 类型 | 说明 |
minSceneSecs | 否 | float | 插入扩展画面的最小间隔(秒),默认2.0。 |
{"vremake": {"mode": "VerticalExtend","verticalExtend": {"llmVideoPrompt": "生成一段自然风景视频"}}}
参数 | 必选 | 类型 | 说明 |
llmVideoPrompt | 否 | string | 生成填充视频的提示词,默认"随机生成一个视频"。 |
{"vremake": {"mode": "HorizontalExtend","horizontalExtend": {"llmVideoPrompt": "生成一段城市街景视频"}}}
参数 | 必选 | 类型 | 说明 |
llmVideoPrompt | 否 | string | 生成填充视频的提示词,默认"随机生成一个视频"。 |
文档反馈