模型

Google: Veo 3.1 Lite

Markdown · JSON

Google: Veo 3.1 Lite

Veo 3.1 Lite 可根據文字描述或起始圖片生成附帶原生音訊的影片。文件中的 Lite 流程產生一段短片,可選 4、6 或 8 秒,以及橫式或直式構圖,其特定限制與 Veo 3.1 和 Fast 不同。

關於模型

此說明介紹模型的能力。Ailoot 可用的輸入、輸出與選項,依所選方法列於下方。

Veo 3.1 Lite 是 Google 的 Veo 3 影片生成系列中的 Lite 成員。它根據自然語言描述或輸入圖片合成有聲影片。輸出是生成短片,不是對現有錄影的文字分析。原廠 Lite 模型卡引用 Veo 3 說明底層架構、訓練素材及已知限制;Lite 專用文件則定義自身生成功能及限制。

引用架構對時間音訊表示及時空影片表示使用潛在擴散。基礎模型以音訊、影片及圖片訓練,搭配不同細節層次的說明文字,訓練素材也經過篩選與去重。這說明其結合視覺及音訊生成的用途,但未揭露 Lite 專用參數量,也不能確立每個生成動作都符合物理現實。規劃實際場景時,請一起決定可見動作與對應聲音。

確切 Lite 文件列出文字輸入上限為 1,024 個 token,輸出一段影片。生成指南的 Lite 欄列出 4、6、8 秒片長,預設 720p,1080p 需要八秒短片。預設長寬比為橫式 16:9,也列出直式 9:16;輸出為每秒 24 格。該流程的原生音訊始終開啟。這些值屬於原廠具名 Lite 流程,不屬於無關 Veo 版本,也不是另行實測的應用回應。

Lite 不支援 4K 輸出或影片延長。參數表也在 Lite 欄將多參考 referenceImages 功能及用於延長的影片輸入標為不可用。起始圖片可確立首格;表格列出 lastFrame 圖片與起始圖片搭配,用於轉變。請將此影格控制途徑與混合多份風格或主體參考區分。原廠人物生成設定依模式不同:Lite 表列出文字轉影片使用 allow_all,圖片轉影片及插補使用 allow_adult;地區規則還可能進一步限制該文件規格。請選擇符合真正所需第一個場景的起始圖片,要求動作前先準備主體、構圖與可見細節。

文字轉影片需描述主體、動作、環境與預期風格。必要時加入機位及移動、構圖、對焦與光線。一份原創產品場景可讓物件保持置中,攝影機靠近某項材質細節,周圍光線柔和變化。請指出起始狀態、主要動作及最後時刻,讓短片完成一個連貫構想。冗長的不相關動作集合,與聚焦鏡頭是不同工作。

圖片轉影片需提供清楚起始影格,解釋哪些應移動、哪些應保持穩定。主體動作及運鏡應分開指定。使用尾格約束時,請準備相容的結尾構圖,描述兩端間的轉變。請檢查結果,不要假設要求的身分、位置或形狀在整段短片都完全相同。引用模型卡將複雜場景及複雜動作中的完整一致性列為持續挑戰。

提示詞指南支援對話、音效及環境聲的明確提示。確切台詞應放在引號內,指出說話者,並描述聲音與可見動作的關係。音效與背景氣氛不應混淆成台詞。文件指出英文提示詞完整支援,其他語言在該指南中尚未評估。請將可聽台詞、時序及音質視為與影片同一份素材的一部分檢查,不要將音訊視為提示詞保證忠實的逐字稿。

原廠流程採非同步處理:生成請求回傳操作,狀態回報完成後取得結果。請保留操作識別,檢查回傳短片。指南描述原廠保留兩天及 SynthID 標記,因此保存素材應包含下載結果、提示詞、來源圖片與所選設定。種子可改善重複性,但不保證決定性。用於剪輯前,請檢查主體連續性、動作、構圖、聲音及預期場景終點;處理完成本身不代表創意要求已達成。

Ailoot Ultra · 影片 POST /v1/videos google/veo-3.1-lite

google/veo-3.1-lite

Google /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 調整值時

供比較的預估費率

各設定的價格

請逐一核對各項費用與所列條件。每組互為替代選項的設定只套用一種費率。

