# Ark Global 计费价格表（美元口径）

下游部署时的计费配置手册。覆盖三条计费链路：Seedance **按量**（token）、Seedance **按秒**、Seedream **按次**。

口径：**本站按国际价格、以美元设置，不是人民币价格**。直接用官方美元价，不经过任何汇率。

> **下表所有价格都是美元。** 填价格时照抄美元数字，不要换算成人民币再填。如需快速对照人民币，按 **1 美元 ≈ 6.7 元** 估算即可；这只是参考换算，实际计费口径仍是美元。

> 官方海外模型写作 `dreamina-seedance-*`，本站与插件使用 `doubao-seedance-*`，两者是同一个模型。

## 下游配置步骤

1. 安装 `doubao` 任务插件（`plugin.js` 自带模型清单与计量口径，不改）。
2. 建渠道：类型选 **New API（60）**，Base URL 填上游网关地址，Key 填上游令牌。插件自动补 `/doubao` 前缀。
3. 配价格：在定价编辑器为每个要卖的模型填一行表达式，公式复制下文即可。
4. 验账：先发一条短视频，核对账单与「秒数 × 每秒单价」是否一致。

## 通用规则

| 项 | 说明 |
| --- | --- |
| 表达式返回值的单位 | **美元**。系统再乘以 `QuotaPerUnit`（默认 500000 额度 = 1 USD）换算成额度 |
| 优先级 | 先查插件级，命中即返回；未命中才回落模型级。**两处都改了务必核对一致**，否则旧值仍生效 |
| 未配表达式时 | 该模型回落到普通模型倍率，账会跑偏。**每个要卖的模型都必须配一行** |

## 一、Seedance 按量（token）计费

### 计量事实

插件按请求和上游回报给出三项事实：

| 事实 | 取值 | 含义 |
| --- | --- | --- |
| `tokens` | 数字 | 上游 `usage.completion_tokens`，提交时按 `秒数 × 宽 × 高 × 24 ÷ 1024` 预估 |
| `resolution` | `480p` / `720p` / `1080p` / `4k` | 输出档位，单价随之变化 |
| `video_input` | `none` / `video` | 是否带参考视频，带视频走更低单价 |

### 公式

```
费用（USD） = tokens × 该档每百万 token 美元单价 ÷ 1,000,000
```

### 每百万 token 美元单价（官方在线推理价）

| 模型 | 480p / 720p | 1080p | 4K |
| --- | --- | --- | --- |
| `doubao-seedance-2-0-260128` | 7.0 / 4.3 | 7.7 / 4.7 | 4.0 / 2.4 |
| `doubao-seedance-2-0-fast-260128` | 5.6 / 3.3 | — | — |
| `doubao-seedance-2-0-mini-260615` | 3.5 / 2.1 | — | — |
| `doubao-seedance-2-5-260628` | 10.7 / 6.4 | 11.7 / 7.0 | — |

每格写作「**无参考视频 / 有参考视频**」，只有单值的行表示两种输入同价。

说明：

- `—` 表示官方不支持该档位。
- Seedance 1.0（pro / pro fast / lite）与 1.5 pro **已下架**，本表不再列出；插件也不再声明这些模型。
- 官方页面的离线推理价不适用于在线网关，不要用于本表。

### 可直接粘贴的计费表达式

以下表达式里的数字都是**美元单价**，原样粘贴即可，不要换算成人民币。

每个模型逐档列出「分辨率 × 参考视频」，最后一个分支兜底，不留裸条件。

**`doubao-seedance-2-0-260128`**

```
u("resolution") == "480p" && u("video_input") == "none" ? tier("480p·none", u("tokens") * 7 / 1000000) : u("resolution") == "480p" && u("video_input") == "video" ? tier("480p·video", u("tokens") * 4.3 / 1000000) : u("resolution") == "720p" && u("video_input") == "none" ? tier("720p·none", u("tokens") * 7 / 1000000) : u("resolution") == "720p" && u("video_input") == "video" ? tier("720p·video", u("tokens") * 4.3 / 1000000) : u("resolution") == "1080p" && u("video_input") == "none" ? tier("1080p·none", u("tokens") * 7.7 / 1000000) : u("resolution") == "1080p" && u("video_input") == "video" ? tier("1080p·video", u("tokens") * 4.7 / 1000000) : u("resolution") == "4k" && u("video_input") == "none" ? tier("4k·none", u("tokens") * 4 / 1000000) : tier("4k·video", u("tokens") * 2.4 / 1000000)
```

**`doubao-seedance-2-0-fast-260128`**

```
u("resolution") == "480p" && u("video_input") == "none" ? tier("480p·none", u("tokens") * 5.6 / 1000000) : u("resolution") == "480p" && u("video_input") == "video" ? tier("480p·video", u("tokens") * 3.3 / 1000000) : u("resolution") == "720p" && u("video_input") == "none" ? tier("720p·none", u("tokens") * 5.6 / 1000000) : tier("720p·video", u("tokens") * 3.3 / 1000000)
```

