Zhipu AI: CogVideoX 3
CogVideoX 3 在開發商文件記載的流程中,依文字、圖片或首尾影格配對建立影片。它支援五秒或十秒序列、多種最高 4K 的輸出尺寸、30 或 60 fps,以及可選的生成音效。
關於模型
此說明介紹模型的能力。Ailoot 可用的輸入、輸出與選項,依所選方法列於下方。
CogVideoX 3 是 Zhipu AI 的影片模型,文件記載文字轉影片、圖片轉影片及首尾影格生成。開發商強調影格穩定、遵循指示,以及寫實或三維視覺風格。場景從書面需求開始時選擇文字;已有視覺基礎時選擇一張圖片;序列需要明確開場與結尾視圖時,則選擇兩張端點圖片。
文字需求中,描述主體及一個容易理解的動作。說明環境、視角與重要物理關係,讓場景能依清楚意圖評估。角色拾起物件與攝影機逐漸揭示該物件需要不同序列。只有兩者關係對鏡頭重要時,才同時描述。
圖片序列中,準備能看見主體獨特特徵的參考。開發商接受不超過 5 MB 的 PNG、JPEG 與 JPG 圖片,透過 URL 或編碼圖片資料提供。將實際參考與生成結果保留在一起,讓外觀與取景可對照來源,而非對照記憶中的版本。
開發商的端點影格模式依順序接受兩張圖片:第一張確立開場影格,第二張確立結尾影格。將它們準備為同一鏡頭的兩個預定狀態。描述連結兩者的轉換或動作,再檢閱主體在端點之間是否維持連貫。兩張好的靜態圖片本身,並不能顯示中間動作符合所需故事。
提示詞最多包含 512 個字元。將可用文字用於動作、方向及區分成功結果的視覺細節。讓需求聚焦螢幕上應發生的事情。輸入圖片已確立主體外觀時,描述圖片之間或從圖片開始應發展的動作與時序。
開發商記載五秒或十秒輸出,預設五秒,以及每秒 30 或 60 影格。支援尺寸包括 1280×720、720×1280、1024×1024、1920×1080、1080×1920、2048×1080 與 3840×2160。依用途選擇尺寸與時長,再檢查完成片段的取景及實際動作節奏。
品質與速度模式的文件記載,與可選 AI 音效設定分開。將這些選擇與提示詞、圖片及結果一併保留。開發商視覺與輸入能力描述的是模型;特定生成方法可用的控制項由該方法規格提供。比較候選鏡頭時,保留實際使用的設定。
保留原始任務身分直到影片完成,並保存回傳素材供剪輯使用。檢閱整段序列,包括大幅移動時的主體外觀、與場景物件互動及最終構圖。端點影格工作中,檢查兩個端點及其間轉換。修正具體視覺不符處,同時保留成功參考與鏡頭計畫,並比較完成影片,而非只比較預覽圖。
Ailoot Ultra · 影片 POST /v1/videos cogvideox-3
cogvideox-3入門
CogVideoX 3 在開發商文件記載的流程中,依文字、圖片或首尾影格配對建立影片。它支援五秒或十秒序列、多種最高 4K 的輸出尺寸、30 或 60 fps,以及可選的生成音效。
- 接受的輸入
- 文字
- 結果
- 影片
Ailoot 可用 · 輸入與方法
Ailoot Ultra · 影片 POST /v1/videos
- 輸入
text- 輸出
video
| 欄位 | 類型 | 要求 | 值與限制 | 預設值 |
|---|---|---|---|---|
欄位model | 類型string | 要求必填 | 值與限制 cogvideox-3 條件: 請使用完全相符的 Ailoot 模型選擇值。 | 預設值— |
欄位prompt | 類型string | 要求必填 | 值與限制 條件: 請描述場景與動作。 | 預設值— |
欄位quality | 類型boolean | 要求選填 | 值與限制 條件: 選填的品質旗標;此選定結構定義未提供相容的列舉值或預設值。 | 預設值— |
欄位with_audio | 類型boolean | 要求選填 | 值與限制 條件: 啟用時會生成 AI 音效。 | 預設值false |
欄位size | 類型string | 要求選填 | 值與限制 條件: 選擇明確尺寸時,請提供文件記載的大小字串。 | 預設值— |
欄位fps | 類型string | 要求選填 | 值與限制 30, 60 條件: 在此選定的原生方法中,影格率須以字串表示。 | 預設值30 |
欄位duration | 類型string | 要求選填 | 值與限制 5, 10 條件: 在此選定的原生方法中,以秒為單位的長度須以字串表示。 | 預設值5 |
方法參數與生命週期
| 參數 | 規格 |
|---|---|
參數content_type | 規格application/json |
參數required | 規格model, prompt |
參數optional | 規格quality, with_audio, size, fps, duration |
參數material_types | 規格text |
參數conditions | 規格請使用完全相符的 Ailoot 模型選擇值。, 請描述場景與動作。, 選填的品質旗標;此選定結構定義未提供相容的列舉值或預設值。, 啟用時會生成 AI 音效。, 選擇明確尺寸時,請提供文件記載的大小字串。, 在此選定的原生方法中,影格率須以字串表示。, 在此選定的原生方法中,以秒為單位的長度須以字串表示。 |
方法別名: /v1/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/media/assets
GET /v1/media/assets/{asset_id}
方案
最終費用的計算方式
顯示的費率用於在生成前估算費用。最終費用依原始生成作業記錄的成本計算。實測的輸出時間長度與預估數量並非最終計費數量。
費率資訊不會增加請求選項。支援的參數列於所選方法中。
- 快速模式
- 未指定 選取快速模式時
- flex 模式
- 未指定 選取 flex 模式時
- 最高推理強度
- 未指定 最高推理強度採用 default 調整值時
供比較的預估費率
各設定的價格
請逐一核對各項費用與所列條件。每組互為替代選項的設定只套用一種費率。
| 設定 | 費率表 | 預估數量 | 計費數量 | 費用 |
|---|---|---|---|---|
| 設定基礎 token 費率 | 費率表基本費率 | 預估數量— | 計費數量— | 費用 輸入 · 輸入 Token · 僅供比較的估算 — / 1K Token 輸出 · 輸出 Token · 僅供比較的估算 — / 1K Token 輸入 · 讀取快取 · 僅供比較的估算 — / 1K Token 輸入 · 寫入快取 · 僅供比較的估算 — / 1K Token 輸入 · 寫入快取,1 小時 · 僅供比較的估算 — / 1K Token |
| 設定每次請求 | 費率表— | 預估數量— | 計費數量1 次請求 | 費用 輸入 · 僅供比較的估算 $0.3 每次請求 |
| 設定預估生成費用 | 費率表— | 預估數量單次生成估算值 | 計費數量— | 費用 輸出 · 預估生成費用 · 僅供比較的估算 $0.3 生成前估算 此估算並非額外費用,也不是本次生成完成後的固定費率。 |
Ailoot 會在請求前預留估算金額。取得結果後,依實測用量結算最終費用。串流結算採用最終用量紀錄。預留金額與結算的運作方式 →
請求範例
Ailoot Ultra · 影片
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
cat > request.json <<'JSON'
{
"model": "cogvideox-3",
"prompt": "A cat is walking on grass."
}
JSON
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
# Create once; retain id, polling_url, original task identifiers and every header.
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
export AILOOT_API_KEY
python3 - <<'PY_STATUS'
import json,os,subprocess
from pathlib import Path
from urllib.parse import urljoin,urlsplit
r=json.loads(Path("result.json").read_text())
u=urljoin("https://api.ailoot.ai",r["polling_url"])
p=urlsplit(u)
if p.scheme!="https" or p.netloc!="api.ailoot.ai" or p.username or p.password:
raise SystemExit("Unexpected returned polling URL; preserve the response")
subprocess.run(["curl","--fail-with-body","--silent","--show-error",u,"-H","Authorization: Bearer "+os.environ["AILOOT_API_KEY"],"-D","status-headers.txt","-o","status.json"],check=True)
# Read this same original polling_url again while pending.
# Preserve unknown/result_pending_check; do not repeat creation.
PY_STATUS
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())
roles={}
def visit(v,path=""):
if isinstance(v,dict):
for k,x in v.items(): visit(x,path+"/"+k)
elif isinstance(v,list):
for i,x in enumerate(v): visit(x,path+"/"+str(i))
elif isinstance(v,str):
u=urljoin("https://api.ailoot.ai",v); p=urlsplit(u)
if p.scheme=="https" and p.netloc=="api.ailoot.ai" and not p.username and not p.password and p.path.startswith("/v1/media/assets/") and p.path.endswith("/content"):
roles.setdefault(u,[]).append(path)
visit(r)
if not roles: raise SystemExit("No completed owned assets; retain the original status")
manifest=[]
for i,(u,paths) in enumerate(roles.items()):
target=Path(f"asset-{i}.bin")
subprocess.run(["curl","--fail-with-body","--silent","--show-error",u,"-H","Authorization: Bearer "+os.environ["AILOOT_API_KEY"],"-o",str(target)],check=True)
raw=target.read_bytes()
if not raw: raise SystemExit("Empty asset; retain original status and metadata")
ext="glb" if raw[:4]==b"glTF" else "png" if raw[:8]==b"\x89PNG\r\n\x1a\n" else "jpg" if raw[:3]==b"\xff\xd8\xff" else "webp" if raw[:4]==b"RIFF" and raw[8:12]==b"WEBP" else "mp4" if raw[4:8]==b"ftyp" else "bin"
name=f"asset-{i}.{ext}"
if target.name!=name: target.rename(name)
manifest.append({"file":name,"response_paths":paths,"bytes":len(raw)})
Path("asset-manifest.json").write_text(json.dumps(manifest,indent=2))
print("Saved",len(manifest),"unique owned assets; every response role retained")
PY_ASSETS
接收並儲存結果
Ailoot Ultra · 影片
GET /v1/videos/{request_id}GET /v1/videos/generations/{request_id}GET /v1/videos/{request_id}/contentGET /v1/media/assetsGET /v1/media/assets/{asset_id}
保留所有已完成的結果
請儲存每部已完成的影片或傳回的檔案,並從實際傳回的每個素材 URL 取得素材。
請保留完整回應與標頭、原始識別碼、每個實際輸出,以及所有用量/帳務欄位。請儲存每個不重複的自有資產,並保留指向該資產的每個角色。
需要檢查原始回應時
請保留回傳的公開工作或操作 id,以及所有標頭。僅讀取原始工作;unknown 或 result_pending_check 均不代表可以再次建立。
回應欄位
| 欄位 | 類型 |
|---|---|
欄位id | 類型string |
欄位polling_url | 類型string |
欄位provider_task_id | 類型string |
欄位id | 類型string |
欄位task_status | 類型string |
欄位video_result[].url | 類型string |
別名
模型別名
Ailoot Ultra cogvideox-3
方法路徑別名
/v1/videos/generations
相關呼叫用 ID
FAQ · Zhipu AI: CogVideoX 3
- 可以使用哪些輸入與結果?
POST /v1/videos·cogvideox-3:text→video- 請求使用哪些欄位?
POST /v1/videos·cogvideox-3:model,prompt,quality,with_audio,size,fps,duration