ByteDance: Seedance 1.5 Pro
Seedance 1.5 Pro 可根據文字或圖片生成影片,並能建立同步人聲、音效和背景音樂。音訊可啟用或停用;文件所列設定檔提供 4–12 秒場景、adaptive 構圖,以及線上或 flex 處理。
關於模型
此說明介紹模型的能力。Ailoot 可用的輸入、輸出與選項,依所選方法列於下方。
Seedance 1.5 Pro 可根據文字或圖片生成影片,並隨畫面一併生成聲音。確切選擇器為 doubao-seedance-1-5-pro-251215。音訊控制讓它與無聲的 Seedance 1.0 設定檔有所區別:generate_audio=true 要求同步音訊,false 則要求無聲影片。使用文字場景建立新概念,或以圖片確立起始主體與構圖。
將視覺動作和聲音描述為同一場景的組成部分。交代主體、環境、動作和攝影機運動,再說明預期的人聲、音效或背景音樂。肖像場景可以呈現人物睜開雙眼,攝影機緩慢拉遠,環境中帶有風聲。產品場景則應將聲音連結至可見事件,例如打開蓋子或物件接觸表面,而非加入互不相關的一串音效。
模型可根據提示詞和視覺內容生成聲音、音效與背景音樂。指南建議以雙引號括住對白。對話長度應配合所要求的動作和停頓;若有多名角色,請區分誰在說話。檢查實際措辭、聲音歸屬,以及與畫面的同步情況。聲音指示用來引導生成的表演;在此設定檔的文件請求中,它並非另行上傳的聲音參考輸入。
圖片轉影片使用 image_url 項目搭配文字。請提供可存取的圖片網址或 Base64 data URL,格式為 JPEG、PNG、WEBP、BMP、TIFF 或 GIF。文件所列圖片限制為小於 30 MB,兩邊尺寸須嚴格介於 300 與 6000 像素之間,寬高比須嚴格介於 0.4 與 2.5 之間。先清楚準備預期裁切和主體,再描述從此構圖開始的動作。圖片範例使用 adaptive 比例來配合參考圖片。
此設定檔專屬的片長指南列出四至十二的整數秒,也可使用 -1 讓模型在該範圍內選擇片長。預設片長為五秒。Seedance 1.5 Pro 預設為 720p,保留的設定檔表格記載 480p 和 720p;專屬操作指南並未為 1.5 Pro 提供 1080p。固定比例選項包括 16:9、4:3、1:1、3:4、9:16 和 21:9,文件所列的 1.5 預設值為 adaptive。請檢查實際影片的片長和比例,而非將請求值視為已回傳的成品。
請求提供兩種處理等級。service_tier=default 選擇線上處理,flex 則選擇適用於可容忍較長延遲工作的離線處理。任務提交後無法變更等級。請依工作流程的時效需求選擇,並在請求紀錄中保留該選項。音訊模式和處理等級是各自獨立的選擇:無聲影片不會自動成為離線任務,啟用音訊也不會自動選擇處理等級。
種子、水印和攝影機指示應與場景保持一致。內嵌在文字中的參數命令優先於獨立的選用參數。固定攝影機控制不適用於參考圖片情境;在適用的情況下,它也不是有保證的視覺鎖定。圖片引導的動畫應直接說明預期動作,而非假設攝影機控制能取代鏡頭描述。
用量以影片詞元計算:輸出寬度 × 輸出高度 × 影格速率 × 輸出片長 / 1024。完成的任務會以 usage.completion_tokens 回報這個數量。請將回報用量與完成的影片及其請求設定一併保留。音訊啟用或停用,以及線上或 flex 處理,在依用量計費時仍是不同類別。
提交會回傳非同步任務識別碼。請追蹤任務直到完成,再儲存 content.video_url 提供的影片。文件所列的生成檔案保留期間為七天。到期控制從建立時間起算,預設為 172800 秒,接受範圍為 3600 至 259200 秒;尚未完成的任務在所設定的間隔後會成為 expired。請將完成影片、原始圖片和確切的視覺與音訊簡報保存在一起,再檢查整段結果的動作、身分特徵、攝影機連續性和聲畫對齊。
Ailoot Ultra · 影片 POST /v1/videos doubao-seedance-1-5-pro-251215
doubao-seedance-1-5-pro-251215
doubao-seedance-1-5-pro-251215入門
Seedance 1.5 Pro 可根據文字或圖片生成影片,並能建立同步人聲、音效和背景音樂。音訊可啟用或停用;文件所列設定檔提供 4–12 秒場景、adaptive 構圖,以及線上或 flex 處理。
- 接受的輸入
- 文字 · 圖片
- 結果
- 影片
Ailoot 可用 · 輸入與方法
Ailoot Ultra · 影片 POST /v1/videos
- 輸入
text,image- 輸出
video
| 欄位 | 類型 | 要求 | 值與限制 | 預設值 |
|---|---|---|---|---|
欄位model | 類型string | 要求必填 | 值與限制 doubao-seedance-1-5-pro-251215 | 預設值— |
欄位content | 類型array | 要求必填 | 值與限制 條件: 原生文字/媒體物件;外層陣列不得為空。此 Ailoot 通用建構器不會驗證巢狀節點的型別。 | 預設值— |
欄位duration | 類型integer | 要求選填 | 值與限制 條件: 主要的 1.x 結構定義為 2–12;後續共用說明將 1.5 記為 4–12 或 -1。範例採用兩者均有記載的 5。 | 預設值5 |
欄位resolution | 類型string | 要求選填 | 值與限制 480p, 720p 條件: Seedance 1.5 Pro 支援 480p 與 720p,不支援 1080p。文件記載的預設解析度為 720p。 | 預設值720p |
欄位ratio | 類型string | 要求選填 | 值與限制 16:9, 4:3, 1:1, 3:4, 9:16, 21:9, adaptive 條件: 文件記載 Seedance 1.5 Pro 的預設長寬比為 adaptive。固定長寬比選項維持原樣。 | 預設值adaptive |
欄位service_tier | 類型string | 要求選填 | 值與限制 default, flex 條件: default=online,flex=offline;請在建立前選定。 | 預設值default |
欄位seed | 類型integer | 要求必填 | 值與限制 最小值: -1 最大值: 4,294,967,295 | 預設值-1 |
欄位camerafixed | 類型boolean | 要求必填 | 值與限制 條件: Ailoot 要求提供此欄位;文件記載參考圖片模式不支援攝影機控制,且不保證效果。 | 預設值false |
欄位watermark | 類型boolean | 要求必填 | 值與限制 | 預設值false |
欄位execution_expires_after | 類型integer | 要求必填 | 值與限制 最小值: 3,600 最大值: 259,200 單位: 秒 | 預設值172,800 |
欄位generate_audio | 類型boolean | 要求選填 | 值與限制 條件: 僅限 1.5:嵌入生成影片中的同步音訊。 | 預設值true |
輸入素材組合
方法參數與生命週期
| 參數 | 規格 |
|---|---|
參數content_type | 規格application/json |
參數required | 規格camerafixed, content, execution_expires_after, model, seed, watermark |
參數optional | 規格duration, resolution, ratio, service_tier, generate_audio |
參數material_types | 規格text, image |
參數additional_properties | 規格true |
參數validation_scope | 規格Ailoot 會檢查必要欄位的型別,以及非空的 model/content 陣列。其他請求欄位會為所選模型保留。 |
參數image_constraints | 規格{"formats":["jpeg","png","webp","bmp","tiff","gif"],"aspect_ratio_exclusive":[0.4,2.5],"dimensions_px_exclusive":[300,6000],"file_size_mb_exclusive":30,"mb_bytes_definition":null} |
方法別名: /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/videos/generations/{request_id}/content
僅建立一次,並保留回傳的公開 id/polling_url。
請輪詢原始作業;達到 succeeded 後,下載實際的自有 content.video_url。
方案
最終費用的計算方式
顯示的費率用於在生成前估算費用。最終費用依原始生成作業記錄的成本計算。實測的輸出時間長度與預估數量並非最終計費數量。
費率資訊不會增加請求選項。支援的參數列於所選方法中。
- 快速模式
- 未指定 選取快速模式時
- flex 模式
- 未指定 選取 flex 模式時
- 最高推理強度
- 未指定 最高推理強度採用 default 調整值時
供比較的預估費率
各設定的價格
請逐一核對各項費用與所列條件。每組互為替代選項的設定只套用一種費率。
| 設定 | 費率表 | 預估數量 | 產生音訊 | 服務層級 | 計費單位 | 費用 |
|---|---|---|---|---|---|---|
| 設定基礎 token 費率 | 費率表基本費率 | 預估數量— | 產生音訊— | 服務層級— | 計費單位— | 費用 輸入 · 輸入 Token · 僅供比較的估算 — / 1K Token 輸出 · 輸出 Token · 僅供比較的估算 — / 1K Token 輸入 · 讀取快取 · 僅供比較的估算 — / 1K Token 輸入 · 寫入快取 · 僅供比較的估算 — / 1K Token 輸入 · 寫入快取,1 小時 · 僅供比較的估算 — / 1K Token |
| 設定離線處理服務等級(flex)。輸出包含同步音訊。 | 費率表— | 預估數量— | 產生音訊含音訊 | 服務層級flex | 計費單位per 1,000 video tokens | 費用 輸出 · 僅供比較的估算 $0.0024 每 1K 影片 Token |
| 設定離線處理服務等級(flex)。輸出不含同步音訊。 | 費率表— | 預估數量— | 產生音訊不含音訊 | 服務層級flex | 計費單位per 1,000 video tokens | 費用 輸出 · 僅供比較的估算 $0.0012 每 1K 影片 Token |
| 設定線上處理服務等級(default)。輸出包含同步音訊。 | 費率表— | 預估數量— | 產生音訊含音訊 | 服務層級default | 計費單位per 1,000 video tokens | 費用 輸出 · 僅供比較的估算 $0.0048 每 1K 影片 Token |
| 設定線上處理服務等級(default)。輸出不含同步音訊。 | 費率表— | 預估數量— | 產生音訊不含音訊 | 服務層級default | 計費單位per 1,000 video tokens | 費用 輸出 · 僅供比較的估算 $0.0024 每 1K 影片 Token |
| 設定預估生成費用 | 費率表— | 預估數量單次生成估算值 | 產生音訊— | 服務層級— | 計費單位— | 費用 輸出 · 預估生成費用 · 僅供比較的估算 $0.1152 生成前估算 此估算並非額外費用,也不是本次生成完成後的固定費率。 |
Ailoot 會在請求前預留估算金額。取得結果後,依實測用量結算最終費用。串流結算採用最終用量紀錄。預留金額與結算的運作方式 →
請求範例
Ailoot Ultra · 影片
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
cat > request.json <<'JSON_REQUEST'
{"model":"doubao-seedance-1-5-pro-251215","content":[{"type":"text","text":"女孩抱着狐狸,女孩睁开眼,温柔地看向镜头,狐狸友善地抱着,镜头缓缓拉出,女孩的头发被风吹动"}],"resolution":"480p","ratio":"1:1","duration":5,"service_tier":"default","seed":-1,"camerafixed":false,"watermark":false,"execution_expires_after":172800,"generate_audio":false}
JSON_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}"
python3 - <<'PY_POLL'
import json
from pathlib import Path
from urllib.parse import quote,urljoin,urlsplit
r=json.loads(Path("result.json").read_text())
i=r.get("id")
if not isinstance(i,str) or not i.startswith("native302_"):raise SystemExit("Keep original response/headers/id; do not resubmit creation.")
u=urljoin("https://api.ailoot.ai",r.get("polling_url") or "/v1/videos/"+quote(i,safe=""))
p=urlsplit(u)
if p.scheme!="https" or p.netloc!="api.ailoot.ai" or not p.path.startswith("/v1/videos/"):raise SystemExit("Use actual Ailoot lookup path.")
Path("poll-url.txt").write_text(u)
PY_POLL
curl --fail-with-body --silent --show-error "$(cat poll-url.txt)" -H "Authorization: Bearer $AILOOT_API_KEY" -D status-headers.txt -o status.json
set -eu
python3 - <<'PY_ASSETS'
import json
from pathlib import Path
from urllib.parse import urlsplit
r=json.loads(Path("status.json").read_text())
if r.get("status")!="succeeded":raise SystemExit("Poll same original job until an owned result is returned.")
u=r.get("content",{}).get("video_url")
urls=[u] if isinstance(u,str) else u
if not isinstance(urls,list) or not urls:raise SystemExit("No completed video URL.")
for u in urls:
if not isinstance(u,str):raise SystemExit("Invalid returned URL.")
p=urlsplit(u)
if p.scheme!="https" or p.netloc!="api.ailoot.ai" or not p.path.startswith("/v1/media/assets/") or not p.path.endswith("/content") or not p.query:raise SystemExit("Wait for actual Ailoot-owned signed result.")
Path("asset-urls.txt").write_text("\n".join(urls)+"\n")
PY_ASSETS
index=0
while IFS= read -r asset_url; do
curl --fail-with-body --silent --show-error "$asset_url" -o "video-${index}.bin"
index=$((index + 1))
done < asset-urls.txt
接收並儲存結果
Ailoot Ultra · 影片
原生 JSON,含公開的 id/polling_url。發布後,content.video_url 會包含 Ailoot 自有的簽署 URL;發布前,選定的輸出 URL 會被清空。
GET /v1/videos/{request_id}GET /v1/videos/generations/{request_id}GET /v1/videos/{request_id}/contentGET /v1/videos/generations/{request_id}/content
保留所有已完成的結果
請儲存每部已完成的影片或傳回的檔案,並從實際傳回的每個素材 URL 取得素材。
請保留 content.video_url 中每個實際的 URL;index 必須識別一個實際回傳的輸出。
需要檢查原始回應時
請保留原始回應/標頭/id,並輪詢該操作;切勿重新提交結果不明的建立請求。
回應欄位
| 欄位 | 類型 |
|---|---|
欄位id | 類型string |
欄位provider_task_id | 類型string |
欄位polling_url | 類型string |
欄位status | 類型string when supplied |
欄位content.video_url | 類型string|string[] |
欄位usage | 類型object when supplied |
錯誤與後續步驟
| 回應 | 條件 | 下一步 |
|---|---|---|
回應400 · invalid_request_error | 條件JSON/model/必要欄位型別或內容索引無效。 | 下一步 |
回應401 · authentication_error | 條件Ailoot API 金鑰無效。 | 下一步 |
回應404 · not_found_error | 條件工作/輸出不存在,或不屬於同一使用者/API 金鑰/群組。 | 下一步 |
回應502 · result_pending_check | 條件原始提交內容/狀態不完整;請保留原始 ID,切勿重新提交。 | 下一步 |
回應503 · result_pending_check | 條件原始媒體/路由/結算正在查核中;請接續原始操作。 | 下一步 |
別名
模型別名
Ailoot Ultra doubao-seedance-1-5-pro-251215
方法路徑別名
/v1/videos/generations
相關呼叫用 ID
FAQ · ByteDance: Seedance 1.5 Pro
- 可以使用哪些輸入與結果?
POST /v1/videos·doubao-seedance-1-5-pro-251215:text,image→video- 請求使用哪些欄位?
POST /v1/videos·doubao-seedance-1-5-pro-251215:model,content,duration,resolution,ratio,service_tier,seed,camerafixed,watermark,execution_expires_after,generate_audio- 適用哪些限制?
POST /v1/videos·doubao-seedance-1-5-pro-251215:seed.minimum:-1;seed.maximum:4294967295;execution_expires_after.minimum:3600;execution_expires_after.maximum:259200