媒体指南

Seedance 素材与真人验证

在 Seedance 中复用图片、视频、音频或经过验证的真人

Seedance 素材可以反复用于视频生成,不必每次重新导入。商品、风格和虚拟人物可以直接建立素材;真人素材必须取得本人同意并完成人脸验证。

选择素材类型

想复用的内容怎么做
只用一次的图片在支持的图片字段中传入 URL;这不会创建可复用素材 ID
复用虚拟人、商品或风格创建 aigc_avatar 组,创建素材,等待 ACTIVE,再使用素材 ID
复用真人完成视觉验证,取得 GroupId,在该组中创建素材,等待 ACTIVE,再使用素材 ID
迁移火山素材客户端保留 Action 字段,使用素材 Action(火山兼容)

素材组与素材

对象字段含义
素材组group_id把同一人物、商品或风格的素材放在一起。
素材id一张图片、一段视频或一段音频。变为 ACTIVE 后,用这个 ID 生成视频。
虚拟人像素材组library_type: "aigc_avatar"用于虚拟人像、产品、风格及其他无需真人验证的可复用引用。
真人素材组library_type: "liveness_face"通过真人验证创建。一个组代表一个已验证的真人。

group_id 只用来整理素材,生成视频时要传素材本身的 id。如果返回 Seedance material asset not found or not accessible,请确认 ID 没有填错、素材仍然存在、属于当前组织,并且状态为 ACTIVE。

素材有效期

TokenLab 会保留每个素材,直到你删除该素材或其所在素材组。TokenLab 一侧不会因为长期未使用而清理素材。

上游 Seedance 服务方可能在素材 30 天未被使用后,清理它自己的工作副本。这不会删除你的素材,也不会改变素材 ID:下次在生成请求中使用时,TokenLab 会自动根据已保存的原文件重新准备一份上游副本。

  • 清理后的首次生成可能稍慢,因为需要准备新的副本。如果副本尚未就绪,请求会返回 seedance_material_preparing,请稍后重试。
  • 删除素材或素材组是永久操作,无法撤销。

图片 URL 与可复用素材

可以在所选模型支持的图片字段中传入公网 HTTP(S) URL 或支持的 data URL。这些输入按普通媒体路径处理,不会自动创建可复用的素材 ID。

需要复用时,先通过素材 API 创建素材,等待 ACTIVE,再使用 material_asset_id、material_asset_ids 或支持的媒体字段中的 asset://<id>。保留首帧、尾帧或参考图的原本用途。

显式指定的素材仍在准备时,POST /v1/videos/generations 返回 409 seedance_material_preparing,并通过 inactive_asset_ids 列出相关素材。查询这些素材直到 ACTIVE,再用相同素材 ID 重试。如果素材为 FAILED,先根据 error_message 修正或重新导入。

真人验证

真人会被反复用于 Seedance 生成时,产品必须取得本人同意并完成人脸验证。

  1. 调用 创建视觉验证会话,传入 CallbackURL,并保存返回的 Result.BytedToken。
  2. 为待验证人员打开 Result.H5Link。如需指定语言,请在 H5 链接后追加 lng。
  3. 验证完成后,浏览器会打开 Result.CallbackURL,并带上 bytedToken、resultCode 等查询参数。
  4. 使用 BytedToken 查询视觉验证结果,直到返回 Result.GroupId。
  5. 保存 GroupId;创建 liveness_face 素材时将其作为 group_id。

BytedToken 的有效期为 30 分钟。两次 Action 请求必须使用相同的 ProjectName。认证使用 Authorization: Bearer <TOKENLAB_API_KEY>,不接受火山引擎 AK/SK 签名。

创建后立即打开返回的 H5Link。Token 的有效期不代表在这段时间内任意时刻都能首次打开验证页面。

也可以在 Seedance 素材 页面检查请求、回调、素材组和验证记录。正式功能仍应直接调用 API。

创建素材组

使用创建素材组新建 aigc_avatar 组。真人组会在验证成功后创建,不能手动伪造成已验证真人。

使用 列出素材组、获取素材组、更新素材组 和 删除素材组 管理已有素材组。

删除素材组也会删除其中所有素材,而且无法恢复。没有删除权限时,API 会返回权限错误。

