Gemini Omni Flash の動画生成(非同期): Google の次世代動画モデルです。1 つのエンドポイントでパラメータが方式を決めます。画像なしならテキストから動画、image に 1 枚なら最初のフレーム、images に 2 枚なら最初と最後のフレーム、image_role=reference なら 1〜3 枚を被写体・スタイルの参照として使います。duration=6 / 8 / 10 秒、resolution=720P / 1080P、size=16:9 / 9:16 で、ネイティブ音声付き。プロンプトの絵コンテに沿って複数カットで物語を組み立てるのが得意です。ジョブ ID を返し(HTTP 202)、GET /v1/videos/jobs/{id} を status=succeeded になるまでポーリングすると、結果が data[0].url に入ります(再ホストした mp4、60 日間保存)。秒単位 $0.05 で課金し($0.30 / $0.40 / $0.50)、2 つの解像度は同じ料金です。失敗時は全額返金します。
Playground で試す →認証
Authorization: Bearer YOUR_API_KEY Content-Type: application/json
コンソールで API Key を作成すると利用を開始できます。
リクエストボディ
| パラメータ | 種別 | 必須 | 説明 |
|---|---|---|---|
| model | string | はい | モデル ID。ここでは gemini-omni-flash です。 |
| prompt | string | はい | 動画の内容、カメラ、動きを説明するテキストプロンプト。最大 20000 文字(中国語も英語も同じく文字数で数えます)。参照画像を渡した場合は、プロンプトの中で @Image1 / @Image2 のように何枚目かを指名できます。 |
| duration | integer | いいえ | 長さ: 6 / 8 / 10 秒のいずれか(既定は 6)。seconds とも書けます。秒単位 $0.05 で課金し、それぞれ $0.30 / $0.40 / $0.50 です。 |
| resolution | string | いいえ | 解像度: 720P / 1080P(既定は 720P)。どちらも同じ料金です。 |
| size | string | いいえ | 画面比率: 16:9(既定)/ 9:16。aspect_ratio とも書けます。それ以外の比率は拒否されます。 |
| audio | boolean | いいえ | このモデルは常にネイティブ音声を生成します。このパラメータは省略できます(false は拒否されます)。 |
| image | string | いいえ | 参照画像 1 枚(公開 URL、data: URI または base64):最初のフレームとして使い、画像から動画を作ります。画像を送らなければテキストから動画になります。 |
| images | array | いいえ | 画像は最大 3 枚(1 枚あたり最大 16MB、jpg / png / webp / gif)。image_role=first_frame(1〜2 枚のときの既定):1 枚目が最初のフレーム、2 枚目が最後のフレームです。image_role=reference:1〜3 枚を被写体・スタイルの参照として使い、フレームにはしません。3 枚なら既定で reference です。reference_images とも書けます(reference と同じ)。上限を超えた場合は切り詰めずに拒否します。 |
| image_role | string | いいえ | 画像の使い方: first_frame(最初のフレーム。2 枚なら 2 枚目が最後のフレーム)または reference(被写体・スタイルの参照)。省略時は 1〜2 枚なら first_frame、3 枚なら reference として扱います。 |
リクエスト例
# 1) submit -> 202 {"id":"img_...","status":"queued"}
curl https://nezhagate.com/v1/videos/generations -H 'Authorization: Bearer YOUR_API_KEY' -H 'Content-Type: application/json' -d '{"model": "gemini-omni-flash", "prompt": "a paper crane unfolding over a misty lake", "duration": 8, "resolution": "720P", "size": "16:9"}'
# first frame: also pass "image": "https://example.com/first-frame.png"
# first + last frame: "images": ["https://example.com/first.png", "https://example.com/last.png"]
# 1-3 references: "images": [...], "image_role": "reference"
# 2) poll every ~5s until status=succeeded, then read data[0].url
curl https://nezhagate.com/v1/videos/jobs/img_3f9a...c2 -H 'Authorization: Bearer YOUR_API_KEY'レスポンス
{
"id": "img_3f9a...c2",
"object": "video.generation.job",
"status": "queued",
"model": "gemini-omni-flash"
}非同期の動画ジョブ(送信 → ポーリング)
送信すると即座に HTTP 202 とジョブ ID が返ります。status=succeeded になるまでポーリングし、data[0].url(mp4 のリンク)を読んでください。指定できる長さ・解像度・画面比率は上のパラメータ表にあります。image パラメータを付けると画像から動画になります。
curl https://nezhagate.com/v1/videos/generations -H 'Authorization: Bearer YOUR_API_KEY' -H 'Content-Type: application/json' -d '{"model": "gemini-omni-flash", "prompt": "夕暮れにサーフィンをする猫", "size": "16:9"}'{ "id": "img_3f9a...c2", "object": "video.generation.job", "status": "queued", "model": "gemini-omni-flash" }curl https://nezhagate.com/v1/videos/jobs/img_3f9a...c2 -H 'Authorization: Bearer YOUR_API_KEY'
{
"id": "img_3f9a...c2",
"object": "video.generation.job",
"status": "succeeded",
"model": "gemini-omni-flash",
"data": [{ "url": "https://img.nezhagate.com/i/9f86d081a8....mp4" }]
}🕑 data[0].url は当方の画像ホストのリンクで、60 日間保存された後に自動的に削除されます。継続して使う場合は、ダウンロードしてご自身のストレージや CDN に保存してください。
秒単位で課金($0.05/秒 x 長さ)。確保額と請求額は完全に一致し、生成が失敗またはタイムアウトした場合は自動的に全額返金します。
エラーコード
エラー本文には常に error.message / error.type / error.code / error.param が含まれます。分岐は code で行ってください。一覧は接続ガイドにあります。
| HTTP | code | 説明 |
|---|---|---|
| 401 | invalid_api_key | API Key が欠落または無効 |
| 402 | insufficient_quota | 残高不足または Key が上限超過 |
| 400 | invalid_request | モデルまたはパラメータが非対応 |
| 429 | rate_limit_exceeded | 上流のレート制限 |
| 502 | upstream_error | すべての上流回線が失敗 |