> ## Documentation Index
> Fetch the complete documentation index at: https://docs.widerouter.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Grok Imagine 视频模型

> xAI 在 WideRouter 上的两个视频模型：生成、编辑与延长片段，以及时长、分辨率、参考图与预设音色。

Grok Imagine 系列里有两个模型出视频。两个都走[异步任务 API](/zh/api/async-tasks)，
信封与其他模型一致——**视频没有同步接口**，这是唯一的调用方式。

这两个不是简单的新旧关系。`grok-imagine-video-1.5` 分辨率更高、能用预设音色；
而 `grok-imagine-video` 是唯一**接受视频作为输入**的，编辑和延长都要靠它。
用哪个取决于你是要造一段片子，还是要改一段现成的。

## 系列总览

|            | Grok Imagine Video 1.5        | Grok Imagine Video   |
| ---------- | ----------------------------- | -------------------- |
| **模型 ID**  | `grok-imagine-video-1.5`      | `grok-imagine-video` |
| 文生视频       | 支持                            | 支持                   |
| 图生视频（首帧）   | 支持                            | 支持                   |
| 参考图        | 支持，最多 3 张                     | 支持，最多 3 张            |
| **编辑已有片段** | 不支持                           | **支持**               |
| **延长已有片段** | 不支持                           | **支持**               |
| 分辨率        | `480p` / `720p` / **`1080p`** | `480p` / `720p`      |
| 预设音色       | **支持**，最多 3 个                 | 不支持                  |
| 静音输出       | 支持                            | 支持                   |
| 时长         | 1–15 秒                        | 1–15 秒               |

向一个模型要它做不到的事，会在提交时就被拒、不会入队，而且消息会告诉你该换哪个：

```json theme={null}
{
  "error": {
    "code": "invalid_params",
    "message": "edit needs a model that takes video input; use grok-imagine-video",
    "param": "input.mode"
  }
}
```

## 三种模式

`input.mode` 决定模型做什么，取 `generate`、`edit` 或 `extend`，默认 `generate`。

| `mode`     | 需要 `input.video` | 产物时长                 | 支持的模型                  |
| ---------- | ---------------- | -------------------- | ---------------------- |
| `generate` | 否                | `duration` 再加 0.04 秒 | 两个都行                   |
| `edit`     | 是                | **继承源片长度**           | 仅 `grok-imagine-video` |
| `extend`   | 是                | 源片加 `duration`       | 仅 `grok-imagine-video` |

`edit` 按提示词改写一段现成的片子并保持长度，所以它不接受 `resolution`——
输出跟随源片。`extend` 是在末尾接一段新画面。

```json theme={null}
{
  "model": "grok-imagine-video",
  "input": {
    "prompt": "the camera slowly pulls back",
    "mode": "extend",
    "video": "https://example.com/boat.mp4",
    "duration": 3
  }
}
```

实测：3.04 秒的源片配 `duration: 3`，产出 **6.04 秒**——原片加三秒延长段，
不是重新渲染。

<Warning>
  **`extend` 模式下 `duration` 的范围会收窄。** 契约层接受 1–15 秒，
  但延长段实际只允许 **2–10 秒**，而且源片本身必须**至少 2 秒**。
  这两条都不在提交时校验，所以都是任务入队之后才以失败形式回来：

  `Duration must be between 2 and 10 seconds` · `Input video must be at least 2 seconds long, got 1.0s`
</Warning>

## 参数

下面这些都放在 `input` 里。信封见[异步任务 API](/zh/api/async-tasks)。

| 字段                 | 类型        | 默认         | 说明                                                      |
| ------------------ | --------- | ---------- | ------------------------------------------------------- |
| `prompt`           | string    | —          | 必填。                                                     |
| `mode`             | string    | `generate` | `generate`、`edit` 或 `extend`。                           |
| `duration`         | integer   | 模型默认       | 1–15 秒。`extend` 见上面的提醒。                                 |
| `resolution`       | string    | `480p`     | `480p`、`720p`，`1080p` 仅 1.5。`edit` 模式下不接受。              |
| `aspect_ratio`     | string    | `16:9`     | 取 `1:1` `16:9` `9:16` `4:3` `3:4` `3:2` `2:3` 之一。       |
| `images`           | string\[] | —          | 恰好一张图，作为**首帧**。                                         |
| `video`            | string    | —          | `edit` 与 `extend` 的源片。`https` URL 或 base64 视频 data URI。 |
| `reference_images` | string\[] | —          | 最多 3 张，模型从中取风格与主体。不能与 `images` 同时给。                     |
| `voice_ids`        | string\[] | —          | 最多 3 个预设音色，仅 `grok-imagine-video-1.5`。                  |
| `generate_audio`   | boolean   | `true`     | 传 `false` 出静音片段，不影响价格。                                  |

没有 `n`——视频模型每个任务只产一段。

<Note>
  和图像模型不同，视频**没有 `auto` 画幅**，也没有超宽比例。上面七个就是全部。
</Note>

## 分辨率与时长

实测输出像素，每档一个样本：

| `resolution` | `aspect_ratio` | 输出          |
| ------------ | -------------- | ----------- |
| `480p`       | `16:9`（默认）     | 848 × 480   |
| `480p`       | `9:16`         | 480 × 848   |
| `720p`       | `16:9`         | 1280 × 720  |
| `1080p`      | `16:9`         | 1920 × 1088 |

`1080p` 在 `grok-imagine-video` 上会被拒：
`1080p is only available on grok-imagine-video-1.5`。