**`doubao-seedance-2-0-mini-260615`**

```
u("resolution") == "480p" && u("video_input") == "none" ? tier("480p·none", u("tokens") * 3.5 / 1000000) : u("resolution") == "480p" && u("video_input") == "video" ? tier("480p·video", u("tokens") * 2.1 / 1000000) : u("resolution") == "720p" && u("video_input") == "none" ? tier("720p·none", u("tokens") * 3.5 / 1000000) : tier("720p·video", u("tokens") * 2.1 / 1000000)
```

**`doubao-seedance-2-5-260628`**

```
u("resolution") == "480p" && u("video_input") == "none" ? tier("480p·none", u("tokens") * 10.7 / 1000000) : u("resolution") == "480p" && u("video_input") == "video" ? tier("480p·video", u("tokens") * 6.4 / 1000000) : u("resolution") == "720p" && u("video_input") == "none" ? tier("720p·none", u("tokens") * 10.7 / 1000000) : u("resolution") == "720p" && u("video_input") == "video" ? tier("720p·video", u("tokens") * 6.4 / 1000000) : u("resolution") == "1080p" && u("video_input") == "none" ? tier("1080p·none", u("tokens") * 11.7 / 1000000) : tier("1080p·video", u("tokens") * 7 / 1000000)
```

## 二、Seedance 按秒计费

按秒计费是一层**计划名**，与上游模型名不同。客户端请求里的 `model` 就是下面四个之一，渠道 `model_mapping` 负责映射到火山方舟的真实 endpoint：

`seedance-2.0`、`seedance-2.0-fast`、`seedance-2.0-mini`、`seedance-2.5`

### 计量事实

| 事实 | 取值 | 含义 |
| --- | --- | --- |
| `seconds` | 数字 | **参考视频时长 + 生成时长**的合计 |
| `resolution` | 计划支持的档位 | 输出档位，每秒单价随之变化 |
| `video_input` | `none` / `video` | 是否带参考视频 |

按秒模型的 usage **没有 `tokens`**，表达式写成 `u("tokens")` 会在求值时抛 `invalid operation: <nil> * float64`。

### 公式

```
费用（USD） = seconds × 该档每秒美元单价
```

`seconds` 由 Ark 返回的计费 token 反算，不是按请求时长：

```
seconds = usage.completion_tokens ÷ 该档 tokens/秒
```

`tokens/秒` 由 16:9 最大像素按官方公式 `宽 × 高 × 24 ÷ 1024` 得出：

| 档位 | 16:9 像素 | tokens/秒 |
| --- | --- | --- |
| 480p（2.0 / fast / mini） | 864 × 496 | 10044 |
| 480p（2.5） | 854 × 480 | 9607.5 |
| 720p | 1280 × 720 | 21600 |
| 1080p | 1920 × 1080 | 48600 |
| 4K | 3840 × 2160 | 194400 |

### 每秒美元单价

```
每秒单价 = 该档 tokens/秒 × 该档每百万 token 美元单价 ÷ 1,000,000
```

结果**保留四位小数并向上取整**。每格写「**无参考视频 / 有参考视频**」：

| 计划 | 480p | 720p | 1080p | 4K |
| --- | --- | --- | --- | --- |
| `seedance-2.0` | 0.0704 / 0.0432 | 0.1512 / 0.0929 | 0.3743 / 0.2285 | 0.7776 / 0.4666 |
| `seedance-2.0-fast` | 0.0563 / 0.0332 | 0.1210 / 0.0713 | — | — |
| `seedance-2.0-mini` | 0.0352 / 0.0211 | 0.0756 / 0.0454 | — | — |
| `seedance-2.5` | 0.1029 / 0.0615 | 0.2312 / 0.1383 | 0.5687 / 0.3402 | — |

### 可直接粘贴的计费表达式

以下表达式里的数字都是**美元单价**，原样粘贴即可，不要换算成人民币。

**`seedance-2.0`**

```
u("resolution") == "480p" && u("video_input") == "none" ? tier("480p·none", u("seconds") * 0.0704) : u("resolution") == "480p" && u("video_input") == "video" ? tier("480p·video", u("seconds") * 0.0432) : u("resolution") == "720p" && u("video_input") == "none" ? tier("720p·none", u("seconds") * 0.1512) : u("resolution") == "720p" && u("video_input") == "video" ? tier("720p·video", u("seconds") * 0.0929) : u("resolution") == "1080p" && u("video_input") == "none" ? tier("1080p·none", u("seconds") * 0.3743) : u("resolution") == "1080p" && u("video_input") == "video" ? tier("1080p·video", u("seconds") * 0.2285) : u("resolution") == "4k" && u("video_input") == "none" ? tier("4k·none", u("seconds") * 0.7776) : tier("4k·video", u("seconds") * 0.4666)
```

**`seedance-2.0-fast`**

