MAPI
视频(Videos)豆包系列人像库审核

人像库审核概述

人像库素材管理与审核接口说明。自 Seedance 2.0 起,含人脸素材须先经本接口审核通过,再以 asset://{asset_id} 引用,否则无法用于视频生成。

概述

人像库自 Seedance 2.0 起配套提供,2.0 及后续版本均须使用。当参考图 / 参考视频 / 首帧等素材中包含人脸时,必须先完成本接口的注册与审核,待 status 为 Active 后,在生视频请求里用 asset://{asset_id} 引用;未审核、未通过,或仍传原始 HTTPS / resolved_url,人脸都无法正确用于视频生成。

不含人脸的纯场景图、产品图,可继续直接传公网 HTTPS URL,不必走人像库。

本平台提供人像库 HTTP REST 接口,完成以下能力:

能力说明
素材组管理创建、查询、更新素材组;按登录用户账号隔离
素材管理向指定素材组提交公网 URL(图片 / 视频 / 音频),查询状态,更新名称
状态同步单条查询时实时刷新审核状态;后台另每 5 分钟轮询非终态素材

重要限制(接入前必读)

  • 人脸必审(自 2.0 起):素材含人脸时,须先注册并等待 status === "Active",再在 Seedance 视频生成 的 metadata.content 中传入 asset://{asset_id};跳过审核或误用原图 URL / resolved_url 则人脸无法用于生视频
  • 不提供文件上传:平台不代理 multipart 上传。须先将文件放到自有 OSS/CDN,再调用「创建素材」传入 HTTPS 公网 URL
  • 数据隔离维度:素材组、素材列表均按用户账号隔离,同账号下多把 Key 看到的数据相同
  • 路径参数中的 ID:路径参数 :assetId 为平台返回的 asset_id;:groupId 为平台返回的 group_id,不是本地自增字段 id
  • 计费:人像库接口本身不走 Relay 渠道计费

Base URL

https://api.mapi.zone/v1/portrait/...

接入准备

获取 API Token

在平台控制台创建 API 令牌,记下完整 Key(常见形态:sk-xxxxxxxx)。

请求头

所有接口均需携带:

Header必填说明
Authorization是Bearer {token}
Content-TypePOST / PUT 时建议application/json

通用约定

统一响应结构

所有接口返回 HTTP 200,通过 success 字段区分成功 / 失败:

成功:

{
  "success": true,
  "message": "",
  "data": { ... }
}

失败:

{
  "success": false,
  "message": "人类可读的错误说明"
}

HTTP 状态码始终为 200,业务错误通过 success: false + message 体现。401 / 403 由认证中间件在鉴权层返回。

分页参数(列表接口通用)

Query 参数类型默认值说明
pinteger1页码,从 1 开始
page_sizeinteger20每页数量,最大 100

分页响应结构(data 字段内):

{
  "page": 1,
  "page_size": 20,
  "total": 55,
  "items": [ ... ]
}

时间格式

created_at、updated_at 为 RFC3339 时间字符串,例如:2026-05-20T18:12:05.09398+08:00

枚举大小写

  • asset_type 必须为 Image、Video、Audio(首字母大写)
  • group_type 不传时服务端默认 AIGC

接口一览

序号方法路径说明
1POST/v1/portrait/groups创建素材组
2GET/v1/portrait/groups查询素材组列表(分页)
3PUT/v1/portrait/groups/{groupId}更新素材组名称 / 描述
4POST/v1/portrait/assets向素材组注册素材 URL
5GET/v1/portrait/assets查询素材列表(分页,可按组过滤)
6GET/v1/portrait/assets/{assetId}查询单条素材详情;非终态时实时刷新状态
7PUT/v1/portrait/assets/{assetId}更新素材名称

审核状态说明

状态枚举

状态值含义是否终态
Submitted已提交,排队处理中(创建后初始状态)否
Processing处理 / 审核中否
Active审核通过,可用 asset://{asset_id} 引用是
Failed处理失败(URL 不可达、格式不符、审核拒绝等)是

