按能力
影片
影片都按任務處理:提交後查結果或等回呼。時長越長、清晰度越高越貴。
#1. 選模型
gemini-omni-1.1-flash$0.088 / 次限制和狀態
這個能力有 13 個線上模型,切換後下面的程式碼會跟著變。
#2. 複製請求
把 YOUR_API_KEY 換成你的金鑰再執行。顯示的選項都是這個模型支援的。
https://www.aisplice.store/v1/videosBearer API key非同步任務選項這裡只顯示目前模型已公開支援的選項。
# Requires curl and jq
API_KEY="${API_KEY:-YOUR_API_KEY}"
# 1. Submit once
SUBMITTED=$(curl --fail-with-body -sS https://www.aisplice.store/v1/videos \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: model-docs-$(date +%s)-$$" \\
-d '{
"model": "Gemini Omni 1.1 Flash",
"prompt": "A cinematic scene with careful composition",
"resolution": "720p",
"size": "16:9"
}')
TASK_ID=$(printf '%s' "$SUBMITTED" | jq -r '.task_id // .id // empty')
if [ -z "$TASK_ID" ]; then
printf '%s\n' "$SUBMITTED" >&2
exit 1
fi
echo "task_id=$TASK_ID"
# 2. Poll until terminal
while true; do
STATUS_JSON=$(curl --fail-with-body -sS \
"https://www.aisplice.store/v1/videos/$TASK_ID" \
-H "Authorization: Bearer $API_KEY")
STATUS=$(printf '%s' "$STATUS_JSON" | jq -r '.status // empty' | tr '[:upper:]' '[:lower:]')
echo "status=$STATUS"
case "$STATUS" in
completed|succeeded|success) break ;;
failed|failure|cancelled|canceled)
printf '%s\n' "$STATUS_JSON" | jq .
exit 1
;;
esac
sleep 5
done
# 3. Fetch the final result
curl --fail-with-body -sS \
"https://www.aisplice.store/v1/videos/$TASK_ID/content" \
-H "Authorization: Bearer $API_KEY" | jq .該模型要求使用公開媒體網址。 先上傳本機檔案,再把 public_url 放入模型請求;避免傳送大體積 Base64 請求主體。
檢視上傳指南全部參數
這個模型支援的全部欄位和可選值。
全部參數
這個模型支援的全部欄位和可選值。
model本次請求使用的精確模型識別碼。
gemini-omni-1.1-flashpromptWhat to make, or for a picture or video what to animate or change. Describe pacing in words; there is no duration field.
resolutionOutput resolution; it sets the per-second rate.
360p720p1080p4ksizeForwarded as aspect_ratio. A video input keeps its own ratio.
16:99:16imagesOne public picture is the first frame. Several pictures, image_reference_mode=multi, or pictures beside a video are references (who or what appears). Up to 10 including frames.
metadata.video_urls公開 HTTP(S) 來源影片網址。 最多 1 個。
回應流程
檢視任務狀態、終態和結果回應範例。
回應流程
檢視任務狀態、終態和結果回應範例。
{
"id": "task_xxx",
"task_id": "task_xxx",
"object": "video",
"model": "Gemini Omni 1.1 Flash",
"status": "queued"
}等待中
queued · submitted · in_progress · processing
成功
completed · succeeded · success
失敗
failed · failure · cancelled · canceled
#3. 拿到結果
提交後馬上回傳 task_id。每隔幾秒查一次,直到 status 變成 completed;也可以傳 webhook_url,完成後我們會回呼你。
GET https://www.aisplice.store/v1/videos/{task_id}
GET https://www.aisplice.store/v1/videos/{task_id}/content
時長和解析度決定價格檔位。進行中的任務可以取消,見 API 參考。
成功才扣費
#出錯了怎麼辦
- 400 並提示某個欄位:這個模型不支援該選項,用第 2 步列出的取值。
- 參考圖或影片被拒:必須是模型能下載的公開網址。
- 內容被模型拒絕:換個說法重寫提示詞;被拒絕的請求不扣費。
- 402:餘額不夠這次請求,到「錢包」儲值後重試。
- 429:請求太快,按 Retry-After 給的秒數等一下再試。
- 503 model_not_found:模型名寫錯了或模型暫時下線,從第 1 步重新選一個。
#首尾影格、參考圖和參考影片
支援的模型會在第 2 步顯示這些欄位:首影格、尾影格、參考圖或參考影片。填公開網址,本機檔案先上傳。
做進你的產品裡先給你的使用者放哪些選項,哪些以後再加。
先給使用者放哪些選項先放提示詞和一個影響價格的選項,基礎流程跑通後再加其他的。+
創作意圖
像 prompt 這樣的欄位應該出現在 UI 中,因為使用者能直接理解它會改變什麼結果。
成本倍率項
像 duration、resolution、size、count 這樣的欄位,只有在價格已經能被清楚解釋時才應引入。
模式切換項
像 image、mask 或 continuation ID 這類欄位會改變整個工作流程本身,只應出現在專門模式中。
系統接線項
像 webhook_secret 這樣的欄位是給整合方用的,不是給一般創作者用的,所以不要放進預設 UI。
prompt- 何時開放
- 始終開放。它定義場景內容或運動方向。
- 建議預設值
- 在 UI 中設為必填。
- 為什麼重要
- 沒有它,使用者就無法控制影片意圖。
image / images- 何時開放
- 僅在參考素材驅動或圖生影片產品中開放。
- 建議預設值
- 在純 prompt 流程中隱藏。
- 為什麼重要
- 它會改變創作模式,因此應是明確的產品決策,而不是預設開放。
duration- 何時開放
- 只有在基礎非同步流程穩定、價格清楚顯示後再開放。
- 建議預設值
- 從模型支援的最短時長起步。
- 為什麼重要
- 它是影片生成裡最主要的成本和延遲放大項之一。
resolution- 何時開放
- 只有當使用者明確會比較 720p、1080p 或 4K 輸出時再開放。
- 建議預設值
- 先在伺服器端固定一個建議解析度。
- 為什麼重要
- 更高解析度會提高成本、排隊時間和失敗敏感度。
webhook_url / webhook_secret- 何時開放
- 只給後端整合方使用,不對一般終端使用者開放。
- 建議預設值
- 在 UI 產品中優先採用輪詢。
- 為什麼重要
- 它們解決的是系統整合問題,不是終端使用者創作問題,所以不應進入面向使用者的控制區。
Phase 1
- prompt
- one size or one duration default
- submit -> poll -> content
Phase 2
- one quality or resolution selector
- clear pricing hint
Phase 3
- advanced controls such as reference media, continuation, webhook, or vendor-specific tuning結果只保留一個可信來源
還是沒解決?
把請求 ID 或錯誤訊息傳給我們,我們來查。