**产物比请求的时长多约 0.04 秒**——要 3 秒，文件是 3.04 秒。
每个样本都是这样，且不影响计费，计费按请求的时长算。

## 参考图、首帧与音色

能喂进去的有三样东西，其中两样互斥：

* **`images`** 是**首帧**。恰好一张，片子从这一帧往后动。
* **`reference_images`** 是风格与主体参考，最多三张。两个模型都接受，
  而且一旦用了，**输出封顶 `720p`**——`reference_images` 配 `1080p` 会被拒：
  `reference images are capped at 720p`。
* 两个同时给会被拒：
  `cannot be combined with images; a first frame and reference images are different modes`。

`voice_ids` 在 `grok-imagine-video-1.5` 上选预设音色，每段最多三个。合法取值：

|          |           |          |          |          |          |
| -------- | --------- | -------- | -------- | -------- | -------- |
| `ara`    | `eve`     | `leo`    | `rex`    | `sal`    | `carina` |
| `zagan`  | `helix`   | `orion`  | `luna`   | `iris`   | `altair` |
| `zenith` | `perseus` | `helios` | `lux`    | `kepler` | `rigel`  |
| `cosmo`  | `celeste` | `ursa`   | `sirius` | `lumen`  | `castor` |
| `naksh`  | `atlas`   |          |          |          |          |

WideRouter 上没有自定义音色。注意音色 ID 本身**不在提交时校验**——写错的名字会被
接受，然后任务失败。音色和 `generate_audio: false` 都不改变价格。

## 计价

这几个模型走 **`Grok-Official`** 分组。WideRouter 的标价与 xAI 官方价完全一致——
折扣体现在**分组倍率**上，`Grok-Official` 的倍率是 `0.8`。所以实际扣费是：

```
原价 × 分组倍率 = 扣费
```

视频**按产物的每秒计价**，分辨率决定单价。下面是标价：

| 模型                       | `480p`     | `720p`     | `1080p`    |
| ------------------------ | ---------- | ---------- | ---------- |
| `grok-imagine-video-1.5` | \$0.08 / 秒 | \$0.14 / 秒 | \$0.25 / 秒 |
| `grok-imagine-video`     | \$0.05 / 秒 | \$0.07 / 秒 | 不支持        |

有三条规则是光看每秒单价看不出来的：

* **你送进去的媒体也要收费。** 一张参考图约 \$0.01；`edit` 与 `extend` 的源片
  按它自己的长度算，每秒约 \$0.01。
* **`extend` 不对原片重复收费。** 只有新增的那一段按每秒单价计，再加源片作为输入。
  实测：把一段 3.04 秒的片子延长 3 秒花了 \$0.18——三秒输出按 \$0.05
  加上 3.04 秒输入按 \$0.01——而结果是 6.04 秒。从头生成六秒要 \$0.30。
* **`edit` 大约按源片长度收两遍**，一遍算输出一遍算输入。
  实测：编辑一段 1.04 秒的片子花了 \$0.06。

完整算一遍。`grok-imagine-video` 出三秒 `480p`：

```
\$0.05 / 秒 × 3 秒       = \$0.15   原价
\$0.15 × 0.8            = \$0.12   Grok-Official 实扣
```

<Info>
  完成的任务里带一个 `usage.cost_in_usd_ticks` 字段，`10000000000` ticks 等于 \$1。
  这个数字是**原价**，还没乘分组倍率。乘上你所在分组的倍率，才是实际从余额里扣掉的数。
</Info>

## 时延

异步接口上从提交到 `completed` 的端到端实测：

| 请求                                   | 端到端     |
| ------------------------------------ | ------- |
| `grok-imagine-video`，`480p`，1 秒      | 19 秒    |
| `grok-imagine-video-1.5`，`480p`，1 秒  | 21 秒    |
| `grok-imagine-video`，`480p`，3 秒      | 21–30 秒 |
| `grok-imagine-video`，编辑一段 1 秒的片子     | 30 秒    |
| `grok-imagine-video`，延长 3 秒          | 30 秒    |
| `grok-imagine-video-1.5`，`1080p`，3 秒 | 约 48 秒  |
| `grok-imagine-video-1.5`，`480p`，15 秒 | 约 51 秒  |

比人们常说的「视频模型通常要几分钟」快得多，但仍然慢到不能挂连接等——
这正是它没有同步端点的原因。每两三秒轮询一次，客户端超时按这张表最慢的那一行设，
不要按最快的设。

## 任务失败时

视频的失败是一个 `failed` 状态的任务加一个 `error` 对象，不是 HTTP 错误——
查询端点仍然返回 `200`。常见的 code 是 `upstream_error`，消息由 xAI 原样透传：

```json theme={null}
{
  "status": "failed",
  "counts": { "requested": 1, "succeeded": 0, "failed": 1 },
  "error": {
    "code": "upstream_error",
    "message": "Input video must be at least 2 seconds long, got 1.0s"
  }
}
```

在生成开始之前就失败的很快——输入取不到是一秒以内，
上游模型自己的约束判定大约六秒。

## 下一步

<CardGroup cols={2}>
  <Card title="Playground" icon="play" href="/zh/models/grok-imagine/video/playground">
    在浏览器里真实提交一个视频任务并轮询到完成。
  </Card>

  <Card title="Grok Imagine 图片" icon="image" href="/zh/models/grok-imagine/image/overview">
    这个系列的图像那一半——三个变体与质量档位。
  </Card>
</CardGroup>
