Google: Veo 3.1 Lite
Veo 3.1 Liteは、テキスト説明または開始画像から、ネイティブ音声付き動画を生成します。文書化されたLiteフローは、4・6・8秒、横向きまたは縦向きでクリップ1本を出力し、Veo 3.1やFastとは異なる固有の制限があります。
モデルについて
この説明はモデルの機能を紹介するものです。Ailootで利用できる入力、出力、オプションは、選択したメソッドごとに以下に記載されています。
Veo 3.1 Liteは、GoogleのVeo 3動画生成シリーズのLiteモデルです。自然言語の説明や入力画像から音声付き動画を合成します。出力は生成クリップであり、既存録画の文章分析ではありません。メーカーのLiteモデルカードは、基礎構造、学習素材、既知の制限についてVeo 3を参照し、Lite固有の文書が独自の機能と制限を定めます。
参照される構造は、時間的な音声表現と時空間的な動画表現に潜在拡散を使います。ベースモデルは、さまざまな詳しさのキャプションを伴う音声、動画、画像を、フィルタリングと重複排除を行った素材で学習しました。これは映像と音声を一緒に生成する目的を説明します。Lite固有のパラメーター数を示したり、すべての動きが物理現実に従うと立証したりするものではありません。実際のシーンでは、見える動作と対応する音を一緒に決めます。
正確なLite文書は、テキスト入力1,024トークン、出力動画1本を定めます。生成ガイドのLite欄は4・6・8秒、既定720p、1080pは8秒必須です。既定アスペクト比は横16:9で、縦9:16もあり、出力は24fpsです。このフローではネイティブ音声は常にオンです。これらの値はメーカーの名前付きLiteフローのもので、別のVeoエディションやアプリで別途測定した応答ではありません。
Liteは4K出力と動画延長に対応しません。パラメーター表のLite欄では、複数参照のreferenceImagesと延長用動画入力も使用不可です。開始画像で最初のフレームを定められ、表には遷移用にその画像と併用するlastFrameもあります。このフレーム制御は、複数のスタイル・被写体参照の混合と区別します。人物生成の設定はモード別で、Lite表はテキストから動画にallow_all、画像から動画と補間にallow_adultを挙げ、地域規則がさらに制限する場合があります。被写体、構図、細部を整え、実際に希望する最初のシーンに合う開始画像を選びます。
テキストから動画では、被写体、動作、環境、スタイルを記述します。必要ならカメラ位置と移動、構図、焦点、光を加えます。独自の商品シーンなら、物体を中央に保ち、カメラを素材の細部へ近づけ、周囲の光を穏やかに変えられます。最初の状態、主な動作、最後の瞬間を特定し、短いクリップで一つの一貫した案を完結させます。無関係な動作の長い集まりは、集中したショットとは別の作業です。
画像から動画では、明瞭な開始フレームと、動くもの・安定させるものを説明します。被写体とカメラの動きを別々に指定します。終了フレームの条件を使う場合は、整合する終わりの構図を準備し、遷移を説明します。要求した識別性、位置、形が全体で同一に保たれると考えず、結果を確認します。参照モデルカードは、複雑なシーンの完全な一貫性と複雑な動きを継続的な課題として挙げています。
プロンプトガイドは対話、効果音、環境音の明示的な指示に対応します。正確な発話を引用符に入れ、話者を示し、見える動作との関係で音を記述します。効果音や背景の雰囲気と、せりふを混同しません。プロンプトの英語は完全対応と文書化され、他言語はそのガイドでは評価されていません。音声をプロンプトの忠実な転記とみなさず、聞こえる言葉、タイミング、品質を動画と同じ成果物の一部として確認します。
メーカーのフローは非同期で、生成リクエストがoperationを返し、状態が完了となった後に結果を取得します。operation識別情報を保ち、返されたクリップを確認します。ガイドはメーカー側の2日間保持とSynthIDマークを説明しているため、ダウンロード結果、プロンプト、元画像、選択設定を保存します。シードは反復性を高め得ますが決定論的な同一性を保証しません。編集前に被写体の一貫性、動作、構図、音、意図した終点を確認します。処理完了だけでは創作要件を満たした証拠になりません。
Ailoot Ultra · 動画 POST /v1/videos google/veo-3.1-lite
google/veo-3.1-liteはじめに
シーンの説明から、4秒、6秒、または8秒の720p動画を作成します。
- 動いている商品を見せる
- 舞台設定を示すシーンを作成
- 短いカメラ移動を試す
- 対応する入力
- テキスト · 画像
- 結果
- 動画
Ailootで利用可能 · 入力とメソッド
Ailoot Ultra · 動画 POST /v1/videos
- 入力の種類
text,image- 出力の種類
video- 出力形式
- mp4
- 出力数
- 最大 4 出力s
| フィールド | 種類 | 要件 | 値と制限 | デフォルト |
|---|---|---|---|---|
フィールドmodel | 種類string | 要件必須 | 値と制限 google/veo-3.1-lite | デフォルト— |
フィールドprompt | 種類string | 要件必須 | 値と制限 最小の長さ: 1 最大バイト数: 10,000 単位: UTF8 バイト | デフォルト— |
フィールドduration | 種類integer | 要件必須 | 値と制限 4, 6, 8 単位: 秒 | デフォルト— |
フィールドresolution | 種類string | 要件必須 | 値と制限 720p | デフォルト— |
フィールドaspect_ratio | 種類string | 要件必須 | 値と制限 16:9, 9:16 | デフォルト— |
フィールドgenerate_audio | 種類boolean | 要件必須 | 値と制限 false | デフォルト— |
フィールドframe_images | 種類array | 要件任意 | 値と制限 条件: text_to_videoでは省略してください。指定する場合は、項目を厳密に一つ、{"type":"image_url","image_url":{"url":"<actual HTTPS URL>"},"frame_type":"first_frame"}の形式で渡します。項目のキーはtype,image_url,frame_typeのみ、image_urlのキーはurlのみです。追加キーや重複キーは認められません。duration=4,resolution="720p",aspect_ratio="16:9",generate_audio=falseのみ使用できます。URLはスキームがhttps、ホスト名が空でなく、ユーザー情報とリテラルの#を含まないものとして解析できる必要があります。署名付きクエリとエンコードされたパスは保持されます。ソース側では入力のMIME、ファイルサイズ、ピクセル寸法を確認しません。 | デフォルト— |
入力素材の組み合わせ
テキストから動画へ · 必須: prompt
画像から動画へ · 必須: prompt, frame_images
メソッドのパラメータとライフサイクル
| パラメータ | 仕様 |
|---|---|
パラメータcontent_type | 仕様application/json |
パラメータrequired | 仕様model, prompt, duration, resolution, aspect_ratio, generate_audio |
パラメータother_options | 仕様false |
パラメータresolution | 仕様720p |
パラメータprompt_max_bytes | 仕様10000 |
パラメータduration | 仕様4, 6, 8 |
パラメータaspect_ratio | 仕様16:9, 9:16 |
パラメータgenerate_audio | 仕様false |
パラメータmaterial_types | 仕様text, image |
パラメータparameters | 仕様{"name":"model","type":"string","required":true,"default_known":false,"default":null,"enum_known":true,"enum":["google/veo-3.1-lite"],"availability":"source_interface"}, {"name":"prompt","type":"string","required":true,"default_known":false,"default":null,"enum_known":false,"enum":null,"availability":"source_interface","min_length":1,"maximum_bytes":10000,"maximum_length":null,"unit":"UTF8 バイト"}, {"name":"duration","type":"integer","required":true,"default_known":false,"default":null,"enum_known":true,"enum":[4,6,8],"availability":"source_interface","unit":"秒"}, {"name":"resolution","type":"string","required":true,"default_known":false,"default":null,"enum_known":true,"enum":["720p"],"availability":"source_interface"}, {"name":"aspect_ratio","type":"string","required":true,"default_known":false,"default":null,"enum_known":true,"enum":["16:9","9:16"],"availability":"source_interface"}, {"name":"generate_audio","type":"boolean","required":true,"default_known":false,"default":null,"enum_known":true,"enum":[false],"availability":"source_interface"}, {"name":"frame_images","type":"array","required":false,"default_known":false,"default":null,"enum_known":false,"enum":null,"availability":"source_interface","conditions":"text_to_videoでは省略してください。指定する場合は、項目を厳密に一つ、{\"type\":\"image_url\",\"image_url\":{\"url\":\"<actual HTTPS URL>\"},\"frame_type\":\"first_frame\"}の形式で渡します。項目のキーはtype,image_url,frame_typeのみ、image_urlのキーはurlのみです。追加キーや重複キーは認められません。duration=4,resolution=\"720p\",aspect_ratio=\"16:9\",generate_audio=falseのみ使用できます。URLはスキームがhttps、ホスト名が空でなく、ユーザー情報とリテラルの#を含まないものとして解析できる必要があります。署名付きクエリとエンコードされたパスは保持されます。ソース側では入力のMIME、ファイルサイズ、ピクセル寸法を確認しません。"} |
メソッドのエイリアス: /v1/videos/generations, /videos, /videos/generations
ライフサイクル: submit_once_poll_original
GET /v1/videos/{request_id}
GET /v1/videos/generations/{request_id}
GET /v1/videos/{request_id}/content
GET /v1/videos/generations/{request_id}/content
作成は一度だけ行い、返されたIDを保存してください。
元のステータスをポーリングし、完了したすべてのアセットと長さを保持してください。
料金
最終料金の計算方法
表示料金は生成前の費用の見積もりです。最終請求額は、元の生成処理に記録された費用から計算されます。実測された出力時間や予測数量が、そのまま最終的な課金数量になるわけではありません。
料金情報はリクエストの機能を追加しません。対応するパラメーターは選択したメソッドに記載されています。
- 高速モード
- 未指定 高速モードが選択されている場合
- Flex モード
- 未指定 flex モードが選択されている場合
- 最大推論量
- 未指定 推論量が最大で、調整に既定値(default)を使用する場合
比較用の推定料金
設定別の価格
各料金を表示された条件と照合してください。選択肢となる設定の各組には、いずれか1つの料金を適用します。
| 設定 | 料金表 | 予測数量 | 音声を生成 | 解像度 | 課金単位 | 課金条件 | 料金 |
|---|---|---|---|---|---|---|---|
| 設定基本トークン料金 | 料金表基本料金 | 予測数量— | 音声を生成— | 解像度— | 課金単位— | 課金条件— | 料金 入力 · 入力トークン · 比較専用の見積もり — / 1K トークン 出力 · 出力トークン · 比較専用の見積もり — / 1K トークン 入力 · キャッシュ読み取り · 比較専用の見積もり — / 1K トークン 入力 · キャッシュ書き込み · 比較専用の見積もり — / 1K トークン 入力 · キャッシュ書き込み、1時間 · 比較専用の見積もり — / 1K トークン |
| 設定動画料金 | 料金表— | 予測数量— | 音声を生成— | 解像度— | 課金単位動画1秒あたり | 課金条件音声:with_audio | 料金 出力 · 動画料金 · 比較専用の見積もり $0.16 動画1秒あたり |
| 設定動画料金 | 料金表— | 予測数量— | 音声を生成— | 解像度— | 課金単位動画1秒あたり | 課金条件音声:with_audio;解像度:720p | 料金 出力 · 動画料金 · 比較専用の見積もり $0.1 動画1秒あたり |
| 設定動画料金 | 料金表— | 予測数量— | 音声を生成— | 解像度— | 課金単位動画1秒あたり | 課金条件音声:without_audio | 料金 出力 · 動画料金 · 比較専用の見積もり $0.1 動画1秒あたり |
| 設定Ultra | 料金表— | 予測数量指定された設定(概算のみ)。 | 音声を生成音声なし | 解像度720p | 課金単位出力動画1秒あたり | 課金条件— | 料金 出力 · 出力動画の推定秒数 · 比較専用の見積もり $0.06 出力動画1秒あたり 表示された単価は、生成前の費用見積もりに使用します。最終請求額は、元の生成に記録された費用から算出されます。動画の実際の再生時間は、課金対象の数量ではありません。 |
| 設定生成費用の見積もり | 料金表— | 予測数量生成1回分の概算 | 音声を生成— | 解像度— | 課金単位— | 課金条件— | 料金 出力 · 推定生成コスト · 比較専用の見積もり $0.24 生成前の見積もり この見積もりは追加料金ではなく、完了した生成処理に対する固定料金でもありません。 |
Ailootはリクエスト前に見積額を確保します。結果の取得後、実測使用量に基づいて最終料金を精算します。ストリーミング時の精算には最終の使用量記録を使用します。金額の確保と精算の仕組み →
参考料金の詳細
モデル単位の参照料金表は、メソッド選択、見積もり、課金を変更しません。実際の課金には、選択したAilootメソッドの料金を適用します。
動画設定の料金参照情報
設定別の価格
各料金を表示された条件と照合してください。選択肢となる設定の各組には、いずれか1つの料金を適用します。
| 設定 | 課金条件 | 料金 |
|---|---|---|
| 設定動画料金 | 課金条件音声:with_audio | 料金 出力 · 動画料金 $0.16 動画1秒あたり 表示されている設定の公開料金の参照値です。最終請求額には、実際に課金された設定が適用されます。 |
| 設定動画料金 | 課金条件音声:without_audio | 料金 出力 · 動画料金 $0.1 動画1秒あたり 表示されている設定の公開料金の参照値です。最終請求額には、実際に課金された設定が適用されます。 |
| 設定動画料金 | 課金条件音声:with_audio;解像度:720p | 料金 出力 · 動画料金 $0.1 動画1秒あたり 表示されている設定の公開料金の参照値です。最終請求額には、実際に課金された設定が適用されます。 |
| 設定動画料金 | 課金条件音声:without_audio;解像度:720p | 料金 出力 · 動画料金 $0.06 動画1秒あたり 表示されている設定の公開料金の参照値です。最終請求額には、実際に課金された設定が適用されます。 |
リクエスト例
Ailoot Ultra · 動画
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "google/veo-3.1-lite", "prompt": "A cat in a spacesuit walking on the Moon", "duration": 4, "resolution": "720p", "aspect_ratio": "16:9", "generate_audio": false}')
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos \
-H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
--data-binary @request.json -D response-headers.txt -o result.json
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_IMAGE_URL:?Set the actual HTTPS URL of your first-frame image}"
export AILOOT_IMAGE_URL
python3 - <<'PY_REQUEST'
import json,os,re
from pathlib import Path
from urllib.parse import urlsplit
image=os.environ["AILOOT_IMAGE_URL"]
try:
parsed=urlsplit(image)
valid=(image.startswith("https://") and parsed.scheme=="https" and bool(parsed.hostname)
and parsed.username is None and parsed.password is None and "#" not in image
and not any(ord(c)<32 or ord(c)==127 for c in image)
and re.search(r"%(?![0-9A-Fa-f]{2})",image) is None)
except ValueError:
valid=False
if not valid:
raise SystemExit("Use your actual HTTPS image URL with a hostname, no userinfo and no fragment")
p={"model":"google/veo-3.1-lite","prompt":"The subject makes a slow, natural movement. Keep the opening composition.","duration":4,"resolution":"720p","aspect_ratio":"16:9","generate_audio":False,"frame_images":[{"type":"image_url","image_url":{"url":image},"frame_type":"first_frame"}]}
Path("request.json").write_text(json.dumps(p,ensure_ascii=False),encoding="utf-8")
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos \
-H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
--data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
r=json.loads(Path("result.json").read_text())
print(json.dumps(r,ensure_ascii=False,indent=2))
print("Keep the complete JSON, headers and original returned id. Use the existing GET status tab for that original operation, then save every completed owned output. Never resubmit an unknown generation.")
PY_RESULT
結果を受け取って保存
Ailoot Ultra · 動画
mp4
GET /v1/videos/{request_id}GET /v1/videos/generations/{request_id}GET /v1/videos/{request_id}/contentGET /v1/videos/generations/{request_id}/content
ジョブのステータスを確認
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_OPERATION_ID:?Set the actual Ailoot operation ID returned by creation}"
export AILOOT_OPERATION_ID
operation_id=$(python3 -c 'import os,urllib.parse;print(urllib.parse.quote(os.environ["AILOOT_OPERATION_ID"],safe=""))')
curl --fail-with-body --silent --show-error "https://api.ailoot.ai/v1/videos/$operation_id" \
-H "Authorization: Bearer $AILOOT_API_KEY" -o status.json
python3 - <<'PY_STATUS'
import json
from pathlib import Path
r=json.loads(Path("status.json").read_text())
print(json.dumps(r))
if r.get("status")=="completed":
for x in r.get("data",[]):print(x)
PY_STATUS
完了したアセットをすべて保存
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_STATUS_FILE:?Set the actual completed status JSON file}"
export AILOOT_STATUS_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
from urllib.parse import urlsplit,urljoin
f=Path(os.environ["AILOOT_STATUS_FILE"])
if not f.is_file():raise SystemExit("Choose the actual completed status file")
r=json.loads(f.read_text())
if r.get("status")!="completed" or not isinstance(r.get("data"),list) or not r["data"]:raise SystemExit("Wait for a completed status with asset paths")
urls=[]
for x in r["data"]:
if not isinstance(x,str) or "\n" in x or "\r" in x:raise SystemExit("Invalid asset path")
u=urljoin("https://api.ailoot.ai",x)
z=urlsplit(u)
if z.scheme!="https" or z.netloc!="api.ailoot.ai" or z.username or z.password:raise SystemExit("Use the actual Ailoot asset paths from status")
urls.append(u)
Path("asset-urls.txt").write_text("\n".join(urls)+"\n")
PY_REQUEST
index=0
while IFS= read -r asset_url; do
curl --fail-with-body --silent --show-error "$asset_url" \
-H "Authorization: Bearer $AILOOT_API_KEY" -o "video-${index}.mp4"
index=$((index + 1))
done < asset-urls.txt
その他のコンテンツ取得
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_OPERATION_ID:?Set the actual Ailoot operation ID returned by creation}"
export AILOOT_OPERATION_ID
operation_id=$(python3 -c 'import os,urllib.parse;print(urllib.parse.quote(os.environ["AILOOT_OPERATION_ID"],safe=""))')
curl --fail-with-body --silent --show-error "https://api.ailoot.ai/v1/videos/$operation_id/content" \
-H "Authorization: Bearer $AILOOT_API_KEY" -o video.mp4
完了した結果をすべて保存
完了した動画や返されたファイルをすべて保存し、実際に返されたすべてのアセットURLから取得してください。
完了したdata[]には、所有するすべての署名付きコンテンツURLが含まれます。返された各URLを取得するか、コンテンツエンドポイントでindexに実際の出力インデックスを指定してください。元のジョブが失敗した場合、charge_pending_checkが返されることがあります。ジョブを作り直さず、その元のジョブを確認してください。generate_audio=falseでも有効なAAC音声トラックが含まれる場合があります。その音声を含む元のMP4全体を保持してください。
元のレスポンスを確認する場合
既存の元のジョブを読み取ってください。結果不明の送信を決して再実行しないでください。
最大出力数: 4.
レスポンスのフィールド
| フィールド | 種類 | 意味 |
|---|---|---|
フィールドid | 種類string | 意味— |
フィールドobject | 種類string | 意味— |
フィールドmodel | 種類string | 意味— |
フィールドstatus | 種類string | 意味— |
フィールドdata[] | 種類signed content URL | 意味— |
フィールドcharge_pending_check | 種類boolean | 意味— |
フィールドerror.code | 種類string | 意味— |
フィールドerror.message | 種類string | 意味— |
フィールドoperation_id | 種類string | 意味HTTP503 result_pending_checkの元のステータス/コンテンツのレスポンス:idは同じ元の公開動画IDです。 |
フィールドerror.type | 種類string | 意味HTTP503のresult_pending_checkではserver_errorが返されます。 |
エラーと次の手順
| レスポンス | 条件 | 次の手順 |
|---|---|---|
レスポンス400 · invalid_request_error | 条件必須フィールド、素材の表現形式、またはパラメーター値が不正です | 次の手順新しい生成リクエストを送る前に、指定されたフィールドを修正してください。 |
レスポンス409 · video_not_ready | 条件元の結果のコンテンツはまだ利用できません | 次の手順元の返却IDをポーリングし、Retry-Afterに従ってください。 |
レスポンスserver_error | 条件返されたレスポンスは、操作または結果の確認が必要であることを示しています | 次の手順最初に返された操作/タスク ID、リクエストヘッダー、レスポンスを保存し、その元の操作に対してサポートされている読み取りを継続してください。作成リクエストを再送しないでください。 |
レスポンス503 · result_pending_check | 条件元のステータス/コンテンツをGETで取得する際、タスクが未公開で、元のジョブがfailed/cancelled/expiredのいずれでもなく、ローカル状態がunknownまたは元のジョブのステータスがcompletedである場合。 | 次の手順元のidとoperation_id(同じ公開動画ID)、レスポンス、ヘッダーを保持してください。元のステータス/コンテンツだけを読み取ってください。新しい生成リクエストは決して送信しないでください。 |
レスポンス422 · price_unavailable | 条件指定されたframe_imagesオブジェクトまたはその条件付きプロファイルを解析できないか、解析済みの完全なプロファイルに一致する利用可能な料金表がありません。 | 次の手順model、prompt、duration、resolution、aspect_ratio、generate_audioを保持してください。指定のオブジェクト形式で、first_frameの項目を厳密に一つ含むframe_imagesを追加します。duration=4, resolution="720p", aspect_ratio="16:9"、generate_audio=falseを設定してください。この検証は、リクエストが送信される前に実行されます。 |
エイリアス
モデルのエイリアス
Ailoot Ultra google/veo-3.1-lite
メソッドパスのエイリアス
/v1/videos/generations, /videos, /videos/generations
関連する呼び出し用ID
FAQ · Google: Veo 3.1 Lite
- 利用できる入力と結果は何ですか?
POST /v1/videos·google/veo-3.1-lite:text,image→video- リクエストはどの項目を使用しますか?
POST /v1/videos·google/veo-3.1-lite:model,prompt,duration,resolution,aspect_ratio,generate_audio,frame_images