Kling v2.6
Kling v2.6 可根據文字或以圖片為起點的創作說明生成影片。文件中的影片工作流程也為此版本提供選用的聲音設定,可一起規劃場景的視覺動作與聲音意圖。
關於模型
此說明介紹模型的能力。Ailoot 可用的輸入、輸出與選項,依所選方法列於下方。
Kling v2.6 是具備文字轉影片與圖片轉影片能力的 Kling 影片模型。文件中的工作流程為此版本提供聲音選項。先規劃可見的事件,再於提供該控制項的工作流程中描述聲音意圖。讓觀眾所見與所聞之間的關係保持清楚。
實用的文字創作說明應交代主體、場景、動作與攝影機視角。描述具體事件,例如人物打開木門、海浪湧向石質岸邊,或小型機器在工作檯上移動。說明重要的視覺細節,以及動作應發生的順序。
以圖片為起點的創作說明,從準備好的靜態圖像開始。使用能呈現主體辨識特徵與預期構圖的參考圖。說明主體、環境或視角應如何從起始影格開始移動。保留原始圖片,讓生成的片段能與實際視覺來源比較。
將聲音視為獨立的創作決策。文件中的聲音控制項提供 on 與 off 選項,公布的工作流程預設為 off。將所選設定與結果一起記錄。聲音屬於鏡頭的一部分時,描述它與可見事件的關係,並在觀看畫面的同時聆聽完成的片段。
文件中的模型項目列有 5 秒與 10 秒片長、std 與 pro 模式,以及橫式、直式與方形畫面。選擇所用工作流程提供的選項。比較同一場景的候選版本時,讓實際片長、模式與畫面構圖保持一致。
對於會產生聲音的動作,在創作說明中指出聲音發生的時機。門關上、物件碰到表面,或浪頭破碎,都有特定的視覺時刻。檢查完成片段的聲音是否能襯托該時刻與整個場景。準備剪輯時,保留完成的媒體素材。
檢視整段影片的視覺連貫性。檢查主體形狀、外觀、與附近物件的接觸,以及攝影機動態。接著分別檢查聲音的時機與適合程度。最終鏡頭除了需要清楚可辨的主要動作,也需要實用的開場與結尾。
將提示詞、參考圖、所選設定與完成的片段一起保存。需要修改時,區分觀察到的視覺問題與聲音問題,再調整與該問題相關的指示。保留已成功的場景細節,讓下一個候選版本能回答一個具體的創作問題。
Ailoot Ultra · Video POST /v1/videos kling-v2-6
kling-v2-6入門
Kling v2.6 可根據文字或以圖片為起點的創作說明生成影片。文件中的影片工作流程也為此版本提供選用的聲音設定,可一起規劃場景的視覺動作與聲音意圖。
- 接受的輸入
- 文字
- 結果
- 影片
Ailoot 可用 · 輸入與方法
Ailoot Ultra · Video POST /v1/videos
- 輸入
text- 輸出
video
| 欄位 | 類型 | 要求 | 值與限制 | 預設值 |
|---|---|---|---|---|
欄位model | 類型string | 要求必填 | 值與限制 kling-v2-6 條件: 請原樣使用這個 Ailoot 路由選擇值。 | 預設值— |
欄位prompt | 類型string | 要求必填 | 值與限制 長度上限: 500 條件: | 預設值— |
欄位mode | 類型string | 要求必填 | 值與限制 std, pro 條件: | 預設值— |
欄位model_name | 類型string | 要求選填 | 值與限制 條件: 可選填的原生覆寫值。省略時會自動使用所選模型;明確指定的值會予以保留。 | 預設值— |
欄位cfg_scale | 類型number | 要求選填 | 值與限制 最小值: 0 最大值: 1 條件: | 預設值— |
欄位aspect_ratio | 類型string | 要求選填 | 值與限制 條件: | 預設值— |
欄位negative_prompt | 類型string | 要求選填 | 值與限制 長度上限: 200 條件: | 預設值— |
欄位duration | 類型integer | 要求選填 | 值與限制 5, 10 條件: | 預設值— |
欄位sound | 類型string | 要求選填 | 值與限制 off, on 條件: | 預設值— |
方法參數與生命週期
| 參數 | 規格 |
|---|---|
參數content_type | 規格application/json |
參數required | 規格model, prompt, mode |
參數optional | 規格model_name, cfg_scale, aspect_ratio, negative_prompt, duration, sound |
參數material_types | 規格text |
參數conditions | 規格請原樣使用這個 Ailoot 路由選擇值。, 可選填的原生覆寫值。省略時會自動使用所選模型;明確指定的值會予以保留。 |
方法別名: /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 |
| 設定預估生成費用 | 費率表— | 預估數量單次生成估算值 | 費用 輸出 · 預估生成費用 · 僅供比較的估算 $6 生成前估算 此估算並非額外費用,也不是本次生成完成後的固定費率。 |
Ailoot 會在請求前預留估算金額。取得結果後,依實測用量結算最終費用。串流結算採用最終用量紀錄。預留金額與結算的運作方式 →
請求範例
Ailoot Ultra · Video
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
export AILOOT_API_KEY
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "kling-v2-6", "prompt": "A happy holiday scene at the beach.", "mode": "pro"}')
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
# Submit once. Retain the complete result, original identifiers and every response 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 · Video
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 |
欄位data.task_id | 類型string |
欄位data.task_status | 類型string |
欄位data.task_result.videos[].url | 類型string |
錯誤與後續步驟
| 回應 | 條件 | 下一步 |
|---|---|---|
回應400 · invalid_request_error | 條件必要欄位、模型選擇值、型別或輸入表示格式無效。 | 下一步準備另一個獨立請求前,請檢視傳回的驗證詳情。 |
回應 | 條件原始請求或結果不明,或需要檢查。 | 下一步請保留原始識別碼與標頭,僅讀取支援的狀態資料或媒體庫紀錄。請勿再次提交建立請求。 |
別名
模型別名
Ailoot Ultra kling-v2-6
方法路徑別名
/v1/videos/generations
相關呼叫用 ID
FAQ · Kling v2.6
- 可以使用哪些輸入與結果?
POST /v1/videos·kling-v2-6:text→video- 請求使用哪些欄位?
POST /v1/videos·kling-v2-6:model,prompt,mode,model_name,cfg_scale,aspect_ratio,negative_prompt,duration,sound- 適用哪些限制?
POST /v1/videos·kling-v2-6:prompt.maximum_length:500;cfg_scale.minimum:0;cfg_scale.maximum:1;negative_prompt.maximum_length:200