Loading...
Loading...
Animate a still image into video with Gemini Omni 1.1 Flash. The source image becomes the first frame and drives the generated motion.
No output yet
Run the model to see generated results.
import requests
result = requests.post(
'https://api.e2x.ai/v1/jobs/submit',
headers={
'Authorization': f'Bearer {API_KEY}',
'Content-Type': 'application/json'
},
json={
'model': 'google/omni-1.1-flash/image-to-video',
'input': {}
}
)import time
job_id = result.json()['jobId']
while True:
response = requests.get(
f'https://api.e2x.ai/v1/jobs/{'{job_id}'}',
headers={'Authorization': f'Bearer {'{API_KEY}'}'}
)
data = response.json()['data']
if data['status'] == 'completed':
print('Done!', data['outputs'][0]['url'])
break
elif data['status'] == 'failed':
raise Exception(f"Job failed: {'{'}data['error']['message']{'}'}")
time.sleep(2)再生時間と解像度ごとの生成あたりの推定コストです。実行した分だけお支払いいただきます。
Gemini Omni 1.1 Flash は 2026年8月27日 に Google で一般提供に到達しました。Veo ではなく Gemini ファミリーに属するモデルで、当社はその image-to-video の capability を google/omni-1.1-flash/image-to-video として公開しています。課金は完成した動画 1 秒ごと。720p で 1 秒 $0.09、定価は $0.15 ですが、4 つの capability すべてに常時 40% の割引がかかっています。デフォルトの 8 秒クリップは $0.72。必須は prompt と image_url です。
最初の呼び出しの前に、その静止画が何なのかを理解してください。それは契約です。1 コマ目を決め、それと一緒に画角、レンズ、色、被写体、そして写り込んでいる欠点まで決めます。あなたの prompt が受け持つのは、その次の数秒だけ。それ以前は受け持ちません。
ここで退屈な結果が出るとき、原因はほぼひとつの間違いに行き着きます。変化ではなく写真そのものを描写した prompt です。何が動くのかを名指ししてください。カメラがどこへ行くのかを名指ししてください。
| クリップの尺 | 720p の価格 |
|---|---|
| 4 秒 | $0.36 |
| 6 秒 | $0.54 |
| 8 秒(デフォルト) | $0.72 |
| 10 秒 | $0.90 |
解像度はこの料率を掛け算します。360p は 0.33×(1 秒 $0.0297)、1080p は 1.5×($0.135)、4K は 2×($0.18)。360p の 4 秒パスは $0.1188 で、その静止画がそもそも動くのかを知るいちばん安い方法です。
2 枚のフレームがあって、間はモデルに任せたいですか。それなら Omni 1.1 Flash start-end-frame-to-video です。1 つの被写体を複数の角度から撮っていて、ショットリスト全体でぶれさせたくないですか。それなら Omni 1.1 Flash reference-to-video。素材がまったくないなら、価格の話をひととおり載せた Omni 1.1 Flash text-to-video へどうぞ。
この job は解釈ではなく継続だと考えてください。モデルはあなたの静止画を 1 コマ目として受け取り、その後を 1 秒あたり 24 コマ、それらしく作り出します。どのコマも、あなたが渡したものに繋ぎ止められています。その繋ぎ止めこそが価値です。承認済みのキービジュアルは、誰も引き直していないのでブランドから外れません。
同時にそれは制約でもあります。要素の詰まったフレームは、すべてが動くあいだ辻褄を合わせ続ける対象をモデルに余分に渡すことになり、その辻褄合わせはこの世代の弱点です。Google のモデルカードもそう書いています。*「編集全体を通じて完全な一貫性を保つこと、複雑な動きを含むシーンを生成すること、あるいは完全に正確なテキストを描画することは、依然として課題として残っています。」*看板はにじみます。群衆は顔が入れ替わります。すっきりした背景に被写体ひとつなら 10 秒を耐えますが、雑然としたフレームは 4 秒でも耐えません。
トリミングは自分でやる。 出力は 16:9 か 9:16 のどちらか。正方形も 4:5 もウルトラワイドもありません。4:5 の縦位置を 16:9 の job に押し込めば、どこかが犠牲になります。誰も撮っていない素材でモデルが左右を埋めるか、構図のほうが寸法に合わせて動くかです。どちらにしても 1 秒 $0.09 は払います。判断がまだ無料のうちに、先に切ってください。
アップスケールで 4K に持ち込まない。 元の解像度が、出力に正直に入る情報量の上限を決めます。横 640 ピクセルのサムネイルを 1080p でレンダリングしても、同じ精細さのままファイルが大きくなるだけで、料率は 1.5 倍です。
動く先を残しておく。 被写体の頭上の空き、車の前方の道。きつく切り詰めると、何かが動けばフレームから押し出されるしかなくなります。クリップが「揺れている写真」に見える、よくある理由です。
ダッシュボードで key を生成し、サーバー側に置いてください。image_url は当社のパイプラインが自分で取得するため、公開インターネットから到達できる必要があります。CDN やオブジェクトストレージ上の HTTPS アドレスであって、ローカルパスや localhost、ログインの向こう側の URL ではいけません。署名付き URL は有効期限を十分に取れば問題ありません。job は 4 分ほど走るので、60 秒のリンクではそちらが先に死にます。
curl -X POST https://api.e2x.ai/v1/jobs/submit \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "google/omni-1.1-flash/image-to-video",
"input": {
"prompt": "やかんの注ぎ口から湯気が立ちのぼり、右へ流れていく。カメラは取っ手へゆっくり寄る。台所の低い環境音、やかんが鳴りはじめる音。フレーム内のほかのものは動かない。",
"image_url": "https://cdn.example.com/stills/copper-kettle-16x9.jpg",
"aspect_ratio": "16:9",
"resolution": "720p",
"duration": "8"
}
}'
job ID が返ってきます。polling するか、webhookUrl を渡してループを省いてください。
const headers = {
Authorization: `Bearer ${process.env.E2X_API_KEY}`,
"Content-Type": "application/json",
};
const start = await fetch("https://api.e2x.ai/v1/jobs/submit", {
method: "POST",
headers,
body: JSON.stringify({
model: "google/omni-1.1-flash/image-to-video",
input: {
prompt:
"彼女がカメラのほうを向き、スカーフが風に持ち上がる。固定。カモメ、遠くの波音。",
image_url: "https://cdn.example.com/stills/portrait-9x16.png",
aspect_ratio: "9:16",
resolution: "360p",
duration: "10",
},
}),
}).then((r) => r.json());
const { jobId } = start.data;
for (let tick = 0; tick < 360; tick++) {
const job = await fetch(`https://api.e2x.ai/v1/jobs/${jobId}`, { headers })
.then((r) => r.json());
if (job.data.status === "completed") {
await archive(job.data.outputs[0].url); // 恒久的な場所へ控える
break;
}
if (["failed", "cancelled"].includes(job.data.status)) {
throw new Error(job.data.error?.message ?? job.data.status);
}
await new Promise((r) => setTimeout(r, 5000));
}
job は pending、次に processing、そして completed、failed、cancelled のいずれかを報告します。schema で人がつまずくのは 2 点。duration と resolution は文字列なので、10 ではなく "10" を送ること。そして音声のオン・オフは存在しません。音は映像と一緒に生成され、あなたの prompt から操作するものだからです。フィールドの定義は機械可読な仕様で常に最新です。
変わるものだけを書いてください。被写体も光も構図もファイルと一緒に届いています。それを繰り返すのは、モデルが動きに使えたはずの注意を削ることです。動きを述べなければ、全額を払って、ほぼ静止したフレームがわずかに漂うだけのものが返ってきます。
動きは 1 つ、名指しで。 湯気が立つ。扉が内側へ開く。髪が持ち上がる。効く動作をひとつ選び、あとは止めておく。そう言葉にすることは、思っている以上に効きます。
カメラの指示も 1 つ。 「ゆっくりプッシュイン」「固定」「手持ちで左へ流れる」。撮影技法を並べた段落より、平易な一文が勝ちます。指定のないカメラは、モデルの判断になります。
その下に敷く音。 部屋鳴り、車の往来、具体的な効果音ひとつ。無音はデフォルトではありません。指定のないミックスは勝手に作られます。prompt は 50,000 文字まで書けるので、長さが上限になることはありません。効くのは精度です。言い回しについては当社の Gemini Omni prompting ガイドがさらに踏み込んでいます。
これは請求書からではなく、当社の口から聞いてください。Veo 3.1 Fast image-to-video はこの同じプラットフォーム上で 1 秒 $0.01、このページの endpoint の 9 分の 1 です。
| endpoint | 8 秒クリップ | こんなときに |
|---|---|---|
| Veo 3.1 Fast image-to-video | $0.08 | 静止画 1 枚、クリップ 1 本、後ろに何もぶら下がらない |
| Omni 1.1 Flash image-to-video | $0.72 | 10 秒が要る、360p の下書きパスが要る、あるいはこのショットを他と並べる |
| Veo 3.1 Fast text-to-video | $0.08 | その静止画が $0.64 ぶんの仕事をしていない |
価格および製品条件は変更される場合があります。購入を判断する前に、各プロバイダーの最新価格をご確認ください。Google の Batch または Flex 価格は、スケジューリング・空き状況・処理条件が異なるため、標準的なオンデマンド API request と直接同等ではなく、この比較には含めていません。これは特定の条件に絞った比較であり、E2X があらゆる構成において世界最安であると主張するものではありません。
これは本気で受け取ってください。写真 1 枚を 1 度動かすだけなら、行き先は Veo です。ここでの上乗せが元を取るのは 3 つの場合。カットに 10 秒が要って Veo が 8 秒で止まるとき、1 秒 $0.0297 で下書きしたいとき、そしてこのクリップが 1 つのセットに属さなければならないときです。静止画を動かす手立ては image-to-video カテゴリにほかにもありますし、隣にはモデルカタログがあります。
出力は 24 fps、1 回の生成で 3 秒から 10 秒、全フレームに SynthID の watermark が入り、これは経路上の誰にも切れません。結果の URL は一時的なものです。完了ハンドラーの中でファイルを保存してください。明日取得できないリンクは、二度お金を払うレンダリングです。
写真をアップロードするからこそ効いてくる規則がひとつあります。EEA、スイス、英国では、未成年者が写った元画像を Google が拒否し、識別可能な一部の個人についても同様です。また、Google が評価した prompt 言語は英語だけです。Gemini Omni 1.1 Flash のリリースノートでは、当社が今も運用している前世代から何が変わったかを扱っています。そちらは上流で 2026年9月30日 に提供終了です。
9 セントで 720p の 1 秒が買えます。デフォルトのクリップは 8 秒なので $0.72、上限の 10 秒なら $0.90 です。この料率は定価 $0.15 に対する 40% 引きで、2026年8月28日 に当社のライブカタログから読み取りました。解像度が倍率を動かし、360p が 0.33×、1080p が 1.5×、4K が 2× です。
静止画 1 枚ならたいてい Veo です。1 秒あたり $0.09 に対して $0.01、8 秒なら $0.72 に対して $0.08。10 秒が要るとき、360p の下書きパスが全体として得になるとき、あるいは同じ被写体から作る他のクリップと揃える必要があるときに、ここへ戻ってきてください。
16:9 と 9:16 だけです。送信の前に、元画像を目的の比率に切っておいてください。そうしないと、モデルが食い違いを自分で解決し、あなたが承認した構図の一部が失われることがあります。
当社のパイプラインが公開 HTTPS で到達できる場所ならどこでも構いません。CDN、S3 や GCS のバケット、自前の web サーバーなど。ローカルパス、localhost、認証の向こう側にあるものは失敗します。署名付き URL は、有効期限が job の 4 分を余裕をもって上回るなら機能します。
たいていは、prompt がその画像を演出せずに描写し直しているからです。被写体と画角は静止画がすでに決めています。動きもカメラワークも述べられていなければ、モデルには働きかける先がありません。動きを 1 つとカメラの指示を 1 つ、という形に書き直してください。
はい。映像と一緒にネイティブに生成され、同期しています。has_sound のフィールドも無音モードもないので、環境音は prompt で述べてください。音声は後から編集できません。変更は再生成を意味します。
あります。EEA、スイス、英国のユーザーについては、未成年者が写った元画像と、識別可能な一部の個人を Google が拒否します。同社のポリシーであり、どのプロバイダーでも同じように適用されます。出力には不可視の SynthID watermark も入るため、ラベル付きの AI アセットになる前提で計画してください。