asset://素材ID 引用。
素材库接口采用与火山引擎方舟一致的 Action 风格:所有操作都是同一个 URL 上的 POST 请求,通过查询参数 Action 区分。
鉴权方式
素材管理与真人认证接口支持以下两种鉴权方式。两种方式使用同一份账号素材数据,并受对应 API Key 的额度、状态、有效期和访问策略约束。API Key(Bearer)
火山官方 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)无需自建公网 URL,直接把本地文件作为 注册视频 / 音频素材:与上面完全一致,只需带上 两种方式返回的信封完全一致,后续轮询状态也相同;URL 方式要求公网可访问。素材约束按类型区分:
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)file 字段上传即可(GroupId / Name / AssetType 用表单字段传递):AssetType(此处以视频为例,音频把值换成 Audio 即可)。- 图片(
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
Status 变为 Active 后即可使用;Failed 需检查图片后重新上传(Error.Code / Error.Message 字段给出原因)。4
在视频生成中引用
管理接口
列出素材组 / 素材
Filter
为兼容旧写法,
Filter 也接受单数形式 GroupId / Status(等价于只含一个元素的对应数组)。SortBy:素材支持CreateTime/UpdateTime/GroupId,素材组支持CreateTime/UpdateTime,默认CreateTime。SortOrder:Desc(默认)/Asc。
游标分页翻页示例:
素材 / 素材组字段
素材项字段(ListAssets 时为 Result.Items 数组的每个元素,GetAsset 时直接作为 Result 返回):
素材组项字段(
ListAssetGroups 时为 Result.Items 数组的每个元素,GetAssetGroup 时直接作为 Result 返回)为:Id、Name、Description、GroupType、ProjectName、CreateTime、UpdateTime(素材组没有 Status 字段)。
重命名 / 修改描述
删除素材 / 素材组
"Result": {}。
错误码
素材注册操作在平台侧有自动排队机制:短时突发请求会先排队等待(最长 5 秒)而不是立即失败,超出等待窗口才返回 429。
常见问题
素材可以在控制台网页上管理吗?
素材可以在控制台网页上管理吗?
可以。控制台「资产管理」页面与本 API 操作的是同一个素材库,网页上传的素材同样可以在 API 中引用,反之亦然。
素材会保存多久?
素材会保存多久?
素材 ID 长期有效。平台不长期存储素材原图,图片由官方素材库托管,访问链接会在每次查询时自动刷新。
不同账号之间的素材隔离吗?
不同账号之间的素材隔离吗?
是。素材、素材组、认证会话都绑定账号,跨账号查询、引用、删除均会返回 404。
想让角色一致性更好,怎么选素材?
想让角色一致性更好,怎么选素材?
建议同一角色上传两张图并同时引用:一张正面全身照 + 一张表情自然的面部特写。
真人照片上传报错?
真人照片上传报错?
真实人脸必须上传到真人认证产生的
LivenessFace 素材组。向普通 AIGC 组上传真人照片会在内容审核阶段失败(素材状态 Failed)。流程见 真人认证接口。相关文档
真人认证接口
真实人像素材的活体认证流程
素材引用实战
端到端代码示例
视频生成 API
生成参数详解