Appearance
Seedance 2.0 素材库(人物一致性视频)
文档说明
通过 icover.ai 素材库开放 API(FastAiToken旗下),上传图片入库拿到 asset:// 素材 ID,再经 FASTAITOKEN 网关生成人物一致性视频。支持网页零代码操作与 REST API 批量接入。
icover.ai 是 FastAiToken(fastaitoken)旗下的子产品,一个用于测试 AI 视频生成的在线工具。本素材库及配套 API,是帮助开发者与客户落地「人物一致性视频」业务的服务。
为什么需要素材库
Seedance 2.0 生成「人物一致性」视频时,不能直接上传含人脸的参考图(防深伪拦截),必须先把图片入库成「可信素材」,拿到一个 asset://xxx 形式的素材 ID,再在视频生成请求里引用它。
本服务替你完成入库:你只需要上传图片 → 拿到素材 ID → 生成视频。有两种用法,数据完全互通:
| 用法 | 适合谁 | 需要什么 |
|---|---|---|
| 网页操作 | 所有人,零代码 | 注册登录即可 |
| API 调用 | 需要程序化批量接入的开发者 | 一个「素材库 KEY」 |
互通说明:同一个账号,网页上传的素材和 API 上传的素材在同一个素材库里——API 建的素材会出现在网页的「素材列表 / 存档」和视频生成器的参考图选择器中,网页建的素材也能通过 API 列出。素材按账号隔离,你永远只能看到 / 操作自己的素材。 两把钥匙,不要混用:
- 素材库 KEY(icover.ai 创建,
sk-...):只用于本页的素材库接口(上传 / 入库 / 查询 / 删除)。 - FASTAITOKEN SeeDance2 令牌(api.fastaitoken.com 创建,
sk-...,须勾选SeeDance2分组):只用于视频生成接口。
方式一:网页操作(推荐新手)
打开 icover.ai 素材库页面,注册 / 登录。 在「虚拟人像入库」Tab:选择图片(可多选)→ 点「上传并入库」。
text
* 素材组可以不选,系统自动使用你的「默认素材组」;想按人物分组管理就先新建一个组
* 图片要求:jpeg / png / webp / bmp / tiff / gif / heic;宽高比 0.4–2.5;边长 300–6000px;单张少于 30MB等待十几秒,状态变「可用」后,复制 asset://xxx 素材 ID。 到 icover.ai 视频生成器 生成视频:参考图选「多模态」模式,类型选「素材」,选中你的素材,提示词里用「图片1」指代人物。
真人素材(网页版):「真人认证」Tab 三步走——① 点「生成真人认证链接」,让艺人手机扫码 / 打开链接,登录其火山账号完成活体认证;② 点「查询认证结果」,得到该艺人专属的真人素材组;③ 选中该组,上传素材(图片 / 视频 / 音频),通过人脸一致性校验后拿到 asset:// ID。同一艺人换妆造复用同一组,无需重复认证。
人物一致性小技巧:同一人物的「全身正面图 + 人脸正面无表情特写」放进同一个素材组,效果最好。
方式二:API 调用(开发者)
第 0 步:创建素材库 KEY
登录 icover.ai 后到「设置 → 素材库 KEY」(icover.ai/zh/settings/apikeys)创建一个 KEY,格式 sk-...。

