Communitygithub.com

runapi-ai/vidu

透過 RunAPI 從第一幀圖片、參考圖片及可選參考音訊生成 Vidu Q4 影片。使用 RunAPI CLI 進行一次性生成,或透過 SDK 整合至應用程式中。

vidu 是什麼?

這是一個專為 Vidu Q4 影片生成設計的 AI 技能,透過 RunAPI 平台提供服務。開發者可以選擇兩種使用路徑:若只需一次性成果,可使用 `runapi` CLI 中的 `vidu` 服務;若要整合至應用程式、後端或生產環境,則應直接使用 RunAPI SDK,避免在生產程式碼中直接調用 CLI。使用前需先完成身分驗證(需提供 `RUNAPI_API_KEY`),並檢查已安裝的命令目錄以確認 `vidu` 服務存在及了解可用的操作與模型。建立請求時需嚴格遵循所發現的合約規範,包含所有必填欄位、巢狀結構與唯一性約束,並將本地檔案路徑直接放入 `request.json`。執行提交後需等待任務完成,下載所有結果媒體檔案,並驗證每個檔案是否非空且 MIME 類型符合預期。若合約遺漏必要資訊或發生不可回復的錯誤,應立即停止並報告,不得擅自發明解決方案。此技能支援的變體包括 `vidu-q4-image-to-video`(從圖片生成影片)與 `vidu-q4-reference-to-video`(從參考圖片生成影片)。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/runapi-ai/vidu/tree/HEAD/skills/vidu

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

Vidu on RunAPI

選擇路徑

  • 若只需一次性產出,請使用 runapi CLI 中已註冊的 vidu 服務。若已安裝的命令目錄中未列出該服務,請停止並回報服務缺失,切勿自行發明指令。
  • 若是應用程式、後端、工作者、函式庫、Webhook 管線或生產程式碼,請直接前往 整合 SDK。切勿在生產執行環境中透過 CLI 執行。

探索合約

先進行身分驗證,然後檢查已安裝的命令目錄及所選操作的當前合約:

runapi auth status > auth.json
jq -e '.authenticated == true' auth.json
runapi vidu --help
runapi vidu <操作> --help
curl --fail --location https://runapi.ai/docs/api/vidu/<操作>.md --output contract.md

若身分驗證失敗,請在提交前停止。要求使用者提供有效的 RUNAPI_API_KEY,或透過標準輸入匯入使用者提供的金鑰(使用 runapi auth import-token --token -);僅在使用者明確要求時才使用瀏覽器互動式登入。請僅從服務說明中選擇 <操作>。將命令說明視為已安裝操作、模型及頂層欄位清單的權威來源。將 API 參考文件視為完整請求結構、巢狀欄位、條件規則、任務行為及回應變體的權威來源。若兩者不一致,請停止並回報合約不符,切勿自行猜測。

建立請求

建立 request.json 為合法的 JSON,僅使用所發現的操作合約接受的欄位。針對選定的模型與值,評估所有適用的條件規則作為一組:滿足所有必填欄位,省略所有禁止欄位,並在遇到無法解決的矛盾時停止。

在執行前先遍歷巢狀物件與陣列。關閉所發現合約中陳述的所有關係,包括唯一性約束及巢狀值之間的交叉參考。

對於所發現的本機媒體輸入,包括檔案類型的欄位及頂層媒體 URL 欄位,請直接在 request.json 中放入 AI 可讀取的本機檔案路徑。CLI 會直接使用所宣告的檔案欄位,並上傳頂層媒體 URL 欄位中的本機路徑。僅在使用者需要可重複使用的 URL、提供 Base64 或所發現的合約明確要求獨立上傳時,才使用 runapi files create。

語義不變量:

  • 遠端媒體的格式、大小及音訊時長會由生成提供者非同步檢查。

在傳送前驗證檔案:

jq empty request.json

執行

僅提交一次,並在等待前先保留任務回應:

runapi vidu <操作> --async --input-file request.json > task.json
task_id="$(jq -er '.id' task.json)"

若為一次性結果,立即等待該任務完成並儲存完整的 JSON 回應。此阻塞等待為預設行為:

runapi wait "$task_id" --service vidu --action <操作> > result.json

僅在使用者明確要求背景執行、輪詢或 Webhook 整合時,才可在驗證 task.json 後停止。請回報任務 ID,且不可聲稱已完成交付。

驗證

成功狀態並非交付物。請根據所發現的結果合約讀取並驗證完整回應。保留完整的非媒體結果,格式需完全符合要求,包括 JSON、文字、SRT 或 VTT。

對於回應中列出的每個請求媒體交付物,請下載所有項目,而非僅回傳第一個 URL。在下載前,先從回應中存在的詮釋資料推斷其預期的 MIME 類型或系列,然後根據選定的輸出格式,最後依據 API 參考文件中的明確結果欄位(例如 videos、images 或 audios)。此技能的目錄宣告的備用系列為 video/*。僅在上述來源均無法確定單一預期類型或系列時才停止。

對於每個下載的檔案,需同時要求該檔案非空且符合預期的 MIME 類型或系列:

curl --fail --location <交付物網址> --output <下載的檔案>
for file in <下載的檔案列表>; do
  expected_mime=<此檔案的預期 MIME 類型或系列模式>
  test -s "$file"
  [[ "$(file --brief --mime-type "$file")" == $expected_mime ]]
done

當任何請求的交付物遺失、為空或 MIME 類型不符時,不可回報完成。請分別記錄「技能符合度」與「任務結果」,以免服務失敗時無法判斷是否遵循了此流程。

復原或停止

  • 最多修正一次請求形狀,且僅在所發現的合約或回傳的驗證錯誤指出修正方向時。
  • 最多重試一次短暫的傳輸失敗,且僅在有證據確認未建立任務、未產生費用且重試安全時。
  • 若等待逾時或傳輸中斷但 task.json 已存在,請保留錯誤並最多重新執行一次 runapi wait(針對同一任務)。絕不提交替代任務。
  • 若發生終結性的 RunAPI 或服務失敗,請保留任務/錯誤證據並停止。保留所選的模型與功能,未經使用者授權不得再次提交付費請求。
  • 若合約缺少建立或驗證請求所需的事實,請停止並回報合約缺口。切勿將產品缺陷變為永久性的技能變通方案。

整合 SDK

僅在應用程式或生產程式碼整合時使用此路徑。開啟下方當前的 RunAPI SDK 參考文件,選擇目標語言的套件與 Vidu,並在編碼前確認其安裝指令、用戶端方法、請求類型、回應類型及錯誤類別。根據相同的所發現產品合約建立請求,並套用相同的交付物驗證與停止規則。切勿在生產程式碼中將 runapi 作為子程序調用。

參考資料

變體

相關技能