前置条件
- 准备有效的 AIHubMix API Key,通过环境变量
AIHUBMIX_API_KEY读取。 - 确认账户已开通目标视频模型和虚拟人像素材能力,并有足够额度。
- 准备模型可以访问的公网 HTTPS 图片直链。
- 准备 Bash、curl 和 jq。
- 创建虚拟人像素材组
创建时将 kind 设置为 virtual_portrait:
201。虚拟组通常直接返回 status=active,授权状态为 not_required。只有 active 且已绑定模型推理厂商素材组的虚拟组才能添加素材。
- 上传图片素材
图片必须是公网可访问的 HTTP(S) 直链,不要使用本地路径、内网地址、Base64 或需要登录的链接。
201 和 status=processing,不表示素材已经可用于视频。建议图片小于 30 MB,宽高均在 300 至 6000 像素之间,宽高比大于 0.4 且小于 2.5。
- 等待素材可用
status=active 才能用于视频。creating、processing 继续查询;failed 检查图片地址和素材要求;reconciling 表示结果待确认,暂不使用。
- 使用虚拟人像生成视频
使用上传接口返回的完整素材 ID,格式为 asset://<asset_id>。不要使用原图片 URL,也不要手工拼接模型推理厂商素材 ID。
active。虚拟人像组固定使用创建时绑定的渠道、账号、地域和 Project。
通过 GET /ai/v1/videos/<video_id> 查询任务。返回 HTTP 200 不等于生成成功,必须检查 status。只有 status=completed 才算生成成功;in_progress 继续查询,failed 或 cancelled 停止并读取 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> 都是占位符,必须替换为前一步接口实际返回的值,不能原样复制执行。
常见错误
删除和排障
虚拟组处于creating 或 reconciling 时,因创建结果仍未知,暂不允许直接删除或自动清理。持续查询不到模型推理厂商素材组时保留本地记录和恢复定位,需要运维核对后处理。
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