```
u("resolution") == "480p" && u("video_input") == "none" ? tier("480p·none", u("seconds") * 0.0563) : u("resolution") == "480p" && u("video_input") == "video" ? tier("480p·video", u("seconds") * 0.0332) : u("resolution") == "720p" && u("video_input") == "none" ? tier("720p·none", u("seconds") * 0.121) : tier("720p·video", u("seconds") * 0.0713)
```

**`seedance-2.0-mini`**

```
u("resolution") == "480p" && u("video_input") == "none" ? tier("480p·none", u("seconds") * 0.0352) : u("resolution") == "480p" && u("video_input") == "video" ? tier("480p·video", u("seconds") * 0.0211) : u("resolution") == "720p" && u("video_input") == "none" ? tier("720p·none", u("seconds") * 0.0756) : tier("720p·video", u("seconds") * 0.0454)
```

**`seedance-2.5`**

```
u("resolution") == "480p" && u("video_input") == "none" ? tier("480p·none", u("seconds") * 0.1029) : u("resolution") == "480p" && u("video_input") == "video" ? tier("480p·video", u("seconds") * 0.0615) : u("resolution") == "720p" && u("video_input") == "none" ? tier("720p·none", u("seconds") * 0.2312) : u("resolution") == "720p" && u("video_input") == "video" ? tier("720p·video", u("seconds") * 0.1383) : u("resolution") == "1080p" && u("video_input") == "none" ? tier("1080p·none", u("seconds") * 0.5687) : tier("1080p·video", u("seconds") * 0.3402)
```

### 验证

发一条带 5 秒参考视频、生成 5 秒的 `seedance-2.0` 720p 请求：

| 项 | 期望值 |
| --- | --- |
| 日志里的 `seconds` | 10 |
| 账单 | 10 × 0.0929 = $0.929 |

若 `seconds` 显示 5，说明参考视频没被识别，检查 `content` 里 `video_url` 项的 `role` 是否为 `reference_video`。

## 三、Seedream 按次计费

### 计量事实

图片任务按**成功交付的张数**计价，失败的组图成员不计费。四个事实：

| 事实 | 类型 | 含义 |
| --- | --- | --- |
| `images_up_to_1_5k` | 数字 | 像素面积 ≤ 2610000 的输出张数（1K / 1.5K 及以下） |
| `images_above_1_5k` | 数字 | 像素面积 > 2610000 的输出张数（2K 及以上） |
| `input_images` | 数字 | 参考图张数，取自上游 `usage.input_images` |
| `layer_decomposition` | 布尔 | 是否开启图层拆分 |

分档边界 `2610000` 像素对应官方的「2.61 兆像素」线，1K 与 1.5K 同价。每张图独立按其自身像素面积归档，图层拆分产出的每一层也各自计价。

参考图按张数收费，第 1 张也计费。官方价目是「第 1 张免费」，本站刻意不设这个减免：首张免费要写成 `max(input_images - 1, 0)`，而价格表展开器只识别线性项，这种写法会让模型详情页退化成「特殊计费表达式」。差额是每单带参考图时多收 0.003。待new-api适配后更新。

### 公式

```
费用（USD） = images_up_to_1_5k × 低档单价
            + images_above_1_5k × 高档单价
            + input_images × 参考图单价
```

### 美元单价

| 模型 | `images_up_to_1_5k` | `images_above_1_5k` | `input_images` |
| --- | --- | --- | --- |
| `doubao-seedream-5-0-pro-260628` | 0.045 | 0.09 | 0.003 |
| `doubao-seedream-5-0-flash-260915` | 0.018 | 0.018 | 0 |

要点：

- **flash 的 1.5K 与 2K 同价**（0.018），参考图不单独收费。
- **pro 的高档单价是低档的两倍**（0.09 / 0.045）；参考图每张 0.003，第 1 张也计费。

### 可直接粘贴的计费表达式

以下表达式里的数字都是**美元单价**，原样粘贴即可，不要换算成人民币。

**`doubao-seedream-5-0-pro-260628`**

```
tier("base", u("images_above_1_5k") * 0.09 + u("images_up_to_1_5k") * 0.045 + u("input_images") * 0.003)
```

**`doubao-seedream-5-0-flash-260915`**

```
tier("base", u("images_above_1_5k") * 0.018 + u("images_up_to_1_5k") * 0.018 + u("input_images") * 0)
```

图层拆分不需要单独加价：拆出的每一层本身就是一次输出，已经在 `images_*` 计数里。

## 注意事项

- 以上为**官方原价，零毛利**。模型折扣，在令牌单价上乘分组系数；按量、按秒、按次三套各自独立调整互不影响。
- 未指定分辨率时，插件按 720p 预留计费（2.0 / 2.5 / fast / mini 一致，为方舟自身的默认档），并把该档位写进提交体，Ark 按此出片，预扣与实出档位一致。
- 参考视频的时长已包含在 Ark 返回的计费 token 内，由完成回调换算成秒，不需要额外加时长。
- 按秒模型的 `seconds` 保留小数，不做整数取整，否则每条短视频会漏掉最多半秒。
