feat(seedance): 加 seedance_2_pro variant + smoke 支持 --variant 参数
- yaml 加 seedance_2_pro (model_id=doubao-seedance-2-0-260128, ¥46/Mtok 文生, 支持 480p/720p/1080p);放在 fast 后面,fast 仍是默认 (yaml 首位 = agent fallback) - Pro 出片慢,poll_timeout_s 拉到 900s (实测 480p 4s 等了 177s) - smoke_seedance.py 加 sys.argv[1] 选 variant:`smoke_seedance.py seedance_2_pro` - SKILL 把 "30-90s" 校准到 "Fast 30-90s / Pro 2-3min" (实测) smoke Pro 跑通:body schema 完全对,响应带真 usage.total_tokens (40594),tool _extract_tokens 命中走真值不估算;480p 4s 实测 ¥1.87,与官方源数据线性外推吻合。 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
da71daa789
commit
5faff8a127
|
|
@ -26,6 +26,7 @@ image:
|
|||
request_timeout_s: 60 # 出图慢于此判超时
|
||||
|
||||
video:
|
||||
# fast 放第一个 → 默认 variant(成本敏感场景优先);开通了 Pro 的用户从顶栏下拉切。
|
||||
seedance_2_fast:
|
||||
model_id: doubao-seedance-2-0-fast-260128
|
||||
display_name: 豆包 Seedance 2.0 Fast
|
||||
|
|
@ -61,3 +62,32 @@ video:
|
|||
request_timeout_s: 60 # submit POST 超时(异步,只是提交)
|
||||
poll_interval_s: 5 # 单次 GET 间隔(秒);典型 30-90s 出片
|
||||
poll_timeout_s: 600 # 总等待上限(10min)→ 超时返 [Error]
|
||||
|
||||
seedance_2_pro:
|
||||
model_id: doubao-seedance-2-0-260128
|
||||
display_name: 豆包 Seedance 2.0 Pro
|
||||
# 同 fast 一套异步 task + 轮询接口,只换 model_id + 单价 + 分辨率上限。
|
||||
endpoint_submit: /contents/generations/tasks
|
||||
endpoint_poll: /contents/generations/tasks
|
||||
|
||||
# 计费(per-token,公式同 fast):
|
||||
# 文生视频: ¥46 / Mtok (vs fast ¥37)
|
||||
# 图生视频: ¥28 / Mtok (vs fast ¥22)
|
||||
# 实测档位(Pro, 5s, 文生视频, 24fps):
|
||||
# 720p 16:9 → ¥4.97 (vs fast ¥4.00)
|
||||
# 1080p 16:9 → 更高(Pro 独占,fast 不支持)
|
||||
price_cny_per_mtoken_text2video: 46.0
|
||||
price_cny_per_mtoken_video2video: 28.0
|
||||
fps: 24
|
||||
|
||||
# 支持参数 — Pro 支持 1080p,默认仍 720p 控成本
|
||||
default_resolution: 720p # 480p / 720p / 1080p(Pro 独占)
|
||||
default_ratio: "16:9"
|
||||
default_duration: 5
|
||||
default_watermark: false
|
||||
default_generate_audio: false
|
||||
|
||||
# 轮询参数:Pro 出片慢于 Fast(更精细),拉长超时
|
||||
request_timeout_s: 60
|
||||
poll_interval_s: 5
|
||||
poll_timeout_s: 900 # Pro 上限拉到 15min 保险
|
||||
|
|
|
|||
|
|
@ -48,6 +48,14 @@ def main() -> int:
|
|||
if not video_cfg:
|
||||
print("[SKIP] doubao.yaml 无 video 段")
|
||||
return 0
|
||||
# 允许命令行指定 variant:`smoke_seedance.py seedance_2_pro`;不传走 yaml 第一个
|
||||
want_variant = sys.argv[1] if len(sys.argv) > 1 else ""
|
||||
if want_variant:
|
||||
if want_variant not in video_cfg:
|
||||
print(f"[FAIL] variant {want_variant!r} 不在 yaml video 段, 已知: {list(video_cfg.keys())}")
|
||||
return 2
|
||||
variant_key, variant_cfg = want_variant, video_cfg[want_variant]
|
||||
else:
|
||||
variant_key, variant_cfg = next(iter(video_cfg.items()))
|
||||
print(f"[setup] variant={variant_key} model={variant_cfg.get('model_id')}")
|
||||
print(f" price_text2video=¥{variant_cfg.get('price_cny_per_mtoken_text2video')}/Mtok")
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
---
|
||||
name: videogen
|
||||
description: 用豆包 Seedance 2.0 Fast 生视频(`seedance` tool)。**任何生视频任务调 tool 前必须 load 本 skill**。触发词:视频 / 动画 / 动起来 / 做个 video / 做段视频 / 出段视频 / 生成视频 / mov / mp4 / 短片 / 镜头 / 运动镜头 / 演示视频 / 动效。核心:视频比图贵 10 倍(¥1.86-¥4+ / 段),且要等 30-90s,问清楚再画 + 强制确认。
|
||||
description: 用豆包 Seedance 2.0 Fast 生视频(`seedance` tool)。**任何生视频任务调 tool 前必须 load 本 skill**。触发词:视频 / 动画 / 动起来 / 做个 video / 做段视频 / 出段视频 / 生成视频 / mov / mp4 / 短片 / 镜头 / 运动镜头 / 演示视频 / 动效。核心:视频比图贵 10 倍(¥1.86-¥4+ / 段),且要等 Fast 30-90s / Pro 2-3min,问清楚再画 + 强制确认。
|
||||
---
|
||||
|
||||
# Videogen
|
||||
|
|
@ -20,7 +20,7 @@ description: 用豆包 Seedance 2.0 Fast 生视频(`seedance` tool)。**任何
|
|||
- 用户**沉默 / 长时间不回 / 追问别的事** → 不算确认,**继续等**,不要自作主张
|
||||
- 用户回 "看起来不错" / "差不多" / 模棱两可 → **主动追问一句"这就开烧 ¥X?"**,拿到明确"是"再调
|
||||
|
||||
**为什么比 imagegen 还严**:视频单价 ¥4 起,比图贵 10 倍以上;一次失败相当于 18 张错图;且要等 30-90s,用户改方向的等待代价也很高。**装配 prompt 不等于授权调用** —— 装配是模型脑内运算,授权要落到用户的"嗯,画吧"上。
|
||||
**为什么比 imagegen 还严**:视频单价 ¥4 起,比图贵 10 倍以上;一次失败相当于 18 张错图;且要等 Fast 30-90s / Pro 2-3min,用户改方向的等待代价也很高。**装配 prompt 不等于授权调用** —— 装配是模型脑内运算,授权要落到用户的"嗯,画吧"上。
|
||||
|
||||
## 何时用本 skill
|
||||
|
||||
|
|
@ -49,7 +49,7 @@ description: 用豆包 Seedance 2.0 Fast 生视频(`seedance` tool)。**任何
|
|||
|
||||
**模糊时主动问一句**:
|
||||
|
||||
> 你这是想要 **一张静态图**(seedream,¥0.22,3-5 秒出图),还是 **一段短视频**(seedance,¥4 起,等 30-90s)?静态图够的话省钱省时间。
|
||||
> 你这是想要 **一张静态图**(seedream,¥0.22,3-5 秒出图),还是 **一段短视频**(seedance,¥4 起,等 Fast 30-90s / Pro 2-3min)?静态图够的话省钱省时间。
|
||||
|
||||
## 诊断模糊度 — 六维清单(运动是新增的必填维)
|
||||
|
||||
|
|
@ -78,7 +78,7 @@ description: 用豆包 Seedance 2.0 Fast 生视频(`seedance` tool)。**任何
|
|||
> - **场景**:工地中景,远处有塔吊
|
||||
> - **镜头**:固定俯视 + 缓慢推近模板中心
|
||||
> - **风格**:写实工程纪录片
|
||||
> - **时长 / 分辨率 / 比例**:5s / 720p / 16:9(ppt 用) — ¥4.00,等 30-90s
|
||||
> - **时长 / 分辨率 / 比例**:5s / 720p / 16:9(ppt 用) — ¥4.00,等 Fast 30-90s / Pro 2-3min
|
||||
>
|
||||
> 这样画可以吗?或者告诉我:想突出什么?(浇筑工艺细节 / 振动棒动作 / 大场面气势 / 慢动作)
|
||||
|
||||
|
|
@ -201,7 +201,7 @@ seedance(
|
|||
)
|
||||
```
|
||||
|
||||
**调用是同步阻塞 30-90s** —— tool 内部 submit 后轮询直到 succeeded,期间 LLM 卡住。这不是 bug,告诉用户"提交了,等 30-90 秒"再耐心等返回。
|
||||
**调用是同步阻塞 Fast 30-90s / Pro 2-3min** —— tool 内部 submit 后轮询直到 succeeded,期间 LLM 卡住。这不是 bug,告诉用户"提交了,等 30-90 秒"再耐心等返回。
|
||||
|
||||
返回串首行是 `[seedance] model=... · resolution=... · ratio=... · duration=Xs · cost=¥... · elapsed=...s` —— 原样保留给用户(SPA 会 parse 挂徽章)。第二行 `saved: <相对路径>` 是产物路径,告诉用户。
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue