Skip to main content
私域虚拟人像素材用于在视频中引用不需要真人确认的虚拟人物形象。本页介绍通过 AIHubMix API 创建虚拟人像素材组、上传图片并生成视频的流程。 本文只介绍私域虚拟人像,不包含公共虚拟人像目录。

前置条件

  • 准备有效的 AIHubMix API Key,通过环境变量 AIHUBMIX_API_KEY 读取。
  • 确认账户已开通目标视频模型和虚拟人像素材能力,并有足够额度。
  • 准备模型可以访问的公网 HTTPS 图片直链。
  • 准备 Bash、curl 和 jq。
虚拟人像不需要创建真人确认 Session,也不能为虚拟人像组创建真人确认 Session。

  1. 创建虚拟人像素材组

创建时将 kind 设置为 virtual_portrait
创建成功返回 HTTP 201。虚拟组通常直接返回 status=active,授权状态为 not_required。只有 active 且已绑定模型推理厂商素材组的虚拟组才能添加素材。

  1. 上传图片素材

图片必须是公网可访问的 HTTP(S) 直链,不要使用本地路径、内网地址、Base64 或需要登录的链接。
上传成功通常返回 201status=processing,不表示素材已经可用于视频。建议图片小于 30 MB,宽高均在 300 至 6000 像素之间,宽高比大于 0.4 且小于 2.5。

  1. 等待素材可用

只有 status=active 才能用于视频。creatingprocessing 继续查询;failed 检查图片地址和素材要求;reconciling 表示结果待确认,暂不使用。

  1. 使用虚拟人像生成视频

使用上传接口返回的完整素材 ID,格式为 asset://<asset_id>。不要使用原图片 URL,也不要手工拼接模型推理厂商素材 ID。
同一次请求引用的私域素材必须属于同一素材组、归当前账户所有,并且均为 active。虚拟人像组固定使用创建时绑定的渠道、账号、地域和 Project。 通过 GET /ai/v1/videos/<video_id> 查询任务。返回 HTTP 200 不等于生成成功,必须检查 status。只有 status=completed 才算生成成功;in_progress 继续查询,failedcancelled 停止并读取 error。任务完成后通过 GET /ai/v1/videos/<video_id>/content 获取 video/mp4 内容。线上验证中,状态查询的 results 可能为空,不能仅依赖 results 判断是否成功。 建议每 15 秒查询一次,并设置本地等待上限。任务变为 completed 后,再请求 /ai/v1/videos/<video_id>/content 保存视频文件。示例中的 <group_id><asset_id><video_id><unique-id> 都是占位符,必须替换为前一步接口实际返回的值,不能原样复制执行。

常见错误

删除和排障

虚拟组处于 creatingreconciling 时,因创建结果仍未知,暂不允许直接删除或自动清理。持续查询不到模型推理厂商素材组时保留本地记录和恢复定位,需要运维核对后处理。 API Key 只通过环境变量传入,不写入脚本、日志或文档。反馈问题时提供发生时间、HTTP 状态、错误码、请求编号和资源 ID,不提供 API Key 或带签名的图片地址。

常见问题

虚拟人像需要真人确认吗?

不需要。创建素材组时指定 kind=virtual_portrait,组授权状态为 not_required

为什么图片上传成功后还不能生成视频?

图片通常会先处于 processing。必须查询到 status=active 后再提交视频任务。

视频任务完成后如何获取文件?

查询到 status=completed 后,请求 GET /ai/v1/videos/<video_id>/content 获取视频文件。 更新时间:2026-09-11