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

# Kling v3 Omni 視頻生成

> 使用 Kling v3 Omni 生成視頻，支持圖片引用、有聲視頻和參考視頻輸入

* 異步任務接口，提交後返回任務 ID
* 支持官方 Omni 引用結構：`image_list`、`video_list`、`element_list`
* `mode=std` 對應 720P，`mode=pro` 對應 1080P
* `audio=true` 會生成有聲視頻，並按 Sound 價格計費
* 傳入 `video_list` 會按 Video 價格計費
* `audio` 與 `video_list` 互斥

<Warning>
  請傳入公網可訪問的圖片或視頻 URL。不要直接傳 base64 圖片數據；本地圖片請先使用 [上傳圖片接口](../../uploads/images) 獲取 URL。
</Warning>

## 認證

<ParamField header="Authorization" type="string" required>
  所有接口均需要使用 Bearer Token 認證。

  ```
  Authorization: Bearer YOUR_API_KEY
  ```
</ParamField>

## 請求參數

<ParamField body="model" type="string" required>
  視頻生成模型名稱，固定爲 `kling-v3-omni`。
</ParamField>

<ParamField body="prompt" type="string" required>
  視頻提示詞。可使用官方佔位符引用 Omni 輸入，編號從 1 開始：

  * `<<<image_N>>>` 引用 `metadata.image_list` 中的圖片
  * `<<<video_N>>>` 引用 `video_list` 中的視頻
  * `<<<element_N>>>` 引用 `metadata.element_list` 中的主體/角色

  示例：`"讓<<<image_1>>>中的人物向鏡頭揮手"`

  <Note>
    引用列表順序必須與 prompt 中的佔位符順序一致；系統不會自動補首幀或自動插入佔位符。
  </Note>
</ParamField>

<ParamField body="client_business_id" type="string">
  客戶側業務 ID，例如訂單號、流水號或您系統內的任務 ID。提交後會隨任務保存，後續可用該 ID 查詢狀態：
  `GET /v1/videos/generations/{client_business_id}`。

  也兼容放在 `metadata.client_business_id` 中，但推薦使用頂層字段。
</ParamField>

<ParamField body="mode" type="string" default="std">
  生成模式，同時決定計費分辨率。

  * `std` - 標準模式，720P
  * `pro` - 專業模式，1080P
</ParamField>

<ParamField body="duration" type="integer" default="5">
  視頻時長，單位秒。

  可選值：`3`、`4`、`5`、`6`、`7`、`8`、`9`、`10`、`11`、`12`、`13`、`14`、`15`
</ParamField>

<ParamField body="aspect_ratio" type="string" default="16:9">
  視頻寬高比。

  常用值：`16:9`、`9:16`、`1:1`
</ParamField>

<ParamField body="audio" type="boolean" default="false">
  是否生成有聲視頻。

  * `false` - 普通視頻
  * `true` - 有聲視頻，按 Sound 價格計費

  <Warning>
    `audio` 與 `video_list` 互斥。傳入 `video_list` 時不要同時傳 `audio=true`。
  </Warning>
</ParamField>

<ParamField body="video_list" type="object[]">
  參考視頻列表，最多 1 段視頻。傳入後按 Video 價格計費。

  <Expandable title="顯示 video_list 對象字段">
    <ParamField body="video_url" type="string" required>
      參考視頻 URL，必須公網可訪問。
    </ParamField>

    <ParamField body="refer_type" type="string" default="base">
      參考類型。

      * `base` - 待編輯視頻
      * `feature` - 特徵參考視頻
    </ParamField>

    <ParamField body="keep_original_sound" type="string" default="no">
      是否保留原視頻聲音。

      * `yes`
      * `no`
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="metadata" type="object">
  擴展參數。

  <Expandable title="顯示 metadata 字段">
    <ParamField body="image_list" type="object[]">
      官方 Omni 圖片列表。在 prompt 中通過 `<<<image_1>>>`、`<<<image_2>>>` 按順序引用。

      <Expandable title="顯示 image_list 對象字段">
        <ParamField body="image_url" type="string" required>
          圖片 URL，必須公網可訪問。
        </ParamField>

        <ParamField body="type" type="string">
          圖片類型。可用於官方首尾幀語義，例如 `first_frame`、`end_frame`。傳 `end_frame` 時必須同時提供 `first_frame`。
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField body="element_list" type="object[]">
      官方 Omni 主體/角色引用列表。在 prompt 中通過 `<<<element_1>>>`、`<<<element_2>>>` 按順序引用。

      <Expandable title="顯示 element_list 對象字段">
        <ParamField body="url" type="string" required>
          主體圖片、角色資產或其他官方支持的素材 URL。
        </ParamField>

        <ParamField body="type" type="string">
          元素類型，例如 `image`、`video`。
        </ParamField>

        <ParamField body="role" type="string">
          角色語義，可按官方能力傳入。
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField body="watermark" type="boolean">
      是否添加水印。
    </ParamField>
  </Expandable>
</ParamField>

## 計費映射

