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

# Kling V4 Flash 動画生成

> テキスト、1 枚の開始画像、画像・動画参照からの生成、動画編集・延長に対応。720p のみ、生成時間 3～20 秒、24fps。

> [!NOTE]
>
> このエンドポイントは非同期で処理されます。送信後、返された `task_id` を使い、`GET /v1/tasks/{task_id}` でタスクの状態と結果を取得してください。

```bash cURL theme={null}
curl --request POST \
  --url https://api.apimart.ai/v1/videos/generations \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "model": "kling-v4-flash",
    "prompt": "A paper boat drifts along a gutter on a rainy night, with the gentle sound of rain",
    "duration": 5,
    "resolution": "720p",
    "aspect_ratio": "9:16"
  }'
```

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

response = requests.post(
    "https://api.apimart.ai/v1/videos/generations",
    headers={"Authorization": "Bearer <token>"},
    json={
        "model": "kling-v4-flash",
        "prompt": "A paper boat drifts along a gutter on a rainy night, with the gentle sound of rain",
        "duration": 5,
        "resolution": "720p",
        "aspect_ratio": "9:16"
    }
)
response.raise_for_status()
print(response.json())
```

```javascript JavaScript theme={null}
const response = await fetch("https://api.apimart.ai/v1/videos/generations", {
  method: "POST",
  headers: {
    Authorization: "Bearer <token>",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    model: "kling-v4-flash",
    prompt: "A paper boat drifts along a gutter on a rainy night, with the gentle sound of rain",
    duration: 5,
    resolution: "720p",
    aspect_ratio: "9:16"
  })
});
if (!response.ok) throw new Error(await response.text());
console.log(await response.json());
```

## モードの選択

5 つのモードはすべて同じモデル名 `kling-v4-flash` を使用します。入力素材と `omni_reference_task_type` に応じてモードが選択されます。

| モード | 入力方法 |
| - | - |
| テキストから動画 | 画像・動画・音声素材を指定しない |
| 画像から動画 | `first_frame_image`、`image_with_roles` の `first_frame`、または `image_urls` の唯一の画像で開始フレームを 1 枚指定 |
| 参照素材から動画 | `video_urls` または `image_with_roles` の `reference_image` を指定。`omni_reference_task_type: "reference"` の明示も可能 |
| 動画編集 | `omni_reference_task_type: "edit"` と入力動画を指定 |
| 動画延長 | `omni_reference_task_type: "extend"` と入力動画を指定 |

`omni_reference_task_type` のデフォルトは `auto` で、省略時と同じです。`reference` を明示的に指定すると、`image_urls` の画像は参照画像として扱われます。

> [!WARNING]
>
> `edit` または `extend` を指定せずに `video_url` だけを渡すと HTTP 400 が返されます。動画を参照素材として使用する場合は `video_urls` を使ってください。

## リクエストヘッダー

**Authorization** `string` *required*

Bearer 認証：`Bearer <token>`。`<token>` は APIMart API Key です。

## リクエストパラメータ

**model** `string` *required*

`kling-v4-flash` を指定してください。

**prompt** `string`

生成・編集内容を記述します。画像からの生成のみ省略可能で、他のモードでは必須です。参照素材は各配列の順番で 1 から数え、`@Image1` / `@Video1` で指定します。編集時の入力動画は `@Video1`、参照画像は `@Image1`、`@Image2` などです。

**duration** `integer`

`3`～`20` の整数秒で、通常の既定値は `5`。編集で省略すると入力時間を切り上げます。延長では追加部分の長さです。明示的な `0` は HTTP 400、`null` は省略と同じです。この整数時間で課金され、実際の動画は約 1 フレーム長くなる場合があります。

**seconds** `integer`

`duration` の別名で、規則は同じです。両方指定する場合は双方が `3`～`20` の範囲内で同じ値である必要があり、違反すると HTTP 400 です。

**resolution** `string` (default: 720p)

`720p` のみ。省略時も `720p` です。`1080p` は HTTP 400。`mode` による品質区分の指定には対応しません。

**aspect\_ratio** `string`

テキスト生成、参照生成、編集は `16:9`、`9:16`、`1:1`、`21:9` に対応し、`auto` は参照生成のみで使えます。画像からの生成では `aspect_ratio` / `size` を指定できず、空でない値は HTTP 400 になります。空文字列は省略扱いです。比率を変えるには開始画像を事前にトリミングしてください。

| モード | デフォルトの動作 |
| - | - |
| テキストから動画 | `16:9` |
| 画像から動画 | `aspect_ratio` / `size` は指定不可。開始画像の比率に従い、変更する場合は事前にトリミング |
| 参照素材から動画 | `auto` |
| 動画編集 | 入力動画に従う |
| 動画延長 | このフィールドは指定不可。元の動画のアスペクト比を維持 |

**image\_urls** `string[]`

画像からの生成では開始画像 1 枚のみ。2 枚は HTTP 400 です。参照生成・編集では最大 10 枚の参照画像です。画像のみを参照として使用する場合は `omni_reference_task_type: "reference"` を明示してください。素材 URL は公開アクセス可能なものを使用します。開始画像と参照画像は幅・高さともに 300px 以上、幅と高さの比率は 2:5～5:2 が必要です。条件を満たさない場合は送信時に HTTP 400 となり、課金されません。

**image\_with\_roles** `object[]`

各要素に `url` と `role` を指定します。画像からの生成は `first_frame` 1 枚のみ、参照生成・編集は `reference_image` を使います。終了・中間フレームは非対応です。参照画像は最大 10 枚、参照動画を含め合計 15 素材までです。開始画像と参照画像は幅・高さともに 300px 以上、幅と高さの比率は 2:5～5:2 が必要です。条件を満たさない場合は送信時に HTTP 400 となり、課金されません。

**first\_frame\_image** `string`

画像から動画の開始フレーム URL。`image_with_roles` の `first_frame`、または `image_urls` の 1 枚目でも指定できます。開始画像と参照画像は幅・高さともに 300px 以上、幅と高さの比率は 2:5～5:2 が必要です。条件を満たさない場合は送信時に HTTP 400 となり、課金されません。

**video\_urls** `string[]`

参照動画は最大 5 本、合計 20 秒以内。超過時は HTTP 400 となり、切り詰めは行いません。編集・延長ではタスク種別を明示し、`video_url` の代わりに 1 本だけ指定することもできます。

参照動画は MP4 / MOV のみ、幅・高さともに 700～4553px が必要です。長さはコンテナではなく動画ストリームで判定し、各動画は 3 秒以上、合計 20 秒以内にしてください。いずれかの参照動画が 3 秒未満の場合、送信時に HTTP 400 となり、課金されません。

**video\_url** `string`

編集・延長の入力動画 URL。`omni_reference_task_type: "edit"` または `"extend"` が必須で、省略時は HTTP 400。編集入力は 3～20 秒で、3 秒未満または 20 秒超は課金せず拒否されます。

編集用動画は MP4 / MOV のみ、幅・高さともに 700～4553px が必要です。3～20 秒の制限はコンテナではなく動画ストリームの長さで判定します。形式、幅、高さ、編集入力の長さが範囲外の場合、送信時に HTTP 400 となり、課金されません。

延長入力には編集モードの高さ制限と 3 秒の下限は適用されません。例えば 480p、2 秒の動画も延長できます。

**omni\_reference\_task\_type** `string` (default: auto)

`auto`、`reference`、`edit`、`extend` に対応しています。

* `auto`：素材に応じてテキスト・画像・参照素材からの生成を自動選択。省略時と同じです。
* `reference`：参照素材からの生成。`image_urls` の画像を参照画像として扱います。
* `edit`：動画編集。入力動画が必要です。
* `extend`：動画延長。入力動画が必要です。

**audio\_setting** `string`

動画を含む参照生成用です。`origin` は最初の参照動画の音声を保持し、`auto` は音声を再生成します。デフォルトは `auto` です。`origin` には参照動画が必要で、最初の参照動画に音声トラックがなければ出力にも付きません。編集では音声を再生成し、元の音声を保持しないため、編集リクエストではこのパラメータを省略してください。延長では指定できません。

## 出力サイズとフレームレート

出力は `720p` 区分で、実際のピクセル数は比率によって異なります。フレームレートは 24fps です。実際の長さは `duration` より約 1 フレーム長くなる場合があり、3 秒の指定では約 3.04 秒になります。

| 比率 / モード | 実際のピクセル数 |
| - | - |
| `16:9` | 1280×720 |
| `9:16` | 720×1280 |
| `1:1` | 960×960 |
| `21:9` | 1464×628 |
| 画像から生成 | 開始画像の比率に従い、総画素数は約 0.92MP。例：1:2.5 の開始画像では 604×1516 |

## リクエスト例

以下の素材 URL はプレースホルダーです。実際に外部からアクセス可能な URL に置き換えてください。

### 画像から動画：開始フレーム 1 枚

```json theme={null}
{
  "model": "kling-v4-flash",
  "image_urls": [
    "https://example.com/start.png"
  ]
}
```

開始画像を 1 枚だけ指定します。`prompt` は省略可能です。終了・中間フレームや 2 枚目の画像には対応しません。

`aspect_ratio` / `size` は指定不可。開始画像の比率に従い、変更する場合は事前にトリミング。

開始画像と参照画像は幅・高さともに 300px 以上、幅と高さの比率は 2:5～5:2 が必要です。条件を満たさない場合は送信時に HTTP 400 となり、課金されません。

### 参照素材から動画

```json theme={null}
{
  "model": "kling-v4-flash",
  "prompt": "The girl in @Image1 runs along the beach with the camera movement from @Video1.",
  "image_with_roles": [
    {
      "url": "https://example.com/girl.png",
      "role": "reference_image"
    }
  ],
  "video_urls": [
    "https://example.com/camera.mp4"
  ],
  "aspect_ratio": "auto",
  "duration": 5
}
```

参照画像は最大 10 枚、参照動画は最大 5 本、合計 15 素材まで。参照動画は合計 20 秒以内です。参照音声は非対応です。最初の参照動画の音声を保持するには `audio_setting: "origin"` を追加します。`origin` の場合、最初の参照動画に音声トラックがなければ、出力にも音声トラックは付きません。

開始画像と参照画像は幅・高さともに 300px 以上、幅と高さの比率は 2:5～5:2 が必要です。条件を満たさない場合は送信時に HTTP 400 となり、課金されません。

参照動画は MP4 / MOV のみ、幅・高さともに 700～4553px が必要です。長さはコンテナではなく動画ストリームで判定し、各動画は 3 秒以上、合計 20 秒以内にしてください。いずれかの参照動画が 3 秒未満の場合、送信時に HTTP 400 となり、課金されません。

### 動画編集

```json theme={null}
{
  "model": "kling-v4-flash",
  "prompt": "Change the scene to a snowy winter night.",
  "omni_reference_task_type": "edit",
  "video_url": "https://example.com/in.mp4",
  "image_urls": [
    "https://example.com/style.png"
  ]
}
```

編集入力は動画ストリームの長さが 3～20 秒である必要があります。`duration` を省略すると入力の長さを切り上げ、`aspect_ratio` を省略すると入力の比率に従います。編集では音声を再生成し、元の音声は保持しません。リクエストでは `audio_setting` を省略してください。

開始画像と参照画像は幅・高さともに 300px 以上、幅と高さの比率は 2:5～5:2 が必要です。条件を満たさない場合は送信時に HTTP 400 となり、課金されません。

編集用動画は MP4 / MOV のみ、幅・高さともに 700～4553px が必要です。3～20 秒の制限はコンテナではなく動画ストリームの長さで判定します。形式、幅、高さ、編集入力の長さが範囲外の場合、送信時に HTTP 400 となり、課金されません。

### 動画延長

```json theme={null}
{
  "model": "kling-v4-flash",
  "prompt": "The camera continues moving forward as the sky grows darker.",
  "omni_reference_task_type": "extend",
  "video_url": "https://example.com/in.mp4",
  "duration": 5
}
```

入力動画の最終フレームから 3～20 秒の新しい区間を生成し、その区間のみを返します。元の動画は含まれず、新規区間の長さで課金されます。画像、目標の最終フレーム、`aspect_ratio`、`audio_setting` は指定できません。元の動画の比率を維持します。

延長入力には編集モードの高さ制限と 3 秒の下限は適用されません。例えば 480p、2 秒の動画も延長できます。

## タスクの照会

以下のリクエストのタスク ID を、送信時に返された ID に置き換えてください。

```bash theme={null}
curl --request GET \
  --url 'https://api.apimart.ai/v1/tasks/<task_id>' \
  --header 'Authorization: Bearer <token>'
