docs: v0.18.3 文档整理 + 新火山 API 文档 + changelog
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 5m38s
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 5m38s
- 新增 4 个火山官方 API 文档(Seedance 2.0 1080P / seedance 模型价格 / seedance 2.0 系列教程 / 创建视频生成任务API) - 归档 6 个过期文档到 docs/archive/(旧 Seedance API 邀测版 / 旧 Assets API 邀测版 / celery 轮询修复 / design-review / prd / test-report) - 新增 docs/todo/ 目录(提示词 AI 优化功能待办) - changelog.md 补 v0.18.3 条目 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
dafdc8983f
commit
624e12ae46
85
docs/API文档/Seedance 2.0 1080P.md
Normal file
85
docs/API文档/Seedance 2.0 1080P.md
Normal file
@ -0,0 +1,85 @@
|
||||
# [请填写客户名称]Seedance 2.0 1080P
|
||||
|
||||
> 本文档仅供方舟保底客户查阅,请勿发给没有签约保底的客户
|
||||
|
||||
### 功能说明
|
||||
|
||||
⚠️❗️❗️:目前seedance2.0产出的1080p暂时无法支持产物受信功能,即seedance2.0产出的含有人脸的1080p视频将接受安全审查,如果您需要参考含有人脸的1080p视频,请您将该视频上传至虚拟素材库
|
||||
|
||||
#### **功能1 输出视频分辨率 支持 1080P**
|
||||
|
||||
* **上线时间**:预计国内外4月16日22:00完成上线
|
||||
|
||||
* **用户范围**:
|
||||
|
||||
* **“抢先体验计划”:功能上线后 72 小时内,部分用户可抢先体验**,官网文档暂不更新
|
||||
|
||||
* 72 小时后,面向全部用户开放,官网文档同步公开
|
||||
|
||||
* **支持模型**:仅限Seedance 2.0(Seedance 2.0 fast 不支持)
|
||||
|
||||
* **使用方式:**在请求参数`resolution`中传入`1080p`
|
||||
|
||||
```c++
|
||||
curl https://ark.cn-beijing.volces.com/api/v3/contents/generations/tasks \
|
||||
-H "Content-Type: application/json" \
|
||||
-H "Authorization: Bearer $ARK_API_KEY" \
|
||||
-d '{
|
||||
"model": "doubao-seedance-2-0-260128",
|
||||
"content": [
|
||||
{
|
||||
"type": "text",
|
||||
"text": "全程使用视频1的第一视角构图,全程使用音频1作为背景音乐。第一人称视角果茶宣传广告,seedance牌「苹苹安安」苹果果茶限定款;首帧为图片1,你的手摘下一颗带晨露的阿克苏红苹果,轻脆的苹果碰撞声;2-4 秒:快速切镜,你的手将苹果块投入雪克杯,加入冰块与茶底,用力摇晃,冰块碰撞声与摇晃声卡点轻快鼓点,背景音:「鲜切现摇」;4-6 秒:第一人称成品特写,分层果茶倒入透明杯,你的手轻挤奶盖在顶部铺展,在杯身贴上粉红包标,镜头拉近看奶盖与果茶的分层纹理;6-8 秒:第一人称手持举杯,你将图片2中的果茶举到镜头前(模拟递到观众面前的视角),杯身标签清晰可见,背景音「来一口鲜爽」,尾帧定格为图片2。背景声音统一为女生音色。"
|
||||
},
|
||||
{
|
||||
"type": "image_url",
|
||||
"image_url": {
|
||||
"url": "https://ark-project.tos-cn-beijing.volces.com/doc_image/r2v_tea_pic1.jpg"
|
||||
},
|
||||
"role": "reference_image"
|
||||
},
|
||||
{
|
||||
"type": "image_url",
|
||||
"image_url": {
|
||||
"url": "https://ark-project.tos-cn-beijing.volces.com/doc_image/r2v_tea_pic2.jpg"
|
||||
},
|
||||
"role": "reference_image"
|
||||
},
|
||||
{
|
||||
"type": "video_url",
|
||||
"video_url": {
|
||||
"url": "https://ark-project.tos-cn-beijing.volces.com/doc_video/r2v_tea_video1.mp4"
|
||||
},
|
||||
"role": "reference_video"
|
||||
},
|
||||
{
|
||||
"type": "audio_url",
|
||||
"audio_url": {
|
||||
"url": "https://ark-project.tos-cn-beijing.volces.com/doc_audio/r2v_tea_audio1.mp3"
|
||||
},
|
||||
"role": "reference_audio"
|
||||
}
|
||||
],
|
||||
"resolution": "1080p",
|
||||
"generate_audio":true,
|
||||
"ratio": "16:9",
|
||||
"duration": 11,
|
||||
"watermark": false
|
||||
}'
|
||||
```
|
||||
|
||||
#### **功能2 输入视频分辨率 支持 1080P**
|
||||
|
||||
* **功能说明**:对输入视频的总像素限制扩大至 2086876(2206x946),支持传入1080P视频作为参考
|
||||
|
||||
* **上线时间**:预计国内外4月16日 22:00 完成上线
|
||||
|
||||
* **用户范围**:全部用户可用,官网文档同步公开
|
||||
|
||||
* **支持模型**:Seedance 2.0、Seedance 2.0 fast 均支持
|
||||
|
||||
### 费用说明
|
||||
|
||||
1080P 和 720P/480P 视频区分定价
|
||||
|
||||
价格详见:https://www.volcengine.com/docs/82379/1544106?lang=zh#02affcb8
|
||||
@ -1,692 +0,0 @@
|
||||
# 【申请权限填客户名称】Seedance 2.0 & 2.0 fast API文档(邀测用户版)
|
||||
|
||||
该文档目前仅限开白客户使用,发送前请和销管确认客户是否在开白名单内
|
||||
|
||||
***【❗️❗️❗️】该文档限制客户申请权限,只有返回了服务协议的客户方可申请***
|
||||
|
||||
本文介绍 Seedance 2.0 & 2.0 fast 模型相较于存量模型 **新增/配置有区别 **的 API 参数介绍,存量 API 参数的完整介绍参见 [视频生成 API](https://www.volcengine.com/docs/82379/1520758?lang=zh)。
|
||||
|
||||
> 本文档仅限预览及邀测用户使用:
|
||||
>
|
||||
> * 不承诺正式API上线100%一致。
|
||||
>
|
||||
> * 仅限邀测用户阅读,请勿截图/分享给其他人员。
|
||||
>
|
||||
> * 您上传的内容请确保由您原创或已取得授权。
|
||||
|
||||
# 模型能力
|
||||
|
||||
> **Seedance 2.0 和 Seedance 2.0 fast 提供的模型能力一致,**追求最高生成品质,推荐使用 **Seedance 2.0**;更注重成本与生成速度,不要求极限品质,推荐使用 **Seedance 2.0 fast**。
|
||||
|
||||
**Seedance 2.0 & 2.0 fast (有声视频/无声视频)**
|
||||
|
||||
* **多模态参考生视频**:输入参考图片(0\~9)+参考视频(0\~3)+ 参考音频(0\~3)+ 文本提示词(可选)生成 1 个目标视频。支持生成全新视频、编辑视频、延长视频。
|
||||
|
||||
> **注意:不可单独输入音频,应至少包含 1 个参考视频或图片。**
|
||||
|
||||
* **图生视频-首尾帧**:输入首帧图片+尾帧图片+文本提示词(可选)生成 1 个目标视频。
|
||||
|
||||
* **图生视频-首帧**:输入首帧图片+文本提示词(可选)生成 1 个目标视频。
|
||||
|
||||
* **文生视频**:输入文本提示词生成 1 个目标视频。
|
||||
|
||||
|
||||
|
||||
**模型能力对比表:**
|
||||
|
||||
| 模型名称 | | [Seedance 2.0](https://console.volcengine.com/ark/region:ark+cn-beijing/model/detail?Id=doubao-seedance-2-0) | [Seedance 2.0 fast](https://console.volcengine.com/ark/region:ark+cn-beijing/model/detail?Id=doubao-seedance-2-0-fast\&projectName=default) | [Seedance 1.5 pro](https://console.volcengine.com/ark/region:ark+cn-beijing/model/detail?Id=doubao-seedance-1-5-pro\&projectName=default) | [Seedance 1.0 pro ](https://console.volcengine.com/ark/region:ark+cn-beijing/model/detail?Id=doubao-seedance-1-0-pro\&projectName=default) | [Seedance 1.0 pro fast ](https://console.volcengine.com/ark/region:ark+cn-beijing/model/detail?Id=doubao-seedance-1-0-pro-fast\&projectName=default) | [Seedance 1.0 lite i2v](https://console.volcengine.com/ark/region:ark+cn-beijing/model/detail?Id=doubao-seedance-1-0-lite-i2v\&projectName=default) | [Seedance-1.0 lite t2v ](https://console.volcengine.com/ark/region:ark+cn-beijing/model/detail?Id=doubao-seedance-1-0-lite-t2v) |
|
||||
| ------------ | -------- | ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| Model ID | | doubao-seedance-2-0-260128 | doubao-seedance-2-0-fast-260128 | doubao-seedance-1-5-pro-251215 | doubao-seedance-1-0-pro-250528 | doubao-seedance-1-0-pro-fast-251015 | doubao-seedance-1-0-lite-i2v-250428 | doubao-seedance-1-0-lite-t2v-250428 |
|
||||
| 文生视频 | | ✅ | | ✅ | ✅ | ✅ | ✅ | ✅ |
|
||||
| 图生视频-首帧 | | ✅ | | ✅ | ✅ | ✅ | ✅ | ❌ |
|
||||
| 图生视频-首尾帧 | | ✅ | | ✅ | ✅ | ❌ | ✅ | ❌ |
|
||||
| 多模态参考【New】 | 图片参考 | ✅ | | ❌ | ❌ | ❌ | ✅ | ❌ |
|
||||
| | 视频参考 | ✅ | | ❌ | ❌ | ❌ | ❌ | ❌ |
|
||||
| | 组合参考 | ✅ | | ❌ | ❌ | ❌ | ❌ | ❌ |
|
||||
| 编辑视频【New】 | | ✅ | | ❌ | ❌ | ❌ | ❌ | ❌ |
|
||||
| 延长视频【New】 | | ✅ | | ❌ | ❌ | ❌ | ❌ | ❌ |
|
||||
| 生成有声视频 | | ✅ | | ✅ | ❌ | ❌ | ❌ | ❌ |
|
||||
| 联网搜索增强【New】 | | ✅ | | ❌ | [❌](https://p9-arcosite.byteimg.com/obj/tos-cn-i-goo7wpa0wc/f359753773c94d97885008ca1223c9bc) | ❌ | ❌ | ❌ |
|
||||
| 样片模式 | | ❌ | | ✅ | ❌ | ❌ | ❌ | ❌ |
|
||||
| 返回视频尾帧 | | ✅ | | ✅ | ✅ | ✅ | ✅ | ✅ |
|
||||
| 输出视频规格 | 输出分辨率 | 480p, 720p | | 480p, 720p, 1080p | 480p, 720p, 1080p | 480p, 720p, 1080p | 480p, 720p, 1080p | 480p, 720p, 1080p |
|
||||
| | 输出宽高比 | 21:9, 16:9, 4:3, 1:1, 3:4, 9:16 | | | | | | |
|
||||
| | 输出时长 | 4\~15 秒 | | 4\~12 秒 | 2\~12 秒 | 2\~12 秒 | 2\~12 秒 | 2\~12 秒 |
|
||||
| | 输出视频格式 | mp4 | | mp4 | mp4 | mp4 | mp4 | mp4 |
|
||||
| 离线推理 | | [❌](https://p9-arcosite.byteimg.com/obj/tos-cn-i-goo7wpa0wc/f359753773c94d97885008ca1223c9bc) | | ✅ | ✅ | ✅ | ✅ | ✅ |
|
||||
| 在线推理限流 | RPM | 600 | | 600 | 600 | 600 | 300 | 300 |
|
||||
| | 并发数 | 10 | | 10 | 10 | 10 | 5 | 5 |
|
||||
| 离线推理限流 | TPD | - | | 5000亿 | 5000亿 | 5000亿 | 2500亿 | 2500亿 |
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# Creat-创建视频生成任务
|
||||
|
||||
> POST https://ark.cn-beijing.volces.com/api/v3/contents/generations/tasks
|
||||
|
||||
## 请求参数
|
||||
|
||||
|
||||
|
||||
#### **content** `object[]` `必选`
|
||||
|
||||
输入给模型,生成视频的信息,支持文本、图片、音频、视频、样片任务 ID。支持以下几种组合:
|
||||
|
||||
* **文本**
|
||||
|
||||
* **文本(可选)+ 图片**
|
||||
|
||||
* **文本(可选)+ 视频**
|
||||
|
||||
* **文本(可选)+ 图片 + 音频**
|
||||
|
||||
* **文本(可选)+ 图片 + 视频**
|
||||
|
||||
* **文本(可选)+ 视频 + 音频**
|
||||
|
||||
* **文本(可选)+ 图片 + 视频 + 音频**
|
||||
|
||||
***
|
||||
|
||||
**信息类型:**
|
||||
|
||||
* **文本信息**`object`
|
||||
|
||||
输入给模型的提示词信息。
|
||||
|
||||
***
|
||||
|
||||
content.**type **`string` `必选`
|
||||
|
||||
输入内容的类型,此处应为 **text**。
|
||||
|
||||
***
|
||||
|
||||
content.**text **`string` `必选`
|
||||
|
||||
输入给模型的文本提示词,描述期望生成的视频。
|
||||
|
||||
支持中英文。建议中文不超过500字,英文不超过1000词。字数过多信息容易分散,模型可能因此忽略细节,只关注重点,造成视频缺失部分元素。提示词的更多使用技巧请参见 [Seedance 提示词指南](https://www.volcengine.com/docs/82379/1587797)。
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
* **图片信息** `object`
|
||||
|
||||
输入给模型的图片信息。
|
||||
|
||||
***
|
||||
|
||||
content.**type **`string` `必选`
|
||||
|
||||
输入内容的类型,此处应为 **image\_url**。
|
||||
|
||||
***
|
||||
|
||||
content.**image\_url **`object` `必选`
|
||||
|
||||
输入给模型的图片对象。
|
||||
|
||||
***
|
||||
|
||||
content.image\_url.**url **`string` `必选`
|
||||
|
||||
图片 URL 、图片 Base64 编码、素材 ID。
|
||||
|
||||
* 图片 URL:填入图片的公网 URL。
|
||||
|
||||
* Base64 编码:将本地文件转换为 Base64 编码字符串,然后提交给大模型。遵循格式:data:image/<图片格式>;base64,\<Base64编码>,注意 <图片格式> 需小写,如 data:image/png;base64,{base64\_image}。
|
||||
|
||||
* 素材 ID:用于视频生成的预置素材及虚拟人像的 ID,遵循格式:asset://\<ASSET\_ID>,可从 [素材&虚拟人像库](https://console.volcengine.com/ark-stg/region:ark-stg+cn-beijing/experience/vision?modelId=doubao-seedance-2-0-260128) 获取,详细使用请参见[文档](https://www.volcengine.com/docs/82379/2223965?lang=zh)。
|
||||
|
||||
> **传入单张图片要求**
|
||||
>
|
||||
> * 格式:jpeg、png、webp、bmp、tiff、gif
|
||||
>
|
||||
> * 宽高比(宽/高): (0.4, 2.5) 
|
||||
>
|
||||
> * 宽高长度(px):(300, 6000)
|
||||
>
|
||||
> * 大小:单张图片小于 30 MB。请求体大小不超过 64 MB。大文件请勿使用Base64编码。
|
||||
>
|
||||
> * 图片数量:
|
||||
>
|
||||
> * 图生视频-首帧:1 张
|
||||
>
|
||||
> * 图生视频-首尾帧:2 张
|
||||
>
|
||||
> * Seedance 2.0 & 2.0 fast 多模态参考生视频:1\~9 张
|
||||
|
||||
***
|
||||
|
||||
content.**role **`string` `条件必填`
|
||||
|
||||
图片的位置或用途。
|
||||
|
||||
> **注意**
|
||||
>
|
||||
> * **图生视频-首帧**、**图生视频-首尾帧**、**多模态参考生视频**(包括参考图、视频、音频)为 3 种互斥场景,**不可混用**。
|
||||
>
|
||||
> * **多模态参考生视频**可通过提示词指定参考图片作为首帧/尾帧,间接实现“首尾帧+多模态参考”效果。若需严格保障首尾帧和指定图片一致,**优先使用图生视频-首尾帧**(配置 role 为 **first\_frame / last\_frame**)。
|
||||
|
||||
***
|
||||
|
||||
**图生视频-首帧**
|
||||
|
||||
> 需要传入1个 image\_url 对象
|
||||
|
||||
* **字段role取值:**
|
||||
|
||||
* **first\_frame 或不填**
|
||||
|
||||
***
|
||||
|
||||
**图生视频-首尾帧**
|
||||
|
||||
> 需要传入2个 image\_url 对象
|
||||
|
||||
* **字段role取值:**
|
||||
|
||||
* 首帧图片对应的字段 role 为:**first\_frame**,必填
|
||||
|
||||
* 尾帧图片对应的字段 role 为:**last\_frame**,必填
|
||||
|
||||
***
|
||||
|
||||
**图生视频-参考图 **
|
||||
|
||||
> 可传入 1\~9 个 image\_url 对象
|
||||
|
||||
* **字段role取值**:
|
||||
|
||||
* 每张参考图对应的字段 role 均为:**reference\_image**,必填
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
* **视频信息** `object` 
|
||||
|
||||
输入给模型的视频信息。仅 Seedance 2.0 & 2.0 fast 支持输入视频。
|
||||
|
||||
***
|
||||
|
||||
content.**type **`string` `必选`
|
||||
|
||||
输入内容的类型,此处应为 **video\_url**。
|
||||
|
||||
***
|
||||
|
||||
content.**video\_url **`object` `必选`
|
||||
|
||||
输入给模型的视频对象。
|
||||
|
||||
***
|
||||
|
||||
content.video\_url.**url **`string` `必选`
|
||||
|
||||
视频URL、素材 ID。
|
||||
|
||||
* 视频 URL:填入视频的公网 URL。
|
||||
|
||||
* 素材 ID:用于视频生成的预置素材及虚拟人像视频的 ID,遵循格式:asset://\<ASSET\_ID>。可从[素材&虚拟人像库](https://console.volcengine.com/ark-stg/region:ark-stg+cn-beijing/experience/vision?modelId=doubao-seedance-2-0-260128)获取。
|
||||
|
||||
> **传入单个视频要求**
|
||||
>
|
||||
> * 视频格式:mp4、mov。
|
||||
>
|
||||
> * 分辨率:480p、720p
|
||||
>
|
||||
> * 时长:单个视频时长 \[2, 15] s,最多传入 3 个参考视频,所有视频总时长不超过 15s。
|
||||
>
|
||||
> * 尺寸:
|
||||
>
|
||||
> * 宽高比(宽/高):\[0.4, 2.5]
|
||||
>
|
||||
> * 宽高长度(px):\[300, 6000]
|
||||
>
|
||||
> * 画面像素(宽 × 高):\[409600, 927408] ,示例:
|
||||
>
|
||||
> * 画面尺寸 640×640=409600 满足最小值 ;
|
||||
>
|
||||
> * 画面尺寸 834×1112=927408 满足最大值。
|
||||
>
|
||||
> * 大小:单个视频不超过 50 MB。
|
||||
>
|
||||
> * 帧率 (FPS):\[24, 60] 
|
||||
|
||||
***
|
||||
|
||||
content.**role **`string` `条件必填`
|
||||
|
||||
视频的位置或用途。当前仅支持 **reference\_video**。
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
* **音频信息 **`object` 
|
||||
|
||||
输入给模型的音频信息。仅 Seedance 2.0 & 2.0 fast 支持输入音频。注意不可单独输入音频,应至少包含 1 个参考视频或图片。
|
||||
|
||||
***
|
||||
|
||||
content.**type **`string` `必选`
|
||||
|
||||
输入内容的类型,此处应为 **audio\_url**。
|
||||
|
||||
***
|
||||
|
||||
content.**audio\_url **`object` `必选`
|
||||
|
||||
输入给模型的音频对象。
|
||||
|
||||
***
|
||||
|
||||
content.audio\_url.**url **`string` `必选`
|
||||
|
||||
音频 URL 、音频 Base64 编码、素材 ID。
|
||||
|
||||
* 音频 URL:填入音频的公网 URL。
|
||||
|
||||
* Base64 编码:将本地文件转换为 Base64 编码字符串,然后提交给大模型。遵循格式:data:audio/<音频格式>;base64,\<Base64编码>,注意 <音频格式> 需小写,如 data:audio/wav;base64,{base64\_audio}。
|
||||
|
||||
* 素材 ID:用于视频生成的虚拟人的音频素材 ID,遵循格式:asset://\<ASSET\_ID>。可从[素材&虚拟人像库](https://console.volcengine.com/ark-stg/region:ark-stg+cn-beijing/experience/vision?modelId=doubao-seedance-2-0-260128)获取。
|
||||
|
||||
> **传入单个音频要求**
|
||||
>
|
||||
> * 格式:wav、mp3
|
||||
>
|
||||
> * 时长:单个音频时长 \[2, 15] s,最多传入 3 段参考音频,所有音频总时长不超过 15 s。
|
||||
>
|
||||
> * 大小:单个音频不超过 15 MB,请求体大小不超过 64 MB。大文件请勿使用Base64编码。
|
||||
|
||||
***
|
||||
|
||||
content.**role **`string` `条件必填`
|
||||
|
||||
音频的位置或用途。当前仅支持 **reference\_audio** 。
|
||||
|
||||
|
||||
|
||||
#### **service\_tier** `string`
|
||||
|
||||
 Seedance 2.0 & 2.0 fast 暂不支持
|
||||
|
||||
|
||||
|
||||
#### **generate\_audio **`boolean` 
|
||||
|
||||
> Seedance 2.0 & 2.0 fast 默认值: true
|
||||
|
||||
控制生成的视频是否包含与画面同步的声音。
|
||||
|
||||
* true:模型输出的视频包含同步音频。模型会基于文本提示词与视觉内容,自动生成与之匹配的人声、音效及背景音乐。建议将对话部分置于双引号内,以优化音频生成效果。例如:男人叫住女人说:“你记住,以后不可以用手指指月亮。”
|
||||
|
||||
* false:模型输出的视频为无声视频。
|
||||
|
||||
> **说明**
|
||||
>
|
||||
> 生成的有声视频均为单声道,和传入的音频声道数无关。
|
||||
|
||||
####
|
||||
|
||||
#### **draft **`boolean`
|
||||
|
||||
 Seedance 2.0 & 2.0 fast 暂不支持
|
||||
|
||||
|
||||
|
||||
#### **tools **`object[]`
|
||||
|
||||
> 仅 Seedance 2.0 & 2.0 fast 支持
|
||||
|
||||
配置模型要调用的工具。
|
||||
|
||||
***
|
||||
|
||||
tools.**type **`string`
|
||||
|
||||
指定使用的工具类型。
|
||||
|
||||
* web\_search:联网搜索工具。
|
||||
|
||||
> **说明**
|
||||
>
|
||||
> * 开启联网搜索后,模型会根据用户的提示词自主判断是否搜索互联网内容(如商品、天气等)。可提升生成视频的时效性,但也会增加一定的时延。
|
||||
>
|
||||
> * 实际搜索次数可通过 [查询视频生成任务 API](https://www.volcengine.com/docs/82379/1521309?lang=zh) 返回的 usage.tool\_usage.**web\_search** 字段获取,如果为 0 表示未搜索。
|
||||
|
||||
|
||||
|
||||
#### **resolution ** `string`
|
||||
|
||||
> Seedance 2.0 & 2.0 fast 默认值:720p
|
||||
|
||||
视频分辨率,取值范围:
|
||||
|
||||
* 480p
|
||||
|
||||
* 720p
|
||||
|
||||
|
||||
|
||||
#### **ratio **`string` 
|
||||
|
||||
> Seedance 2.0 & 2.0 fast 默认值: adaptive
|
||||
|
||||
生成视频的宽高比例。不同宽高比对应的宽高像素值见下方表格。
|
||||
|
||||
* 16:9 
|
||||
|
||||
* 4:3
|
||||
|
||||
* 1:1
|
||||
|
||||
* 3:4
|
||||
|
||||
* 9:16
|
||||
|
||||
* 21:9
|
||||
|
||||
* adaptive:根据输入自动选择最合适的宽高比
|
||||
|
||||
> **adaptive 适配规则**
|
||||
>
|
||||
> 当配置 **ratio** 为 adaptive 时,模型会根据生成场景自动适配宽高比;实际生成的视频宽高比可通过 [查询视频生成任务 API](https://www.volcengine.com/docs/82379/1521309?lang=zh) 返回的 **ratio** 字段获取。
|
||||
>
|
||||
> * 文生视频:根据输入的提示词,智能选择最合适的宽高比。
|
||||
>
|
||||
> * 首帧 / 首尾帧生视频:根据上传的首帧图片比例,自动选择最接近的宽高比。
|
||||
>
|
||||
> * 多模态参考生视频:根据用户提示词意图判断,如果是首帧生视频/编辑视频/延长视频,以该图片/视频为准选择最接近的宽高比;否则,以传入的第一个媒体文件为准(优先级:视频>图片)选择最接近的宽高比。
|
||||
|
||||
***
|
||||
|
||||
**不同宽高比对应的宽高像素值:**
|
||||
|
||||
| 分辨率 | 宽高比 | 宽高像素值 |
|
||||
| ---- | ---- | -------- |
|
||||
| 480p | 16:9 | 864×496 |
|
||||
| | 4:3 | 752×560 |
|
||||
| | 1:1 | 640×640 |
|
||||
| | 3:4 | 560×752 |
|
||||
| | 9:16 | 496×864 |
|
||||
| | 21:9 | 992×432 |
|
||||
| 720p | 16:9 | 1280×720 |
|
||||
| | 4:3 | 1112×834 |
|
||||
| | 1:1 | 960×960 |
|
||||
| | 3:4 | 834×1112 |
|
||||
| | 9:16 | 720×1280 |
|
||||
| | 21:9 | 1470×630 |
|
||||
|
||||
|
||||
|
||||
#### **duration** `integer` 
|
||||
|
||||
> Seedance 2.0 & 2.0 fast 默认值:5
|
||||
|
||||
生成视频时长,仅支持整数,单位:秒。
|
||||
|
||||
取值范围:
|
||||
|
||||
* \[4,15] 或设置为-1
|
||||
|
||||
> **配置方法**
|
||||
>
|
||||
> * 指定具体时长:支持有效范围内的任一整数。
|
||||
>
|
||||
> * 智能指定:设置为 -1,表示由模型在有效范围内自主选择合适的视频长度(整数秒)。实际生成视频的时长可通过 [查询视频生成任务 API](https://www.volcengine.com/docs/82379/1521309?lang=zh) 返回的 **duration** 字段获取。注意视频时长与计费相关,请谨慎设置。
|
||||
|
||||
|
||||
|
||||
#### **frames** `integer` 
|
||||
|
||||
Seedance 2.0 & 2.0 fast 暂不支持
|
||||
|
||||
|
||||
|
||||
#### **camera\_fixed** `boolean`
|
||||
|
||||
 Seedance 2.0 & 2.0 fast 暂不支持
|
||||
|
||||
|
||||
|
||||
# Get/List-查询视频生成任务/列表
|
||||
|
||||
> 查询视频生成任务:GET https://ark.cn-beijing.volces.com/api/v3/contents/generations/tasks/{id}
|
||||
>
|
||||
> 查询视频生成任务列表:GET https://ark.cn-beijing.volces.com/api/v3/contents/generations/tasks?page\_num={page\_num}\&page\_size={page\_size}\&filter.status={filter.status}\&filter.task\_ids={filter.task\_ids}\&filter.model={filter.model}
|
||||
|
||||
## 响应参数
|
||||
|
||||
#### **tools **`object[]` 
|
||||
|
||||
> 仅 Seedance 2.0 & 2.0 fast 支持
|
||||
|
||||
配置模型要调用的工具。
|
||||
|
||||
***
|
||||
|
||||
tools.**type **`string`
|
||||
|
||||
指定使用的工具类型。
|
||||
|
||||
* web\_search:联网搜索工具。
|
||||
|
||||
|
||||
|
||||
#### **usage** `object`
|
||||
|
||||
本次请求的 token 用量。
|
||||
|
||||
***
|
||||
|
||||
usage.**completion\_tokens** `integer`
|
||||
|
||||
模型输出视频花费的 token 数量。
|
||||
|
||||
***
|
||||
|
||||
usage.**total\_tokens** `integer`
|
||||
|
||||
本次请求消耗的总 token 数量。
|
||||
|
||||
***
|
||||
|
||||
usage.**tool\_usage **`object` 
|
||||
|
||||
> 仅 Seedance 2.0 & 2.0 fast 支持
|
||||
|
||||
使用工具的用量信息。
|
||||
|
||||
***
|
||||
|
||||
usage.tool\_usage.**web\_search **`integer` 
|
||||
|
||||
实际调用联网搜索工具的次数,仅开启联网搜索时返回。
|
||||
|
||||
|
||||
|
||||
# 调用简介及示例
|
||||
|
||||
## 流程简介
|
||||
|
||||
任务接口是异步接口,视频生成任务流程
|
||||
|
||||
1. 创建视频生成任务接口创建视频生成任务
|
||||
|
||||
2. 定时使用查询接口查询视频生成任务状态
|
||||
|
||||
1. 任务 running,过段时间再查询任务状态
|
||||
|
||||
2. 任务完成,返回视频链接,在24小时内下载生成的视频文件
|
||||
|
||||
## 1. 创建视频生成任务
|
||||
|
||||
> 以下示例仅展示 Seedance 2.0 & 2.0 fast 新增能力,更多视频生成示例详见 [创建视频生成任务 API](https://www.volcengine.com/docs/82379/1520757)。
|
||||
|
||||
### 多模态参考
|
||||
|
||||
### 编辑视频
|
||||
|
||||
### 延长视频
|
||||
|
||||
### 使用联网搜索
|
||||
|
||||
仅支持文本生视频
|
||||
|
||||
## 2. 查询视频生成任务
|
||||
|
||||
# 最佳实践-使用公共虚拟人像生成视频
|
||||
|
||||
平台提供公共虚拟人像素材库,目前您可以使用其中的图像素材来创建一个统一、完备的视频主角。帮助您更好地控制主角,并确保其形象在多段视频中保持一致,避免因为真人人脸限制导致角色无法统一的问题。
|
||||
|
||||
素材模态目前包含图片,并提供人物背景描述。每个素材对应一个独立素材 ID (asset ID),在体验中心的视频生成任务中,指定角色人脸生成视频。
|
||||
|
||||
1. 在浏览器中打开[体验中心](https://console.volcengine.com/ark/region:ark+cn-beijing/experience/vision?modelId=doubao-seedance-2-0-260128\&tab=GenVideo),点击输入框下方的 **虚拟人像库** 页签。
|
||||
|
||||
2. 检索需要使用的人像,支持使用自然语言检索及筛选框组合筛选。
|
||||
|
||||
| 输入:文本 | 输入:虚拟人像、图片 | 输出 |
|
||||
| ---------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -- |
|
||||
| **图片1**中美妆博主用中文进行介绍,妆容改为明艳大气,去掉脸部反光,笑容甜美,近景镜头,手持**图片2**的面霜面向镜头展示,清新简约背景,元气甜美风格。博主台词:挖到本命面霜了!质地像云朵一样软糯,一抹就吸收,熬夜急救、补水保湿全搞定,素颜都自带柔光感。 |  | |
|
||||
|
||||
|
||||
|
||||
在 [Video Generation API](https://www.volcengine.com/docs/82379/1520758) 的 **content.<模态>\_url.url** 字段中使用 素材 URI 生成视频。
|
||||
|
||||
> 输入的参考内容,包括人像素材,需符合视频生成限制,具体信息请查看使用限制。
|
||||
>
|
||||
> **注意**:
|
||||
>
|
||||
> * 首次在 API 中使用虚拟人像素材 Asset URI 前,需先在[方舟体验中心](https://console.volcengine.com/ark/region:ark+cn-beijing/experience/vision?modelId=doubao-seedance-2-0-260128\&tab=GenVideo)提交一次视频生成任务,阅读并同意弹出的 **虚拟人像库使用协议**。
|
||||
>
|
||||
> * 体验中心支持体验视频生成能力。默认单次生成 4 段视频,为节约成本,建议设置为每次生成 1 条,具体方式可参考[虚拟人像库](https://www.volcengine.com/docs/82379/2223965?lang=zh)。
|
||||
|
||||
同意协议的操作方式如下:
|
||||
|
||||

|
||||
|
||||
示例代码:
|
||||
|
||||
# 使用自有虚拟人像素材生成视频(线下提交)
|
||||
|
||||
方舟提供私域人像素材库,您可在视频生成中使用自有虚拟人物或真人(仅限素人)素材,生成短剧等更定制化的视频内容。平台将对您提供的素材进行审核,规避可能产生的法律风险。
|
||||
|
||||
* 自有素材需入库后使用,您可将虚拟人像或真人素材发送给销售代表,同时完成合规承诺函及其他证明材料的准备。
|
||||
|
||||
* 入库后,您可使用素材的 Asset ID,在视频生成 API 中使用自有素材。
|
||||
|
||||
> **重要**:
|
||||
>
|
||||
> * 对虚拟人像素材,您需签署虚拟人像素材合规承诺函,并提供签署承诺函所需的材料。
|
||||
>
|
||||
> * 对真实人物素材,除承诺函外,您还需额外提供真人授权材料。
|
||||
>
|
||||
> * 具体流程及所需材料,请和您的销售代表确认。
|
||||
|
||||
提交自有人像素材时,需按人物将素材分组:
|
||||
|
||||
* 每个人物为一个素材组。
|
||||
|
||||
* 每组可包含多个素材文件,素材文件对应唯一 ID (asset ID)。
|
||||
|
||||
## 入库流程
|
||||
|
||||
提交自有虚拟人像素材方式大致如下,请联系您的销售代表了解详情。
|
||||
|
||||
1. 准备素材文件,完成承诺函签署,并准备其他证明材料。
|
||||
|
||||
2. 准备素材文件,完成承诺函签署,并准备其他证明材料。
|
||||
|
||||
* 每个人物素材需至少提供一张正面图片文件。此外,您可按需提供该人物的其他图片、视频素材。
|
||||
|
||||
* 需确保每个人物组中的素材与该正面图片为同一人物。
|
||||
|
||||
* 每个人物创建一个文件夹(命名:“*虚拟人像 1-<人像名>*”)
|
||||
|
||||
提交素材文件夹示例:
|
||||
|
||||

|
||||
|
||||
> **注意**:
|
||||
>
|
||||
> * 以上示例仅供参考,您可根据视频创作需求,提交虚拟人物素材。
|
||||
>
|
||||
> * 您仅需上传视频生成任务中需要使用的素材。
|
||||
|
||||
* 素材文件需满足视频生成 API 对输入文件的要求:
|
||||
|
||||
> **传入单张图片要求**
|
||||
>
|
||||
> * 格式:jpeg、png、webp、bmp、tiff、gif
|
||||
>
|
||||
> * 宽高比(宽/高): (0.4, 2.5) 
|
||||
>
|
||||
> * 宽高长度(px):(300, 6000)
|
||||
>
|
||||
> * 大小:单张图片小于 30 MB。请求体大小不超过 64 MB。大文件请勿使用Base64编码。
|
||||
|
||||
|
||||
|
||||
> **传入单个视频要求**
|
||||
>
|
||||
> * 视频格式:mp4、mov。
|
||||
>
|
||||
> * 分辨率:480p、720p
|
||||
>
|
||||
> * 时长:单个视频时长 \[2, 15] s,最多传入 3 个参考视频,所有视频总时长不超过 15s。
|
||||
>
|
||||
> * 尺寸:
|
||||
>
|
||||
> * 宽高比(宽/高):\[0.4, 2.5]
|
||||
>
|
||||
> * 宽高长度(px):\[300, 6000]
|
||||
>
|
||||
> * 画面像素(宽 × 高):\[409600, 927408] ,示例:
|
||||
>
|
||||
> * 画面尺寸 640×640=409600 满足最小值 ;
|
||||
>
|
||||
> * 画面尺寸 834×1112=927408 满足最大值。
|
||||
>
|
||||
> * 大小:单个视频不超过 50 MB。
|
||||
>
|
||||
> * 帧率 (FPS):\[24, 60] 
|
||||
|
||||
|
||||
|
||||
> **注意**:
|
||||
>
|
||||
> 有关提交流程、承诺函签署所需材料的具体信息,请联系您的销售代表了解详情。
|
||||
|
||||
3. 方舟将对您提供的素材进行审核,通过审核的素材将被上传至虚拟人像库。
|
||||
|
||||
4. 入库后,每个人物组素材将通过以下示例中的形式返回,您可解压后查看:
|
||||
|
||||

|
||||
|
||||
示例中:
|
||||
|
||||
* Andy 为您提交的人物名称
|
||||
|
||||
* group-20260310035119-9mzqn 为该人物组的 ID
|
||||
|
||||
* 解压后,可查看每张素材的 Asset ID,如:
|
||||
|
||||

|
||||
|
||||
* 您可按 `asset: //<asset_id>` 规则拼接 URI,在 API 中使用对应素材生成视频:
|
||||
|
||||
具体调用方式请参考 [最佳实践-使用虚拟人像生成视频](https://bytedance.larkoffice.com/wiki/SANpwJ9bgiKgrykLaMTcAB0InWc#share-YurKdrLfAocLErxsTWDcKidPnGd)。
|
||||
|
||||
## **注意事项**
|
||||
|
||||
1. 首次在 API 中使用虚拟人像素材 Asset URI 前,需先在[方舟体验中心](https://console.volcengine.com/ark/region:ark+cn-beijing/experience/vision?modelId=doubao-seedance-2-0-260128\&tab=GenVideo)提交一次视频生成任务,阅读并同意弹出的 **虚拟人像库使用协议**,操作方式如下:
|
||||
|
||||

|
||||
|
||||
* 仅支持使用已入库素材生成视频。
|
||||
File diff suppressed because it is too large
Load Diff
2233
docs/API文档/seedance 2.0 系列教程.md
Normal file
2233
docs/API文档/seedance 2.0 系列教程.md
Normal file
File diff suppressed because it is too large
Load Diff
481
docs/API文档/seedance模型价格.md
Normal file
481
docs/API文档/seedance模型价格.md
Normal file
@ -0,0 +1,481 @@
|
||||
不同模型服务支持的能力及单价各不相同,本文为您介绍各模型的计费公式及单价,方便您进行模型价格查阅和比较。
|
||||
:::tip
|
||||
|
||||
* 如需了解计费方式及详细计费逻辑,请参见 [模型服务计费说明](/docs/82379/1544681)。
|
||||
* 支持通过 [价格计算器](https://www.volcengine.com/pricing?product=ark_bd&tab=2) **预估** 满足业务需求所需的费用。
|
||||
* 本文价格和 [定价详情页](https://www.volcengine.com/pricing?product=ark_bd&tab=1) 仅作为商品规格和价格的参考,具体可购买的商品规格及费用请以实际下单结果为准。
|
||||
|
||||
:::
|
||||
<span id="76de5911"></span>
|
||||
# 大语言模型
|
||||
<span id="aa1874cf"></span>
|
||||
## 在线推理(常规)
|
||||
|
||||
<span aceTableMode="list" aceTableWidth="3,2,1,1,1,1"></span>
|
||||
|模型名称 |条件|输入|缓存存储|缓存输入|输出|\
|
||||
| |千 token |元/百万token |元/百万 token /小时 |元/百万token |元/百万token |
|
||||
|---|---|---|---|---|---|
|
||||
|doubao\-seed\-2.0\-pro |输入长度 [0, 32] |3.2 |0.017 |0.64 |16.0 |
|
||||
|^^|输入长度 (32, 128] |4.8 |0.017 |0.96 |24.0 |
|
||||
|^^|输入长度 (128, 256] |9.6 |0.017 |1.92 |48.0 |
|
||||
|doubao\-seed\-2.0\-lite |输入长度 [0, 32] |0.6 |0.017 |0.12 |3.6 |
|
||||
|^^|输入长度 (32, 128] |0.9 |0.017 |0.18 |5.4 |
|
||||
|^^|输入长度 (128, 256] |1.8 |0.017 |0.36 |10.8 |
|
||||
|doubao\-seed\-2.0\-mini |输入长度 [0, 32] |0.2 |0.017 |0.04 |2.0 |
|
||||
|^^|输入长度 (32, 128] |0.4 |0.017 |0.08 |4.0 |
|
||||
|^^|输入长度 (128, 256] |0.8 |0.017 |0.16 |8.0 |
|
||||
|doubao\-seed\-2.0\-code |输入长度 [0, 32] |3.2 |0.017 |0.64 |16.0 |
|
||||
|^^|输入长度 (32, 128] |4.8 |0.017 |0.96 |24.0 |
|
||||
|^^|输入长度 (128, 256] |9.6 |0.017 |1.92 |48.0 |
|
||||
|doubao\-seed\-1.8 |输入长度 [0, 32]|0.80 |0.017 |0.16 |2.00 |\
|
||||
| |且输出长度 [0, 0.2] | | | | |
|
||||
|^^|输入长度 [0, 32]|0.80 |0.017 |0.16 |8.00 |\
|
||||
| |且输出长度 (0.2,+∞) | | | | |
|
||||
|^^|输入长度 (32, 128] |1.20 |0.017 |0.16 |16.00 |
|
||||
|^^|输入长度 (128, 256] |2.40 |0.017 |0.16 |24.00 |
|
||||
|doubao\-seed\-character |输入长度 [0, 32] |0.80 |0.017 |0.16 |2.00 |
|
||||
|^^|输入长度 (32, 128] |1.20 |0.017 |0.16 |6.00 |
|
||||
|doubao\-seed\-code |输入长度 [0, 32] |1.20 |0.017 |0.24 |8.00 |
|
||||
|^^|输入长度 (32, 128] |1.40 |0.017 |0.24 |12.00 |
|
||||
|^^|输入长度 (128, 256] |2.80 |0.017 |0.24 |16.00 |
|
||||
|doubao\-seed\-1.6 |输入长度 [0, 32]|0.80 |0.017 |0.16 |2.00 |\
|
||||
| |且输出长度 [0, 0.2] | | | | |
|
||||
|^^|输入长度 [0, 32]|0.80 |0.017 |0.16 |8.00 |\
|
||||
| |且输出长度 (0.2,+∞) | | | | |
|
||||
|^^|输入长度 (32, 128] |1.20 |0.017 |0.16 |16.00 |
|
||||
|^^|输入长度 (128, 256] |2.40 |0.017 |0.16 |24.00 |
|
||||
|doubao\-seed\-1.6\-lite |输入长度 [0, 32]|0.30 |0.017 |0.06 |0.60 |\
|
||||
| |且输出长度 [0, 0.2] | | | | |
|
||||
|^^|输入长度 [0, 32]|0.30 |0.017 |0.06 |2.40 |\
|
||||
| |且输出长度 (0.2,+∞) | | | | |
|
||||
|^^|输入长度 (32, 128] |0.60 |0.017 |0.06 |4.00 |
|
||||
|^^|输入长度 (128, 256] |1.20 |0.017 |0.06 |12.00 |
|
||||
|doubao\-seed\-1.6\-flash |输入长度 [0, 32] |0.15 |0.017 |0.03 |1.50 |
|
||||
|^^|输入长度 (32, 128] |0.30 |0.017 |0.03 |3.00 |
|
||||
|^^|输入长度 (128, 256] |0.60 |0.017 |0.03 |6.00 |
|
||||
|doubao\-seed\-1.6\-vision |输入长度 [0, 32] |0.80 |0.017 |0.16 |8.00 |
|
||||
|^^|输入长度 (32, 128] |1.20 |0.017 |0.16 |16.00 |
|
||||
|^^|输入长度 (128, 256] |2.40 |0.017 |0.16 |24.00 |
|
||||
|doubao\-seed\-translation |\- |1.20 |不支持 |不支持 |3.60 |
|
||||
|doubao\-1.5\-pro\-32k |\- |0.80 |0.017 |0.16 |2.00 |
|
||||
|doubao\-1.5\-lite\-32k |\- |0.30 |0.017 |0.06 |0.60 |
|
||||
|doubao\-1.5\-vision\-pro |\- |3.00 |不支持 |不支持 |9.00 |
|
||||
|glm\-4.7 |输入长度 [0, 32]|2.0 |0.017 |0.4 |8.0 |\
|
||||
| |且输出长度 [0, 0.2] | | | | |
|
||||
|^^|输入长度 [0, 32]|3.0 |0.017 |0.6 |14.0 |\
|
||||
| |且输出长度 (0.2,+∞) | | | | |
|
||||
|^^|输入长度 (32, 200] |4.0 |0.017 |0.8 |16.0 |
|
||||
|deepseek\-v3.2 |输入长度 [0, 32] |2.00 |0.017 |0.4 |3.00 |
|
||||
|^^|输入长度 (32, 128] |4.00 |0.017 |0.4 |6.00 |
|
||||
|deepseek\-v3.1 |\- |4.00 |0.017 |0.80 |12.00 |
|
||||
|deepseek\-v3 |\- |2.00 |0.017 |0.40 |8.00 |
|
||||
|deepseek\-r1 |\- |4.00 |0.017 |0.80 |16.00 |
|
||||
|
||||
|
||||
> * 按 token 后付费,计算公式:
|
||||
> * `在线推理费用 = 输入单价 × 输入token + 缓存输入单价 × 缓存命中token + 缓存存储单价 × 缓存存储token × 时长 + 输出单价 × 输出token`
|
||||
> * 分段计费:部分模型适用,不同的输入长度(和输出长度),token单价不同:
|
||||
> * 举例:请求输入 200k tokens,输出 14k tokens,满足 **输入长度 (128, 256]** 条件,模型输入输出 token 按照:输入 2.4 元/百万 token,输出 24 元/百万 token 单价计费。
|
||||
> * 常见问题: [如何查看历史调用的输入输出长度的区间分布?](/docs/82379/1359411#fba666f2)
|
||||
|
||||
<span id="d3774bbd"></span>
|
||||
## 在线推理(低延迟)
|
||||
|
||||
<span aceTableMode="list" aceTableWidth="3,2,1,1,1"></span>
|
||||
|模型名称 |条件|输入|缓存输入|输出|\
|
||||
| |千 token |元/百万token |元/百万token |元/百万token |
|
||||
|---|---|---|---|---|
|
||||
|doubao\-seed\-2.0\-pro |输入长度 [0, 32] |9.6 |1.92 |48.0 |
|
||||
|^^|输入长度 (32, 128] |14.4 |2.88 |72.0 |
|
||||
|^^|输入长度 (128, 256] |28.8 |5.76 |144.0 |
|
||||
|doubao\-seed\-2.0\-lite |输入长度 [0, 32] |1.2 |0.24 |7.2 |
|
||||
|^^|输入长度 (32, 128] |1.8 |0.36 |10.8 |
|
||||
|^^|输入长度 (128, 256] |3.6 |0.72 |21.6 |
|
||||
|doubao\-seed\-2.0\-mini |输入长度 [0, 32] |0.4 |0.08 |4.0 |
|
||||
|^^|输入长度 (32, 128] |0.8 |0.16 |8.0 |
|
||||
|^^|输入长度 (128, 256] |1.6 |0.32 |16.0 |
|
||||
|
||||
<span id="952683a2"></span>
|
||||
## 在线推理(TPM 保障包)
|
||||
|
||||
<span aceTableMode="list" aceTableWidth="3,2,2,2"></span>
|
||||
|模型 |计费方式 |输入|输出|\
|
||||
| | |元/每10K TPM |元/每1K TPM |
|
||||
|---|---|---|---|
|
||||
|doubao\-seed\-1.8 |按购买时长后付费 |1.920 |0.480 |
|
||||
|^^|包天预付费 |23.040 |5.760 |
|
||||
|doubao\-seed\-1.6 |按购买时长后付费 |1.920 |0.480 |
|
||||
|^^|包天预付费 |23.040 |5.760 |
|
||||
|doubao\-seed\-1.6\-vision |按购买时长后付费 |1.920 |0.480 |
|
||||
|^^|包天预付费 |23.040 |5.760 |
|
||||
|doubao\-seed\-1.6\-flash|按购买时长后付费 |0.360 |0.360 |\
|
||||
|> 0615版本不支持 | | | |
|
||||
|^^|包天预付费 |4.320 |4.320 |
|
||||
|doubao\-1.5\-vision\-pro |按购买时长后付费 |7.200 |2.160 |
|
||||
|^^|包天预付费 |86.400 |25.920 |
|
||||
|doubao\-1.5\-pro\-32k|按购买时长后付费 |1.920 |0.480 |\
|
||||
|> 包含 character\-250715 版本 | | | |
|
||||
|^^|包天预付费 |23.040 |5.760 |
|
||||
|doubao\-1.5\-lite\-32k |按购买时长后付费 |0.72 |0.144 |
|
||||
|^^|包天预付费 |8.64 |1.728 |
|
||||
|doubao\-pro\-32k |按购买时长后付费 |1.920 |0.480 |
|
||||
|^^|包天预付费 |23.040 |5.760 |
|
||||
|deepseek\-v3.2 |按购买时长后付费 |7.2 |1.08 |
|
||||
|^^|包天预付费 |86.4 |12.96 |
|
||||
|deepseek\-v3.1 |按购买时长后付费 |9.60 |2.88 |
|
||||
|^^|包天预付费 |115.20 |34.56 |
|
||||
|deepseek\-v3 |按购买时长后付费 |4.80 |1.92 |
|
||||
|^^|包天预付费 |57.60 |23.04 |
|
||||
|deepseek\-r1 |按购买时长后付费 |9.60 |3.84 |
|
||||
|^^|包天预付费 |115.20 |46.08 |
|
||||
|
||||
|
||||
> * 相比普通的按token计费模式,TPM保障包具备更高并发,更低的延迟,更强稳定性。支持的模型,以[接入点创建页](https://console.volcengine.com/ark/region:ark+cn-beijing/endpoint/create)可选的付费方式为准。
|
||||
> * 支持「按购买时长后付费」和「包天预付费」两种方式叠加购买,可灵活组合。
|
||||
> * **doubao\-seed\-1.6 系列及之后模型,deepseek\-v3.2 模型,不同长度请求抵扣 TPM 速度不同**,可通过 TPM 计算器查看相应的抵扣系数,估算实际需购买的**可抵扣TPM**。
|
||||
|
||||
<span id="a6471f38"></span>
|
||||
## 批量推理
|
||||
|
||||
<span aceTableMode="list" aceTableWidth="3,2,1,1,2"></span>
|
||||
|模型名称 |条件|输入|缓存命中|输出|\
|
||||
| |千 token |元/百万token |元/百万token |元/百万token |
|
||||
|---|---|---|---|---|
|
||||
|doubao\-seed\-2.0\-pro |输入长度 [0, 32] |1.6 |0.64 |8.0 |
|
||||
|^^|输入长度 (32, 128] |2.4 |0.96 |12.0 |
|
||||
|^^|输入长度 (128, 256] |4.8 |1.92 |24.0 |
|
||||
|doubao\-seed\-2.0\-lite |输入长度 [0, 32] |0.3 |0.12 |1.8 |
|
||||
|^^|输入长度 (32, 128] |0.45 |0.18 |2.7 |
|
||||
|^^|输入长度 (128, 256] |0.9 |0.36 |5.4 |
|
||||
|doubao\-seed\-2.0\-mini |输入长度 [0, 32] |0.1 |0.04 |1.0 |
|
||||
|^^|输入长度 (32, 128] |0.2 |0.08 |2.0 |
|
||||
|^^|输入长度 (128, 256] |0.4 |0.16 |4.0 |
|
||||
|doubao\-seed\-2.0\-code |输入长度 [0, 32] |1.6 |0.64 |8.0 |
|
||||
|^^|输入长度 (32, 128] |2.4 |0.96 |12.0 |
|
||||
|^^|输入长度 (128, 256] |4.8 |1.92 |24.0 |
|
||||
|doubao\-seed\-1.8 |输入长度 [0, 32]|0.40 |0.16 |1.00 |\
|
||||
| |且输出长度 [0, 0.2] | | | |
|
||||
|^^|输入长度 [0, 32]|0.40 |0.16 |4.00 |\
|
||||
| |且输出长度 (0.2,+∞) | | | |
|
||||
|^^|输入长度 (32, 128] |0.60 |0.16 |8.00 |
|
||||
|^^|输入长度 (128, 256] |1.20 |0.16 |12.00 |
|
||||
|doubao\-seed\-1.6\-vision |输入长度 [0, 32] |0.40 |0.16 |4.00 |
|
||||
|^^|输入长度 (32, 128] |0.60 |0.16 |8.00 |
|
||||
|^^|输入长度 (128, 256] |1.20 |0.16 |12.00 |
|
||||
|doubao\-seed\-1.6\-lite |输入长度 [0, 32]|0.15 |0.06 |0.30 |\
|
||||
| |且输出长度 [0, 0.2] | | | |
|
||||
|^^|输入长度 [0, 32]|0.15 |0.06 |1.20 |\
|
||||
| |且输出长度 (0.2,+∞) | | | |
|
||||
|^^|输入长度 (32, 128] |0.30 |0.06 |2.00 |
|
||||
|^^|输入长度 (128, 256] |0.60 |0.06 |6.00 |
|
||||
|doubao\-seed\-1.6 |输入长度 [0, 32]|0.40 |0.16 |1.00 |\
|
||||
| |且输出长度 [0, 0.2] | | | |
|
||||
|^^|输入长度 [0, 32]|0.40 |0.16 |4.00 |\
|
||||
| |且输出长度 (0.2,+∞) | | | |
|
||||
|^^|输入长度 (32, 128] |0.60 |0.16 |8.00 |
|
||||
|^^|输入长度 (128, 256] |1.20 |0.16 |12.00 |
|
||||
|doubao\-seed\-1.6\-flash |输入长度 [0, 32] |0.075 |0.03 |0.75 |
|
||||
|^^|输入长度 (32, 128] |0.150 |0.03 |1.50 |
|
||||
|^^|输入长度 (128, 256] |0.300 |0.03 |3.00 |
|
||||
|doubao\-seed\-translation |\- |0.60 |0.24 |1.80 |
|
||||
|doubao\-1.5\-pro\-32k |\- |0.40 |0.16 |1.00 |
|
||||
|doubao\-1.5\-lite\-32k |\- |0.15 |0.06 |0.30 |
|
||||
|doubao\-pro\-32k |\- |0.80 |0.16 |2.00 |
|
||||
|deepseek\-v3.2 |输入长度 [0, 32] |1.00 |0.40 |1.50 |
|
||||
|^^|输入长度 (32, 128] |2.00 |0.40 |3.00 |
|
||||
|deepseek\-v3.1 |\- |2.00 |0.80 |6.00 |
|
||||
|deepseek\-v3 |\- |1.00 |0.40 |4.00 |
|
||||
|deepseek\-r1 |\- |2.00 |0.80 |8.00 |
|
||||
|
||||
|
||||
> * 按 token 后付费,计算公式:`批量推理费用 = 输入单价 × 输入token + 缓存命中单价 × 缓存命中token + 输出单价 × 输出token`
|
||||
> * 部分模型已支持透明前缀缓存能力,无需任何配置,享受命中缓存后的更低单价。
|
||||
> * doubao\-seed\-1.6 系列支持分段计费,即根据每次请求的输入及输出长度,采用不同 token 单价。
|
||||
> * 举例:当某次请求的输入长度为 200k,输出长度为 14k 时,满足 **输入长度 (128, 256]** 条件,模型产生的所有 token 按照:输入2.4 元/百万 token,输出 24 元/百万 token 单价计费。
|
||||
> * 查看往期调用的输入输出长度分布,请查看常见问题 [如何查看历史调用的输入输出长度的区间分布?](/docs/82379/1359411#fba666f2)
|
||||
|
||||
<span id="02affcb8"></span>
|
||||
# 视频生成模型
|
||||
<span id="2864f00a"></span>
|
||||
## 按token单价
|
||||
|
||||
<span aceTableMode="list" aceTableWidth="3,3,3"></span>
|
||||
|模型 |在线推理|离线推理|\
|
||||
| |元/百万token |元/百万token |
|
||||
|---|---|---|
|
||||
|doubao\-seedance\-2.0|* 输出视频分辨率为 480p,720p|暂不支持 |\
|
||||
|> 按输出视频分辨率和输入是否包含视频区分定价 | * 输入不含视频:46.00| |\
|
||||
| | * 输入包含视频:28.00| |\
|
||||
| |* 输出视频分辨率为 1080p| |\
|
||||
| | * 输入不含视频:51.00| |\
|
||||
| | * 输入包含视频:31.00 | |
|
||||
|doubao\-seedance\-2.0\-fast|* 输入不含视频:37.00|暂不支持 |\
|
||||
|> 按输入是否包含视频区分定价|* 输入包含视频:22.00 | |\
|
||||
|> 不支持输出 1080p 视频 | | |
|
||||
|doubao\-seedance\-1.5\-pro|* 有声视频:16.00|* 有声视频:8.00|\
|
||||
|> 按输出视频是否包含声音区分定价 |* 无声视频:8.00 |* 无声视频:4.00 |
|
||||
|doubao\-seedance\-1.0\-pro |15.00 |7.50 |
|
||||
|doubao\-seedance\-1.0\-pro\-fast |4.20 |2.10 |
|
||||
|doubao\-seedance\-1.0\-lite |10.00 |5.00 |
|
||||
|
||||
|
||||
> * 仅对成功生成的视频计费。因审核等原因导致生成失败的,不收取费用。
|
||||
> * 视频价格估算公式:`按 token 单价 × token 用量`
|
||||
> * 正常视频 token 用量估算:`(输入视频时长+输出视频时长) × 输出视频的宽 × 输出视频的高 × 输出视频的帧率/1024`,注意存在输入视频时, Seedance 2.0 和 Seedance 2.0 fast 模型针对不同的视频输出时长存在最低 Token 用量限制,详见下文表格。
|
||||
> * Draft 视频(仅480p)token 用量估算:`正常视频 token 用量公式 × 折算系数`,折算系数与模型相关,Seedance 1.5 pro 的 token 折算系数:无声 0.7;有声 0.6,其他模型暂不支持。
|
||||
> * 准确 token 用量:以调用 API 后返回信息中的 usage 字段为准。
|
||||
|
||||
<span id="2653dbb3"></span>
|
||||
## 价格示例
|
||||
基于 token 用量公式估算的视频单价,方便您直观了解不同规格的视频成本。更多价格示例请参见[火山方舟视频生成模型价格快查表](https://bytedance.larkoffice.com/wiki/FXaYwxzJ5i5Zdik32ipcWzt7nxd?table=tblns3WjGMNbR8sL&view=vewPa39Do4#CategoryScheduledTask)。
|
||||
<span id="83af2aad"></span>
|
||||
### doubao\-seedance\-2.0 & 2.0 fast
|
||||
|
||||
> * 视频价格估算公式:`按 token 单价 × token 用量`=`按 token 单价 × (输入视频时长+输出视频时长) × 输出视频的宽 × 输出视频的高 × 输出视频的帧率/1024`
|
||||
> * 注意:输入包含视频时, Seedance 2.0 和 Seedance 2.0 fast 模型针对不同的视频输出时长存在最低 token 用量限制,如果 token 估算用量 < 最低 token 用量限制,则按最低 token 用量计算视频价格。
|
||||
* **输入不含视频**
|
||||
|
||||
|
||||
<span aceTableMode="list" aceTableWidth="2,2,3,4,4"></span>
|
||||
|分辨率 |宽高比 |输出视频时长(秒) |doubao\-seedance\-2.0|doubao\-seedance\-2.0\-fast|\
|
||||
| | | |视频价格(元/个) |视频价格(元/个) |
|
||||
|---|---|---|---|---|
|
||||
|480p |16:9 |5 |2.31 |1.86 |
|
||||
|720p |16:9 |5 |4.97 |4.00 |
|
||||
|1080p |16:9 |5 |12.39 |不支持 |
|
||||
|
||||
|
||||
* **输入包含视频**
|
||||
|
||||
|
||||
<span aceTableMode="list" aceTableWidth="2,2,3,3,4,4"></span>
|
||||
|分辨率 |宽高比 |输入视频时长(秒) |输出视频时长(秒) |doubao\-seedance\-2.0|doubao\-seedance\-2.0\-fast|\
|
||||
| | | | |视频价格(元/个) |视频价格(元/个) |
|
||||
|---|---|---|---|---|---|
|
||||
|480p |16:9 |2~15 |5 |2.53~5.62|1.99~4.42|\
|
||||
| | | | |> 最低价对应输入2~4秒|> 最低价对应输入2~4秒|\
|
||||
| | | | |> 最高价对应输入15秒 |> 最高价对应输入15秒 |
|
||||
|720p |16:9 |2~15 |5 |5.44~12.10|4.28~9.50|\
|
||||
| | | | |> 最低价对应输入2~4秒|> 最低价对应输入2~4秒|\
|
||||
| | | | |> 最高价对应输入15秒 |> 最高价对应输入15秒 |
|
||||
|1080p |16:9 |2~15 |5 |13.56~30.13|不支持 |\
|
||||
| | | | |> 最低价对应输入2~4秒| |\
|
||||
| | | | |> 最高价对应输入15秒 | |
|
||||
|
||||
附:输入包含视频时,Seedance 2.0 & 2.0 fast 的最低 token 用量限制。本表以 16:9 宽高比为例展示各分辨率下的最低 token 用量。不同宽高比的最低 token 用量存在少许差异,详情参见 [火山方舟视频生成模型价格快查表](https://bytedance.larkoffice.com/wiki/FXaYwxzJ5i5Zdik32ipcWzt7nxd?table=tblmNCuMjADrXtDf&view=vewPa39Do4#CategoryScheduledTask)。
|
||||
|
||||
<span aceTableMode="list" aceTableWidth="3,3,3,3"></span>
|
||||
|输出视频秒数 |最低tokens\-480P |最低tokens\-720P |最低tokens\-1080P |
|
||||
|---|---|---|---|
|
||||
|4 |70308 |151200 |340200 |
|
||||
|5 |90396 |194400 |437400 |
|
||||
|6 |100440 |216000 |486000 |
|
||||
|7 |120528 |259200 |583200 |
|
||||
|8 |140616 |302400 |680400 |
|
||||
|9 |150660 |324000 |729000 |
|
||||
|10 |170748 |367200 |826200 |
|
||||
|11 |190836 |410400 |923400 |
|
||||
|12 |200880 |432000 |972000 |
|
||||
|13 |220968 |475200 |1069200 |
|
||||
|14 |241056 |518400 |1166400 |
|
||||
|15 |251100 |540000 |1215000 |
|
||||
|
||||
<span id="dd571290"></span>
|
||||
### doubao\-seedance\-1.5\-pro
|
||||
|
||||
<span aceTableMode="list" aceTableWidth="2,2,2,3,3,3,3"></span>
|
||||
|分辨率 |宽高比 |时长(秒) |有声视频|Draft 有声|无声视频|Draft无声|\
|
||||
| | | |价格|视频价格|价格|视频价格|\
|
||||
| | | |(元/个) |(元/个) |(元/个) |(元/个) |
|
||||
|---|---|---|---|---|---|---|
|
||||
|480p |16:9 |5 |0.80 |0.48 |0.40 |0.28 |
|
||||
|720p |16:9 |5 |1.73 |不支持 |0.86 |不支持 |
|
||||
|1080p |16:9 |5 |3.89 |不支持 |1.94 |不支持 |
|
||||
|
||||
<span id="457edfd0"></span>
|
||||
# 图片生成模型
|
||||
|
||||
<span aceTableMode="list" aceTableWidth="3,6"></span>
|
||||
|模型名称 |单价|\
|
||||
| |元/张 |
|
||||
|---|---|
|
||||
|doubao\-seedream\-5.0\-lite |0.22 |
|
||||
|doubao\-seedream\-4.5 |0.25 |
|
||||
|doubao\-seedream\-4.0 |0.2 |
|
||||
|doubao\-seedream\-3.0\-t2i |0.259 |
|
||||
|
||||
|
||||
> * 按成功输出图片数量计费:
|
||||
> * 组图场景按实际生成的图片数量计费。
|
||||
> * 因审核等原因未成功输出的图片不计费。
|
||||
|
||||
|
||||
<span id="e68ea83c"></span>
|
||||
# 向量模型
|
||||
|
||||
<span aceTableMode="list" aceTableWidth="3,3,3"></span>
|
||||
|模型 |文本输入|图片输入|\
|
||||
| |元/百万 token |元/百万 token |
|
||||
|---|---|---|
|
||||
|doubao\-embedding\-vision |0.70 |1.80 |
|
||||
|
||||
> 按输入的 tokens 计费:
|
||||
> 费用 = `文本输入 tokens × 文本输入单价 + 图片输入 tokens × 图片输入单价`
|
||||
> = `文本输入 tokens × 文本输入单价+ min((width × height)/784,1312 ) × 图片输入单价`
|
||||
|
||||
<span id="b3a42676"></span>
|
||||
# 模型精调
|
||||
<span id="7e451788"></span>
|
||||
## 精调\-按 token 后付费
|
||||
|
||||
<span aceTableMode="list" aceTableWidth="3,3,3"></span>
|
||||
|基础模型 ID |LoRA精调|全量精调|\
|
||||
| |元/百万token |元/百万token |
|
||||
|---|---|---|
|
||||
|doubao\-seed\-1.6 |40 |80 |
|
||||
|doubao\-seed\-1.6\-flash |7 |14 |
|
||||
|doubao\-1\-5\-pro\-32k\-250115 |50 |100 |
|
||||
|doubao\-1\-5\-lite\-32k\-250115 |30 |60 |
|
||||
|
||||
> 训练费用 = 总 token 数 x 精调单价 =(用户训练集token数+混入token数+验证集token数)x 迭代轮次 x 精调token单价
|
||||
> * 若 token 数小于 1000,将会上取整为 1000 tokens 计算。
|
||||
|
||||
<span id="b2811e92"></span>
|
||||
## 精调\-按算力付费
|
||||
|
||||
<span aceTableMode="list" aceTableWidth="3,3,3"></span>
|
||||
|算力规格 |计费方式 |定价|\
|
||||
| | |元/小时 |
|
||||
|---|---|---|
|
||||
|方舟A型模型单元 |按量后付费 |25 |
|
||||
|方舟B型模型单元 |按量后付费 |15 |
|
||||
|方舟C型模型单元 |按量后付费 |10 |
|
||||
|方舟D型模型单元 |按量后付费 |20 |
|
||||
|
||||
> 训练费用=训练计费时长*使用的模版单价=训练计费时长*模型单元数\*模型单元单价。
|
||||
|
||||
<span id="c6d128f7"></span>
|
||||
## 推理\-在线推理
|
||||
|
||||
<span aceTableMode="list" aceTableWidth="3,2,2,2"></span>
|
||||
|精调模型对应的基础模型 |条件(千 token) |输入|输出|\
|
||||
| | |元/百万token |元/百万token |
|
||||
|---|---|---|---|
|
||||
|doubao\-seed\-1.6 |输入长度 [0, 32] |1.60 |16.00 |
|
||||
|^^|输入长度 (32, 128] |2.40 |32.00 |
|
||||
|doubao\-seed\-1.6\-flash |输入长度 [0, 32] |0.30 |3.00 |
|
||||
|^^|输入长度 (32, 128] |0.60 |6.00 |
|
||||
|doubao\-1.5\-pro\-32k |\- |2.00 |5.00 |
|
||||
|doubao\-1.5\-lite\-32k |\- |0.75 |1.50 |
|
||||
|doubao\-pro\-32k |\- |0.80 |2.00 |
|
||||
|
||||
> 按 token 后付费价格,仅部分 doubao 模型在精调后支持按 token 付费,以[接入点创建页](https://console.volcengine.com/ark/region:ark+cn-beijing/endpoint/create)可选的付费方式为准。
|
||||
|
||||
<span id="0c211d41"></span>
|
||||
## 推理\-批量推理
|
||||
|
||||
<span aceTableMode="list" aceTableWidth="3,2,1,1,2"></span>
|
||||
|精调模型对应的基础模型 |条件(千 token) |输入|缓存命中|输出|\
|
||||
| | |元/百万token |元/百万token |元/百万token |
|
||||
|---|---|---|---|---|
|
||||
|doubao\-seed\-1.6 |输入长度 [0, 32] |0.40 |0.16 |4.00 |
|
||||
|^^|输入长度 (32, 128] |0.60 |0.16 |8.00 |
|
||||
|^^|输入长度 (128, 256] |1.20 |0.16 |12.00 |
|
||||
|doubao\-seed\-1.6\-flash |输入长度 [0, 32] |0.075 |0.03 |0.75 |
|
||||
|^^|输入长度 (32, 128] |0.15 |0.03 |1.50 |
|
||||
|^^|输入长度 (128, 256] |0.30 |0.03 |3.00 |
|
||||
|doubao\-1.5\-pro\-32k |\- |0.40 |0.16 |1.00 |
|
||||
|doubao\-1.5\-lite\-32k |\- |0.15 |0.06 |0.30 |
|
||||
|doubao\-pro\-32k |\- |0.80 |0.16 |2.00 |
|
||||
|
||||
> 按token后付费,相比在线推理,价格低至50%。
|
||||
|
||||
<span id="c26435c9"></span>
|
||||
# 模型单元
|
||||
|
||||
<span aceTableMode="list" aceTableWidth="3,3,3"></span>
|
||||
|机型 |计费方式 |定价|\
|
||||
| | |元/个 |
|
||||
|---|---|---|
|
||||
|方舟A型模型单元 |按购买时长后付费 |25.00 |
|
||||
|^^|包月预付费 |16700.00 |
|
||||
|方舟B型模型单元 |按购买时长后付费 |15.00 |
|
||||
|^^|包月预付费 |10400.00 |
|
||||
|方舟C型模型单元 |按购买时长后付费 |10.00 |
|
||||
|^^|包月预付费 |7100.00 |
|
||||
|方舟D型模型单元 |按购买时长后付费 |20.00 |
|
||||
|^^|包月预付费 |12800.00 |
|
||||
|
||||
> 支持「按购买时长后付费」和「包月预付费」两种方式叠加购买,可灵活组合。
|
||||
> **提供** [单元计算器](https://console.volcengine.com/ark/region:ark+cn-beijing/endpoint/create) 估算需要的机型数量。更推荐通过实际业务流量压测,计算需要的机型和数量。
|
||||
|
||||
<span id="3adb5876"></span>
|
||||
# 工具及插件
|
||||
<span id="f2e7c4f6"></span>
|
||||
## 联网内容插件
|
||||
|
||||
<span aceTableMode="list" aceTableWidth="3,2,4"></span>
|
||||
|服务项 |价格|说明 |\
|
||||
| |元/千次 | |
|
||||
|---|---|---|
|
||||
|联网资源 |4 |实时搜索互联网公开域内容,每月提供2万次免费额度。 |
|
||||
|头条资源 |6 |实时搜索今日头条图文内容,并提供内容详情信息供展示交互卡片。 |
|
||||
|抖音资源 |6 |实时搜索抖音百科内容,并提供内容详情信息供展示交互卡片。 |
|
||||
|墨迹天气 |6 |实时搜索墨迹天气内容资源。 |
|
||||
|
||||
|
||||
> * 出账及计费:按量后付费
|
||||
> * 用量:每次请求产生的调用次数,可返回结构体的 **source_type** 字段计算得到。
|
||||
> * 更多说明请参见 [联网内容插件功能说明](/docs/82379/1338552)。
|
||||
|
||||
<span id="abf4f1e8"></span>
|
||||
## 豆包助手
|
||||
|
||||
<span aceTableMode="list" aceTableWidth="3,2,4"></span>
|
||||
|服务项 |价格|说明 |\
|
||||
| |元/次 | |
|
||||
|---|---|---|
|
||||
|日常沟通 |0.1 |全能助手,自然交流,多轮对话,高情商人格化聊天。 |
|
||||
|深度沟通 |0.2 |深度理解,精准解析,先思考再回答,复杂问题尽在掌握。 |
|
||||
|联网搜索 |0.2 |全网搜索,信源丰富,无需费力找资料,一键搜索实时资讯。 |
|
||||
|边想边搜 |0.5 |逻辑缜密,深度洞察,遇难题问豆包,想得更深,答得更准。 |
|
||||
|
||||
|
||||
> * 出账及计费:按量后付费
|
||||
> * 用量:每次请求产生的调用次数,可返回结构体的 **source_type** 字段计算得到。
|
||||
> * 更多说明请参见 [联网内容插件功能说明](/docs/82379/1338552)。
|
||||
|
||||
<span id="bce8c602"></span>
|
||||
## 知识库
|
||||
|
||||
<span aceTableMode="list" aceTableWidth="6,3"></span>
|
||||
|服务项 |价格 |
|
||||
|---|---|
|
||||
|计算资源\-知识库【旗舰版】 |0.45 元/CU/小时 |
|
||||
|离线存储资源\-知识库【旗舰版】 |0.0015 元/GB/小时 |
|
||||
|标准计算资源\-知识库【标准版】 |0.0416 元/知识库/小时 |
|
||||
|文本向量模型\-知识库【通用】 |0.0005 元/千token |
|
||||
|文本向量模型(多功能版)\-知识库【通用】 |0.0005 元/千token |
|
||||
|文本向量模型(Doubao\-embedding)\-知识库【通用】 |0.0005 元/千token |
|
||||
|文本向量模型(Doubao\- embedding\-large)\-知识库【通用】 |0.0007 元/千token |
|
||||
|多模态向量模型(Doubao\-embedding\-vision\-text)\-知识库【通用】 |0.0007 元/千token |
|
||||
|多模态向量模型(Doubao\-embedding\-vision\-image)\-知识库【通用】 |0.0018 元/千token |
|
||||
|重排模型\-知识库【通用】 |0.0005 元/千token |
|
||||
|
||||
> 更多说明请参见 [知识库计费](/docs/82379/1263336)。
|
||||
|
||||
<span id="f47e6c9b"></span>
|
||||
# Coding Plan 个人版
|
||||
|
||||
<span aceTableMode="list" aceTableWidth="3,3,3"></span>
|
||||
|套餐类型 |订阅时长 |价格 |
|
||||
|---|---|---|
|
||||
|Lite 套餐 |1 个月 |40 元/月 |
|
||||
|^^|3 个月 |120 元/季 |
|
||||
|Pro 套餐 |1 个月 |200 元/月 |
|
||||
|^^|3 个月 |600 元/季 |
|
||||
|
||||
> 套餐信息及特惠活动参见[套餐概览](/docs/82379/1925114)。
|
||||
|
||||
|
||||
|
||||
648
docs/API文档/创建视频生成任务API.md
Normal file
648
docs/API文档/创建视频生成任务API.md
Normal file
@ -0,0 +1,648 @@
|
||||
`POST https://ark.cn-beijing.volces.com/api/v3/contents/generations/tasks` [ ](https://api.volcengine.com/api-explorer/?action=CreateContentsGenerationsTasks&data=%7B%7D&groupName=%E8%A7%86%E9%A2%91%E7%94%9F%E6%88%90API&query=%7B%7D&serviceCode=ark&version=2024-01-01)[运行](https://api.volcengine.com/api-explorer/?action=CreateContentsGenerationsTasks&data=%7B%7D&groupName=%E8%A7%86%E9%A2%91%E7%94%9F%E6%88%90API&query=%7B%7D&serviceCode=ark&version=2024-01-01)
|
||||
本文介绍创建视频生成任务 API 的输入输出参数,供您使用接口时查阅字段含义。模型会依据传入的图片及文本信息生成视频,待生成完成后,您可以按条件查询任务并获取生成的视频。
|
||||
:::tip
|
||||
请确保您的账户余额大于等于 200 元([前往充值](https://console.volcengine.com/finance/fund/recharge)),或已[购买资源包](https://console.volcengine.com/common-buy/fast/ark_bd%7C%7Cd682ppeeq1mp7kd5q0e0),否则无法开通 seedance 2.0 及 seedance 2.0 fast 模型。
|
||||
|
||||
:::
|
||||
**模型能力==^new^==**
|
||||
|
||||
* **seedance 2.0 & 2.0 fast==^new^==** ** (有声视频/无声视频)**
|
||||
* **多模态参考生视频==^new^==**:输入++参考图片(0~9)+参考视频(0~3)+ 参考音频(0~3)+ 文本提示词(可选)++ 生成 1 个目标视频。注意不可单独输入音频,应至少包含 1 个参考视频或图片。支持生成全新视频、编辑视频、延长视频,[阅读教程](https://www.volcengine.com/docs/82379/2291680) 获取详细代码示例。
|
||||
* **图生视频\-首尾帧**:输入++首帧图片+尾帧图片+文本提示词(可选)++ 生成 1 个目标视频。
|
||||
* **图生视频\-首帧**:输入++首帧图片+文本提示词(可选)++ 生成 1 个目标视频。
|
||||
* **文生视频**:输入++文本提示词++生成 1 个目标视频。
|
||||
* **seedance 1.5 pro (有声视频/无声视频)**
|
||||
【图生视频\-首尾帧】【图生视频\-首帧】【文生视频】
|
||||
* **seedance 1.0 pro**
|
||||
【图生视频\-首尾帧】【图生视频\-首帧】【文生视频】
|
||||
* **seedance 1.0 pro fast**
|
||||
【图生视频\-首帧】【文生视频】
|
||||
* **seedance 1.0 lite**
|
||||
* **doubao\-seedance\-1\-0\-lite\-t2v:** 文生视频
|
||||
* **doubao\-seedance\-1\-0\-lite\-i2v:**
|
||||
* 参考图生视频:根据您输入的**++参考图片(1\-4张)++ ** +++文本提示词(可选)++ 生成 1 个目标视频。
|
||||
* 图生视频\-首尾帧
|
||||
* 图生视频\-首帧
|
||||
|
||||
|
||||
Tips:一键展开折叠,快速检索内容
|
||||
打开页面右上角开关,**ctrl ** + **f** 可检索页面内所有内容。
|
||||
<span> </span>
|
||||
|
||||
|
||||
```mixin-react
|
||||
return (<Tabs>
|
||||
<Tabs.TabPane title="在线调试" key="4rK5FhUg"><RenderMd content={`<APILink link="https://api.volcengine.com/api-explorer/?action=CreateContentsGenerationsTasks&data=%7B%7D&groupName=%E8%A7%86%E9%A2%91%E7%94%9F%E6%88%90API&query=%7B%7D&serviceCode=ark&version=2024-01-01" description="API Explorer 您可以通过 API Explorer 在线发起调用,无需关注签名生成过程,快速获取调用结果。"></APILink>
|
||||
`}></RenderMd></Tabs.TabPane>
|
||||
<Tabs.TabPane title="鉴权说明" key="iRuPtuk6"><RenderMd content={`本接口仅支持 API Key 鉴权,请在 [获取 API Key](https://console.volcengine.com/ark/region:ark+cn-beijing/apiKey) 页面,获取长效 API Key。
|
||||
`}></RenderMd></Tabs.TabPane>
|
||||
<Tabs.TabPane title="快速入口" key="5LZLMN0J"><RenderMd content={` [ ](#)[体验中心](https://console.volcengine.com/ark/region:ark+cn-beijing/experience/vision) <span> </span>[模型列表](https://www.volcengine.com/docs/82379/1330310?lang=zh#2705b333) <span> </span>[模型计费](https://www.volcengine.com/docs/82379/1544106?redirect=1&lang=zh#02affcb8) <span> </span>[API Key](https://console.volcengine.com/ark/region:ark+cn-beijing/apiKey?apikey=%7B%7D)
|
||||
<span> </span>[调用教程](https://www.volcengine.com/docs/82379/1366799) <span> </span>[接口文档](https://www.volcengine.com/docs/82379/1520758) <span> </span>[常见问题](https://www.volcengine.com/docs/82379/1359411) <span> </span>[开通模型](https://console.volcengine.com/ark/region:ark+cn-beijing/openManagement?LLM=%7B%7D&OpenTokenDrawer=false)
|
||||
`}></RenderMd></Tabs.TabPane></Tabs>);
|
||||
```
|
||||
|
||||
|
||||
---
|
||||
|
||||
|
||||
<span id="5qndT7DS"></span>
|
||||
## 请求参数
|
||||
> 跳转 [响应参数](#y2hhTyHB)
|
||||
|
||||
<span id="wsGzv1pD"></span>
|
||||
### 请求体
|
||||
|
||||
---
|
||||
|
||||
|
||||
**model** `string` %%require%%
|
||||
您需要调用的模型的 ID (Model ID),[开通模型服务](https://console.volcengine.com/ark/region:ark+cn-beijing/openManagement?LLM=%7B%7D&OpenTokenDrawer=false),并[查询 Model ID](https://www.volcengine.com/docs/82379/1330310) 。
|
||||
您也可通过 Endpoint ID 来调用模型,获得限流、计费类型(前付费/后付费)、运行状态查询、监控、安全等高级能力,可参考[获取 Endpoint ID](https://www.volcengine.com/docs/82379/1099522)。
|
||||
|
||||
---
|
||||
|
||||
|
||||
**content** `object[]` %%require%%
|
||||
输入给模型,生成视频的信息,支持文本、图片、音频、视频、样片任务 ID。
|
||||
:::warning
|
||||
seedance 2.0 系列模型不支持直接上传含有真人人脸的参考图/视频。为了便利创作者对肖像的使用,平台推出了以下解决方案,详情参见 [教程](https://www.volcengine.com/docs/82379/2291680?lang=zh#5c67c9a1)。
|
||||
|
||||
* 支持使用部分模型的含人脸原始产物作为输入素材
|
||||
* 支持使用预置虚拟人像作为输入素材
|
||||
* 支持使用已授权真人素材作为输入
|
||||
|
||||
:::
|
||||
支持以下几种组合:
|
||||
|
||||
* **文本**
|
||||
* **文本(可选)+ 图片**
|
||||
* **文本(可选)+ 视频**
|
||||
* **文本(可选)+ 图片 + 音频**
|
||||
* **文本(可选)+ 图片 + 视频**
|
||||
* **文本(可选)+ 视频 + 音频**
|
||||
* **文本(可选)+ 图片 + 视频 + 音频**
|
||||
* **样片任务 ID**:样片指使用 seedance 模型成功生成的样片视频,模型可基于样片生成高质量正式视频。
|
||||
|
||||
|
||||
信息类型
|
||||
|
||||
---
|
||||
|
||||
|
||||
**文本信息** `object`
|
||||
输入给模型的提示词信息。
|
||||
|
||||
属性
|
||||
|
||||
---
|
||||
|
||||
|
||||
content.**type ** `string` %%require%%
|
||||
输入内容的类型,此处应为 `text`。
|
||||
|
||||
---
|
||||
|
||||
|
||||
content.**text ** `string` %%require%%
|
||||
输入给模型的文本提示词,描述期望生成的视频。
|
||||
:::tip
|
||||
|
||||
* 提示词语言支持:所有模型均支持中英文提示词;seedance 2.0 及 seedance 2.0 fast 额外支持日语、印尼语、西班牙语、葡萄牙语。
|
||||
* 提示词字数建议:中文提示词不超过500字,英文提示词不超过1000词。字数过多易导致信息分散,模型可能忽略细节、仅关注重点,进而造成视频缺失部分元素。
|
||||
* 更多使用技巧:提示词的详细使用技巧,请参见 [seedance 提示词指南](https://www.volcengine.com/docs/82379/2222480?lang=zh)。
|
||||
|
||||
|
||||
|
||||
:::
|
||||
|
||||
---
|
||||
|
||||
|
||||
**图片信息==^new^==** `object`
|
||||
输入给模型的图片信息。
|
||||
|
||||
属性
|
||||
|
||||
---
|
||||
|
||||
|
||||
content.**type ** `string` %%require%%
|
||||
输入内容的类型,此处应为 `image_url`。
|
||||
|
||||
---
|
||||
|
||||
|
||||
content.**image_url ** `object` %%require%%
|
||||
输入给模型的图片对象。
|
||||
|
||||
属性
|
||||
|
||||
---
|
||||
|
||||
|
||||
content.image_url.**url ** `string` %%require%%
|
||||
图片 URL 、图片 Base64 编码、素材 ID。
|
||||
|
||||
* 图片 URL:填入图片的公网 URL。
|
||||
* Base64 编码:将本地文件转换为 Base64 编码字符串,然后提交给大模型。遵循格式:`data:image/<图片格式>;base64,<Base64编码>`,注意 `<图片格式>` 需小写,如 `data:image/png;base64,{base64_image}`。
|
||||
* 素材 ID:用于视频生成的预置素材及虚拟人像的 ID,遵循格式:asset://<ASSET_ID\>。可从 [素材&虚拟人像库](https://console.volcengine.com/ark/region:ark+cn-beijing/experience/vision?modelId=doubao-seedance-2-0-260128) 获取。
|
||||
|
||||
:::tip 传入单张图片要求
|
||||
|
||||
* 格式:jpeg、png、webp、bmp、tiff、gif。其中,seedance 1.5 pro 新增支持 heic 和 heif。
|
||||
* 宽高比(宽/高): (0.4, 2.5)
|
||||
* 宽高长度(px):(300, 6000)
|
||||
* 大小:单张图片小于 30 MB。请求体大小不超过 64 MB。大文件请勿使用Base64编码。
|
||||
* 图片数量:
|
||||
* 图生视频\-首帧:1 张
|
||||
* 图生视频\-首尾帧:2 张
|
||||
* seedance 2.0&2.0 fast 多模态参考生视频:1~9 张
|
||||
* seedance 1.0 lite 参考图生视频:1~4 张
|
||||
|
||||
:::
|
||||
|
||||
---
|
||||
|
||||
|
||||
content.**role ** `string` `条件必填`
|
||||
图片的位置或用途。
|
||||
:::warning
|
||||
|
||||
* **图生视频\-首帧**、**图生视频\-首尾帧**、**多模态参考生视频**(包括参考图、视频、音频)为 3 种互斥场景,**不可混用**。
|
||||
* **多模态参考生视频**可通过提示词指定参考图片作为首帧/尾帧,间接实现“首尾帧+多模态参考”效果。若需严格保障首尾帧和指定图片一致,**优先使用图生视频\-首尾帧**(配置 role 为 first_frame/last_frame)。
|
||||
|
||||
|
||||
:::
|
||||
图生视频\-首帧
|
||||
|
||||
* **支持模型:** 所有图生视频模型
|
||||
* **字段role取值:** 需要传入1个 image_url 对象,字段 role 为 first_frame 或不填。
|
||||
|
||||
|
||||
图生视频\-首尾帧
|
||||
|
||||
* **支持模型:** seedance 2.0 & 2.0 fast,seedance 1.5 pro、seedance 1.0 pro、seedance 1.0 lite i2v
|
||||
* **字段role取值:** 需要传入2个image_url对象,且字段 role 必填。
|
||||
* 首帧图片对应的字段 role 为:first_frame
|
||||
* 尾帧图片对应的字段 role 为:last_frame
|
||||
|
||||
:::tip
|
||||
传入的首尾帧图片可相同。首尾帧图片的宽高比不一致时,以首帧图片为主,尾帧图片会自动裁剪适配。
|
||||
|
||||
:::
|
||||
|
||||
图生视频\-参考图
|
||||
|
||||
* **支持模型:** seedance 2.0 & 2.0 fast(1~9 张图片),seedance 1.0 lite i2v(1~4 张图片)
|
||||
* **字段role取值:** 必填,每张参考图对应的字段 role 均为:reference_image
|
||||
|
||||
:::tip
|
||||
参考图生视频功能的文本提示词,可以用自然语言指定多张图片的组合。但若想有更好的指令遵循效果,**推荐使用“[图1]xxx,[图2]xxx”的方式来指定图片**。
|
||||
示例1:戴着眼镜穿着蓝色T恤的男生和柯基小狗,坐在草坪上,3D卡通风格
|
||||
示例2:[图1]戴着眼镜穿着蓝色T恤的男生和[图2]的柯基小狗,坐在[图3]的草坪上,3D卡通风格
|
||||
|
||||
:::
|
||||
|
||||
|
||||
---
|
||||
|
||||
|
||||
**视频信息==^new^==** `object`
|
||||
输入给模型的视频信息。仅 seedance 2.0 & 2.0 fast 支持输入视频。
|
||||
方舟平台信任 seedance 2.0 及 2.0 fast 模型生成的含人脸视频,您可使用**本账号下近30天内由上述模型生成的含人脸原始视频**,作为输入素材进行二次创作,详情参见 [教程](https://www.volcengine.com/docs/82379/2291680?lang=zh#86c3831f)。
|
||||
|
||||
属性
|
||||
content.**type ** `string` %%require%%
|
||||
输入内容的类型,此处应为`video_url`。
|
||||
|
||||
---
|
||||
|
||||
|
||||
content.**video_url** ** ** `object` %%require%%
|
||||
输入给模型的视频对象。
|
||||
|
||||
属性
|
||||
content.video_url.**url ** `string` %%require%%
|
||||
视频URL、素材 ID。
|
||||
|
||||
* 视频 URL:填入视频的公网 URL。
|
||||
* 素材 ID:用于视频生成的预置素材及虚拟人像视频的 ID,遵循格式:asset://<ASSET_ID\>。可从[素材&虚拟人像库](https://console.volcengine.com/ark/region:ark+cn-beijing/experience/vision?modelId=doubao-seedance-2-0-260128)获取。
|
||||
|
||||
:::tip 传入单个视频要求
|
||||
|
||||
* 视频格式:mp4、mov,支持编码格式见下表。
|
||||
* 分辨率:480p,720p,1080p
|
||||
* 时长:单个视频时长 [2, 15] s,最多传入 3 个参考视频,所有视频总时长不超过 15s。
|
||||
* 尺寸:
|
||||
* 宽高比(宽/高):[0.4, 2.5]
|
||||
* 宽高长度(px):[300, 6000]
|
||||
* 总像素数:[640×640=409600, 2206×946=2086876],即宽和高的乘积符合 [409600, 2086876] 的区间要求。
|
||||
* 大小:单个视频不超过 50 MB。
|
||||
* 帧率 (FPS):[24, 60]
|
||||
|
||||
:::
|
||||
|
||||
---
|
||||
|
||||
|
||||
content.**role ** `string` `条件必填`
|
||||
视频的位置或用途。当前仅支持 reference_video:参考视频。
|
||||
|
||||
|
||||
---
|
||||
|
||||
|
||||
**音频信息==^new^==** `object`
|
||||
输入给模型的音频信息。仅 seedance 2.0&2.0 fast 支持输入音频。
|
||||
注意不可单独输入音频,应至少包含 1 个参考视频或图片。
|
||||
|
||||
属性
|
||||
content.**type ** `string` %%require%%
|
||||
输入内容的类型,此处应为`audio_url`。
|
||||
|
||||
---
|
||||
|
||||
|
||||
content.**audio_url** ** ** `object` %%require%%
|
||||
输入给模型的音频对象。
|
||||
|
||||
属性
|
||||
content.audio_url.**url ** `string` %%require%%
|
||||
音频 URL 、音频 Base64 编码、素材 ID。
|
||||
|
||||
* 音频 URL:填入音频的公网 URL。
|
||||
* Base64 编码:将本地文件转换为 Base64 编码字符串,然后提交给大模型。遵循格式:`data:audio/<音频格式>;base64,<Base64编码>`,注意 `<音频格式>` 需小写,如 `data:audio/wav;base64,{base64_audio}`。
|
||||
* 素材 ID:用于视频生成的虚拟人的音频素材 ID,遵循格式:asset://<ASSET_ID\>。可从[素材&虚拟人像库](https://console.volcengine.com/ark/region:ark+cn-beijing/experience/vision?modelId=doubao-seedance-2-0-260128)获取。
|
||||
|
||||
:::tip 传入单个音频要求
|
||||
|
||||
* 格式:wav、mp3
|
||||
* 时长:单个音频时长 [2, 15] s,最多传入 3 段参考音频,所有音频总时长不超过 15 s。
|
||||
* 大小:单个音频不超过 15 MB,请求体大小不超过 64 MB。大文件请勿使用Base64编码。
|
||||
|
||||
|
||||
|
||||
:::
|
||||
|
||||
---
|
||||
|
||||
|
||||
content.**role ** `string` `条件必填`
|
||||
音频的位置或用途。当前仅支持 reference_audio:参考音频。
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
||||
|
||||
**样片信息 ** `object`
|
||||
基于样片任务 ID,生成正式视频。仅 seedance 1.5 pro 支持该功能。[阅读](https://www.volcengine.com/docs/82379/1366799?lang=zh#5acd28c8)[文档](https://www.volcengine.com/docs/82379/1366799?lang=zh#5acd28c8) 获取 draft 功能的使用教程和注意事项。
|
||||
|
||||
属性
|
||||
|
||||
---
|
||||
|
||||
|
||||
content.**type ** `string` %%require%%
|
||||
输入内容的类型,此处应为 `draft_task`。
|
||||
|
||||
---
|
||||
|
||||
|
||||
content.**draft_task** ** ** `object` %%require%%
|
||||
输入给模型的样片任务。
|
||||
|
||||
属性
|
||||
|
||||
---
|
||||
|
||||
|
||||
content.draft_task.**id ** `string` %%require%%
|
||||
样片任务 ID。平台将自动复用 Draft 视频使用的用户输入(**model、** content.**text、** content.**image_url、generate_audio、seed、ratio、duration、camera_fixed ** ),生成正式视频。其余参数支持指定,不指定将使用本模型的默认值。
|
||||
使用分为两步:Step1: 调用本接口生成 Draft 视频。Step2: 如果确认 Draft 视频符合预期,可基于 Step1 返回的 Draft 视频任务 ID,调用本接口生成最终视频。[阅读文档](https://www.volcengine.com/docs/82379/1366799?lang=zh#5acd28c8) 获取详细教程。
|
||||
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
||||
|
||||
**callback_url** `string`
|
||||
填写本次生成任务结果的回调通知地址。当视频生成任务有状态变化时,方舟将向此地址推送 POST 请求。
|
||||
回调请求内容结构与[查询任务API](https://www.volcengine.com/docs/82379/1521309)的返回体一致。
|
||||
回调返回的 status 包括以下状态:
|
||||
|
||||
* queued:排队中。
|
||||
* running:任务运行中。
|
||||
* succeeded: 任务成功。(如发送失败,即5秒内没有接收到成功发送的信息,回调三次)
|
||||
* failed:任务失败。(如发送失败,即5秒内没有接收到成功发送的信息,回调三次)
|
||||
* expired:任务超时,即任务处于**运行中或排队中**状态超过过期时间。可通过 **execution_expires_after ** 字段设置过期时间。
|
||||
|
||||
|
||||
---
|
||||
|
||||
|
||||
**return_last_frame** `boolean` `默认值 false`
|
||||
|
||||
* true:返回生成视频的尾帧图像。设置为 `true` 后,可通过 [查询视频生成任务接口](https://www.volcengine.com/docs/82379/1521309) 获取视频的尾帧图像。尾帧图像的格式为 png,宽高像素值与生成的视频保持一致,无水印。
|
||||
使用该参数可实现生成多个连续视频:以上一个生成视频的尾帧作为下一个视频任务的首帧,快速生成多个连续视频,调用示例详见 [教程](https://www.volcengine.com/docs/82379/1366799?lang=zh#141cf7fa)。
|
||||
* false:不返回生成视频的尾帧图像。
|
||||
|
||||
|
||||
---
|
||||
|
||||
|
||||
**service_tier** `string` `默认值 default`
|
||||
> 不支持修改已提交任务的服务等级
|
||||
> seedance 2.0 & 2.0 fast 不支持离线推理
|
||||
|
||||
指定处理本次请求的服务等级类型,枚举值:
|
||||
|
||||
* default:在线推理模式,RPM 和并发数配额较低(详见 [模型列表](https://www.volcengine.com/docs/82379/1330310?lang=zh#2705b333)),适合对推理时效性要求较高的场景。
|
||||
* flex:离线推理模式,TPD 配额更高(详见 [模型列表](https://www.volcengine.com/docs/82379/1330310?lang=zh#2705b333)),价格为在线推理的 50%, 适合对推理时延要求不高的场景。
|
||||
|
||||
|
||||
---
|
||||
|
||||
|
||||
**execution_expires_after ** `integer` `默认值 172800`
|
||||
任务超时阈值。指定任务提交后的过期时间(单位:秒),从 **created at** 时间戳开始计算。默认值 172800 秒,即 48 小时。取值范围:[3600,259200]。
|
||||
不论使用哪种 **service_tier**,都建议根据业务场景设置合适的超时时间。超过该时间后任务会被自动终止,并标记为`expired`状态。
|
||||
|
||||
---
|
||||
|
||||
|
||||
**generate_audio ** `boolean` `默认值 true`
|
||||
> 仅 seedance 2.0 & 2.0 fast、seedance 1.5 pro 支持
|
||||
|
||||
控制生成的视频是否包含与画面同步的声音。
|
||||
|
||||
* true:模型输出的视频包含同步音频。模型会基于文本提示词与视觉内容,自动生成与之匹配的人声、音效及背景音乐。建议将对话部分置于双引号内,以优化音频生成效果。例如:男人叫住女人说:“你记住,以后不可以用手指指月亮。”
|
||||
* false:模型输出的视频为无声视频。
|
||||
|
||||
:::warning
|
||||
生成的有声视频均为单声道,和传入的音频声道数无关。
|
||||
|
||||
:::
|
||||
---
|
||||
|
||||
|
||||
**draft ** `boolean` `默认值 false`
|
||||
> 仅 seedance 1.5 pro 支持
|
||||
|
||||
控制是否开启样片模式。[阅读文档](https://www.volcengine.com/docs/82379/1366799?lang=zh#5acd28c8) 获取使用教程和注意事项。
|
||||
|
||||
* true:开启样片模式,生成一段预览视频,快速验证场景结构、镜头调度、主体动作与 prompt 意图是否符合预期。消耗 token 数较正常视频更少,使用成本更低。
|
||||
* false:关闭样片模式,正常生成一段视频。
|
||||
|
||||
:::tip
|
||||
开启样片模式后,将使用 480p 分辨率生成 Draft 视频(使用其他分辨率会报错),不支持返回尾帧功能,不支持离线推理功能。
|
||||
|
||||
:::
|
||||
---
|
||||
|
||||
|
||||
**tools==^new^==** ** ** `object[]`
|
||||
> 仅 seedance 2.0 & 2.0 fast 支持
|
||||
|
||||
配置模型要调用的工具。
|
||||
|
||||
属性
|
||||
tools.**type ** `string`
|
||||
指定使用的工具类型。
|
||||
|
||||
* web_search:联网搜索工具。[阅读教程](https://www.volcengine.com/docs/82379/1366799?lang=zh#c40ed3ef) 获取详细代码示例。
|
||||
|
||||
:::tip
|
||||
|
||||
* 开启联网搜索后,模型会根据用户的提示词自主判断是否搜索互联网内容(如商品、天气等)。可提升生成视频的时效性,但也会增加一定的时延。
|
||||
* 实际搜索次数可通过 [查询视频生成任务 API](https://www.volcengine.com/docs/82379/1521309?lang=zh) 返回的 usage.tool_usage.**web_search** 字段获取,如果为 0 表示未搜索。
|
||||
|
||||
:::
|
||||
|
||||
---
|
||||
|
||||
|
||||
**safety_identifier==^new^==** `string`
|
||||
终端用户的唯一标识符,用于协助平台检测您的应用中可能违反火山方舟使用政策的用户。该标识符为英文字符串,需保证对单个用户固定且唯一,长度不超过 64 个字符。推荐传入对用户名、用户 ID 或邮箱进行哈希处理后生成的字符串,避免泄露用户隐私信息。
|
||||
|
||||
---
|
||||
|
||||
|
||||
|
||||
:::warning 部分参数升级说明
|
||||
|
||||
* **对于 resolution、ratio、duration、frames、seed、camera_fixed、watermark 参数,平台升级了参数传入方式,示例如下。所有模型依然兼容支持旧方式。**
|
||||
* 不同模型,可能对应支持不同的参数与取值,详见 [输出视频格式](https://www.volcengine.com/docs/82379/1366799?lang=zh#9fe4cce0)。当输入的参数或取值不符合所选的模型时,该参数将被忽略或触发报错:
|
||||
* 新方式:在 request body 中直接传入参数。此方式为**强校验,** 若参数填写错误,模型会返回错误提示。
|
||||
* 旧方式:在文本提示词后追加 \-\-[parameters]。此方式为**弱校验,** 若参数填写错误,该参数将被忽略或触发报错。
|
||||
|
||||
|
||||
:::
|
||||
**新方式(推荐):在 request body 中直接传入参数**
|
||||
```JSON
|
||||
...
|
||||
// Specify the aspect ratio of the generated video as 16:9, duration as 5 seconds, resolution as 720p, seed as 11, and include a watermark. The camera is not fixed.
|
||||
"model": "doubao-seedance-1-5-pro-251215",
|
||||
"content": [
|
||||
{
|
||||
"type": "text",
|
||||
"text": "小猫对着镜头打哈欠"
|
||||
}
|
||||
],
|
||||
// All parameters must be written in full; abbreviations are not supported
|
||||
"resolution": "720p",
|
||||
"ratio":"16:9",
|
||||
"duration": 5,
|
||||
// "frames": 29, Either duration or frames is required
|
||||
"seed": 11,
|
||||
"camera_fixed": false,
|
||||
"watermark": true
|
||||
...
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
||||
**旧方式:在文本提示词后追加 \-\-[parameters]**
|
||||
```JSON
|
||||
...
|
||||
// Specify the aspect ratio of the generated video as 16:9, duration as 5 seconds, resolution as 720p, seed as 11, and include a watermark. The camera is not fixed.
|
||||
"model": "doubao-seedance-1-5-pro-251215",
|
||||
"content": [
|
||||
{
|
||||
"type": "text",
|
||||
"text": "小猫对着镜头打哈欠 --rs 720p --rt 16:9 --dur 5 --seed 11 --cf false --wm true"
|
||||
// "text": "小猫对着镜头打哈欠 --resolution 720p --ratio 16:9 --duration 5 --seed 11 --camerafixed false --watermark true"
|
||||
}
|
||||
]
|
||||
...
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
||||
|
||||
**resolution ** `string`
|
||||
> seedance 2.0 & 2.0 fast、seedance 1.5 pro、seedance 1.0 lite 默认值:`720p`
|
||||
> seedance 1.0 pro & pro\-fast 默认值:`1080p`
|
||||
|
||||
视频分辨率,枚举值:
|
||||
|
||||
* 480p
|
||||
* 720p
|
||||
* 1080p:seedance 1.0 lite 参考图场景、seedance 2.0 & 2.0 fast 不支持
|
||||
|
||||
|
||||
---
|
||||
|
||||
|
||||
**ratio ** `string`
|
||||
> seedance 2.0 & 2.0 fast、seedance 1.5 pro 默认值为 `adaptive`
|
||||
> seedance 1.0 lite 参考图场景默认值为 `16:9`
|
||||
> 其他模型:文生视频默认值 `16:9`,图生视频默认值 `adaptive`
|
||||
|
||||
生成视频的宽高比例。不同宽高比对应的宽高像素值见下方表格。
|
||||
|
||||
* 16:9
|
||||
* 4:3
|
||||
* 1:1
|
||||
* 3:4
|
||||
* 9:16
|
||||
* 21:9
|
||||
* adaptive:根据输入自动选择最合适的宽高比(详见下文说明)
|
||||
|
||||
:::warning **adaptive ** 适配规则
|
||||
当配置 **ratio** 为 `adaptive` 时,模型会根据生成场景自动适配宽高比;实际生成的视频宽高比可通过 [查询视频生成任务 API](https://www.volcengine.com/docs/82379/1521309?lang=zh) 返回的 **ratio** 字段获取。
|
||||
**支持模型:**
|
||||
|
||||
* seedance 2.0 & 2.0 fast、seedance 1.5 Pro 支持
|
||||
* 其他模型仅图生视频场景支持,注意 seedance 1.0 lite 参考图场景不支持。
|
||||
|
||||
**取值规则:**
|
||||
|
||||
* 文生视频:根据输入的提示词,智能选择最合适的宽高比。
|
||||
* 首帧 / 首尾帧生视频:根据上传的首帧图片比例,自动选择最接近的宽高比。
|
||||
* 多模态参考生视频:根据用户提示词意图判断,如果是首帧生视频/编辑视频/延长视频,以该图片/视频为准选择最接近的宽高比;否则,以传入的第一个媒体文件为准(优先级:视频>图片)选择最接近的宽高比。
|
||||
|
||||
:::
|
||||
|
||||
|
||||
不同宽高比对应的宽高像素值
|
||||
Note:图生视频,选择的宽高比与您上传的图片宽高比不一致时,方舟会对您的图片进行裁剪,裁剪时会居中裁剪,详细规则见 [图片裁剪规则](https://www.volcengine.com/docs/82379/1366799?lang=zh#f76aafc8)。
|
||||
|
||||
|分辨率 |宽高比|宽高像素值|宽高像素值|\
|
||||
| | |seedance 1.0 系列 |seedance 1.5 pro|\
|
||||
| | | |seedance 2.0 & 2.0 fast |
|
||||
|---|---|---|---|
|
||||
|480p |16:9 |864×480 |864×496 |
|
||||
|^^|4:3 |736×544 |752×560 |
|
||||
|^^|1:1 |640×640 |640×640 |
|
||||
|^^|3:4 |544×736 |560×752 |
|
||||
|^^|9:16 |480×864 |496×864 |
|
||||
|^^|21:9 |960×416 |992×432 |
|
||||
|720p |16:9 |1248×704 |1280×720 |
|
||||
|^^|4:3 |1120×832 |1112×834 |
|
||||
|^^|1:1 |960×960 |960×960 |
|
||||
|^^|3:4 |832×1120 |834×1112 |
|
||||
|^^|9:16 |704×1248 |720×1280 |
|
||||
|^^|21:9 |1504×640 |1470×630 |
|
||||
|1080p |16:9 |1920×1088 |1920×1080 |\
|
||||
|> 1.0 lite 参考图场景不支持,seedance 2.0 & 2.0 fast不支持 | | | |
|
||||
|^^|4:3 |1664×1248 |1664×1248 |
|
||||
|^^|1:1 |1440×1440 |1440×1440 |
|
||||
|^^|3:4 |1248×1664 |1248×1664 |
|
||||
|^^|9:16 |1088×1920 |1080×1920 |
|
||||
|^^|21:9 |2176×928 |2206×946 |
|
||||
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
||||
|
||||
**duration** `integer` `默认值 5`
|
||||
> duration 和 frames 二选一即可,frames 的优先级高于 duration。如果您希望生成整数秒的视频,建议指定 duration。
|
||||
|
||||
生成视频时长,仅支持整数,单位:秒。
|
||||
|
||||
* seedance 1.0 pro、seedance 1.0 pro fast、seedance 1.0 lite: [2, 12] s。
|
||||
* seedance 1.5 pro: [4,12] 或设置为`-1`
|
||||
* seedance 2.0 & 2.0 fast: [4,15] 或设置为`-1`
|
||||
|
||||
:::warning
|
||||
seedance 2.0 & 2.0 fast、seedance 1.5 pro 支持两种配置方法
|
||||
|
||||
* 指定具体时长:支持有效范围内的任一整数。
|
||||
* 智能指定:设置为 `-1`,表示由模型在有效范围内自主选择合适的视频长度(整数秒)。实际生成视频的时长可通过 [查询视频生成任务 API](https://www.volcengine.com/docs/82379/1521309?lang=zh) 返回的 **duration** 字段获取。注意视频时长与计费相关,请谨慎设置。
|
||||
|
||||
|
||||
:::
|
||||
---
|
||||
|
||||
|
||||
**frames** `integer`
|
||||
> seedance 2.0 & 2.0 fast、seedance 1.5 pro 暂不支持
|
||||
> duration 和 frames 二选一即可,frames 的优先级高于 duration。如果您希望生成小数秒的视频,建议指定 frames。
|
||||
|
||||
生成视频的帧数。通过指定帧数,可以灵活控制生成视频的长度,生成小数秒的视频。
|
||||
由于 frames 的取值限制,仅能支持有限小数秒,您需要根据公式推算最接近的帧数。
|
||||
|
||||
* 计算公式:帧数 = 时长 × 帧率(24)。
|
||||
* 取值范围:支持 [29, 289] 区间内所有满足 `25 + 4n` 格式的整数值,其中 n 为正整数。
|
||||
|
||||
例如:假设需要生成 2.4 秒的视频,帧数=2.4×24=57.6。由于 frames 不支持 57.6,此时您只能选择一个最接近的值。根据 25+4n 计算出最接近的帧数为 57,实际生成的视频为 57/24=2.375 秒。
|
||||
|
||||
---
|
||||
|
||||
|
||||
**seed** `integer` `默认值 -1`
|
||||
种子整数,用于控制生成内容的随机性。
|
||||
取值范围:[\-1, 2^32\-1]之间的整数。
|
||||
:::warning
|
||||
|
||||
* 相同的请求下,模型收到不同的seed值,如:不指定seed值或令seed取值为\-1(会使用随机数替代)、或手动变更seed值,将生成不同的结果。
|
||||
* 相同的请求下,模型收到相同的seed值,会生成类似的结果,但不保证完全一致。
|
||||
|
||||
|
||||
:::
|
||||
---
|
||||
|
||||
|
||||
**camera_fixed** `boolean` `默认值 false`
|
||||
> 参考图场景不支持,seedance 2.0 & 2.0 fast 暂不支持
|
||||
|
||||
是否固定摄像头。枚举值:
|
||||
|
||||
* true:固定摄像头。平台会在用户提示词中追加固定摄像头,实际效果不保证。
|
||||
* false:不固定摄像头。
|
||||
|
||||
|
||||
---
|
||||
|
||||
|
||||
**watermark** `boolean` `默认值 false`
|
||||
生成视频是否包含水印。枚举值:
|
||||
|
||||
* false:不含水印。
|
||||
* true:含有水印。
|
||||
|
||||
|
||||
---
|
||||
|
||||
|
||||
<span id="oCS1tULg"></span>
|
||||
## 响应参数
|
||||
> 跳转 [请求参数](#RxN8G2nH)
|
||||
|
||||
**id ** `string`
|
||||
视频生成任务 ID 。仅保存 7 天(从 **created at** 时间戳开始计算),超时后将自动清除。
|
||||
|
||||
* 设置`"draft": true`,为 Draft 视频任务 ID。
|
||||
* 设置 `"draft": false`,为正常视频任务 ID。
|
||||
|
||||
创建视频生成任务为异步接口,获取 ID 后,需要通过 [查询视频生成任务 API](https://www.volcengine.com/docs/82379/1521309) 来查询视频生成任务的状态。任务成功后,会输出生成视频的`video_url`。
|
||||
|
||||
|
||||
@ -1,134 +0,0 @@
|
||||
# Celery 轮询机制修复报告
|
||||
|
||||
> 日期:2026-04-04
|
||||
> 版本:v0.16.0
|
||||
> 影响范围:backend/apps/generation/tasks.py, backend/config/settings.py
|
||||
|
||||
---
|
||||
|
||||
## 一、问题现象
|
||||
|
||||
2026/4/1 下午,大量用户反馈视频生成任务长时间卡在"生成中",前端显示耗时 60~65 分钟。
|
||||
火山引擎侧确认视频实际生成仅需约 10 分钟,结果已就绪但未被平台及时同步。
|
||||
|
||||
**截图数据**(4/1 下午完成的任务):
|
||||
|
||||
| 提交时间 | 显示耗时 |
|
||||
|---------|---------|
|
||||
| 2026/4/1 16:57:28 | 63 分 33 秒 |
|
||||
| 2026/4/1 16:58:41 | 62 分 37 秒 |
|
||||
| 2026/4/1 16:59:16 | 62 分 7 秒 |
|
||||
| 2026/4/1 17:00:36 | 64 分 24 秒 |
|
||||
| 2026/4/1 17:04:53 | 64 分 2 秒 |
|
||||
|
||||
## 二、根因分析
|
||||
|
||||
### 2.1 状态同步链路
|
||||
|
||||
```
|
||||
用户提交任务
|
||||
→ 后端调 create_task(火山 API)
|
||||
→ 获得 ark_task_id
|
||||
→ 派发 Celery 任务 poll_video_task
|
||||
→ Celery worker 每 5 秒查一次火山 API
|
||||
→ 火山返回完成 → 写 DB + 上传 TOS + 结算
|
||||
→ 前端轮询 DB → 展示结果
|
||||
```
|
||||
|
||||
前端只读 DB 状态,**不直接调火山 API**。整个链路完全依赖 Celery worker 轮询。
|
||||
|
||||
### 2.2 旧实现缺陷
|
||||
|
||||
`poll_video_task` 使用 `while True` + `time.sleep(5)` 长驻循环:
|
||||
|
||||
```python
|
||||
# 旧代码
|
||||
while True:
|
||||
time.sleep(POLL_INTERVAL) # 5 秒
|
||||
ark_resp = query_task(...) # 查一次
|
||||
if terminal:
|
||||
break
|
||||
```
|
||||
|
||||
**三个致命问题:**
|
||||
|
||||
| 问题 | 影响 |
|
||||
|------|------|
|
||||
| 每个任务占死一个 worker 进程 | `concurrency=4` 最多同时轮询 4 个任务,第 5 个排队 |
|
||||
| worker 重启后循环直接丢失 | 内存中的 `while True` 不可持久化,OOM/重启 = 任务丢失 |
|
||||
| `time.sleep` 浪费进程资源 | worker 99% 时间在 sleep,实际有用工作不到 1% |
|
||||
|
||||
### 2.3 OOM 重启链
|
||||
|
||||
```
|
||||
4 个任务同时轮询
|
||||
→ 某些任务完成,触发 TOS 上传(下载视频 + 上传对象存储)
|
||||
→ 内存飙升超过 512Mi 限制
|
||||
→ K8s OOM Kill → worker 重启(共重启 15 次)
|
||||
→ 4 个进程中的 while True 循环全部丢失
|
||||
→ 等 recover_stuck_tasks(每 10 分钟)重新派发
|
||||
→ 重新派发后 worker 又被占满 → 又 OOM → 循环
|
||||
→ 实际恢复耗时 ≈ 50~60 分钟
|
||||
```
|
||||
|
||||
## 三、修复方案
|
||||
|
||||
### 3.1 核心改动:self.retry 替代 while True
|
||||
|
||||
```python
|
||||
# 新代码
|
||||
@shared_task(bind=True, max_retries=None, ignore_result=True)
|
||||
def poll_video_task(self, record_id):
|
||||
record = GenerationRecord.objects.get(pk=record_id)
|
||||
|
||||
ark_resp = query_task(record.ark_task_id)
|
||||
new_status = map_status(ark_resp.get('status', ''))
|
||||
|
||||
if new_status in ('queued', 'processing'):
|
||||
record.save(update_fields=['status', 'updated_at'])
|
||||
raise self.retry(countdown=5) # 5 秒后重新入队
|
||||
|
||||
# 到达终态 → 处理结果
|
||||
...
|
||||
```
|
||||
|
||||
**原理对比:**
|
||||
|
||||
| | 旧方式(while True) | 新方式(self.retry) |
|
||||
|---|---|---|
|
||||
| 任务生命周期 | 在 worker 进程内存中 | 在 Redis 队列中 |
|
||||
| worker 占用 | 持续占用直到完成(分钟级) | 每次查询仅占用毫秒级 |
|
||||
| worker 重启 | 任务丢失 | Redis 中的任务自动恢复 |
|
||||
| 并发能力 | 最多 4 个(= concurrency) | 数百个(受 API RPM 限制) |
|
||||
|
||||
### 3.2 recover_stuck_tasks 间隔缩短
|
||||
|
||||
| | 旧值 | 新值 |
|
||||
|---|---|---|
|
||||
| Beat 调度间隔 | 600 秒(10 分钟) | 180 秒(3 分钟) |
|
||||
| stuck 判定门槛 | 10 分钟 | 3 分钟 |
|
||||
| 最坏恢复时间 | ~20 分钟 | ~6 分钟 |
|
||||
|
||||
### 3.3 变更文件
|
||||
|
||||
| 文件 | 改动 |
|
||||
|------|------|
|
||||
| `backend/apps/generation/tasks.py` | `poll_video_task`: while True → self.retry;`recover_stuck_tasks`: 门槛 10 → 3 分钟 |
|
||||
| `backend/config/settings.py` | Beat schedule: 600 → 180 秒 |
|
||||
|
||||
## 四、效果预估
|
||||
|
||||
| 指标 | 修复前 | 修复后 |
|
||||
|------|--------|--------|
|
||||
| 同时轮询任务数上限 | 4 | 数百 |
|
||||
| worker 重启后任务恢复 | 丢失,等 10 分钟兜底 | 自动恢复,无需兜底 |
|
||||
| 最坏同步延迟 | 60+ 分钟 | ~15 秒(= 查询间隔 + 网络延迟) |
|
||||
| 内存占用 | 持续占满(sleep 期间不释放) | 脉冲式占用(查完释放) |
|
||||
| OOM 风险 | 高(4 进程常驻 + TOS 上传峰值) | 低(进程闲置时内存极小) |
|
||||
|
||||
## 五、部署注意
|
||||
|
||||
1. **无需数据库迁移** — 仅修改 Python 代码
|
||||
2. **部署后旧的 while True 任务会自然消亡** — 不需要手动干预
|
||||
3. **Redis 中可能有旧格式的任务** — 兼容无问题,新旧 `poll_video_task` 签名一致(`record_id` 参数不变)
|
||||
4. **建议同步部署**:先部署代码,再重启 Celery worker(`kubectl rollout restart deployment celery-worker`)
|
||||
@ -4,6 +4,71 @@
|
||||
|
||||
---
|
||||
|
||||
## 2026-04-17 — v0.18.3: 版权报错友好提示 + 图片删除即梦式连续重命名
|
||||
|
||||
**状态**: ✅ 已完成 | **验收**: 14 个自动化测试全过(11 单元 + 3 E2E)
|
||||
|
||||
### 变更内容
|
||||
|
||||
#### 后端
|
||||
1. **版权限制错误友好提示** — `OutputVideoSensitiveContentDetected.PolicyViolation`(漫威等知名 IP 触发的版权拦截)加中文错误码映射:"生成的视频涉及版权限制内容(如知名IP、名人肖像等),已被系统拦截,请修改提示词后重试"。精确匹配 API 返回的 code,不影响父级 `OutputVideoSensitiveContentDetected`(敏感内容)的现有提示
|
||||
|
||||
#### 前端
|
||||
2. **图片删除即梦式连续重命名** — 现有逻辑:删图片2 后,图片3 保持原名称,再上传新图会出现"两个图片2"。修复后:
|
||||
- `inputBar.ts::removeReference` 删除后,同类型(图片/视频/音频)剩余引用按顺序连续重命名(图片1/图片2/图片3 连续无空位)
|
||||
- 用 `DOMParser` 解析 editorHtml,找到对应 `data-ref-id` 的 @mention span,更新 textContent(提示词栏里的 `@图片3` 自动变 `@图片2`)
|
||||
- 缩略图区和提示词栏视觉同步刷新
|
||||
|
||||
#### 测试覆盖
|
||||
- **Vitest 单元测试 11 个**(test/unit/removeReferenceRelabeling.test.ts):图片三场景、视频/音频独立编号、空 editorHtml、无 @mention、传入无效 id、部分 @、连续快速删除等边界
|
||||
- **Playwright E2E 3 个**(test/e2e/bug2-rename.spec.ts):真实浏览器验证上传 3 张图 → 删中间 → 再上传,编号不冲突
|
||||
|
||||
#### 文档整理
|
||||
3. **AirDrama 根目录归档**:8 个过期 MD 文档移至 `archive/`(_settle_payment 双重结算/v0.15.1 部署/公告HTML/迁移到火山/全平台账务审计/火山耗时分析/图片上传blob/迭代需求_20260320)
|
||||
4. **video-shuoshan/docs 归档**:6 个过期文档移至 `docs/archive/`(celery 轮询修复/design-review/PRD/test-report/两版旧 API 文档)
|
||||
5. **新增 1080P Plan**:`AirDrama/1080P分辨率支持开发计划.md`,对照官方 API 文档完成 3 轮审查修正(21:9 像素值错误、_settle_payment 遗漏、VideoDetailModal 重新编辑、regenerate、API 响应 6 处、serializer 命名、GenerationRecord.resolution 字段已存在等),标注 5 项已知计费缺陷
|
||||
|
||||
### 变更文件
|
||||
- `backend/utils/airdrama_client.py` — ERROR_MESSAGES 加 PolicyViolation 映射
|
||||
- `web/src/store/inputBar.ts` — removeReference 重写(即梦逻辑 + editorHtml 同步)
|
||||
- `web/test/unit/removeReferenceRelabeling.test.ts` — 11 个单元测试(新增)
|
||||
- `web/test/e2e/bug2-rename.spec.ts` — 3 个 E2E 测试(新增)
|
||||
- `AirDrama/1080P分辨率支持开发计划.md` — 1080P 开发 Plan(新增)
|
||||
- `AirDrama/版本管理.md` — 添加 v0.18.3 记录
|
||||
- `AirDrama/项目总览与待办.md` — 完成项 + 1080P P0 待办
|
||||
- 16 个 MD 文档归档到两个 archive 目录
|
||||
|
||||
### 触发原因
|
||||
- 用户反馈:漫威素材生成失败时显示英文错误,不友好
|
||||
- 用户反馈:删除中间图片后再上传会出现重复编号(参考即梦交互)
|
||||
- 火山 2026-04-16 1080P 上线,需提前规划开发
|
||||
|
||||
---
|
||||
|
||||
## 2026-04-13 — v0.18.2: 资产页修复 + 重新编辑素材泄漏 + 音频校验
|
||||
|
||||
**状态**: ✅ 已完成 | **验收**: 待测试
|
||||
|
||||
### 变更内容
|
||||
|
||||
#### 前端
|
||||
1. **资产页素材库引用不可查看** — Admin/Team 资产页的 `assetVideoToTask` 直接用了 `asset://` 协议 URL 作为 `previewUrl`,浏览器无法加载。改为检测 `asset://` 后使用 `thumb_url`(真实 TOS 缩略图地址),并标记 `isAssetRef`。同步修复 `BackendTask` 和 `AssetVideo` 类型定义补 `thumb_url` 字段
|
||||
2. **重新编辑素材泄漏** — `reEdit()` 把素材库引用混入 `references` 数组(注释写已过滤但实际没有),用户删除 @标签后旧素材仍通过 `filesToUpload` 路径发出。修复:`reEdit/regenerate` 加 `.filter(!isAssetRef)`;`PromptInput.extractText` 每次 DOM 变化时实时同步 `assetMentions` store
|
||||
3. **音频不能作为唯一参考素材** — Seedance API 不支持"纯音频"和"文本+音频"。`canSubmit()` 去掉 `!hasText` 条件,同时检查 `references` 和 `assetMentions` 中的图片/视频;Toolbar 点击禁用按钮弹 toast 提示原因
|
||||
4. **素材库引用缩略图烂图** — `pollStatus` 跨项目素材保护
|
||||
5. **音频 ♫ 符号溢出** — 改用 CSS `::before` 渲染,不再污染 prompt 文本
|
||||
|
||||
### 变更文件
|
||||
- `web/src/pages/AdminAssetsPage.tsx` — isAssetUrl + thumb_url 处理
|
||||
- `web/src/pages/TeamAssetsPage.tsx` — 同上
|
||||
- `web/src/types/index.ts` — BackendTask/AssetVideo 补 thumb_url
|
||||
- `web/src/store/generation.ts` — reEdit/regenerate 过滤 isAssetRef
|
||||
- `web/src/components/PromptInput.tsx` — extractText 同步 assetMentions
|
||||
- `web/src/store/inputBar.ts` — canSubmit 音频校验增强
|
||||
- `web/src/components/Toolbar.tsx` — 音频受限 toast 提示
|
||||
|
||||
---
|
||||
|
||||
## 2026-03-19 — v0.9.7: 登录风控第二期 — IP归属地解析 + 异常检测 + 飞书告警 + 自动封禁
|
||||
|
||||
**状态**: ✅ 已完成 | **验收**: ✅ 通过(本地验证,IP138 在线 API 需部署至阿里云后验证)
|
||||
|
||||
@ -1,134 +0,0 @@
|
||||
# 设计评审报告
|
||||
|
||||
## 评审结论: APPROVED
|
||||
|
||||
**评审版本**: PRD v3.0 — Phase 3 (计量单位变更 + 管理后台重做 + 用户个人中心)
|
||||
**评审日期**: 2026-03-12
|
||||
**评审范围**: Phase 3 新增/修改的原型页面(6 个新文件 + 1 个更新)
|
||||
|
||||
---
|
||||
|
||||
## 功能覆盖检查
|
||||
|
||||
### Phase 3 P0 核心功能
|
||||
|
||||
| PRD 功能点 | 是否实现 | 备注 |
|
||||
|-----------|---------|------|
|
||||
| 管理后台布局 — 左侧 Sidebar 240px + 4 导航项 | ✅ | 所有 4 个管理页面共享一致的 Sidebar,active 高亮正确 |
|
||||
| 管理后台路由 — dashboard/users/records/settings | ✅ | 4 个独立页面,导航链接互通 |
|
||||
| 用户个人中心页面 `/profile` | ✅ | 消费概览 + 消费趋势 + 消费记录 + 配额警告 |
|
||||
| 消费概览卡片 — 环形进度条 + 日/月配额 | ✅ | SVG 环形图 345s/600s,日额度 82.0%,月额度 39.1% |
|
||||
|
||||
**P0 覆盖率: 4/4 (100%)**
|
||||
|
||||
### Phase 3 P1 重要功能
|
||||
|
||||
| PRD 功能点 | 是否实现 | 备注 |
|
||||
|-----------|---------|------|
|
||||
| 仪表盘 — 核心指标卡片 (4 个) | ✅ | 总用户数 1,234 / 今日新增 +23 / 今日消费 4,560s / 本月消费 89,010s,含环比变化箭头 |
|
||||
| 仪表盘 — 消费趋势折线图 | ✅ | SVG 折线图 + 面积填充,30 天数据,tooltip 显示 "3/28 188s" |
|
||||
| 仪表盘 — 用户消费排行柱状图 | ✅ | Top 10 水平柱状图,数据递减 2,340s → 350s,前 3 名高亮 |
|
||||
| 仪表盘 — 时间范围选择器 | ✅ | 今日/近7天/近30天/自定义,按钮可交互切换 |
|
||||
| 仪表盘 — 图表 Mock 数据 | ✅ | 30 天数据有自然波动和上升趋势,排行榜数据合理 |
|
||||
| 用户管理 — 用户列表表格 (分页) | ✅ | 9 列数据 + 7 条记录,分页 "共 56 条,第 1/3 页" |
|
||||
| 用户管理 — 搜索和筛选 | ✅ | 关键字搜索 + 状态下拉 (全部/已启用/已禁用) + 刷新按钮 |
|
||||
| 用户管理 — 配额编辑模态框 | ✅ | 点击"编辑配额"弹出 Modal,含日/月限额输入框 + 取消/保存按钮 |
|
||||
| 用户管理 — 用户状态管理 | ✅ | 启用用户显示"禁用"(红色),禁用用户显示"启用"(绿色) |
|
||||
| 用户管理 — 用户详情抽屉 | ✅ | 点击用户名打开 420px 右侧抽屉,含完整用户信息 + 近期 3 条消费记录 |
|
||||
| 消费记录 — 消费明细表格 | ✅ | 6 列 (时间/用户名/消费秒数/视频描述/生成模式/状态),10 条记录,分页 "共 1,234 条,第 1/62 页" |
|
||||
| 消费记录 — 时间范围筛选 | ✅ | 日期选择器 2026-03-01 ~ 2026-03-12 + 查询按钮 |
|
||||
| 消费记录 — 用户筛选 | ✅ | "搜索用户名..." 搜索框 |
|
||||
| 消费记录 — 导出 CSV | ✅ | 顶栏"导出 CSV"按钮 + 下载图标,主题色边框 |
|
||||
| 系统设置 — 全局默认配额 | ✅ | 日限额 600s / 月限额 6000s 数字输入框 + 提示文字 + 保存按钮 |
|
||||
| 系统设置 — 系统公告管理 | ✅ | 开关切换 (ON 状态) + 文本域含示例公告 + 保存按钮 + Toast 反馈 |
|
||||
| 个人中心 — 消费记录列表 | ✅ | 6 条记录 (时间/秒数/prompt/模式/状态) + "加载更多"按钮 |
|
||||
| 个人中心 — 消费趋势迷你图 | ✅ | Sparkline 折线图 7 天数据 (3/6-3/12),近7天/近30天切换按钮 |
|
||||
| 个人中心 — 配额提示 | ✅ | 黄色警告横幅 "今日额度已消费 82%,请合理安排使用" + 日额度卡片 warning 样式 |
|
||||
|
||||
**P1 覆盖率: 19/19 (100%)**
|
||||
|
||||
### Phase 3 P2 锦上添花
|
||||
|
||||
| PRD 功能点 | 是否实现 | 备注 |
|
||||
|-----------|---------|------|
|
||||
| 页面切换过渡动画 | ✅ | fadeUp 入场动画 + 延迟序列 |
|
||||
| 数据加载骨架屏 | ❌ | 未实现 (P2,不影响评审) |
|
||||
| Sidebar 折叠模式 | ❌ | 未实现 (P2,不影响评审) |
|
||||
|
||||
**P2 覆盖率: 1/3 (33%)**
|
||||
|
||||
### 导航页更新
|
||||
|
||||
| PRD 功能点 | 是否实现 | 备注 |
|
||||
|-----------|---------|------|
|
||||
| index.html 更新 — Phase 3 导航卡片 | ✅ | 3 个分区:Phase 1 核心功能 + Phase 3 管理后台 (4 卡片) + Phase 3 用户端 (个人中心) |
|
||||
|
||||
---
|
||||
|
||||
## 后台管理系统专项检查
|
||||
|
||||
| 检查项 | 结果 | 说明 |
|
||||
|--------|------|------|
|
||||
| 按功能模块拆分多个页面 + 侧边导航 | ✅ | 4 个独立页面 + 240px Sidebar 导航,active 状态正确 |
|
||||
| 仪表盘图表有真实 Mock 数据 | ✅ | 折线图 30 天波动数据 + 排行榜 10 用户递减数据 + tooltip |
|
||||
| 独立的用户管理页面 | ✅ | 完整表格 + 搜索/筛选 + 编辑配额模态框 + 用户详情抽屉 |
|
||||
| 数据表格有搜索、分页、操作列 | ✅ | 搜索框 + 状态筛选 + 分页控件 + 编辑/禁用操作按钮 |
|
||||
|
||||
**专项检查: 4/4 全部通过**
|
||||
|
||||
---
|
||||
|
||||
## 素材使用质量
|
||||
|
||||
| 检查项 | 结果 | 问题描述 |
|
||||
|--------|------|---------|
|
||||
| 图片方向 | N/A | 原型为纯 HTML/CSS/SVG,无外部图片素材 |
|
||||
| 精灵图集裁切 | N/A | 不涉及精灵图 |
|
||||
| 尺寸比例 | ✅ | SVG 图表自适应宽度,卡片网格响应式 |
|
||||
| 真实素材引用 | ✅ | 使用 SVG 内联图标(非 emoji 占位符) |
|
||||
| 素材加载 | ✅ | 所有页面资源正常加载,无 broken image |
|
||||
| 视觉层次 | ✅ | Sidebar → Content → Modal/Drawer 层叠正确 |
|
||||
|
||||
---
|
||||
|
||||
## 设计质量
|
||||
|
||||
- **视觉一致性**: 5/5 — 所有 6 个 Phase 3 页面共享统一的深色主题 (Linear/Vercel 风格),CSS 变量一致 (#0a0a0f, #111118, #16161e, #2a2a38, #00b8e6),字体统一 (Noto Sans SC + Space Grotesk + JetBrains Mono)
|
||||
- **交互合理性**: 5/5 — Drawer/Modal/Toggle/Toast 交互完整,时间选择器可切换,分页/搜索/筛选 UI 齐全
|
||||
- **响应式设计**: 4/5 — 仪表盘卡片使用 grid-cols-4 max-lg:grid-cols-2 响应式,个人中心 max-width 900px 居中。Sidebar 无折叠模式 (P2)
|
||||
- **素材使用正确性**: 5/5 — 纯 SVG 图表和图标,无外部依赖,渲染准确
|
||||
|
||||
**综合评分: 4.8/5**
|
||||
|
||||
---
|
||||
|
||||
## Playwright 验证截图
|
||||
|
||||
| 页面 | 截图文件 | 验证结果 |
|
||||
|------|---------|---------|
|
||||
| 仪表盘 | prototype-admin-dashboard.png | ✅ 4 统计卡片 + 折线图 + 排行榜 + 时间选择器 |
|
||||
| 用户管理 | prototype-admin-users.png | ✅ 搜索/筛选栏 + 7 行用户表格 + 分页 |
|
||||
| 用户详情抽屉 | prototype-admin-users-drawer.png | ✅ 右侧 420px 抽屉 + 用户信息 + 近期消费 |
|
||||
| 消费记录 | prototype-admin-records.png | ✅ 筛选栏 + 10 行记录表格 + 导出 CSV + 分页 |
|
||||
| 系统设置 | prototype-admin-settings.png | ✅ 配额表单 + 公告管理 + Toggle 开关 |
|
||||
| 个人中心 | prototype-user-profile.png | ✅ 环形图 + 日/月额度 + Sparkline + 消费记录 + 配额警告 |
|
||||
| 导航页 | prototype-index.png | ✅ Phase 1 + Phase 3 管理后台 + Phase 3 用户端分区 |
|
||||
|
||||
---
|
||||
|
||||
## 评审总结
|
||||
|
||||
Phase 3 原型质量**极高**,完整覆盖了 PRD 中所有 P0 (4/4) 和 P1 (19/19) 功能需求。
|
||||
|
||||
**亮点**:
|
||||
1. 管理后台 4 个子页面布局一致,Sidebar 导航交互正确
|
||||
2. 仪表盘图表使用真实感 Mock 数据(折线图有自然波动,排行榜递减合理)
|
||||
3. 用户管理交互完整:表格 + 搜索 + 筛选 + 编辑模态框 + 详情抽屉
|
||||
4. 个人中心环形进度条 + Sparkline 趋势图 + 配额警告横幅,信息层次清晰
|
||||
5. 整体深色主题统一,Linear/Vercel 风格专业感强
|
||||
6. 所有页面计量单位正确使用「秒数」(非「次数」),与 Phase 3 需求一致
|
||||
|
||||
**可改进项** (不影响通过):
|
||||
- P2: Sidebar 折叠模式未实现
|
||||
- P2: 骨架屏加载态未实现
|
||||
- 用户表格缺少头像列(可在开发阶段补充)
|
||||
1611
docs/prd.md
1611
docs/prd.md
File diff suppressed because it is too large
Load Diff
65
docs/todo/提示词AI优化功能.md
Normal file
65
docs/todo/提示词AI优化功能.md
Normal file
@ -0,0 +1,65 @@
|
||||
# 提示词 AI 优化功能
|
||||
|
||||
**状态**:待开发
|
||||
**创建日期**:2026-04-17
|
||||
|
||||
## 需求背景
|
||||
|
||||
用户写提示词时,经常写得过于简单或不符合 Seedance 2.0 的提示词规范(如没用「图片n」引用素材、缺少核心要素、镜头语言模糊等),导致生成效果不理想。
|
||||
|
||||
引入火山官方的 SKILL.md(Seedance 2.0 Prompt Optimizer)能力,让用户在写完提示词后一键优化。
|
||||
|
||||
## 功能设计
|
||||
|
||||
### 用户视角
|
||||
1. 用户在提示词输入框输入原始提示词(带 @素材引用)
|
||||
2. 点击输入框旁的「AI 优化」按钮
|
||||
3. 弹出预览弹窗,显示优化后的提示词
|
||||
4. 用户点「采纳」→ 替换原提示词;点「取消」→ 保留原文
|
||||
5. 消耗一定 token 数(计入团队 token 池)
|
||||
|
||||
### 技术方案
|
||||
|
||||
**后端**
|
||||
- 新接口:`POST /api/v1/prompt/optimize`
|
||||
- 入参:`prompt`(原始提示词,含 `@素材` 标记)、`asset_refs`(素材引用列表:label + type + url)
|
||||
- 调用豆包模型(推荐 `doubao-seed-2.0` 最新版本,具体 model id 需确认)
|
||||
- System prompt:基于 SKILL.md 改造成**一次性输出**模式(不做多轮交互)
|
||||
- 返回:`optimized_prompt`(优化后的文本)+ `token_used`(消耗 token 数)
|
||||
- 同时扣减团队 token 池
|
||||
|
||||
**前端**
|
||||
- `PromptInput` 组件右侧加「AI 优化」按钮(带 ✨ 图标)
|
||||
- 点击后:loading 状态 → 调用后端接口 → 弹出 `PromptOptimizeModal` 预览弹窗
|
||||
- 弹窗显示:原始 vs 优化对比、token 消耗提示、采纳/取消按钮
|
||||
- 采纳后:把优化结果写回 editor(保持 @mention 标签正确渲染)
|
||||
|
||||
**SKILL.md 改造要点**
|
||||
- 去掉 Step 0(主动引导提问)→ 一次输入一次输出
|
||||
- 去掉 Step 3 的「多选模板交互」→ 如遇歧义/冲突,在输出里以备注形式标注(如 `【注:检测到 X 冲突,已按 Y 处理】`)
|
||||
- 保留 Step 2(素材自动映射 `@图N`)、Step 4(结构化输出:优化后提示词 / 优化问题 / 相关原则)
|
||||
|
||||
## 计费设计
|
||||
- 提示词优化和视频生成共用**同一个 token 池**(用户已熟悉的计费机制)
|
||||
- 不单独限额,按实际 token 消耗扣减
|
||||
- 前端展示:"本次优化消耗约 X token"
|
||||
|
||||
## 模型选择
|
||||
- **首选**:豆包 2.0 系列最强模型(需查火山文档确认最新 model id)
|
||||
- 备选:`doubao-1-5-pro-32k`(成本更低,任务够用)
|
||||
|
||||
## 待确认事项
|
||||
- [ ] 豆包 2.0 系列当前最强模型的具体 model id
|
||||
- [ ] Token 池扣减逻辑是否需要团队/个人双重配额
|
||||
- [ ] 优化失败时(LLM 报错、token 超限)的前端兜底提示
|
||||
|
||||
## 验收标准
|
||||
1. 用户输入粗糙提示词(如「美女跳舞」)→ 优化后符合 SKILL.md 的三段式结构(全局设定 / 时间线脚本 / 质感风格与约束)
|
||||
2. 带 `@素材` 的提示词 → 优化后正确使用 `@图1/@图2/@视频1` 等标记
|
||||
3. 冲突/缺失场景 → 在输出中以备注标明,不擅自填充
|
||||
4. Token 消耗正确扣减到团队池
|
||||
5. 用户可在弹窗中选择采纳或取消
|
||||
|
||||
## 参考文件
|
||||
- SKILL.md(火山提供的原始技能文件)
|
||||
- `docs/API文档/seedance 2.0 系列教程.MD` 第 2152 行起的「提示词技巧」部分
|
||||
175
test-report.md
175
test-report.md
@ -1,175 +0,0 @@
|
||||
# 测试报告
|
||||
|
||||
## 测试结论: ALL_PASSED
|
||||
|
||||
## Bug 路由摘要
|
||||
- CODE_BUG: 0 个(路由到开发 Agent)
|
||||
- DESIGN_BUG: 0 个(路由到设计 Agent)
|
||||
- REQUIREMENT_BUG: 0 个(路由到产品 Agent)
|
||||
|
||||
## 测试概要
|
||||
- 单元测试: 224 通过 / 0 失败(9 个测试文件)
|
||||
- E2E 测试: 49 通过 / 0 失败(3 个测试文件)
|
||||
- 视觉质量检查: 7 通过 / 0 失败
|
||||
- 后端 API 验证: 12 端点全部通过
|
||||
- Django 系统检查: 0 问题
|
||||
- 数据库迁移: 完整
|
||||
|
||||
## 通过的测试
|
||||
|
||||
### 单元测试(224 个)
|
||||
|
||||
#### 既有测试文件(已更新适配 Phase 3)
|
||||
- ✅ test/unit/apiClient.test.ts — API 客户端测试(authApi、videoApi、adminApi、profileApi)
|
||||
- ✅ test/unit/phase2Components.test.tsx — 组件类型测试(已更新为秒数配额格式)
|
||||
- ✅ test/unit/auth.test.ts — 认证流程测试
|
||||
- ✅ test/unit/videoGeneration.test.ts — 视频生成测试
|
||||
- ✅ test/unit/adminPanel.test.ts — 管理面板测试
|
||||
- ✅ test/unit/uiComponents.test.tsx — UI 组件测试
|
||||
- ✅ test/unit/routerSetup.test.tsx — 路由配置测试
|
||||
- ✅ test/unit/phase2Features.test.ts — Phase 2 功能测试
|
||||
|
||||
#### Phase 3 新增测试(62 个,test/unit/phase3Features.test.ts)
|
||||
- ✅ 秒数配额系统验证(7 个)— Quota 类型字段、默认值 600s/6000s、使用量追踪
|
||||
- ✅ 管理后台多页面布局验证(7 个)— AdminLayout 侧边栏、4 个导航链接、折叠功能
|
||||
- ✅ 仪表盘页面验证(8 个)— ECharts 图表、统计卡片、趋势数据、骨架屏加载
|
||||
- ✅ 用户管理页面验证(6 个)— 用户表格、搜索过滤、配额编辑、状态切换
|
||||
- ✅ 消费记录页面验证(5 个)— 记录表格、日期范围过滤、CSV 导出、分页
|
||||
- ✅ 系统设置页面验证(4 个)— 全局配额默认值、公告管理、开关切换
|
||||
- ✅ 个人中心页面验证(8 个)— 仪表盘图表、进度条、趋势图、消费记录列表
|
||||
- ✅ 后端 API 路由验证(4 个)— profile 和 admin URL 配置完整
|
||||
- ✅ QuotaConfig 模型验证(3 个)— 单例模式、默认值
|
||||
- ✅ ProtectedRoute 管理员守卫(1 个)— requireAdmin 属性
|
||||
- ✅ UserInfoBar 导航(2 个)— 秒数显示、个人中心链接
|
||||
- ✅ ECharts 集成(3 个)— echarts-for-react 依赖、图表组件配置
|
||||
- ✅ 路由配置(4 个)— 嵌套路由、重定向、通配符
|
||||
|
||||
### E2E 测试(49 个)
|
||||
|
||||
#### 既有 E2E 测试(26 个)
|
||||
- ✅ test/e2e/video-generation.spec.ts — 视频生成页 P0/P1/P2 验收 + Sidebar(14 个)
|
||||
- ✅ test/e2e/auth-flow.spec.ts — 认证流程(注册、登录、登出、路由保护)(12 个)
|
||||
|
||||
#### Phase 3 新增 E2E 测试(23 个,test/e2e/phase3-admin-profile.spec.ts)
|
||||
|
||||
**个人中心页面(7 个)**
|
||||
- ✅ 已认证用户可访问个人中心
|
||||
- ✅ 显示消费概览(今日额度、本月额度)
|
||||
- ✅ 显示消费趋势(近 7 天 / 近 30 天切换)
|
||||
- ✅ 显示消费记录(新用户显示"暂无记录")
|
||||
- ✅ 返回首页导航
|
||||
- ✅ 退出按钮可见
|
||||
- ✅ 未认证用户重定向到登录页
|
||||
|
||||
**UserInfoBar 配额与导航(2 个)**
|
||||
- ✅ 显示秒数格式配额(剩余: Xs/Xs(日))
|
||||
- ✅ 个人中心链接导航到 /profile
|
||||
|
||||
**管理后台权限控制(6 个)**
|
||||
- ✅ 非管理员用户无法访问 /admin/dashboard
|
||||
- ✅ 非管理员用户无法访问 /admin/users
|
||||
- ✅ 非管理员用户无法访问 /admin/records
|
||||
- ✅ 非管理员用户无法访问 /admin/settings
|
||||
- ✅ /admin 重定向到 /admin/dashboard
|
||||
- ✅ 未认证访问 /admin 重定向到 /login
|
||||
|
||||
**后端 API 集成(7 个)**
|
||||
- ✅ GET /api/v1/auth/me 返回秒数配额(daily_seconds_limit=600, monthly_seconds_limit=6000)
|
||||
- ✅ GET /api/v1/profile/overview 返回消费数据(7 天趋势)
|
||||
- ✅ GET /api/v1/profile/overview 支持 30 天周期
|
||||
- ✅ GET /api/v1/profile/records 返回分页记录
|
||||
- ✅ POST /api/v1/video/generate 消耗秒数(seconds_consumed=10, remaining=590)
|
||||
- ✅ 管理端点对非管理员返回 403
|
||||
- ✅ 未认证请求返回 401
|
||||
|
||||
**趋势切换(1 个)**
|
||||
- ✅ 点击 30 天标签更新趋势周期
|
||||
|
||||
### 后端 API 验证(curl 直接测试)
|
||||
- ✅ POST /api/v1/auth/register — 201 Created
|
||||
- ✅ POST /api/v1/auth/login — 200 OK
|
||||
- ✅ GET /api/v1/auth/me — 返回秒数配额
|
||||
- ✅ GET /api/v1/profile/overview?period=7d — 7 天趋势
|
||||
- ✅ GET /api/v1/profile/overview?period=30d — 30 天趋势
|
||||
- ✅ GET /api/v1/profile/records — 分页记录
|
||||
- ✅ GET /api/v1/admin/stats — 管理统计数据
|
||||
- ✅ GET /api/v1/admin/users — 用户列表(分页、搜索)
|
||||
- ✅ GET /api/v1/admin/records — 消费记录(日期过滤)
|
||||
- ✅ GET /api/v1/admin/settings — 系统设置
|
||||
- ✅ POST /api/v1/video/generate — 202 Accepted,seconds_consumed=10
|
||||
- ✅ Django system check: 0 issues, migrations up-to-date
|
||||
|
||||
## 失败的测试(Bug 列表)
|
||||
|
||||
无
|
||||
|
||||
## 视觉质量检查
|
||||
|
||||
| 检查项 | 状态 | 说明 |
|
||||
|-------|------|------|
|
||||
| 登录页面 | ✅ | 暗色主题,表单完整,注册链接可见 |
|
||||
| 主页面(已登录) | ✅ | 显示"剩余: 600s/600s(日)"秒数配额,个人中心和管理后台入口可见 |
|
||||
| 管理后台 — 仪表盘 | ✅ | 侧边栏 4 个导航项,统计卡片(用户数、今日消费、本月消费、活跃用户),ECharts 折线图和柱状图 |
|
||||
| 管理后台 — 用户管理 | ✅ | 用户表格含秒数配额列,搜索过滤,分页功能 |
|
||||
| 管理后台 — 消费记录 | ✅ | 记录表格含时间/用户/秒数/描述/模式/状态列,日期范围过滤,导出 CSV 按钮 |
|
||||
| 管理后台 — 系统设置 | ✅ | 全局默认配额(600s/6000s),系统公告开关和文本输入 |
|
||||
| 个人中心 | ✅ | 仪表盘图表(0s/600s),今日/本月额度卡片含进度条,消费趋势(近7天/近30天),消费记录(暂无记录) |
|
||||
|
||||
### 视觉截图文件
|
||||
- screenshot-login-phase3.png — 登录页
|
||||
- screenshot-main-page-phase3.png — 主页面
|
||||
- screenshot-admin-dashboard-phase3.png — 管理仪表盘
|
||||
- screenshot-admin-users-phase3.png — 用户管理
|
||||
- screenshot-admin-records-phase3.png — 消费记录
|
||||
- screenshot-admin-settings-phase3.png — 系统设置
|
||||
- screenshot-profile-phase3.png — 个人中心
|
||||
|
||||
## 上一轮 Bug 修复验证 — 全部 ✅
|
||||
|
||||
| 原 Bug | 状态 | 验证方式 |
|
||||
|--------|------|---------|
|
||||
| API 拦截器在登录端点 401 重定向 | ✅ 已修复 | `api.ts:24-25` 排除 `/auth/login`、`/auth/register`、`/auth/token/refresh` 端点 |
|
||||
| 音频类型死代码(types/store/components) | ✅ 已修复 | 源码审查确认 `UploadedFile.type` 为 `'image' \| 'video'`,音频分支已全部移除 |
|
||||
| GenerationCard 硬编码模型名 | ✅ 已修复 | `GenerationCard.tsx:54` 使用 `task.model` 动态渲染 |
|
||||
| 无文件大小验证 | ✅ 已修复 | UniversalUpload、InputBar、KeyframeUpload 均有 20MB/100MB 限制 |
|
||||
|
||||
## Phase 3 功能覆盖总结
|
||||
|
||||
| 功能模块 | 前端 | 后端 API | 单元测试 | E2E 测试 | 视觉检查 |
|
||||
|---------|------|---------|---------|---------|---------|
|
||||
| 秒数配额系统 | ✅ | ✅ | ✅ | ✅ | ✅ |
|
||||
| 管理后台侧边栏 | ✅ | — | ✅ | ✅ | ✅ |
|
||||
| 仪表盘(ECharts) | ✅ | ✅ | ✅ | — | ✅ |
|
||||
| 用户管理 | ✅ | ✅ | ✅ | — | ✅ |
|
||||
| 消费记录 | ✅ | ✅ | ✅ | — | ✅ |
|
||||
| 系统设置 | ✅ | ✅ | ✅ | — | ✅ |
|
||||
| 个人中心 | ✅ | ✅ | ✅ | ✅ | ✅ |
|
||||
| 权限控制 | ✅ | ✅ | ✅ | ✅ | — |
|
||||
| CSV 导出 | ✅ | — | ✅ | — | ✅ |
|
||||
|
||||
## 测试环境
|
||||
- 前端: Vite 5 + React 18 + TypeScript
|
||||
- 后端: Django 4.2 + DRF + SimpleJWT
|
||||
- 单元测试: Vitest 3.x (jsdom)
|
||||
- E2E 测试: Playwright 1.50
|
||||
- 数据库: SQLite (开发环境)
|
||||
- Node.js: v22+
|
||||
- Python: 3.12+
|
||||
|
||||
## 测试文件清单
|
||||
|
||||
| 文件 | 类型 | 测试数 |
|
||||
|------|------|--------|
|
||||
| `test/unit/inputBarStore.test.ts` | Store 单元测试 | 31 |
|
||||
| `test/unit/generationStore.test.ts` | Store 单元测试 | 15 |
|
||||
| `test/unit/authStore.test.ts` | Store 单元测试 | 15 |
|
||||
| `test/unit/apiClient.test.ts` | API 客户端测试 | 20 |
|
||||
| `test/unit/phase2Components.test.tsx` | Phase 2 组件测试 | 17 |
|
||||
| `test/unit/designTokens.test.ts` | CSS/设计规范测试 | 30 |
|
||||
| `test/unit/components.test.tsx` | 组件渲染测试 | 16 |
|
||||
| `test/unit/bugfixVerification.test.ts` | Bug 修复验证 | 15 |
|
||||
| `test/unit/phase3Features.test.ts` | Phase 3 功能测试 | 62 |
|
||||
| `test/e2e/video-generation.spec.ts` | E2E 视频生成 | 14 |
|
||||
| `test/e2e/auth-flow.spec.ts` | E2E 认证流程 | 12 |
|
||||
| `test/e2e/phase3-admin-profile.spec.ts` | E2E Phase 3 | 23 |
|
||||
| **总计** | | **270** |
|
||||
Loading…
x
Reference in New Issue
Block a user