出于防深度伪造要求,Seedance 2.0 不允许把明星人脸图片直接放进生成请求。想让视频里的角色保持一致(尤其是真人形象),需要先把图片放进素材库、拿到素材 ID,再在生成请求中以 asset://素材ID 引用。 素材库接口采用与火山引擎方舟一致的 Action 风格:所有操作都是同一个 URL 上的 POST 请求,通过查询参数 Action 区分。

鉴权方式

素材管理与真人认证接口支持以下两种鉴权方式。两种方式使用同一份账号素材数据,并受对应 API Key 的额度、状态、有效期和访问策略约束。

API Key(Bearer)

素材库与视频生成可以使用同一个 LoopRouter API Key,无需单独申请素材库密钥。素材归属于你的账号,其他用户无法查询或引用。

火山官方 AK/SK(HMAC-SHA256)

也可以使用 API Key 所绑定的 Access Key ID(AK) 和 Secret Access Key(SK),按照火山官方 HMAC-SHA256 方式签名。已有火山客户端只需把 Endpoint 换成 https://api.looprouter.com,并替换为 LoopRouter API Key 页面生成的 AK/SK;Action、Version、请求体和响应解析均保持不变。 火山签名请求使用根路径 /,Service 为 ark,Region 推荐 cn-beijing。下面示例使用火山官方 Go SDK为 CreateAssetGroup 请求签名:
AK/SK 方式支持官方 JSON / 公网 URL 素材请求。本地文件 multipart/form-data 上传是 LoopRouter 扩展能力,请继续使用 API Key(Bearer)认证。视频生成接口也继续使用 API Key;AK/SK 仅用于本模块的素材管理与真人认证 Action。

素材类型与处理方式

接口一览

响应统一为方舟风格信封:
出错时 ResponseMetadata 内会包含 Error: {Code, Message},并伴随对应的 HTTP 状态码。

完整流程

1

创建素材组

2

注册素材(上传素材)

素材注册支持两种上传方式:公网媒体 URL(JSON)或本地媒体文件(multipart/form-data)。以下示例使用 API Key;公网 URL 方式也可以改用上文的火山官方 AK/SK 签名,本地文件方式仅支持 API Key。素材可以是图片 / 视频 / 音频:用 AssetType 字段指定为 Image / Video / Audio(大小写不敏感),不传时默认为 Image。下方示例以图片为例;注册视频 / 音频时显式带上 AssetType(JSON 方式加字段 "AssetType": "Video",本地文件方式加表单字段 -F "AssetType=Video")。上传的文件类型需与 AssetType 匹配(Image → image/*、Video → video/*、Audio → audio/*),否则会被拒绝。方式一:公网媒体 URL(JSON)
方式二:本地文件上传(multipart/form-data)无需自建公网 URL,直接把本地文件作为 file 字段上传即可(GroupId / Name / AssetType 用表单字段传递):
注册视频 / 音频素材:与上面完全一致,只需带上 AssetType(此处以视频为例,音频把值换成 Audio 即可)。
两种方式返回的信封完全一致,后续轮询状态也相同;URL 方式要求公网可访问。素材约束按类型区分:
  • 图片(Image):格式 jpeg/png/webp/bmp/tiff/gif/heic/heif,宽高比 (0.4, 2.5),边长 (300, 6000)px,单文件小于 30MB。
  • 视频(Video)/ 音频(Audio):不同 Seedance 模型支持的输入音视频时长上限不同,请以对应模型规格为准;建议上传前记录时长,便于区分哪些素材可用于目标模型。
本地文件上传会由平台先把文件暂存到对象存储再注册,因此需要平台已开启对象存储;URL 方式不受此限制。真人组(LivenessFace)与虚拟组(AIGC)都支持这两种注册方式。
3

轮询素材状态至 Active

素材注册为异步流程,通常十几秒内完成。建议每 3 秒轮询一次,Status 变为 Active 后即可使用;Failed 需检查图片后重新上传(Error.Code / Error.Message 字段给出原因)。
4

在视频生成中引用

提示词中请用「图片1」「图片2」(按 content 数组顺序)指代素材,不要把 asset- 开头的素材 ID 写进提示词文本。
素材 ID 长期有效并可直接用于生成,请像密钥一样妥善保管,不要泄露给不信任的一方。

管理接口

列出素材组 / 素材

过滤字段 Filter
为兼容旧写法,Filter 也接受单数形式 GroupId / Status(等价于只含一个元素的对应数组)。
排序
  • SortBy:素材支持 CreateTime / UpdateTime / GroupId,素材组支持 CreateTime / UpdateTime,默认 CreateTime。
  • SortOrder:Desc(默认)/ Asc。
分页(两种互斥模式)
两种分页模式不能混用:同时传 PageNumber / PageSize 与 NextToken / MaxResults 会返回 400 InvalidParameter。不传任何分页参数时默认走游标分页、每页 10 条。
游标分页翻页示例:

素材 / 素材组字段

素材项字段(ListAssets 时为 Result.Items 数组的每个元素,GetAsset 时直接作为 Result 返回): 素材组项字段(ListAssetGroups 时为 Result.Items 数组的每个元素,GetAssetGroup 时直接作为 Result 返回)为:Id、Name、Description、GroupType、ProjectName、CreateTime、UpdateTime(素材组没有 Status 字段)。
ProjectName 是可选请求字段,仅用于在响应中原样回显、方便你按项目组织素材;不传时默认为 default。

重命名 / 修改描述

删除素材 / 素材组

删除操作成功返回 "Result": {}。

错误码

素材注册操作在平台侧有自动排队机制:短时突发请求会先排队等待(最长 5 秒)而不是立即失败,超出等待窗口才返回 429。

常见问题

可以。控制台「资产管理」页面与本 API 操作的是同一个素材库,网页上传的素材同样可以在 API 中引用,反之亦然。
素材 ID 长期有效。平台不长期存储素材原图,图片由官方素材库托管,访问链接会在每次查询时自动刷新。
是。素材、素材组、认证会话都绑定账号,跨账号查询、引用、删除均会返回 404。
建议同一角色上传两张图并同时引用:一张正面全身照 + 一张表情自然的面部特写。
真实人脸必须上传到真人认证产生的 LivenessFace 素材组。向普通 AIGC 组上传真人照片会在内容审核阶段失败(素材状态 Failed)。流程见 真人认证接口。

相关文档

真人认证接口

真实人像素材的活体认证流程

素材引用实战

端到端代码示例

视频生成 API

生成参数详解