API v1

上传素材

先登记素材,等它可用后在生成请求里用 asset:// 引用。

查看 Markdown
本页内容

素材是登记在平台上的图片、视频或音频。登记一次后,可以在多个生成请求里重复引用。

什么时候用素材

生成请求里的图片、视频和音频有三种来源:直接写 HTTPS 链接、写 base64 data URI,或者引用已登记的素材。同一份文件要反复使用时,登记成素材更省事;只用一次时直接写链接即可。三种来源的规则见「生成视频」。

登记素材

向 POST /v1/assets 发送公开 HTTPS 地址、媒体类型和模型。登记需要 Idempotency-Key,API 密钥需要 service.use 权限。

IDEMPOTENCY_KEY=${IDEMPOTENCY_KEY:-$(uuidgen)}
printf '%s\n' "保存 IDEMPOTENCY_KEY,重试时原样复用:${IDEMPOTENCY_KEY}" >&2
curl --request POST "${CHENVOYA_BASE_URL}/v1/assets" \
  --header "Authorization: Bearer ${CHENVOYA_API_KEY}" \
  --header "Idempotency-Key: ${IDEMPOTENCY_KEY}" \
  --header 'Content-Type: application/json' \
  --data '{
  "url": "https://images.example.test/reference.png",
  "media_type": "image",
  "model": "dreamina-seedance-2-0-260128",
  "name": "reference"
}'

接受后平台在后台下载并校验,响应头 Location 是查询路径。

响应202
{
  "asset_id": "ast-11111111111111111111111111111111",
  "status": "processing"
}

查询状态

用 GET /v1/assets/{asset_id} 查询,直到状态不再是 processing:

状态含义
processing正在下载和校验,还不能引用。
active可以引用;同时返回大小、摘要,以及图片和视频的尺寸、音视频的时长。
unavailable不可用,failure_reason 说明原因。
curl --request GET "${CHENVOYA_BASE_URL}/v1/assets/${ASSET_ID}" \
  --header "Authorization: Bearer ${CHENVOYA_API_KEY}"

在请求里引用

在 image_url、video_url 或 audio_url 的 url 里写 asset:// 加素材 ID。为一个模型登记的素材,也可以用在兼容的其他模型的请求里。

  • 引用仍在处理中的素材返回 409 asset_not_ready,等它变为 active 后用同一个 Idempotency-Key 重试。
  • 素材不属于本团队、不存在或已删除时,统一返回 asset_not_found。
  • 同一个请求里不能把 asset:// 引用和 HTTPS 链接或 base64 混用。

地址和额度

  • 来源地址必须是公开的 HTTPS 地址,最长 2048 个字节,不能带用户信息;不安全的目标地址返回 400 source_url_not_allowed。
  • 团队的素材存储额度用完时返回 429 asset_storage_quota_exceeded;接入容量受限时返回 429 asset_intake_rate_limit_exceeded,稍后重试。

下一步