```

[タスク照会 API](https://docs.apimart.ai/ja/api-reference/tasks/status.md)で確認します。`task_id` を保存し、`completed` または `failed` まで照会を続けてください。720p・3 秒の動画は実測で約 1～4 分でしたが、目安です。固定時間を過ぎただけで失敗と判断しないでください。

## 料金

秒単位で課金します。単価は[モデル料金](https://apimart.ai/pricing)を参照してください。通常生成と動画入力は別の単価です。

| モード | 課金対象の秒数 |
| - | - |
| テキスト生成、画像生成、画像のみの参照生成 | 出力秒数；`kling-v4-flash@720P` |
| 動画延長 | 追加部分の秒数；`kling-v4-flash@720P` |
| 動画編集、参照動画を使用した生成 | 出力秒数 + max(出力秒数, 入力動画秒数)；`kling-v4-flash@720P-input` |

入力動画秒数は、コンテナではなく各動画ストリームの長さを合計してから切り上げます。3.04 秒の動画を `duration: 3` で編集すると、課金秒数は 3 + 4 = 7 秒です。編集と動画を含む参照生成では、送信時に形式、幅、高さ、動画ストリームの長さを調べます。取得失敗、MP4 / MOV 以外、幅または高さが 700～4553px の範囲外、合計 20 秒超、編集入力が 3 秒未満の場合は HTTP 400 となり、課金されません。各参照動画は動画ストリームの長さで判定し、3 秒未満の場合は送信時に HTTP 400 となり、課金されません。

失敗タスクは全額返金され、プラットフォーム側のタイムアウト判定も対象です。クライアントが照会を停止してもタスクはキャンセルされません。その後成功した場合は通常通り課金されます。

## 非対応のパラメータ

以下のパラメータや値は HTTP 400 になります。

* `resolution: "1080p"`
* `last_frame_image`, `role: "last_frame"`, `role: "keyframe"`
* `audio_urls`, `audio_url`
* `mode`, `negative_prompt`, `watermark: true`, `audio: false`
* `multi_shot`, `multi_prompt`, `element_list`, `video_list`
* `camera_control`, `voice_list`

## よくあるエラー

| エラー | 対処方法 |
| - | - |
| `kling-v4-flash only supports resolution 720p (got: 1080p)` | `720p` を使用し、`1080p` を指定しないでください。 |
| `kling-v4-flash duration must be between 3 and 20 seconds` | `duration` / `seconds` は 3～20 の整数。0 は指定できません。 |
| `kling-v4-flash image-to-video follows the first frame's aspect ratio; remove aspect_ratio / size` | 画像からの生成では `aspect_ratio` / `size` を削除してください。比率は開始画像に従うため、変更するには事前にトリミングします。 |
| `kling-v4-flash first frame: image width and height must be at least 300px` | 開始画像と参照画像は幅・高さともに 300px 以上が必要です。 |
| `kling-v4-flash first frame: image aspect ratio (width:height) must be between 2:5 and 5:2` | 画像の幅と高さの比率を 2:5～5:2 にしてください。 |
| `kling-v4-flash input video #1: unsupported video format webm/mkv (supported: mp4/mov)` | 編集・参照動画は MP4 / MOV を使用してください。WebM / MKV は非対応です。 |
| `kling-v4-flash input video #1: video height must be between 700 and 4553px` | 編集・参照動画は幅・高さともに 700～4553px が必要です。この制限は延長入力には適用されません。 |
| `kling-v4-flash input video #1: video width must be between 700 and 4553px` | 編集・参照動画は幅・高さともに 700～4553px が必要です。縦向き動画の幅も 700px 以上にしてください。 |
| `kling-v4-flash reference video #1 must be at least 3 seconds` | 各参照動画の動画ストリームは 3 秒以上が必要です。3 秒未満の場合、送信時に HTTP 400 となり、課金されません。 |
| `kling-v4-flash only supports aspect_ratio 16:9, 9:16, 1:1 or 21:9 (got: auto)` | `auto` は参照生成のみ対応します。画像からの生成では比率のフィールドを省略してください。 |
| `kling-v4-flash image-to-video only takes a first frame; last frame and keyframes are not supported` | 開始画像 1 枚だけにし、終了・中間フレームや 2 枚目を除去します。 |
| `kling-v4-flash reference-to-video does not take reference audios` | `audio_urls` / `audio_url` を除去します。 |
| `kling-v4-flash video extend takes no images` | 延長リクエストから画像・目標終了フレームを除去します。 |
| `kling-v4-flash input videos must be at most 20 seconds in total` | 参照動画の合計または編集入力は 20 秒以内。自動切り詰めはありません。 |
| `video edit requires an input video of at least 3 seconds` | 動画ストリームの長さが 3 秒以上の編集入力を使用してください。コンテナの長さでは判定しません。 |
| `video_url needs omni_reference_task_type edit ... or extend` | `edit` / `extend` を明示します。参照動画は `video_urls` に指定します。 |
| `Failed to probe the input video duration` | URL がアクセス可能で、有効な動画を返すか確認します。 |
| `duration (3) and seconds (5) are aliases and must match` | 別名は片方だけ指定するか、両方を同じ 3～20 の値にします。 |


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