| 請求參數                                      | 計費規格        |
| ----------------------------------------- | ----------- |
| `mode=std`, `audio=false`, 無 `video_list` | 720P        |
| `mode=pro`, `audio=false`, 無 `video_list` | 1080P       |
| `mode=std`, `audio=true`                  | 720P+Sound  |
| `mode=pro`, `audio=true`                  | 1080P+Sound |
| `mode=std`, 有 `video_list`                | 720P+Video  |
| `mode=pro`, 有 `video_list`                | 1080P+Video |

## Omni 引用語法

| 語法                | 說明                                    |
| ----------------- | ------------------------------------- |
| `<<<image_1>>>`   | 引用 `metadata.image_list` 第 1 張圖片      |
| `<<<video_1>>>`   | 引用 `video_list` 第 1 段視頻               |
| `<<<element_1>>>` | 引用 `metadata.element_list` 第 1 個主體/角色 |

<Warning>
  `image_list`、`video_list`、`element_list` 的順序必須分別與 prompt 中對應占位符的順序一致。有視頻參考時不要同時開啓 `audio`。
</Warning>

## 響應

<ResponseField name="id" type="string">
  任務 ID，用於查詢任務狀態。
</ResponseField>

<ResponseField name="client_business_id" type="string">
  客戶側業務 ID。僅當請求中傳入 `client_business_id` 時返回。
</ResponseField>

<ResponseField name="object" type="string">
  對象類型，通常爲 `generation.task`。
</ResponseField>

<ResponseField name="model" type="string">
  本次請求使用的模型名稱。
</ResponseField>

<ResponseField name="status" type="string">
  任務狀態：`queued`、`in_progress`、`completed` 或 `failed`。
</ResponseField>

<ResponseField name="created_at" type="integer">
  任務創建時間戳。
</ResponseField>

## 示例

### 文生視頻

```json theme={null}
{
  "model": "kling-v3-omni",
  "client_business_id": "order_20260428_001",
  "prompt": "一隻金毛犬在沙灘上奔跑，日落，電影質感",
  "mode": "std",
  "duration": 5,
  "aspect_ratio": "16:9"
}
```

### 圖片引用

```json theme={null}
{
  "model": "kling-v3-omni",
  "prompt": "讓<<<image_1>>>中的人物向鏡頭揮手",
  "mode": "pro",
  "duration": 5,
  "metadata": {
    "image_list": [
      {
        "image_url": "https://example.com/portrait.jpg"
      }
    ]
  }
}
```

### 有聲視頻

```json theme={null}
{
  "model": "kling-v3-omni",
  "prompt": "一隻黃色小鳥在樹枝上鳴叫，清晨陽光",
  "mode": "std",
  "duration": 5,
  "audio": true
}
```

### 參考視頻輸入

```json theme={null}
{
  "model": "kling-v3-omni",
  "prompt": "將視頻中的背景替換爲海邊日落",
  "mode": "std",
  "video_list": [
    {
      "video_url": "https://example.com/source-video.mp4",
      "refer_type": "base",
      "keep_original_sound": "no"
    }
  ]
}
```

### 特徵參考視頻

```json theme={null}
{
  "model": "kling-v3-omni",
  "prompt": "<<<element_1>>>中的人物模仿<<<video_1>>>中的動作",
  "mode": "pro",
  "video_list": [
    {
      "video_url": "https://example.com/motion-reference.mp4",
      "refer_type": "feature",
      "keep_original_sound": "no"
    }
  ],
  "metadata": {
    "element_list": [
      {
        "url": "https://example.com/character.jpg",
        "type": "image",
        "role": "subject"
      }
    ]
  }
}
```

<Note>
  視頻生成爲異步任務。提交後使用 [獲取視頻任務狀態](../../tasks/video-status) 查詢進度和結果。
</Note>

<RequestExample>
  ```bash cURL theme={null}
  curl --request POST \
    --url https://toapis.com/v1/videos/generations \
    --header 'Authorization: Bearer <token>' \
    --header 'Content-Type: application/json' \
    --data '{
      "model": "kling-v3-omni",
      "prompt": "讓<<<image_1>>>中的人物向鏡頭揮手",
      "mode": "std",
      "duration": 5,
      "metadata": {
        "image_list": [{"image_url": "https://example.com/portrait.jpg"}]
      }
    }'
  ```

  ```python Python theme={null}
  import requests

  response = requests.post(
      "https://toapis.com/v1/videos/generations",
      headers={
          "Authorization": "Bearer <token>",
          "Content-Type": "application/json",
      },
      json={
          "model": "kling-v3-omni",
          "prompt": "讓<<<image_1>>>中的人物向鏡頭揮手",
          "mode": "std",
          "duration": 5,
          "metadata": {
              "image_list": [{"image_url": "https://example.com/portrait.jpg"}],
          },
      },
  )

  print(response.json())
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch("https://toapis.com/v1/videos/generations", {
    method: "POST",
    headers: {
      Authorization: "Bearer <token>",
      "Content-Type": "application/json"
    },
    body: JSON.stringify({
      model: "kling-v3-omni",
      prompt: "讓<<<image_1>>>中的人物向鏡頭揮手",
      mode: "std",
      duration: 5,
      metadata: {
        image_list: [{ image_url: "https://example.com/portrait.jpg" }]
      }
    })
  });

  console.log(await response.json());
  ```
</RequestExample>