终态定义:Active、Failed。处于终态时,单条查询接口不再实时刷新。

状态更新来源

机制触发时机说明
单条查询调用时即时非终态时实时查询上游并写库
后台轮询每 5 分钟扫描所有非终态素材并刷新

接入建议

  1. 创建素材后,用 GET /v1/portrait/assets/{assetId} 轮询(建议间隔 3~10 秒)直到 status 为终态;不要依赖列表接口或后台 5 分钟同步来等待审核。
  2. 仅展示列表时,用 GET /v1/portrait/assets 即可。
  3. 含人脸素材须确认 status === "Active" 后,再用 asset://{asset_id} 提交生视频。

审核通过后如何引用

生视频请求里,把 asset_id 拼成 asset://{asset_id},写入 metadata.content[].image_url.url(视频 / 音频同理):

{
  "type": "image_url",
  "image_url": { "url": "asset://asset-20260520181205-vvds9" },
  "role": "reference_image"
}
写法是否可用说明
asset://{asset_id}必须用这个保留人像库授权上下文
创建时的原始 HTTPS / source_url否(含人脸时)会被风控拦截或丢失人物一致性
详情里的 resolved_url否多为动态签名地址,会过期,且丢失授权上下文;仅作审核通过旁证
本地自增 id否不是素材 ID
asset://{group_id}否group_id 与 asset_id 不可混用
在 prompt 里写 asset://...否提示词用「图片 1」「图片 2」指代,不要写 asset ID 原文

提示词指代:content 中第 1 张图 =「图片 1」,第 2 张 =「图片 2」;视频 / 音频同理为「视频 1」「音频 1」。

ID 对照:

业务称呼创建响应字段列表字段用途
素材组 IDgroup_idremote_group_idPOST /assets 的 group_id
素材 IDasset_idremote_asset_id轮询路径、以及 asset://{asset_id}
本地自增 IDidid不用

推荐调用流程

sequenceDiagram
    participant Client as 接入方
    participant API as 本平台 /v1/portrait

    Client->>API: POST /groups(创建素材组)
    API-->>Client: data.group_id

    Client->>Client: 上传文件到自有 CDN,得到公网 URL

    Client->>API: POST /assets(group_id + url + asset_type)
    API-->>Client: data.asset_id, status=Submitted

    loop 直到终态(Active 或 Failed)
        Client->>API: GET /assets/{assetId}
        API-->>Client: data.status
    end

    Client->>Client: status=Active 后拼 asset://{asset_id},写入生视频 content

最小可行步骤:

  1. POST /v1/portrait/groups → 保存 data.group_id(列表复用时用 remote_group_id)
  2. 将素材上传至公网存储 → 得到 https://...
  3. POST /v1/portrait/assets → 立刻保存 data.asset_id
  4. 循环 GET /v1/portrait/assets/{asset_id} 直至 data.status 为 Active / Failed
  5. status = Active 后,用 asset://{asset_id} 写入 metadata.content 发起视频生成

错误排查

现象可能原因建议
Token 相关错误未传 Authorization、Key 错误、过期、额度耗尽检查控制台令牌状态与请求头格式
素材组名称不能为空 / 创建组失败name 为空、含中文/空格、未以 group- 开头使用 group-xxx(仅字母、数字、-)
group_id 不能为空 / url 不能为空必填字段缺失,或误用本地 id用创建组返回的 group_id,或列表的 remote_group_id
asset_type 须为 Image / Video / Audio大小写或拼写错误使用三种枚举之一
上游服务调用失败渠道凭据错误、组 ID 无效、URL 无法拉取联系平台管理员;自查 URL 公网可达性
素材不存在assetId 写错、用了本地 id 而非 asset_id使用创建接口返回的 data.asset_id
长期 Processing上游审核排队或 URL 拉取慢继续轮询单条查询;检查 refresh_error 字段
列表状态滞后列表不实时查询上游生成前必须用单条 GET 接口
生视频报真人素材 / 风控,或人物不像参考图人脸图仍传了 HTTPS / resolved_url等 Active 后改为 asset://{asset_id}

最后更新于