Vidu Q4 API
生數科技 Vidu Q4 提供圖片轉影片與參考轉影片,片長 3 至 16 秒,輸出 540p 至 4K,並可選擇生成音訊。參考轉影片單次請求最多可接受 12 張參考圖片與 3 段參考音訊。
兩個端點:vidu/q4-preview/image-to-video 讓單張圖片動起來,vidu/q4-preview/reference-to-video 則依提示詞加上最多 12 張參考圖片與 3 段參考音訊建構場景。兩者皆支援 3 至 16 秒之間的任意整數秒時長、從 540p 到 4K 的五種解析度,以及音訊開關。
概覽
關於 Vidu Q4 API
Vidu Q4 的功能、它在 Shengshu 模型陣容中的定位,以及團隊選用它的原因。
Vidu Q4 是來自 Shengshu 的影片生成模型,可透過 WaveSpeedAI REST API 使用。生數科技 Vidu Q4 提供圖片轉影片與參考轉影片,片長 3 至 16 秒,輸出 540p 至 4K,並可選擇生成音訊。參考轉影片單次請求最多可接受 12 張參考圖片與 3 段參考音訊。
兩個端點:vidu/q4-preview/image-to-video 讓單張圖片動起來,vidu/q4-preview/reference-to-video 則依提示詞加上最多 12 張參考圖片與 3 段參考音訊建構場景。兩者皆支援 3 至 16 秒之間的任意整數秒時長、從 540p 到 4K 的五種解析度,以及音訊開關。
WaveSpeedAI 上的 Vidu Q4 系列提供 2 個 REST 端點,涵蓋 Reference-To-Video, Image-To-Video 等工作流程。每個變體都有各自的定價、參數選項與範例輸出 — 請挑選符合您輸入模態與生產限制的版本,或使用同一組 API 金鑰呼叫多個變體,組合成多步驟的處理流程。
使用您呼叫其他 1,000+ 個 WaveSpeedAI AI 模型時相同的 API 金鑰、帳單帳戶與速率限制額度來執行 Vidu Q4。無需另外設定供應商、無需各家 SDK、無需處理各家不同的速率限制 — 一次整合,涵蓋從文字轉圖片、文字轉影片,到音訊合成、3D 生成、放大與編輯的所有功能。
規格
Vidu Q4 API 功能與上線狀態
開發者在選擇 API 前會查詢的模型專屬資訊:可用性、預期輸出長度、參考素材支援,以及目前可用的替代方案。
端點
2 個版本
圖片轉影片與參考轉影片。
時長
3 至 16 秒
任意整數秒;預設 5 秒。
解析度
540p 至 4K
540p、720p、1080p、2K、4K;預設 720p。
參考
12 張圖片 + 3 段音訊
用於參考轉影片,搭配文字提示詞使用。
端點
所有 Vidu Q4 API 端點
WaveSpeedAI 目前提供 2 個 Vidu Q4 端點 — 請選擇符合您工作流程的變體。
/filters:quality(82)/media/images/1790656175314160249_JiSjQ9AW.webp)
Q4 Preview Reference To Video
Vidu Q4 Reference-to-Video generates subject-consistent AI videos from text prompts, 1-12 reference images, and up to 3 reference audio clips, supporting character consistency, product videos, social content, brand assets, and reference-guided storytelling workflows. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing.
/filters:quality(82)/media/images/1790656159881988529_32y4wP0a.webp)
Q4 Preview Image To Video
Vidu Q4 Image-to-Video animates a single reference image into high-quality AI video with prompt-guided motion, optional audio, 3-16 second duration, and output resolutions from 540P to 4K for product animation, social content, marketing creatives, cinematic visuals, and production workflows. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing.
範例
看看 Vidu Q4 的實際效果
由 Vidu Q4 API 生成的真實輸出。將滑鼠移到任一影片上即可預覽,點擊可開啟完整尺寸檢視器。
使用方式
如何使用 Vidu Q4 API
從註冊到完成生成,只要四個步驟。完整的 Python、Node.js 與 cURL 範例請見下方的 API 區段。
- 01
取得 API 金鑰
註冊 WaveSpeedAI 帳號,並從控制台複製您的 API 金鑰。新帳號會獲贈免費入門點數 — 足以在開始計費前執行數十次 Playground。
- 02
提交 prediction
將您的輸入以 JSON 格式 POST 到 https://api.wavespeed.ai/api/v3/vidu/q4-preview/image-to-video。端點會立即回傳 prediction id — 生成是非同步進行的,因此推論期間您不需要保持連線。
- 03
輪詢完成狀態
GET https://api.wavespeed.ai/api/v3/predictions/{request_id}/result。狀態為 completed 時回傳輸出;狀態為 failed、cancelled、timeout 或 deleted 時停止並回報錯誤;其他狀態則持續輪詢。
- 04
讀取輸出網址
當狀態為 "completed" 時,從 data.outputs[0] 讀取網址。該網址指向 WaveSpeedAI CDN 上您生成的媒體 — 依您呼叫的 Vidu Q4 變體,可能是圖片、影片、音訊或 3D 檔案。
應用情境
您可以用 Vidu Q4 打造什麼
開發者與創作者使用 Vidu Q4 API 的常見工作流程。
一張照片生成產品動畫
vidu/q4-preview/image-to-video 將單張產品照轉為宣傳短片。描述你想要的運鏡與動作,圖片始終是畫面的視覺錨點。
角色形象始終如一
vidu/q4-preview/reference-to-video 最多可接受 12 張參考圖片,讓反覆出現的角色、吉祥物或代言人能以多種角度呈現,並在不同片段中保持辨識度。
以聲音引導的場景
在圖片之外,透過 audios 欄位加入最多 3 段參考音訊,並保持 generate_audio 開啟,單次呼叫即可取得帶有聲音的片段。
可直接交付的 4K
兩個端點皆可輸出 540p、720p、1080p、2K 或 4K。先以 540p 或 720p 製作草稿,再以交付解析度重新執行定案的提示詞,無須額外的放大處理。
涵蓋各種社群格式
參考轉影片可輸出 16:9、9:16、1:1、3:4 或 4:3,同一組參考即可涵蓋 YouTube、Reels、Shorts、動態貼文與產品頁面。
片長精準對上節奏
時長可為 3 至 16 秒之間的任意整數秒,3 秒循環、6 秒片頭與 15 秒廣告都能出自同一個端點。
技巧
Vidu Q4 提示詞技巧
讓 Vidu Q4 產出更好結果的實用建議 — 整理自在實際生產流程中,影片模型通用的有效做法。
- 01
使用清晰、光線充足的來源圖片
使用 vidu/q4-preview/image-to-video 時,圖片決定主體、構圖與風格。請挑選清晰且主體單一明確的圖片,再以提示詞描述動作與運鏡,而不是重複描述畫面中已有的內容。
- 02
讓每張參考各司其職
使用 vidu/q4-preview/reference-to-video 時,請選用真正屬於場景的參考,例如角色、產品、場景環境,並在提示詞中說明每個參考應如何出現,而非送出關聯鬆散的圖片。
- 03
讓動作量配合時長
要求的動作量應符合片段長度。3 至 5 秒的片段適合單一動作或手勢;多步驟的動作請留給 10 至 16 秒。
- 04
低解析度試作,高解析度交付
先以 540p 或 720p 與較短時長探索構想,再以 1080p、2K 或 4K 重新執行選定的提示詞用於交付。
- 05
事先決定音訊與提示詞改寫
generate_audio 預設為開啟;若你要自行加入配樂,請將其關閉。在圖片轉影片中,若希望完全照你的提示詞執行,請將 enable_prompt_expansion 設為 false。
定價
Vidu Q4 API 定價
依輸出計費。最終費用會依您在各變體 Playground 中設定的參數(解析度、時長、輸出數量、參考素材)而調整。
| 端點 | 類型 | 起始價格 |
|---|---|---|
| vidu/ | reference-to-video | $0.25 |
| vidu/ | image-to-video | $0.25 |
API
呼叫 Vidu Q4 API
請到 wavespeed.ai/accesskey 註冊取得 API 金鑰,然後透過 REST 提交 prediction。Playground 會為任何輸入組合產生可直接貼上的範例。
POSThttps://api.wavespeed.ai/api/v3/vidu/q4-preview/image-to-video
# 1. Submit the prediction.
SUBMIT_RESPONSE=$(curl --silent --show-error --fail-with-body \
-X POST "https://api.wavespeed.ai/api/v3/vidu/q4-preview/image-to-video" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $WAVESPEED_API_KEY" \
-d '{
"prompt": "A cinematic shot of a city at sunset, soft golden light",
"image": "https://interactive-examples.mdn.mozilla.net/media/cc0-images/painted-hand-298-332.jpg",
"resolution": "720p",
"duration": 5,
"enable_prompt_expansion": true,
"generate_audio": true
}')
TASK=$(printf '%s' "$SUBMIT_RESPONSE" | jq 'if has("data") then .data else . end')
PREDICTION_ID=$(printf '%s' "$TASK" | jq -r '.id')
if [ -z "$PREDICTION_ID" ] || [ "$PREDICTION_ID" = "null" ]; then
printf 'Submission response did not contain a prediction id
' >&2
exit 1
fi
RESULT_URL="https://api.wavespeed.ai/api/v3/predictions/$PREDICTION_ID/result"
# 2. Poll until the prediction finishes.
while true; do
RESPONSE=$(curl --silent --show-error --fail-with-body "$RESULT_URL" \
-H "Authorization: Bearer $WAVESPEED_API_KEY")
RESULT=$(printf '%s' "$RESPONSE" | jq 'if has("data") then .data else . end')
STATUS=$(printf '%s' "$RESULT" | jq -r '.status')
case "$STATUS" in
completed) printf '%s\n' "$RESULT" | jq '.outputs'; break ;;
failed|cancelled|timeout|deleted) printf '%s\n' "$RESULT" | jq . >&2; exit 1 ;;
*) sleep 2 ;;
esac
doneconst submitUrl = "https://api.wavespeed.ai/api/v3/vidu/q4-preview/image-to-video";
const apiKey = process.env.WAVESPEED_API_KEY;
if (!apiKey) throw new Error('Set WAVESPEED_API_KEY');
async function requestJson(url, options = {}) {
const response = await fetch(url, options);
if (!response.ok) throw new Error(await response.text());
return response.json();
}
// 1. Submit the prediction.
const body = await requestJson(submitUrl, {
method: "POST",
headers: {
"Authorization": `Bearer ${apiKey}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"prompt": "A cinematic shot of a city at sunset, soft golden light",
"image": "https://interactive-examples.mdn.mozilla.net/media/cc0-images/painted-hand-298-332.jpg",
"resolution": "720p",
"duration": 5,
"enable_prompt_expansion": true,
"generate_audio": true
}),
});
const task = body.data ?? body;
const resultUrl = `https://api.wavespeed.ai/api/v3/predictions/${task.id}/result`;
// 2. Poll until the prediction finishes.
while (true) {
const resultBody = await requestJson(resultUrl, {
headers: { "Authorization": `Bearer ${apiKey}` },
});
const result = resultBody.data ?? resultBody;
if (result.status === "completed") {
console.log(result.outputs);
break;
}
if (["failed", "cancelled", "timeout", "deleted"].includes(result.status)) throw new Error(JSON.stringify(result));
await new Promise(resolve => setTimeout(resolve, 2000));
}import json
import os
import time
from urllib.request import Request, urlopen
api_key = os.environ["WAVESPEED_API_KEY"]
headers = {"Authorization": f"Bearer {api_key}", "Content-Type": "application/json"}
payload = {
"prompt": "A cinematic shot of a city at sunset, soft golden light",
"image": "https://interactive-examples.mdn.mozilla.net/media/cc0-images/painted-hand-298-332.jpg",
"resolution": "720p",
"duration": 5,
"enable_prompt_expansion": True,
"generate_audio": True
}
def request_json(url, data=None):
request = Request(url, data=data, headers=headers, method="POST" if data else "GET")
with urlopen(request) as response:
return json.load(response)
# 1. Submit the prediction.
body = request_json("https://api.wavespeed.ai/api/v3/vidu/q4-preview/image-to-video", json.dumps(payload).encode())
task = body.get("data", body)
result_url = f"https://api.wavespeed.ai/api/v3/predictions/{task['id']}/result"
# 2. Poll until the prediction finishes.
while True:
result_body = request_json(result_url)
result = result_body.get("data", result_body)
status = result.get("status")
if status == "completed":
print(result.get("outputs", []))
break
if status in {"failed", "cancelled", "timeout", "deleted"}:
raise RuntimeError(result)
time.sleep(2)比較
Vidu Q4 與其他選擇比較
在 WaveSpeedAI 上,何時該選擇 Vidu Q4 而非類似的模型。
Vidu Q4 vs Vidu Q3
Vidu Q3 參考轉影片接受 1 至 4 張參考圖片;Q4 最多接受 12 張圖片外加最多 3 段音訊參考,且兩個 Q4 端點皆可達 4K。文字轉影片、首尾關鍵幀插值,以及 Pro 與 Turbo 等級仍以 Q3 為首選。
Vidu Q4 vs Seedance 2.5
Seedance 2.5 單一鏡頭最長可達 30 秒,並新增影片編輯與影片延長端點。Vidu Q4 則專注於圖片與參考驅動的生成,輸出最高 4K。
Vidu Q4 vs Wan 3.0
Wan 3.0 提供文字轉影片、圖片轉影片與參考轉影片,最長 30 秒、最高 1080p。Vidu Q4 最長 16 秒,但增加了 2K 與 4K 輸出,並支援最多 12 張參考圖片。
常見問題
Vidu Q4 API — 常見問題
定價、授權、整合 — 關於在 WaveSpeedAI 上執行 Vidu Q4 的常見問題。
什麼是 Vidu Q4 API?
Vidu Q4 是 Shengshu 的影片生成模型,在 WaveSpeedAI 上以 REST API 提供。生數科技 Vidu Q4 提供圖片轉影片與參考轉影片,片長 3 至 16 秒,輸出 540p 至 4K,並可選擇生成音訊。參考轉影片單次請求最多可接受 12 張參考圖片與 3 段參考音訊。您可以透過程式呼叫,也可以在上方連結的 Playground 試用。
如何呼叫 Vidu Q4 API?
註冊 WaveSpeedAI 帳號,從 /accesskey 複製您的 API 金鑰,然後將您的輸入以 JSON 格式 POST 到 https://api.wavespeed.ai/api/v3/vidu/q4-preview/image-to-video。端點會回傳 prediction id。請從約每 2 秒輪詢一次結果端點開始,長時間任務可拉長間隔,並在任何終止狀態時停止。上方提供適用於生產環境的 Python / Node.js / cURL 範例。
Vidu Q4 API 的費用是多少?
Vidu Q4 每次執行 $0.25 起。實際費用會依您設定的參數(解析度、時長、輸出數量、參考素材)而調整。Playground 中「生成」按鈕旁的即時費用預覽會顯示您目前輸入的確切價格。
有哪些 Vidu Q4 變體可用?
WaveSpeedAI 提供 2 個已上線的 Vidu Q4 端點:vidu/q4-preview/reference-to-video, vidu/q4-preview/image-to-video。每個變體都有各自的 Playground 頁面與定價。
Vidu Q4 的輸出可以商用嗎?
商業使用權依 Shengshu 的模型授權而定。多數 Shengshu 模型允許商用輸出;請參閱各模型 Playground 頁面中的授權摘要,以及 WaveSpeedAI 的服務條款了解平台層級的條件。
為什麼要在 WaveSpeedAI 上使用 Vidu Q4,而不是直接使用?
一組 API 金鑰、一個帳單帳戶,即可使用 Vidu Q4 以及來自其他供應商的 1,000+ 個 AI 模型。無需設定各家 SDK、無需處理各自獨立的速率限制、無需為每個供應商重寫整合程式碼。價格通常與 Shengshu 的直接 API 相當或更低。
提供者
關於 Shengshu
Vidu Q4 背後的團隊,以及 Shengshu 在 WaveSpeedAI 上的完整模型陣容。
生數科技是源自清華大學的中國 AI 實驗室,也是 Vidu 影片生成模型系列背後的團隊。最新一代 Vidu Q4 提供圖片轉影片與參考轉影片,最多支援 12 張參考圖片、最多 3 段參考音訊,輸出最高 4K。Vidu Q3 在 Standard、Pro 與 Turbo 等級中提供文字轉影片、圖片轉影片、參考轉影片(1 至 4 張參考圖片,維持多主體一致性)與 start-end-to-video(在兩張靜態圖之間進行關鍵幀插值)。部分版本最長可輸出 16 秒。
在 WaveSpeedAI 上開始使用 Vidu Q4 打造應用
註冊即贈免費入門點數。一組 API 金鑰,涵蓋來自 Shengshu 與所有其他供應商的 1,000+ 個 AI 模型。