上传素材

使用创建素材导入一个可从互联网访问的 URL。

aigc_avatar 可以省略 group_id,TokenLab 会使用当前组织的默认组。liveness_face 必须传入 group_id,并且这个 ID 必须来自视觉验证结果。

类型支持的输入
图像jpeg, png, webp, bmp, tiff, gif, heic, heif; ≤ 30 MiB; 宽和高 [300, 6000] px; 宽高比 [0.4, 2.5]
视频mp4, mov; ≤ 200 MiB
音频aac, wav, mp3; ≤ 15 MiB

上表是文件导入限制。导入请求成功不代表媒体或真人验证已经通过。等待素材变为 ACTIVE;如果变为 FAILED,根据 error_message 修正源文件后再导入。

TokenLab 会检查 URL、媒体格式和文件大小。宽高、比例、时长、分辨率、总像素和 FPS 是否合格,还取决于所选模型。

素材需要一些时间处理。请查询获取素材,直到 status 变为 ACTIVE。HTTP 请求成功只表示已经开始处理;状态变为 FAILED 时,请根据 error_message 修改源文件并重新创建。

asset_url 只是素材的导入地址。TokenLab 会返回素材 id,以后生成视频请使用这个 ID。

素材 ID 类似 asset-20260720123456-qn7wr,素材组 ID 类似 group-20260720123456-vrt01。素材会保留在当前组织中,直到你删除素材或整个素材组;上游副本被清理后会自动重建,详见上方素材有效期说明。

一个真人素材组只对应一个人。上传内容会与已经验证的人脸比对;出现多张脸或人物不一致时可能失败。建议准备一张正面全身照和一张清晰的正脸特写。

在视频生成中使用素材

素材变为 ACTIVE 后,调用创建视频时,把它的 id 传给 material_asset_id,多份素材则放进 material_asset_ids。这些素材都会计入 Seedance 的参考数量上限。

REST 还是火山 Action

新接入使用 snake_case 的 /v1/videos/assets* REST API。已有火山客户端可以保留 PascalCase 请求体,改用火山兼容素材 Action。两种 API 访问的是当前组织与 ProjectName 下的同一份素材。

API 示例

下面的示例创建虚拟人像素材组并上传一张图片。素材变为 ACTIVE 后,就可以把返回的素材 ID 用于视频请求。

curl https://api.tokenlab.sh/v1/videos/assets/groups \
  -H "Authorization: Bearer $TOKENLAB_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"library_type":"aigc_avatar","group_name":"Product references"}'

curl https://api.tokenlab.sh/v1/videos/assets \
  -H "Authorization: Bearer $TOKENLAB_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"library_type":"aigc_avatar","group_id":"group-20260720123456-abc12","asset_url":"https://example.com/reference.png","asset_type":"Image"}'

curl https://api.tokenlab.sh/v1/videos/assets/asset-20260720123457-def45 \
  -H "Authorization: Bearer $TOKENLAB_API_KEY"

真人素材必须完成视觉验证并取得 GroupId 后才能上传。

curl 'https://api.tokenlab.sh/api/v3?Action=CreateVisualValidateSession&Version=2024-01-01' \
  -H "Authorization: Bearer $TOKENLAB_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"CallbackURL":"https://yourapp.example.com/seedance/callback","ProjectName":"default"}'

curl 'https://api.tokenlab.sh/api/v3?Action=GetVisualValidateResult&Version=2024-01-01' \
  -H "Authorization: Bearer $TOKENLAB_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"BytedToken":"ZXhhbXBsZS10b2tlbg","ProjectName":"default"}'

使用 Action 上传真人素材

取得验证结果返回的 GroupId 后,将它传给 CreateAsset:

curl 'https://api.tokenlab.sh/?Action=CreateAsset&Version=2024-01-01' \
  -H "Authorization: Bearer $TOKENLAB_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "GroupId":"group-20260720123456-real1",
    "URL":"https://example.com/person-front.png",
    "Name":"Verified front view",
    "AssetType":"Image",
    "ProjectName":"default"
  }'

通过 GetAsset 查询,状态变为 Active 后即可在视频生成中使用素材 ID。

本页内容