curl --request POST \
--url https://toapis.com/v1/videos/doubao-seedance-2-0/private-avatar/groups \
--header "Authorization: Bearer $TOAPIS_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
"name": "brand-avatar-group",
"description": "品牌虚拟人像素材组"
}'
curl -sS --request POST \
--url https://toapis.com/v1/videos/doubao-seedance-2-0/private-avatar/groups \
--header "Authorization: Bearer $TOAPIS_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
"name": "brand-avatar-group",
"description": "品牌虚拟人像素材组"
}'
# 记录响应中的:
# data.group_id
{
"success": true,
"message": "",
"data": {
"group_id": "pg_01KXXXXXXX",
"name": "brand-avatar-group",
"description": "品牌虚拟人像素材组"
}
}
seedance-2
Seedance 2 虚拟人像素材
将虚拟人像素材提交到素材库,并在 Seedance 2 视频生成中直接使用
POST
/
v1
/
videos
/
doubao-seedance-2-0
/
private-avatar
/
groups
curl --request POST \
--url https://toapis.com/v1/videos/doubao-seedance-2-0/private-avatar/groups \
--header "Authorization: Bearer $TOAPIS_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
"name": "brand-avatar-group",
"description": "品牌虚拟人像素材组"
}'
curl -sS --request POST \
--url https://toapis.com/v1/videos/doubao-seedance-2-0/private-avatar/groups \
--header "Authorization: Bearer $TOAPIS_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
"name": "brand-avatar-group",
"description": "品牌虚拟人像素材组"
}'
# 记录响应中的:
# data.group_id
{
"success": true,
"message": "",
"data": {
"group_id": "pg_01KXXXXXXX",
"name": "brand-avatar-group",
"description": "品牌虚拟人像素材组"
}
}
国内用户请注意: 中国大陆用户请使用
https://toapis.cn 作为接口地址(Base URL)。文档示例中的 https://toapis.com 请替换为 https://toapis.cn。- 创建虚拟人像素材组
- 上传图片、视频或音频素材
- 查询素材处理状态,并在生成接口中引用
- 可正常访问的公网素材 URL
- 你的 ToAPIs API Key
- 用于后续生成的视频提示词和素材引用方式
本页旧接口仍可使用. 若需在同一个视频任务中自动完成审核, 参阅按需素材审核, 在生成请求中设置
private_asset_review: true. 使用旧 asset:// 引用时必须省略开关或设为 false; 新模式直接拒绝旧引用.Authorizations
string
必填
接入流程
如果你希望直接用命令行测试,推荐先准备这几个变量:export TOAPIS_API_KEY="你的 API Key"
export IMAGE_URL="https://files.example.com/avatar-full-body.jpg"
source_url / IMAGE_URL。
第一步:创建素材组
当你准备上传一组属于同一虚拟角色的素材时,先创建一个素材组。后续你可以把同一角色的不同素材放到同一个组里管理。 调用接口:POST /v1/videos/doubao-seedance-2-0/private-avatar/groups
- 创建一个新的虚拟人像素材组
- 返回后续上传素材要使用的
group_id
curl --request POST \
--url https://toapis.com/v1/videos/doubao-seedance-2-0/private-avatar/groups \
--header "Authorization: Bearer $TOAPIS_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
"name": "brand-avatar-group",
"description": "品牌虚拟人像素材组"
}'
curl -sS --request POST \
--url https://toapis.com/v1/videos/doubao-seedance-2-0/private-avatar/groups \
--header "Authorization: Bearer $TOAPIS_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
"name": "brand-avatar-group",
"description": "品牌虚拟人像素材组"
}'
# 记录响应中的:
# data.group_id
{
"success": true,
"message": "",
"data": {
"group_id": "pg_01KXXXXXXX",
"name": "brand-avatar-group",
"description": "品牌虚拟人像素材组"
}
}
第二步:上传素材
创建好素材组后,你就可以向该组提交素材。每次请求上传一个素材。 调用接口:POST /v1/videos/doubao-seedance-2-0/private-avatar/assets
- 向指定的素材组提交一个素材
- 返回
asset_id - 素材会进入异步处理流程
asset_type:
imagevideoaudio
group_id:素材组 IDasset_type:素材类型source_url:素材公网 URLname:素材名称,可选description:素材描述,可选
curl --request POST \
--url https://toapis.com/v1/videos/doubao-seedance-2-0/private-avatar/assets \
--header "Authorization: Bearer $TOAPIS_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
"group_id": "pg_01KXXXXXXX",
"asset_type": "image",
"source_url": "'"$IMAGE_URL"'",
"name": "full-body"
}'
curl -sS --request POST \
--url https://toapis.com/v1/videos/doubao-seedance-2-0/private-avatar/assets \
--header "Authorization: Bearer $TOAPIS_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
"group_id": "pg_01KXXXXXXX",
"asset_type": "image",
"source_url": "'"$IMAGE_URL"'",
"name": "full-body"
}'
# 记录响应中的:
# data.asset_id
# data.asset_url
# data.status
{
"success": true,
"message": "",
"data": {
"asset_id": "pa_01KYYYYYYY",
"asset_url": "asset://pa_01KYYYYYYY",
"group_id": "pg_01KXXXXXXX",
"asset_type": "image",
"source_url": "https://files.example.com/avatar-full-body.jpg",
"status": "processing",
"name": "full-body"
}
}
asset_id:素材 ID,后续查询素材状态时使用asset_url:素材引用地址,后续视频生成时直接使用,例如asset://pa_01KYYYYYYY
第三步:查询素材状态
素材提交后不会立刻可用。你需要轮询查询素材状态,直到它变成active。
调用接口:
GET /v1/videos/doubao-seedance-2-0/private-avatar/assets/{asset_id}
- 查询指定素材当前状态
- 判断该素材是否已经可以在视频生成中使用
curl --request GET \
--url https://toapis.com/v1/videos/doubao-seedance-2-0/private-avatar/assets/pa_01KYYYYYYY \
--header "Authorization: Bearer $TOAPIS_API_KEY"
curl -sS --request GET \
--url https://toapis.com/v1/videos/doubao-seedance-2-0/private-avatar/assets/pa_01KYYYYYYY \
--header "Authorization: Bearer $TOAPIS_API_KEY"
# 查看响应中的:
# data.status
# 当 data.status = active 时,才可以用于视频生成
{
"success": true,
"message": "",
"data": {
"asset_id": "pa_01KYYYYYYY",
"asset_url": "asset://pa_01KYYYYYYY",
"group_id": "pg_01KXXXXXXX",
"asset_type": "image",
"source_url": "https://files.example.com/avatar-full-body.jpg",
"status": "active"
}
}
素材要求与最佳实践
为了提高审核通过率和后续生成效果,建议你优先准备高质量、无遮挡、主体明确的素材。 推荐做法:- 使用稳定可访问的公网 URL,不要使用临时链接
- 同一虚拟角色的素材尽量放在同一素材组中
- 优先准备全身图和面部特写图,方便后续生成时保持形象一致
- 尽量避免模糊、强遮挡、多人同框、强压缩素材
状态说明
string
素材已提交,平台正在审核和处理,暂时还不能用于生成。
string
素材已可用,可以在视频生成接口中引用。
string
素材处理失败。建议检查素材内容、清晰度、访问 URL 是否有效,然后重新提交。
在视频生成中的使用方式
当素材状态变为active 后,你可以在视频生成接口中使用 asset://<ASSET_ID> 来引用它。
调用接口:
POST /v1/videos/generations
asset://<ASSET_ID> 即可。也就是说,如果第二步返回了:
{
"asset_id": "pa_01KYYYYYYY",
"asset_url": "asset://pa_01KYYYYYYY"
}
asset://pa_01KYYYYYYY- 或者直接使用响应里的
asset_url
{
"model": "doubao-seedance-2-0",
"prompt": "让图片1中的角色站在城市夜景中缓慢转身,镜头轻微推进",
"image_with_roles": [
{
"url": "asset://pa_01KYYYYYYY",
"role": "reference_image"
}
]
}
完整 cURL 串联示例
下面是一套按顺序执行的最短流程,适合快速验证接入是否正常:cURL
# 1. 创建素材组
curl -sS --request POST \
--url https://toapis.com/v1/videos/doubao-seedance-2-0/private-avatar/groups \
--header "Authorization: Bearer $TOAPIS_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
"name": "brand-avatar-group",
"description": "品牌虚拟人像素材组"
}'
# 从返回中记录:
# GROUP_ID="pg_01KXXXXXXX"
# 2. 上传素材
curl -sS --request POST \
--url https://toapis.com/v1/videos/doubao-seedance-2-0/private-avatar/assets \
--header "Authorization: Bearer $TOAPIS_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
"group_id": "pg_01KXXXXXXX",
"asset_type": "image",
"source_url": "'"$IMAGE_URL"'",
"name": "full-body"
}'
# 从返回中记录:
# ASSET_ID="pa_01KYYYYYYY"
# ASSET_URL="asset://pa_01KYYYYYYY"
# 3. 查询素材状态,直到 status=active
curl -sS --request GET \
--url https://toapis.com/v1/videos/doubao-seedance-2-0/private-avatar/assets/pa_01KYYYYYYY \
--header "Authorization: Bearer $TOAPIS_API_KEY"
常见注意事项
- 上传成功不等于素材可立即使用,必须等到
status=active - 一个素材组适合同一虚拟角色,不建议把多个无关角色混在同一组
- 素材 URL 需要保持可访问,否则会导致处理失败
- 如果你只拿到了
group_id,还没有拿到asset_id,说明你还没完成“上传素材”这一步 - 生成视频时使用的是
asset_url,也就是asset://<ASSET_ID>,不是原始source_url