Skip to main content
本頁提供一個開箱即用的 Agent 技能(Skill):一個零依賴指令碼同時覆蓋 Wan2.7HappyHorse 兩個系列——它們走同一個端點、同一套請求結構、同一個 Wan&HappyHorse 令牌分組,用 --model 一鍵切換。指令碼會按你傳入的素材自動選擇模型(文生 / 圖生 / 參考圖生 / 影片編輯),並封裝好「提交 → 輪詢 → 下載成片」的完整非同步流程,整套東西就兩個檔案。

這個技能能做什麼

一個合併技能,指令碼根據傳入的素材型別自動判斷生成模式、選對模型 ID:

文生影片

只給提示詞 → 生成全新影片,預設開啟提示詞智慧擴寫,短提示詞也有好效果。

圖生影片

傳入首幀圖讓靜態圖動起來——本地圖片直接傳,指令碼自動上傳。

參考圖生影片

傳參考圖(Wan 還可傳參考影片)→ 保持角色、物品或風格出新畫面,prompt 裡用「圖1 / 影片1」指代。

影片編輯

傳一段影片 + 參考圖 → 替換 / 改造影片裡的元素,輸出時長跟隨源影片。

兩個系列怎麼選

兩個系列呼叫方式完全一致,區別在價格、畫質取向和參考素材能力。指令碼已按 --model 自動處理差異:
簡單記:日常與走量用預設 wan對畫面質感要求高--model happyhorse。兩家共用 Wan&HappyHorse 分組(0.14x 倍率,約為官網人民幣價的 98%,疊加充值加贈後更低),一把令牌通吃,沒有特價分組。按秒計費、失敗任務不扣費。價格明細見 Wan 概覽HappyHorse 概覽

能用在哪些 Agent

一個 Skill 本質上就是一個資料夾:一份寫給 Agent 看的說明(SKILL.md)+ 一個幹活的指令碼。所以凡是能讀取本地檔案、執行命令列的編碼 Agent 都能用上——比如 Codex、OpenClaw、hermes-agent、Claude Code 等。唯一要求:跑 Agent 的那臺機器(你的電腦或伺服器)裝了 Python 3 並且能聯網(指令碼要直連 api.apiyi.com)。指令碼只用 Python 標準庫,無需 pip install 任何東西

三步裝好

① 建目錄、貼檔案

新建一個技能資料夾,放入下面兩個檔案(完整內容見後兩節):

② 同目錄寫 Key

wan/.env 裡寫上你的 API易 API Key(在 api.apiyi.com 控制台建立,令牌須勾選 Wan&HappyHorse 分組、計費模式選按量——按次計費令牌無法路由):
指令碼會自動從這個 .env 讀取 Key,無需任何額外配置或環境變數
.env 裡是你的金鑰。如果這個技能要隨專案倉庫共享,務必把 .env 加進 .gitignore,不要提交到 git

③ 交給 Agent

  • 支援技能自動發現的 Agent(如 Claude Code):把整個 wan/ 目錄放進它的技能目錄——個人級 ~/.claude/skills/,或專案級 .claude/skills/(隨倉庫共享)。
  • 其他 Agent:按它各自的技能/外掛約定放置;或者最簡單——直接讓 Agent「讀一下這個資料夾裡的 SKILL.md,並照著執行」 即可。
裝好後就能用了,跳到 怎麼用 看示例。

SKILL.md

新建 wan/SKILL.md,完整內容如下(description 寫清「做什麼 + 何時用」,Agent 會據此自動觸發):
name 必須是小寫字母 + 連字元。在支援斜槓命令的 Agent 裡,目錄名就是命令名——叫 wan/wan${CLAUDE_SKILL_DIR} 是 Claude Code 提供的技能目錄變數;其他 Agent 直接用指令碼的實際路徑即可。

scripts/wan_video.py

新建 wan/scripts/wan_video.py,純 Python 標準庫實現,與本站各 API 參考頁的請求程式碼一致、已實測可跑:

怎麼切換系列

切換系列只需改 --model,兩種值任選,模型 ID 由指令碼按「系列 × 素材型別」自動推導:
模型 ID 自動推導表(不用記這些名字,指令碼按素材自動選):

素材輸入:本地圖直接傳(實測)

官方文件口徑是「media 須為公網可訪問的 https URL」,但我們實測兩個系列都接受 base64 data URI——所以指令碼對本地圖片做了自動轉換,-i photo.jpg--ref-image role.png 直接傳本地路徑即可,無需先上傳圖床。影片素材(--ref-video / --video)仍建議用公網 URL,大檔案轉 base64 體積膨脹約三分之一,容易超請求限制。

出片要等 2-5 分鐘(重要)

影片生成是非同步任務
  • 指令碼已封裝完整流程:提交(X-DashScope-Async 非同步頭)→ 每 8 秒輪詢 → 完成後自動下載 mp4。720P/5s 實測全程約 45–155 秒,1080P 或長時長可能 5 分鐘以上。
  • 輪詢列印的 progress 長時間停在 30% 是正常現象(上游只上報 0/10/30/100 幾檔),不代表卡住。
  • Agent 執行時要給命令設長超時(600 秒以上)或放到後臺跑——很多 Agent 的命令預設 2 分鐘超時,會在出片前把指令碼掐斷。SKILL.md 裡已寫明這條。
  • 萬一輪詢超時(20 分鐘),任務仍在服務端,指令碼會列印 task_id 和查詢命令。失敗任務不計費;但重複提交會重複計費,指令碼不做自動重試。

為什麼一句話就能出影片

很多人好奇:我又沒敲命令,怎麼說句”生成一段影片”它就出片了? 原理是這樣:Agent 啟動時會先讀取每個技能 SKILL.md 裡的 description(一段很短的後設資料,說明「這個技能做什麼、什麼時候該用」)。當你說出的需求匹配上這段描述的場景(比如”生成/做一段影片""把這張圖做成動圖""改一下這段影片”),Agent 就自動決定呼叫這個技能,去讀完整的 SKILL.md 並執行指令碼——整個過程你不用記任何命令。 不想靠 Agent 猜、想要百分百可控時,用下面的顯性呼叫

怎麼用

自然語言(隱式觸發)

裝好後直接對 Agent 說話即可:

顯性呼叫(更可控)

  • 支援斜槓命令的 Agent(如 Claude Code):
  • 任意 Agent / 直接命令它跑指令碼(最通用):

生成的影片在哪裡

  • -o 只傳檔名(如 -o cat.mp4)時,影片統一存到專案根目錄下的 wan-output/ 資料夾(指令碼自動建立),兩個系列共用這個目錄。
  • 「專案根目錄」= 指令碼從自身位置向上找到的第一個含 .git.claude 的目錄——不管 Agent 在哪個目錄執行,影片都落在專案裡,不會跑進臨時目錄害你找不到。
  • 指令碼完成後會列印一行完整絕對路徑,附帶檔案大小和耗時,例如 影片已儲存至 /Users/you/project/wan-output/tokyo.mp4(4.9 MB,耗時 153s,模型 wan2.7-t2v)
  • 實測出片自帶音軌(AAC 雙聲道)。
  • 結果直鏈 24 小時過期,所以指令碼一律先下載到本地——本地 mp4 才是交付物,不要把直鏈存起來當結果。
  • 帶目錄的路徑(如 -o videos/cat.mp4 或絕對路徑)時,按你給的路徑存,不進 wan-output/

相關文件