Communitygithub.com

智能體視效

用一份樂譜指揮音樂反應視效:選 WebGL2 模板,在無頭 Chrome 裡渲染,對成片做閃爍檢查,再匯出無聲循環或網頁即時效果。

智能體視效 是什麼?

智能體視效不讓人去寫著色器。選定模板和預設,把參數綁到低音、重音和節拍,寫成視效樂譜,引擎輸出 H.264。每次渲染都帶閃爍檢查。無聲的正放倒放循環,以及一份自包含的網頁匯出,讓同一份樂譜既能上舞台,也能嵌進頁面。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/wjgoarxiv/agentvfx/tree/HEAD/skills/agentvfx

在你喜歡的 AI 中提問

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

說明文件

agentvfx

您指導;引擎負責渲染。您永遠不需要為短片撰寫著色器程式碼。您只需選擇一個模板、一個預設和幾個類型化參數,將它們寫入一個 FX 樂譜(JSON),引擎便會在無頭 Chrome(WebGL2)中渲染,使用 ffmpeg 編碼 H.264,並進行閃光審計。

所有指令都從此資料夾(技能根目錄)執行。樂譜內的路徑會相對於當前目錄解析。

1. 檢查機器

node scripts/vfx.mjs doctor

ok: true 表示找到了支援 GPU WebGL2 的 Chrome 和 ffmpeg。否則請閱讀 blockers 並告訴使用者需要安裝什麼(CHROME_PATH、FFMPEG_PATH)。Blender 5.x 僅在需要背景底版時才需要(BLENDER_PATH)。

2. 挑選外觀

node scripts/vfx.mjs list            # 系列、模板 ID、輸入類型、預設
node scripts/vfx.mjs list --json     # 含說明

input 表示模板需要什麼:generative(不需要輸入)、footage(需要 input.video)或 either。從一個預設開始;每次最多更改兩到三個參數。在發明更多內容之前,先向使用者展示結果。

3. 撰寫樂譜

結構定義:schemas/fx-score.schema.json。最小範例:

{ "version": 1, "template": "lattice", "preset": "vermilion-fine",
  "input": { "video": "test-media/clip-01.mp4", "audio": "test-media/beat-132.mp3" },
  "durationSec": 4, "seed": 47, "out": "my-lattice" }
  • durationSec 為 3–5。seed 使渲染可重複。
  • params 可覆蓋預設(名稱和範圍來自模板的 fx.json)。
  • bindings 將參數綁定到音訊特徵(bass、onset、beat、bands.N 等),包含 gain、offset、attackMs、releaseMs。將 attack 保持在 onset 幀上,release 保持在較短(約 60 ms):乾脆的反應顯得專業,過度平滑則顯得像 demo。
  • hits 在 onset 或 beat 上觸發一個額外模板;cuts 在 beat 上硬切堆疊;stack 可以在基礎上疊加最多兩個模板。
  • labels 和 textStyle 設定引擎的文字圖層(依名稱使用已安裝字型;字型缺失時使用通用後備字型)。

無需渲染即可檢查:

node scripts/vfx.mjs validate my-score.json

4. 渲染與檢視

node scripts/vfx.mjs render my-score.json --out out/my-lattice --width 640 --height 360

先以小尺寸(640x360)預覽,然後在最終輸出時提高解析度。該指令會輸出包含影片路徑、閃光結果和靜止幀的 JSON。在向任何人描述短片之前,請先打開 stills/sheet.png 和每個 strip。未經檢視的渲染不算完成。

5. 閃光安全

每次渲染都附帶閃光審計(每秒一般閃光和紅色閃光次數,WCAG 2.3.1 風格)。預設模式 stage 保持完整強度,並在超過限制時寫入 SAFETY.txt。"safety": { "mode": "broadcast-safe" } 會強制執行限制;"safeVariant": true 會在全版本旁添加 film.safe.mp4。當短片超過限制時,應清楚告知使用者。

6. 背景底版(可選,Blender)

node scripts/plate.mjs --scene terminalcore --shot gallery --out out/plate --width 640 --height 360 --seconds 4

程序化場景,無需下載素材。使用底版的 film.mp4 作為 input.video。--quality final 速度較慢(每 1080p 幀約需 2 分鐘);開始前請先詢問。詳見 references/plates.md。

7. 無聲循環

node scripts/loop.mjs out/my-lattice/film.mp4 reels/my-lattice.mp4 --preview reels/preview/my-lattice.webp --audit out/my-lattice/loop-flash.json

將短片向前播放然後向後播放(無接縫、無音軌),並對播放兩次的循環進行閃光審計。退出碼 3 表示循環超過閃光限制。反向播放可能會在轉折處使閃光加倍;--hold 6 在每次轉折處暫停六幀,通常能將此類循環帶回限制內。反向播放時,原本的紅色變化變為紅色閃光的情況無法以此方式修復——請如實告知,讓使用者決定。

8. 在網頁上即時使用

node scripts/export-web.mjs lattice collage --out out/web

寫出一個自包含的執行環境、所選模板和一個示範頁面。會遵循 prefers-reduced-motion 設定。詳見 references/web.md。

規則

  • 切勿發布或提交您沒有重新散佈權利的音樂。短片的動態可能來自某首曲目,但發布的循環保持靜音。
  • 參考資料用於啟發,而非複製。請勿重製他人作品中的任何影格、標誌、商標或字型檔案。
  • 請勿捆綁字型檔案。請依名稱使用已安裝字型;字型缺失時會使用後備字型。

更多資訊

  • references/template-format.md — 模板建構方式(fx.json、pass、預設、文字圖層)。
  • references/plates.md — Blender 背景底版。
  • references/web.md — 網頁執行環境 API。

相關技能