之后所有素材库请求带上请求头:
text
Authorization: Bearer sk-你的素材库KEY第 1 步:上传文件,拿公网 URL
素材文件(图片;真人素材还支持视频 / 音频)需要先变成一个公网可访问的 URL。两种途径任选:
A. 已有公网 URL(你自己的 CDN / 图床)→ 跳过,直接到第 2 步。
B. 传到我们的存储(两步:申请直传地址 → PUT 文件):
bash
# 1. 申请直传地址
curl -X POST https://icover.ai/api/storage/presign \
-H "Authorization: Bearer sk-你的素材库KEY" \
-H "Content-Type: application/json" \
-d '{"ext":"jpg","contentType":"image/jpeg"}'
# → { "code":0, "data": { "uploadUrl":"...", "publicUrl":"https://cdn.icover.ai/..." } }
# 2. 把文件 PUT 到 uploadUrl(注意 Content-Type 要和申请时一致)
curl -X PUT "刚才返回的uploadUrl" \
-H "Content-Type: image/jpeg" \
--data-binary @portrait.jpg
# 成功后,publicUrl 就是你的文件公网地址
# 视频/音频同理:ext/contentType 换成 mp4/video/mp4、mp3/audio/mpeg 等第 2 步:素材入库
bash
curl -X POST https://icover.ai/api/asset-library/assets \
-H "Authorization: Bearer sk-你的素材库KEY" \
-H "Content-Type: application/json" \
-d '{
"imageUrl": "https://cdn.icover.ai/uploads/seedance/xxx.jpg",
"label": "艺人A-正面"
}'
# → 火山原始响应: { ..., "Result": { "Id": "asset-20260702xxxx-xxxxx" } }groupId可不传:自动使用 / 创建你的「默认素材组」。想分组:先POST /api/asset-library/groups {"name":"艺人A"}拿组 ID,再在这里带上"groupId":"group-xxx"label可选,便于在网页端识别
第 3 步:轮询到「可用」
入库是异步的(单图约 13 秒,无 SLA),拿到 Id 后轮询:
bash
curl https://icover.ai/api/asset-library/assets/asset-20260702xxxx-xxxxx \
-H "Authorization: Bearer sk-你的素材库KEY"
# → Result.Status == "Active" 即可用;"Failed" 需重传建议每 3 秒查一次,90 秒未 Active 视为超时排查。
第 4 步:用素材 ID 生成视频(经 FASTAITOKEN)
素材 ID 写成 asset://<Id>,用你自己的 FASTAITOKEN SeeDance2 令牌(不是素材库 KEY)调 FASTAITOKEN:
bash
curl -X POST https://fastaitoken.com/seedance/api/v3/contents/generations/tasks \
-H "Authorization: Bearer sk-你的FASTAITOKEN令牌" \
-H "Content-Type: application/json" \
-d '{
"model": "doubao-seedance-2-0-260128",
"content": [
{"type":"text","text":"图片1中的人物正面微笑,镜头缓慢推近,自然光"},
{"type":"image_url","image_url":{"url":"asset://asset-20260702xxxx-xxxxx"},"role":"reference_image"}
],
"ratio":"16:9","duration":5,"resolution":"720p"
}'
# 返回 task id,轮询 GET .../tasks/{id} 直到 status=succeeded,取 content.video_url提示词里用「图片1」指代素材,不要写 asset ID 原文。
模型选型、定价、分辨率表见 Seedance 2.0 概览,视频生成接口详细参数见 视频生成 API。完整可运行的端到端脚本(上传 → 入库 → 出片 → 下载)见 素材引用实战。
完整接口一览
| 接口 | 方法 | 说明 |
|---|---|---|
/api/storage/presign | POST | 申请文件直传地址 {ext?, contentType?} |
| /api/asset-library/groups | POST / GET | 建素材组 {name, description?} / 列自己的组(含真人组) |
| /api/asset-library/assets | POST / GET | 入库 {groupId?, imageUrl, label?, assetType?}(assetType 可选 Image / Video / Audio,默认 Image)/ 列素材(?groupId=、?pageNumber=、?pageSize= 均可选,默认第 1 页、每页 100 条,pageSize 上限 100) |
| /api/asset-library/assets/{id} | GET / DELETE / PATCH | 查状态 / 删除 / 改标签 {label} |
| /api/asset-library/real-person/sessions | POST / GET | 发起真人认证 {name?} → 返回 H5 认证链接与查询凭证 / 列自己的认证会话 |
| /api/asset-library/real-person/sessions/{id} | POST / PATCH / DELETE | 查询认证结果(成功返回真人素材组 GroupId)/ 改名 {name} / 删除记录 |
| /api/asset-library/records | GET | 你的素材 + 真人认证归档(网页端数据源) |
响应约定:素材库接口成功 / 失败均为火山引擎原始 JSON 原文透传(列表已过滤到你本人);我们自身的错误为纯文本、以 [client] 前缀标识(400/401/403/404/502);records、real-person/sessions 的 GET/PATCH/DELETE、资产 PATCH 为 {code, message, data} JSON(code 0 = 成功)。
真人人脸素材(全自动 API)
真人肖像必须由被拍摄者(艺人)本人完成一次活体认证,从根源锁定肖像权归属。整条链路已全部 API 化,网页端「真人认证」Tab 是同一流程的界面版:
第 1 步:发起认证,拿 H5 链接
bash
curl -X POST https://icover.ai/api/asset-library/real-person/sessions \
-H "Authorization: Bearer sk-你的素材库KEY" \
-H "Content-Type: application/json" \
-d '{"name":"艺人A"}'
# → 火山原文: { "Result": { "BytedToken":"2026...", "H5Link":"https://ark.volcengine.com/..." } }H5Link发给艺人,手机打开(或转成二维码扫码),登录其个人火山账号后完成活体认证。受光线 / 角度影响可能不通过,重试即可BytedToken是查询凭证,我们已随会话保存;GET /api/asset-library/real-person/sessions可随时列出你的会话(含 id / status / h5Link)
第 2 步:艺人完成认证后,查询结果
bash
curl -X POST https://icover.ai/api/asset-library/real-person/sessions/{会话id} \
-H "Authorization: Bearer sk-你的素材库KEY"
# 认证完成 → { "Result": { "GroupId": "group-xxxx" } } ← 该艺人专属真人素材组
# 尚未完成 → 404 NotFound.(火山原文;属正常现象,完成认证后再查)拿到 GroupId 后,会话状态变 authorized,真人素材组已自动归档到你的账号(网页端「素材组」里也能看到)。注意:艺人未完成认证时查询同样返回 NotFound,与凭证失效无法区分;链接长期未用可能失效,重新发起一次会话即可。
第 3 步:向真人组提交素材
与虚拟人像同一个入库接口,带上真人组的 groupId;支持图片 / 视频 / 音频:
bash
curl -X POST https://icover.ai/api/asset-library/assets \
-H "Authorization: Bearer sk-你的素材库KEY" \
-H "Content-Type: application/json" \
-d '{
"groupId": "group-xxxx",
"imageUrl": "https://cdn.icover.ai/uploads/seedance/xxx.jpg",
"label": "艺人A-正面全身",
"assetType": "Image"
}'之后同样轮询到 Active,用 asset://<Id> 生成视频(第 4 步不变)。
真人素材规则与格式:
- 一个真人组只能录同一个人;同一艺人换妆造复用同一组,无需重复认证
- 每次上传都做人脸一致性校验(视频隔秒抽帧全部通过才入库),侧脸 / 多人 / 模糊会导致失败,建议清晰正面素材
- 图片少于 30MB;视频 mp4 / mov、2–15 秒、≤50MB、宽高比 0.4–2.5;音频 mp3 / wav、2–15 秒、≤15MB
注意事项
asset:// ID 请当作秘密保管:素材已在本服务层做隔离(防列出、防删除),但火山侧无法按 ID 鉴权,ID 泄露后同通道的其他调用方可以在生成请求里引用它。
- 图片 URL 有效期:查询 / 列表返回的素材图片预览 URL 是约 12 小时有效的临时地址,不要长期缓存;素材 ID 永久有效
- 限流(火山账号级):查状态 100 QPS,入库等其他操作约 10 QPS,请控制并发并做失败重试
- 网页端状态同步:API 入库后若从未查询过状态,网页「存档」里可能显示「处理中」,到列表页点「拉取列表」即同步为真实状态
火山官方参考文档(复制到浏览器打开):私域素材库指南 volcengine.com/docs/82379/2333565、录入真人形象素材 volcengine.com/docs/82379/2315856。
常见问题
直接传参考图不能包含写实人脸(防深伪拦截会拒绝)。素材库把人像入库成可信素材后,asset:// ID 可以在任意多个生成任务里反复引用,同一角色跨集、跨镜头保持脸部和服装一致——适合漫剧、短剧、IP 角色等系列内容。真人也可以出镜:先走上文的「真人认证」流程即可。 是。FASTAITOKEN 的 SeeDance2 通道就是官方完整能力的 doubao-seedance-2-0-260128,模型参数、分辨率、时长与官方一致,无任何裁剪。模型详情与定价见 Seedance 2.0 概览。 不算真人。现实中不存在对应人物的 AI 生成写实人像(比如用 Nano Banana 等模型生成的人物)属于虚拟人,直接走「虚拟人像入库」即可,没有授权环节。只有真实存在的人的照片才是「真人人脸」——这类图片上传不等于授权,虚拟人像入库通道也不接受,必须被拍摄者本人完成活体认证(见上文「真人人脸素材」)。
text
三类人物素材的区别:
| 素材类型 | 例子 | 怎么用 |
| -------------- | ------------------ | ------------------------------------------- |
| 动漫 / 风格化角色 | 二次元、卡通、3D 卡通角色 | 不含写实人脸,一般不触发拦截:直接用公网 URL / Base64 作参考图,无需入库 |
| 虚拟人(AI 生成写实人像) | 模型生成、现实中无此人(见下图示例) | 走本页「虚拟人像入库」,拿 `asset://` ID 引用 |
| 真人人脸 | 艺人、模特、用户本人的照片 | 走「真人认证」全自动 API 流程,本人活体认证后即可使用 |不需要。虚拟人像入库是全自动的,没有人工审核、没有授权环节:上传后系统自动预处理,约 13 秒状态变「可用」,拿到 asset:// ID 即可直接用于视频生成。只有真人人脸素材需要被拍摄者本人完成活体认证(见上文「真人人脸素材」)。 不能直接复用。火山的素材库和真人认证都跟随底层账号:在其他渠道商入库拿到的 asset:// ID 属于对方的火山账号,在 FASTAITOKEN 通道引用会报 asset not found,需要在本服务重新入库。
text
* **虚拟人像素材**:可以程序化批量迁移——写一个脚本把原素材图片按本页 API 重新上传入库,拿到新的 `asset://` ID 后,把你系统里的旧 ID 更新为新 ID 即可。建议在自己系统里维护一层「素材 ID 映射」,业务侧只存自己的内部 ID,日后切换渠道只需更新映射,不用动业务数据。
* **真人认证素材**:真人认证同样跟随账号,**无法迁移,必须重新认证**——需要被拍摄者本人重新完成活体认证(见上文「真人人脸素材」)。
* **C 端产品建议**:存量素材多的 C 端产品,虚拟素材由后台程序静默迁移,用户无感知;涉及真人认证的部分,可以借「系统升级 / 新版本上线」的时机引导用户重新完成认证,体验上更自然。联系我们
接入过程中遇到任何问题(入库失败、真人认证、批量接入、正式令牌申请等),欢迎随时与我们交流:联系方式见 api.fastaitoken.com 网站首页。