設定費率表預估數量產生音訊解析度計費單位計費條件費用
設定基礎 token 費率費率表基本費率預估數量—產生音訊—解析度—計費單位—計費條件—費用
輸入 · 輸入 Token · 僅供比較的估算 — / 1K Token
輸出 · 輸出 Token · 僅供比較的估算 — / 1K Token
輸入 · 讀取快取 · 僅供比較的估算 — / 1K Token
輸入 · 寫入快取 · 僅供比較的估算 — / 1K Token
輸入 · 寫入快取,1 小時 · 僅供比較的估算 — / 1K Token
設定影片價格費率表—預估數量—產生音訊—解析度—計費單位每秒影片計費條件音訊:with_audio費用
輸出 · 影片價格 · 僅供比較的估算 $0.16 每秒影片
設定影片價格費率表—預估數量—產生音訊—解析度—計費單位每秒影片計費條件音訊:with_audio;解析度:720p費用
輸出 · 影片價格 · 僅供比較的估算 $0.1 每秒影片
設定影片價格費率表—預估數量—產生音訊—解析度—計費單位每秒影片計費條件音訊:without_audio費用
輸出 · 影片價格 · 僅供比較的估算 $0.1 每秒影片
設定Ultra費率表—預估數量指定的設定;僅為估算。產生音訊不含音訊解析度720p計費單位每秒輸出影片計費條件—費用
輸出 · 預估輸出影片秒數 · 僅供比較的估算 $0.06 每秒輸出影片

顯示的費率用於生成前預估費用。最終費用根據原始生成所記錄的費用計算。影片實際長度並非計費數量。

設定預估生成費用費率表—預估數量單次生成估算值產生音訊—解析度—計費單位—計費條件—費用
輸出 · 預估生成費用 · 僅供比較的估算 $0.24 生成前估算

此估算並非額外費用,也不是本次生成完成後的固定費率。

Ailoot 會在請求前預留估算金額。取得結果後,依實測用量結算最終費用。串流結算採用最終用量紀錄。預留金額與結算的運作方式 →

參考費率詳情

模型層級的參考費率表不會變更方法選擇、報價或費用。實際計費採用所選 Ailoot 方法的費率。

影片設定的價格參考

各設定的價格

請逐一核對各項費用與所列條件。每組互為替代選項的設定只套用一種費率。

設定計費條件費用
設定影片價格計費條件音訊:with_audio費用
輸出 · 影片價格 $0.16 每秒影片

所示設定的公開價格參考。最終費用依實際計費設定計算。

設定影片價格計費條件音訊:without_audio費用
輸出 · 影片價格 $0.1 每秒影片

所示設定的公開價格參考。最終費用依實際計費設定計算。

設定影片價格計費條件音訊:with_audio;解析度:720p費用
輸出 · 影片價格 $0.1 每秒影片

所示設定的公開價格參考。最終費用依實際計費設定計算。

設定影片價格計費條件音訊:without_audio;解析度:720p費用
輸出 · 影片價格 $0.06 每秒影片

所示設定的公開價格參考。最終費用依實際計費設定計算。

請求範例

Ailoot Ultra · 影片

curlcurl · 將您的第一個影格製成動畫
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}/content
  • GET /v1/videos/generations/{request_id}/content
查看工作狀態
GET · 取得狀態
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
儲存所有已完成的素材
GET · 取得所有已完成的素材
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
其他內容讀取方式
GET · 取得內容
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。請加入 frame_images,並依指定物件格式,恰好包含一個 first_frame 項目。請設定 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

google/veo-3.1-lite

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

更多詳情

將 Ailoot 串接 Claude Code、OpenCode、Hermes 或自己的應用程式。

公司及其專案組合

公司及其專案組合:數百萬客戶,每月銷售額達數十億。

優惠購買 token。

訂閱優惠適合持續工作,折扣碼購買 token 最高可折 50%。

訂閱
為定期請求選擇優惠方案。
最高 50% 折扣碼
購買時輸入代碼,價格依活動重算。
歷史中的費用
每次請求保存模型、token 與金額。

選擇訂閱 · 查看模型價格

將 API 加入 你銷售的產品。

依 Ailoot 正式服務條款與授權合約串接 SaaS、應用程式與機器人;轉售請申請經銷授權。

商用應用程式
在付費功能加入文字、圖片、影片與聲音生成。
經銷授權
提供專案說明與存取方式,要求書面使用和轉售條件。
網站文件
串接前可閱讀正式服務條款、授權合約與資料處理政策。

申請經銷授權 · 正式服務條款與授權合約