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

# Gemini Omni 1.2 Flash 视频生成 API：价格、台词配音与接入

> 通过老张API调用 Google 的 Gemini Omni 1.2 Flash：用 OpenAI 格式的 /v1/videos 提交文生视频、图生视频和参考图任务，查询并下载带音轨的 MP4，按次计费，不需要 Google 账号。

Gemini Omni 1.2 Flash 是 Google 的视频生成模型，成片自带音轨，人物能说出提示词里写的台词，最高输出 1080p。老张API按次计费：360p 每个 \$0.10，720p \$0.30，1080p \$0.45，3–10 秒同价。

| 项目 | 内容 |
| - | - |
| 模型 ID | `gemini-omni-1.2-flash` |
| 创建任务 | `POST /v1/videos`，JSON 或 multipart |
| 查询任务 | `GET /v1/videos/{id}`，完成后读取 `video_url` |
| 下载视频 | `video_url` 直接下载，或 `GET /v1/videos/{id}/content` |
| 令牌分组 | `default`，计费模式选按量优先 |
| 价格 | 按次计费，只看分辨率，见[计费与价格](#计费与价格) |
| 规格 | 3–10 秒，360p、720p 或 1080p，16:9 或 9:16，24fps，带音轨 |
| 图片输入 | 最多 6 张，见[图生视频](#图生视频)和[参考图生视频](#参考图生视频) |
| 结果保存 | 视频链接保留 7 天 |
| 线路 | 独立接入，按条单独定价，不需要 Google 账号 |

<video controls preload="none" poster="/images/samples/gemini-omni-zh-t2v.jpg" src="https://media.laozhang.ai/samples/video/gemini-omni-zh-t2v-720p-10s.mp4" />

「文生视频」示例的输出：gemini-omni-1.2-flash，720p，10 秒，16:9，人物说出提示词里的台词

## 价格与选型

### 计费与价格

Gemini Omni 1.2 Flash 按次计费，价格只由 `resolution` 决定：

| `resolution` | 横屏 / 竖屏输出 | 每个视频 |
| - | - | -: |
| `360p` | 640×360 / 360×640 | \$0.10 |
| `720p`（默认） | 1280×720 / 720×1280 | \$0.30 |
| `1080p` | 1920×1080 / 1080×1920 | \$0.45 |

不影响价格的参数：

* `seconds`：3–10 秒同价，10 秒的 720p 视频合每秒 \$0.03。
* 图片：带不带首帧或参考图价格相同。
* `reasoning_effort` 和画面比例。

扣费规则：

* 创建任务时扣费，失败的任务全额退回，包括被内容审核拦截的任务。
* 参数不合法、在提交阶段直接返回错误的请求不扣费。
* 重复提交会创建新任务并再次计费，业务层请保存业务 ID 与任务 `id` 的对应关系。

每个任务的实际扣费以[调用日志](https://api2.laozhang.ai/log)为准。

**10 秒视频约为 Google 官方价的 4.3 折。** Google 的 Gemini API 按秒计费，10 秒视频的官方价与老张API对照（2026 年 11 月 11 日核对，来源见[页面末尾](#相关文档与来源)）：

| 10 秒视频 | Google 官方价 | 老张API |
| - | -: | -: |
| 360p | \$0.23 | \$0.10 |
| 720p | \$0.70 | \$0.30 |
| 1080p | \$1.04 | \$0.45 |

### 和其他视频模型怎么选

截至 2026 年 11 月 11 日，10 秒的 1080p 视频里 Gemini Omni 1.2 Flash 在老张API单价最低（\$0.45）；360p 每个 \$0.10，适合批量试效果。

* **人物要开口说台词，或需要 1080p**：选 Gemini Omni 1.2 Flash。
* **要 20–60 秒的连续视频、续写已有视频，或 1:1、4:3 等比例**：选 [Muse](https://docs.laozhang.ai/api-capabilities/muse-video-generation.md)，接口同为 `/v1/videos`，同一个令牌可以直接换模型。
* **要 2K、参考视频或参考音频**：选 [MiniMax H3](https://docs.laozhang.ai/api-capabilities/minimax-h3-video-generation.md)。

各模型一条 5 秒、10 秒视频的费用和接口对照见[视频生成 API 选型与价格](https://docs.laozhang.ai/api-capabilities/video-generation-guide.md)。

## 效果示例

下面的视频都是 Gemini Omni 1.2 Flash 的原始输出，没有剪辑，保留模型生成的音轨，点击即可播放。图注里写了分辨率、时长、画面比例和提示词。

[Muse 的效果示例](https://docs.laozhang.ai/api-capabilities/muse-video-generation.md#效果示例)和 [MiniMax H3 的效果示例](https://docs.laozhang.ai/api-capabilities/minimax-h3-video-generation.md#效果示例)用了同一组提示词，可以对比同一场景下的画面。

<video controls preload="none" poster="/images/samples/gemini-omni-sample-fox-720p-5s.jpg" src="https://media.laozhang.ai/samples/video/gemini-omni-fox-720p-5s.mp4" />

720p，5 秒，16:9。提示词：A red fox walking through snowy forest at sunrise, cinematic

<video controls preload="none" poster="/images/samples/gemini-omni-sample-paper-boat-720p-10s.jpg" src="https://media.laozhang.ai/samples/video/gemini-omni-paper-boat-720p-10s.mp4" />

720p，10 秒，16:9。提示词：A paper boat drifts down a rainy city gutter, then sails into a small sunny pond

<video controls preload="none" poster="/images/samples/gemini-omni-sample-hot-air-balloon-1080p-10s.jpg" src="https://media.laozhang.ai/samples/video/gemini-omni-hot-air-balloon-1080p-10s.mp4" />

1080p，10 秒，16:9。提示词：A hot air balloon rises over a valley at dawn, drifts over a river and a village, then lands in a meadow

<video controls preload="none" poster="/images/samples/gemini-omni-sample-cyclist-1080p-10s-9x16.jpg" src="https://media.laozhang.ai/samples/video/gemini-omni-cyclist-1080p-10s-9x16.mp4" />

1080p，10 秒，9:16 竖屏。提示词：A cyclist rides through a coastal town from morning to sunset: market, harbor, cliff road, lighthouse

## 开始之前

### 创建令牌

在[令牌管理](https://api2.laozhang.ai/token)新增令牌，按下面配置：

| 配置项 | 选择 |
| - | - |
| 分组 | `default` |
| 计费模式 | 按量优先（推荐）或按次计费；只选按量计费的令牌无法调用 |
| 建议 | 视频单独建一个令牌，便于在调用日志里按任务核对消费 |

不需要 Google 账号或 Gemini API Key，也不用单独开通视频分组。已经在用 [Muse](https://docs.laozhang.ai/api-capabilities/muse-video-generation.md) 的令牌可以直接调用。

### 调用流程

**1. 创建任务**

调用 `POST /v1/videos`，请求体至少包含 `model` 和 `prompt`。接口是异步的，几秒内就返回任务 `id`，不用等视频生成完，请保存好它。

**2. 轮询状态**

每 5–10 秒调用一次 `GET /v1/videos/{id}`，读取 `status`。360p 的短视频通常 30–60 秒完成，720p 的 10 秒视频约 1 分钟，1080p 的 10 秒视频约 1.5–2 分钟。

**3. 下载结果**

`status` 为 `completed` 时，从 `video_url` 下载 MP4，下载不需要 `Authorization` 请求头。

> [!WARNING]
>
> **轮询最多等 15 分钟，没完成前不要重新提交。**
>
> * 提交和查询请求本身都会立即返回，不需要加长 HTTP 请求的超时时间。
> * 期间状态一直是 `queued` 或 `in_progress` 就继续查。
> * 放弃轮询后，用同一个 `id` 稍后再查；重新提交会创建新任务并再次扣费。
> * 超过 30 分钟仍未完成的任务会自动判为失败并全额退款。

### 准备环境

下面的 cURL 示例用 `jq` 提取字段（macOS 可用 `brew install jq` 安装）。先设置密钥和 Base URL：

```bash theme={null}
export LAOZHANG_API_KEY="替换为你的老张API密钥"
export BASE_URL="https://api.laozhang.ai"
```

## 生成视频

### 文生视频

```bash theme={null}
curl -s -X POST "$BASE_URL/v1/videos" \
  -H "Authorization: Bearer $LAOZHANG_API_KEY" \
  -H "Content-Type: application/json" \
  --data-raw '{
    "model": "gemini-omni-1.2-flash",
    "prompt": "雨后的石板路上，一位街头艺人在路灯下拉小提琴，镜头缓慢推近。她停下来，对着镜头微笑着说：“这一首，送给你。”背景有雨滴声和琴声。",
    "resolution": "720p",
    "seconds": "10",
    "aspect_ratio": "16:9"
  }' | tee omni-create.json

export VIDEO_ID=$(jq -r '.id' omni-create.json)
```

创建成功时返回排队中的任务：

```json theme={null}
{
  "id": "task_pmz6yURlFEdpV7oQREUQWFMvYe0ZNN0j",
  "object": "video",
  "model": "gemini-omni-1.2-flash",
  "status": "queued",
  "progress": 0,
  "resolution": "720p",
  "seconds": "10",
  "created_at": 1794395489
}
```

三个可选字段都有默认值：

* `resolution`：不传时为 `720p`。只想先看效果时传 `360p`，每个 \$0.10。
* `seconds`：3–10 的整数，不传时为 10。
* `aspect_ratio`：`16:9` 或 `9:16`，不传时为 `16:9`。

### 让人物说台词

把台词直接写进 `prompt`，用引号括起来并写明是谁说的，成片里的人物会开口说出这句话。中文、英文、日语、韩语和俄语台词都可以，上面的示例就是这样写的。

不写台词时，模型会按画面自动配环境音和音效。想要某种声音，在提示词里写出来，例如“背景有雨滴声和琴声”。

### 图生视频

用 `image` 传一张图片，成片从这张图的画面开始。图片可以是公网链接或 `data:image/...;base64,` 格式的 data URL：

```bash theme={null}
curl -s -X POST "$BASE_URL/v1/videos" \
  -H "Authorization: Bearer $LAOZHANG_API_KEY" \
  -H "Content-Type: application/json" \
  --data-raw '{
    "model": "gemini-omni-1.2-flash",
    "prompt": "机器人厨师搅动锅里的汤，举起打蛋器，开心地说：“晚饭马上就好！”镜头缓慢推近，锅里冒出热气。",
    "resolution": "720p",
    "seconds": "6",
    "image": "https://example.com/robot-chef.jpg"
  }'
```

本地图片可以用 multipart 直接上传，字段名是 `input_reference`：

```bash theme={null}
curl -s -X POST "$BASE_URL/v1/videos" \
  -H "Authorization: Bearer $LAOZHANG_API_KEY" \
  -F model=gemini-omni-1.2-flash \
  -F prompt="海浪拍打灯塔下的礁石，云层缓缓移动，灯塔的光束亮起" \
  -F resolution=360p \
  -F seconds=5 \
  -F input_reference=@./lighthouse.jpg
```

使用 `-F` 上传时不要设置 `Content-Type: application/json`。每张图片不超过 10 MB，支持 JPEG、PNG 和 WebP。

### 参考图生视频

`reference_images` 传多张图片，模型会把图里的人物、物品和场景放进同一条视频。提示词里用“图 1”“图 2”按数组顺序指代：

```bash theme={null}
curl -s -X POST "$BASE_URL/v1/videos" \
  -H "Authorization: Bearer $LAOZHANG_API_KEY" \
  -H "Content-Type: application/json" \
  --data-raw '{
    "model": "gemini-omni-1.2-flash",
    "prompt": "图 2 的机器人厨师走进图 1 的拉面店，在吧台坐下，旁边睡觉的猫醒了过来。",
    "resolution": "720p",
    "seconds": "8",
    "reference_images": [
      "https://example.com/ramen-shop.jpg",
      "https://example.com/robot-chef.jpg"
    ]
  }'
```

* `image` 和 `reference_images` 合计最多 6 张，第 7 张起会返回错误。
* multipart 上传时，参考图的字段名是 `reference_images`，可以重复多次。
* `image` 和 `reference_images` 可以同时传：`image` 定起始画面，参考图提供要出现的人物或物品。
* 涉及真实人物的限制见[内容限制](#内容限制)。

### 竖屏和 1080p

竖屏传 `"aspect_ratio": "9:16"`。也可以改用 `size` 同时指定分辨率和比例，例如 1080p 竖屏：

```bash theme={null}
curl -s -X POST "$BASE_URL/v1/videos" \
  -H "Authorization: Bearer $LAOZHANG_API_KEY" \
  -H "Content-Type: application/json" \
  --data-raw '{
    "model": "gemini-omni-1.2-flash",
    "prompt": "A cyclist rides through a coastal town from morning to sunset: market, harbor, cliff road, lighthouse",
    "size": "1080x1920",
    "seconds": "10"
  }'
```

`size` 可用的值见[请求字段](#请求字段)。价格按对应的分辨率档位计算，`1080x1920` 就是 1080p 的 \$0.45。

## 查询和下载

### 查询任务

```bash theme={null}
curl -s "$BASE_URL/v1/videos/$VIDEO_ID" \
  -H "Authorization: Bearer $LAOZHANG_API_KEY"
```

生成中时 `status` 为 `in_progress`，`progress` 为大致进度：

```json theme={null}
{
  "id": "task_cpg5YjZdGpf5G64hpcehVFip3yEzBGmJ",
  "object": "video",
  "model": "gemini-omni-1.2-flash",
  "status": "in_progress",
  "progress": 24,
  "resolution": "360p",
  "seconds": "3",
  "size": "640x360",
  "created_at": 1794395880
}
```

完成后返回 `video_url`：

```json theme={null}
{
  "id": "task_cpg5YjZdGpf5G64hpcehVFip3yEzBGmJ",
  "object": "video",
  "model": "gemini-omni-1.2-flash",
  "status": "completed",
  "progress": 100,
  "resolution": "360p",
  "seconds": "3",
  "size": "640x360",
  "created_at": 1794395880,
  "completed_at": 1794395908,
  "video_url": "https://media.laozhang.ai/videos/omni-video_b1c75730eec94afecd7a03e6-8a6288ae03f4.mp4"
}
```

失败时 `status` 为 `failed`，原因在 `error.message`，费用已经退回：

```json theme={null}
{
  "id": "task_bgrPGFRI5wEwlOW0XrCy5b29xTGHlKbt",
  "object": "video",
  "model": "gemini-omni-1.2-flash",
  "status": "failed",
  "progress": 100,
  "resolution": "360p",
  "seconds": "3",
  "size": "640x360",
  "created_at": 1794395882,
  "error": {
    "code": "video_generation_failed",
    "message": "input_reference must be a public internet link. This request is not charged."
  }
}
```

### 下载视频

```bash theme={null}
curl -L -o omni-video.mp4 "$(curl -s "$BASE_URL/v1/videos/$VIDEO_ID" \
  -H "Authorization: Bearer $LAOZHANG_API_KEY" | jq -r '.video_url')"
```

也可以用 `GET /v1/videos/{id}/content` 带上 `Authorization` 下载，返回的就是 MP4 文件。视频链接保留 7 天，需要长期使用请下载后自己保存。

### Python 最小客户端

需要 `requests`（`pip install requests`）：

```python theme={null}
import os
import time

import requests

BASE_URL = "https://api.laozhang.ai"
HEADERS = {"Authorization": f"Bearer {os.environ['LAOZHANG_API_KEY']}"}

task = requests.post(
    f"{BASE_URL}/v1/videos",
    headers=HEADERS,
    json={
        "model": "gemini-omni-1.2-flash",
        "prompt": "雨后的石板路上，一位街头艺人在路灯下拉小提琴，镜头缓慢推近。她停下来，对着镜头微笑着说：“这一首，送给你。”背景有雨滴声和琴声。",
        "resolution": "720p",
        "seconds": "10",
        "aspect_ratio": "16:9",
    },
    timeout=120,
)
task.raise_for_status()
video_id = task.json()["id"]

deadline = time.time() + 15 * 60
while True:
    video = requests.get(f"{BASE_URL}/v1/videos/{video_id}", headers=HEADERS, timeout=60).json()
    if video["status"] == "completed":
        break
    if video["status"] == "failed":
        raise RuntimeError(video["error"]["message"])
    if time.time() > deadline:
        raise TimeoutError(f"{video_id} 还未完成，稍后用同一个 id 继续查询")
    time.sleep(5)

with open("omni-video.mp4", "wb") as f:
    f.write(requests.get(video["video_url"], timeout=300).content)
print("已保存 omni-video.mp4，", video["size"], video["seconds"], "秒")
```

## API 参考

### 请求字段

| 字段 | 必填 | 说明 |
| - | - | - |
| `model` | 是 | `gemini-omni-1.2-flash` |
| `prompt` | 是 | 画面、动作、台词和声音描述，最长 20000 字符 |
| `resolution` | 否 | `360p`、`720p`（默认）或 `1080p`，决定价格 |
| `seconds` | 否 | 3–10 的整数，默认 10，不影响价格 |
| `aspect_ratio` | 否 | `16:9`（默认）或 `9:16` |
| `size` | 否 | 用像素同时指定分辨率和比例，可用值见下表 |
| `image` | 否 | 一张起始画面图片；multipart 上传时字段名为 `input_reference` |
| `reference_images` | 否 | 参考图数组，与 `image` 合计最多 6 张 |
| `reasoning_effort` | 否 | 可选 `low` 或 `high`，不影响价格 |

`size` 与分辨率、比例的对应关系：

| `size` | 等同于 | 每个视频 |
| - | - | -: |
| `640x360` / `360x640` | `360p`，16:9 / 9:16 | \$0.10 |
| `1280x720` / `720x1280` | `720p`，16:9 / 9:16 | \$0.30 |
| `1920x1080` / `1080x1920` | `1080p`，16:9 / 9:16 | \$0.45 |

不支持的输入会在提交时直接返回错误，不扣费：

* 参考视频、参考音频和尾帧（`video_url`、`last_frame` 等字段）。
* 2K、4K，以及 `16:9`、`9:16` 以外的画面比例。
* 小于 3 秒或大于 10 秒的 `seconds`。

### 输出规格

* 格式：MP4，H.264 视频加 AAC 音轨，24fps。
* 尺寸和时长与请求一致，例如 `720p` 加 `9:16` 输出 720×1280。
* 文件带 Google 的 C2PA 内容凭证和不可见的 SynthID 水印，画面上没有可见水印。

### 任务状态

| `status` | 含义 | 下一步 |
| - | - | - |
| `queued` | 已受理，等待生成 | 继续轮询 |
| `in_progress` | 生成中，`progress` 为大致进度 | 继续轮询 |
| `completed` | 已完成 | 从 `video_url` 下载 |
| `failed` | 失败，费用已退回 | 读 `error.message`，按提示修改后重新提交 |

### 内容限制

下面两类内容会被模型拦截，任务以 `failed` 返回并全额退费：

* 真实人物：提示词里出现真实人物的姓名会被拦截，模型也不生成真实人物的肖像，名人照片这类图片可能被拦截。
* 色情内容，以及受版权保护的角色形象。

普通的人物图片可以正常使用，例如 AI 生成的人像。

### 常见错误

报错信息为英文，下表按出现的位置列出：

| 出现位置 | `message` 开头 | 处理 |
| - | - | - |
| 提交时 HTTP 400 | `seconds must be a whole number from 3 to 10.` | 把 `seconds` 改到 3–10 |
| 提交时 HTTP 400 | `resolution must be one of 360p, 720p, 1080p` | 不支持 2K、4K，换成三档之一 |
| 提交时 HTTP 400 | `aspect_ratio must be one of 16:9, 9:16.` | 换成 `16:9` 或 `9:16` |
| 提交时 HTTP 400 | `video_url is not supported` | 去掉参考视频字段，只传提示词和图片 |
| 提交时 HTTP 400 | `Send at most 6 images in total` | 图片减到 6 张以内 |
| 任务 `failed` | `Could not download …` | 图片链接要能公开访问，或改用 data URL |
| 任务 `failed` | `The prompt or images were blocked` | 去掉真实人物姓名、照片或违规内容后重试 |
| 任务 `failed` | `Video generation failed because of a temporary service error.` | 直接重新提交 |

## 常见问题

### Gemini Omni 1.2 Flash API 每个视频多少钱？

按分辨率计费：360p 每个 \$0.10，720p \$0.30，1080p \$0.45，3–10 秒同价。10 秒的视频约为 Google 官方价的 4.3 折，对照见[计费与价格](#计费与价格)。

### 需要 Google 账号或 Gemini API Key 吗？

不需要。用老张API `default` 分组的令牌调用 `POST /v1/videos` 即可，计费模式选按量优先。

### 最长能生成多少秒，能出 4K 吗？

单条 3–10 秒，分辨率最高 1080p，不支持 2K 和 4K。需要 20–60 秒的连续视频时用 [Muse](https://docs.laozhang.ai/api-capabilities/muse-video-generation.md)，需要 2K 时用 [MiniMax H3](https://docs.laozhang.ai/api-capabilities/minimax-h3-video-generation.md)。

### 生成的视频有水印吗？

画面上没有可见水印。文件里带 Google 的 C2PA 内容凭证和不可见的 SynthID 水印，用来标识视频由 AI 生成。

### 一条视频要等多久？

360p 的短视频通常 30–60 秒，720p 的 10 秒视频约 1 分钟，1080p 的 10 秒视频约 1.5–2 分钟。接口是异步的，提交和查询都会立即返回，每 5–10 秒查询一次即可。

### 原来调用 Muse 或 Sora 2 的代码怎么改？

接口相同，创建和查询的路径都不用改，令牌也不用换。只改三处：

* `model` 改为 `gemini-omni-1.2-flash`。
* `seconds` 改到 3–10。
* 需要 360p 或 1080p 时加上 `resolution`，不加就是 720p。

## 相关文档与来源

* [视频生成 API 选型与价格](https://docs.laozhang.ai/api-capabilities/video-generation-guide.md)：各视频模型一条视频的费用、接口和令牌分组对照。
* [Muse 视频生成 API](https://docs.laozhang.ai/api-capabilities/muse-video-generation.md)：同一接口的 20–60 秒长视频和视频续写。
* [模型与价格总表](https://docs.laozhang.ai/models.md)
* [Gemini Omni 1.2 Flash 上线公告](https://docs.laozhang.ai/announcements/gemini-omni-1-2-flash-2026-11.md)
* [Google：Gemini Omni 1.2 Flash 发布说明](https://blog.google/innovation-and-ai/technology/developers-tools/introducing-gemini-omni-1-2-flash/)（模型能力，2026 年 11 月 11 日核对）
* [Google：Gemini API 定价](https://ai.google.dev/gemini-api/docs/pricing)（官方按秒价格，2026 年 11 月 11 日核对）


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.