外观
Seedance 海外素材库
约 1297 字大约 4 分钟
Seedance 海外素材库提供两个接口:CreateAsset 创建素材,GetAsset 查询素材。两者都使用 POST,请求路径和字段名区分操作。
创建成功后返回的素材 ID 保持 asset-xxx 形式。模型支持素材协议时,可以按 asset://asset-xxx 引用,不要自行转换为其他 ID 格式。
创建海外素材
POST https://mivsub.com/api/v3/open/CreateAsset
Authorization: Bearer sk-frameai-xxxxxxxx
Content-Type: application/json请求体:
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
model | string | 是 | 使用该素材的 Seedance 模型,以渠道实际开通模型为准 |
url / URL | string | 是 | 服务端可直接下载的公网素材 URL |
name / Name | string | 否 | 素材名称 |
AssetType | string | 是 | 素材类型,常见值为 Image |
推荐使用示例中的字段大小写,不要在同一请求里同时传 url 和 URL。
{
"model": "doubao-seedance-2-0-filter-off",
"url": "https://cdn.example.com/reference/original-character.png",
"name": "original-character-reference",
"AssetType": "Image"
}cURL 示例:
curl -X POST "https://mivsub.com/api/v3/open/CreateAsset" ^
-H "Authorization: Bearer sk-frameai-xxxxxxxx" ^
-H "Content-Type: application/json" ^
-d "{\"model\":\"doubao-seedance-2-0-filter-off\",\"url\":\"https://cdn.example.com/reference/original-character.png\",\"name\":\"original-character-reference\",\"AssetType\":\"Image\"}"精简成功响应示例:
{
"id": "asset-xxxxxxxx"
}创建响应字段:
| 字段 | 类型 | 说明 |
|---|---|---|
id | string | 海外素材 ID;部分渠道使用 Id,客户端应兼容读取两种大小写 |
ResponseMetadata | object | 渠道使用 Ark 包裹格式时返回的响应元数据 |
ResponseMetadata.RequestId | string | 上游请求唯一 ID |
ResponseMetadata.Action | string | 通常为 CreateAsset |
Result.Id | string | 渠道使用 Result 包裹格式时的素材 ID |
部分渠道会返回 Id,或使用 ResponseMetadata / Result 包裹结果。FrameAI 不重写成功响应,应保存实际响应中的素材 ID。
模型字段:
model 必须与当前海外素材能力匹配。示例模型仅用于展示请求格式,实际模型名、素材类型和权限以所选渠道为准。 查询海外素材
POST https://mivsub.com/api/v3/open/GetAsset
Authorization: Bearer sk-frameai-xxxxxxxx
Content-Type: application/json请求体:
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
model | string | 是 | 创建素材时使用的 Seedance 模型 |
Id | string | 是 | 创建接口返回的素材 ID |
{
"model": "doubao-seedance-2-0-filter-off",
"Id": "asset-xxxxxxxx"
}cURL 示例:
curl -X POST "https://mivsub.com/api/v3/open/GetAsset" ^
-H "Authorization: Bearer sk-frameai-xxxxxxxx" ^
-H "Content-Type: application/json" ^
-d "{\"model\":\"doubao-seedance-2-0-filter-off\",\"Id\":\"asset-xxxxxxxx\"}"响应示例:
{
"Id": "asset-xxxxxxxx",
"Name": "original-character-reference",
"AssetType": "Image",
"Status": "Active",
"URL": "https://cdn.example.com/reference/original-character.png"
}响应字段:
| 字段 | 类型 | 说明 |
|---|---|---|
Id | string | 查询到的海外素材 ID |
Name | string | 素材名称 |
AssetType | string | 素材类型,例如 Image |
Status | string | Processing、Active、Failed 或 Expired 等状态 |
URL | string | 素材访问地址;状态可用时通常返回 |
Error | object | 查询或处理失败信息,仅失败时可能返回 |
Error.Code | string | 失败错误码 |
Error.Message | string | 失败错误详情 |
ResponseMetadata | object | 渠道使用 Ark 包裹格式时返回的响应元数据 |
Result | object | 渠道使用 Result 包裹格式时返回的业务结果 |
状态处理
| 状态 | 含义 | 客户端处理 |
|---|---|---|
Processing | 素材正在下载、检查或处理 | 3 至 10 秒后继续查询 |
Active | 素材可用 | 可以在支持的生成接口中引用 |
Failed | 素材创建失败 | 检查 URL、格式、模型和上游错误信息 |
Expired | 素材或访问权限已过期 | 重新创建素材 |
不要在 Processing 状态下反复调用 CreateAsset。保存素材 ID,并使用 GetAsset 查询当前任务。
在视频请求中引用
使用火山标准视频格式时,把素材 ID 放入对应素材对象的 URL 字段:
{
"model": "doubao-seedance-2-0-filter-off",
"content": [
{
"type": "text",
"text": "参考 [Image 1] 的原创角色外观,生成角色在城市公园中自然行走的视频"
},
{
"type": "image_url",
"role": "reference_image",
"image_url": {
"url": "asset://asset-xxxxxxxx"
}
}
],
"resolution": "720p",
"ratio": "16:9",
"duration": 5,
"generate_audio": false,
"watermark": false
}必须保留以下结构:
type为image_url。role与type位于同一层,图片使用reference_image。image_url.url使用完整的asset://asset-xxxxxxxx。- 视频任务中的
model应与创建素材时使用的模型能力兼容。
错误处理
本地参数校验错误示例:
{
"error": {
"message": "request body must be a JSON object",
"type": "invalid_request_error",
"code": "InvalidRequest"
}
}
本地错误响应字段:
| 字段 | 类型 | 说明 |
| --- | --- | --- |
| `error.message` | string | 面向调用方的错误描述 |
| `error.type` | string | 错误类别,例如 `invalid_request_error` |
| `error.code` | string | FrameAI 稳定错误码 || HTTP 状态码 | 常见原因 |
|---|---|
400 | 请求体不是 JSON 对象、字段缺失、模型或素材不可用 |
401 | FrameAI API Key 缺失或无效 |
403 | 当前用户或渠道无权创建、查询该素材 |
404 | 素材 ID 不存在,或不属于当前账号 |
502 | 渠道凭证错误、代理失败或海外素材上游不可用 |
检查清单
- 素材 URL 能从公网直接下载,且返回实际媒体内容。
model是渠道已开通的海外 Seedance 模型。AssetType与实际文件类型一致。- 查询时使用创建素材时的同一模型和同一渠道权限。
- 素材状态可用后再提交视频任务。
- 生成请求使用
asset://<素材ID>,并正确填写素材role。