Google: Veo 3.1 Fast
Veo 3.1 Fast 是 Google 用於短篇文字或圖片引導場景的影片模型,附帶生成聲音。正式規格回傳 4、6 或 8 秒、24 fps 的 MP4,輸出為 720p 或 1080p,並可引導開場或結尾影格。
關於模型
此說明介紹模型的能力。Ailoot 可用的輸入、輸出與選項,依所選方法列於下方。
Veo 3.1 Fast 是 Google 的快速影片生成規格,用於文字描述或圖片確立的短場景。它將視覺鏡頭與生成聲音結合,支援引導開場與結尾影格。可用來發展場景概念、準備簡短創意變體,或製作動作及視覺方向明確的精簡影音片段。
請圍繞主體、動作與場景建立簡述,再加入能讓鏡頭實用的構圖、運鏡、光線與視覺處理。一份原創產品簡述可呈現木桌上的小陶瓷燈,燈光亮起時攝影機緩慢靠近,並以輕微開關聲配合動作。主體及可見事件描述畫面,聲音指示則描述聆聽體驗。
依原廠提示詞規格,以英文撰寫場景指示。主要動作應配合片長,並區分攝影機移動與主體移動。廣角場景交代、紋理特寫與跟隨移動物件的鏡頭,回答不同創意問題。請選擇能傳達預期細節的視角,不要在單一短鏡頭中結合無關運鏡指示。
圖片引導場景需準備已確立外觀與構圖的清楚起始圖片。動作簡述便可專注於接續事件。結尾影格可為轉變提供視覺目的地。請讓兩端的重要主體細節及風格保持連貫,或明確描述預期轉換。除了開場與最終圖片,也請檢查轉變本身。
原廠正式規格支援 4、6 或 8 秒短片,橫式 16:9 或直式 9:16,每個提示詞最多四段影片輸出。Fast 以每秒 24 格輸出 720p 或 1080p MP4。圖片引導規格接受 JPEG 或 PNG,輸入圖片上限為 20 MB,支援 720p/1080p 輸入設定。請依預期方向準備構圖,並將輸入維持在圖片額度內。
聲音可以是生成場景的一部分。請連同可見動作描述所有台詞、環境聲或相關音效,指出應說話的主體及應發聲的事件。對話需短到適合預期演出,並與氣氛或音樂區分。音訊生成遵循文字場景簡述;錄音不在此規格文件的一般輸入之列。
目前正式規格也列出素材參考生成及影片延長。參考引導主體或物件外觀,邊界影格則引導開場及結尾構圖。請選擇場景用途清楚的參考素材,不要將每張圖片視為可互換控制。接續短片應選獨立延長流程,描述現有動作之後發生什麼;其輸入處理與新文字引導鏡頭不同。
負面描述可指出想避免的內容或視覺處理。主要提示詞應聚焦所需場景,排除項目則針對工作明確指定。產品變體可保留主體與構圖,只改一項細節,例如光線方向或材質處理。比較結果時,請保存設定及參考組合,讓創意差異保持清楚。
Veo 3.1 Fast 與一般 Veo 3.1 規格是不同選項。文件中的 Fast 正式輸出為 720p/1080p;一般規格也列出 4K。請將所選版本及輸出設定與素材一併保存,不要將 Preview 識別碼或其他 Veo 版本自動視為此正式規格的同義詞。
流程會建立生成操作,完成後提供回傳影片檔案。請保存所有實際選定供檢查的輸出,以及簡述、來源影格與相關設定。操作識別碼是生成紀錄;完成的 MP4 素材才能播放及用於剪輯。請將提供的內容來源中繼資料與影片一併保留。
請在整段短片中檢查主體外觀、指定動作、攝影機處理與聲音。用於較長合成作品前,確認對話清晰度與聲音、可見事件之間的關係。實用成果可為概念鏡頭、產品揭示或短篇敘事片段,再於周邊製作流程加入後續標題、轉場與其他剪輯。
Ailoot Ultra · 影片 POST /v1/videos google/veo-3.1-fast
google/veo-3.1-fast入門
Veo 3.1 Fast 是 Google 用於短篇文字或圖片引導場景的影片模型,附帶生成聲音。正式規格回傳 4、6 或 8 秒、24 fps 的 MP4,輸出為 720p 或 1080p,並可引導開場或結尾影格。
- 接受的輸入
- 文字
- 結果
- 影片
Ailoot 可用 · 輸入與方法
Ailoot Ultra · 影片 POST /v1/videos
- 輸入
text- 輸出
video- 輸出格式
- mp4
- 輸出數量
- 最多 4 輸出s
| 欄位 | 類型 | 要求 | 值與限制 | 預設值 |
|---|---|---|---|---|
欄位model | 類型string | 要求必填 | 值與限制 google/veo-3.1-fast | 預設值— |
欄位prompt | 類型string | 要求必填 | 值與限制 UTF-8 位元組數上限: 10,000 必須包含非空白字元: 是 | 預設值— |
欄位duration | 類型integer | 要求必填 | 值與限制 4, 6, 8 | 預設值— |
欄位resolution | 類型string | 要求必填 | 值與限制 720p | 預設值— |
欄位aspect_ratio | 類型string | 要求必填 | 值與限制 16:9, 9:16 | 預設值— |
欄位generate_audio | 類型boolean | 要求必填 | 值與限制 false, true | 預設值— |
輸入素材組合
文字生成影片 · 必填: prompt
方法參數與生命週期
| 參數 | 規格 |
|---|---|
參數content_type | 規格application/json |
參數required | 規格model, prompt, duration, resolution, aspect_ratio, generate_audio |
參數additional_properties | 規格false |
參數parameters | 規格{"name":"model","type":"string","required":true,"enum":["google/veo-3.1-fast"]}, {"name":"prompt","type":"string","required":true,"non_whitespace":true,"max_utf8_bytes":10000}, {"name":"duration","type":"integer","required":true,"enum":[4,6,8]}, {"name":"resolution","type":"string","required":true,"enum":["720p"]}, {"name":"aspect_ratio","type":"string","required":true,"enum":["16:9","9:16"]}, {"name":"generate_audio","type":"boolean","required":true,"enum":[false,true]} |
參數material_types | 規格text |
方法別名: /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.24 每秒影片 |
| 設定影片價格 | 費率表— | 預估數量— | 產生音訊— | 解析度— | 計費單位每秒影片 | 計費條件音訊:with_audio;解析度:4k | 費用 輸出 · 影片價格 · 僅供比較的估算 $0.6 每秒影片 |
| 設定Ultra | 費率表— | 預估數量指定的設定;僅為估算。 | 產生音訊含音訊 | 解析度720p | 計費單位每秒輸出影片 | 計費條件— | 費用 輸出 · 預估輸出影片秒數 · 僅供比較的估算 $0.2 每秒輸出影片 畫面顯示的費率用於生成前估算費用。最終費用依原始生成作業記錄的成本計算,影片實際播放時長並非計費數量。 |
| 設定影片價格 | 費率表— | 預估數量— | 產生音訊— | 解析度— | 計費單位每秒影片 | 計費條件音訊:without_audio | 費用 輸出 · 影片價格 · 僅供比較的估算 $0.2 每秒影片 |
| 設定影片價格 | 費率表— | 預估數量— | 產生音訊— | 解析度— | 計費單位每秒影片 | 計費條件音訊:without_audio;解析度:4k | 費用 輸出 · 影片價格 · 僅供比較的估算 $0.5 每秒影片 |
| 設定Ultra | 費率表— | 預估數量指定的設定;僅為估算。 | 產生音訊不含音訊 | 解析度720p | 計費單位每秒輸出影片 | 計費條件— | 費用 輸出 · 預估輸出影片秒數 · 僅供比較的估算 $0.16 每秒輸出影片 顯示的費率用於生成前預估費用。最終費用根據原始生成所記錄的費用計算。影片實際長度並非計費數量。 |
| 設定預估生成費用 | 費率表— | 預估數量單次生成估算值 | 產生音訊— | 解析度— | 計費單位— | 計費條件— | 費用 輸出 · 預估生成費用 · 僅供比較的估算 $0.64 生成前估算 此估算並非額外費用,也不是本次生成完成後的固定費率。 |
Ailoot 會在請求前預留估算金額。取得結果後,依實測用量結算最終費用。串流結算採用最終用量紀錄。預留金額與結算的運作方式 →
參考費率詳情
模型層級的參考費率表不會變更方法選擇、報價或費用。實際計費採用所選 Ailoot 方法的費率。
影片設定的價格參考
各設定的價格
請逐一核對各項費用與所列條件。每組互為替代選項的設定只套用一種費率。
| 設定 | 計費條件 | 費用 |
|---|---|---|
| 設定影片價格 | 計費條件音訊:with_audio | 費用 輸出 · 影片價格 $0.24 每秒影片 所示設定的公開價格參考。最終費用依實際計費設定計算。 |
| 設定影片價格 | 計費條件音訊:with_audio;解析度:4k | 費用 輸出 · 影片價格 $0.6 每秒影片 所示設定的公開價格參考。最終費用依實際計費設定計算。 |
| 設定影片價格 | 計費條件音訊:without_audio | 費用 輸出 · 影片價格 $0.2 每秒影片 所示設定的公開價格參考。最終費用依實際計費設定計算。 |
| 設定影片價格 | 計費條件音訊:with_audio;解析度:720p | 費用 輸出 · 影片價格 $0.2 每秒影片 所示設定的公開價格參考。最終費用依實際計費設定計算。 |
| 設定影片價格 | 計費條件音訊:without_audio;解析度:4k | 費用 輸出 · 影片價格 $0.5 每秒影片 所示設定的公開價格參考。最終費用依實際計費設定計算。 |
| 設定影片價格 | 計費條件音訊:without_audio;解析度:720p | 費用 輸出 · 影片價格 $0.16 每秒影片 所示設定的公開價格參考。最終費用依實際計費設定計算。 |
請求範例
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-fast", "prompt": "a calm greenhouse", "duration": 6, "resolution": "720p", "aspect_ratio": "16:9", "generate_audio": true}')
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
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 and response headers; do not resubmit an unknown creation.')
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}"
python3 - <<'PY_STATUS_URL'
import json
from pathlib import Path
from urllib.parse import quote
r=json.loads(Path('result.json').read_text())
if not isinstance(r.get('id'),str) or not r['id']:raise SystemExit('Keep the original response and headers for reconciliation; no returned ID')
Path('status-url.txt').write_text('https://api.ailoot.ai/v1/videos/'+quote(r['id'],safe=''))
PY_STATUS_URL
curl --fail-with-body --silent --show-error "$(cat status-url.txt)" \
-H "Authorization: Bearer $AILOOT_API_KEY" -D status-headers.txt -o status.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
r=json.loads(Path('status.json').read_text())
print(json.dumps(r,ensure_ascii=False,indent=2))
print('Keep the complete JSON and response headers; do not resubmit an unknown creation.')
PY_RESULT
其他內容讀取方式
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
export AILOOT_API_KEY
python3 - <<'PY_ASSETS'
import json,os,subprocess
from pathlib import Path
from urllib.parse import urljoin,urlsplit
r=json.loads(Path('status.json').read_text())
if r.get('status')!='completed':raise SystemExit('Keep the original ID and read its status; never recreate an unknown job')
if not isinstance(r.get('data'),list) or not r['data']:raise SystemExit('Keep the complete original status; no completed outputs supplied')
urls=[]
for i,u in enumerate(r.get('data',[])):
if not isinstance(u,str):raise SystemExit('Keep the original response; unexpected asset shape')
urls.append((str(i),u))
for label,path in urls:
u=urljoin('https://api.ailoot.ai',path);z=urlsplit(u)
if z.scheme!='https' or z.netloc!='api.ailoot.ai' or z.username or z.password:raise SystemExit('Use the actual returned Ailoot owned content URL')
target=Path('owned-'+label+'.bin')
subprocess.run(['curl','--fail-with-body','--silent','--show-error',u,'-H','Authorization: Bearer '+os.environ['AILOOT_API_KEY'],'-D',str(target)+'.headers','-o',str(target)],check=True)
print('All returned owned URLs saved; complete metadata, timing and usage remain in the JSON.')
PY_ASSETS
保留所有已完成的結果
請儲存每部已完成的影片或傳回的檔案,並從實際傳回的每個素材 URL 取得素材。
請保留每個已完成的 data[] 自有簽署 URL,以及完整狀態中繼資料。請儲存每個輸出,包括其生成的音訊。即使 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 | 條件在解析影片設定檔之前,讀取原始請求本文即已失敗 | 下一步請保留回傳的回應,並修正無法讀取的請求本文。 |
回應422 · price_unavailable | 條件無法解析確切的影片設定檔,或完整解析後的設定檔沒有可用且完全相符的價格卡 | 下一步請保留回應,並使用完整、完全相符且獲准使用的設定檔與其公布價格卡。此分支會在傳送給供應商前執行。 |
回應409 · video_not_ready | 條件原始結果內容尚無法取得 | 下一步請輪詢原始回傳的 ID,並遵守 Retry-After。 |
回應server_error | 條件回傳的回應表示該作業或結果需要檢查 | 下一步保留原始回傳的作業/任務 ID、請求標頭與回應;繼續以支援的方式讀取該原始作業。請勿重新提交建立請求。 |
回應503 · result_pending_check | 條件以 GET 取得原始狀態/內容:工作尚未發布、原始作業並非 failed/cancelled/expired,且符合以下其中一項:本機狀態為 unknown,或原始作業狀態為 completed。 | 下一步請保留原始 id 與 operation_id(兩者為同一公開影片 ID)、回應與標頭;僅讀取原始狀態/內容。切勿提交新的生成請求。 |
別名
模型別名
Ailoot Ultra google/veo-3.1-fast
方法路徑別名
/v1/videos/generations, /videos, /videos/generations
相關呼叫用 ID
FAQ · Google: Veo 3.1 Fast
- 可以使用哪些輸入與結果?
POST /v1/videos·google/veo-3.1-fast:text→video- 請求使用哪些欄位?
POST /v1/videos·google/veo-3.1-fast:model,prompt,duration,resolution,aspect_ratio,generate_audio