Community程式設計與開發github.com

thativanng/reels-maker

為一支影片或系列作品在製作前選定三種截然不同的視覺風格。透過同一開場畫面、相同文字的三張靜態稿並排呈現,讓決策者專注於「風格」而非「內容」。自動記錄所有曾展示過的風格,避免重複,並可鎖定一種風格作為系列基調。

reels-maker 是什麼?

這個工具解決了一個常見的痛點:AI 代理在生成影片時往往會落入相同的預設風格,或者更糟的是沿用上一次被接受的風格。`reels-maker` 透過強制生成三種在「媒介、佈局、紋理、色彩、字體、動態」六個維度上至少有 3 項不同的風格框架來避免這種情況。它會記錄每次被拒絕的風格作為約束條件,確保除非使用者主動要求,否則不會重複出現完全相同的組合。該工具支援從簡報驅動的單一影片生成到系列作品的一致風格管理,並提供靜態稿的並排檢視、安全區檢測工具,以及後續的 10 秒測試片段工作流程。這在需要快速迭代視覺方向、避免昂貴的後期翻工場景(例如品牌內容、社群媒體短片)中特別有用。它的獨特之處在於將「風格探索」從「內容創作」中抽離,並透過嚴格的日誌機制建立可追溯的視覺決策過程。

相容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/thativanng/reels-maker/tree/HEAD/skills/reel-style

Installed? Explore more 程式設計與開發 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

在你喜歡的 AI 中提問

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

說明文件

reel-style:三種風格,並排比較,絕不重複相同的三種組合

套件存放位置: 所有指令都應在 reels-maker 資料夾(即 github.com/thativanng/reels-maker 的克隆,內含 template/ 和 tools/)中執行。如果專案中還沒有該資料夾,請先依照該儲存庫的 SETUP.md 進行設定。

為什麼存在: 當代理被要求「製作一支關於 X 的影片」時,往往會不由自主地趨向同一種風格:不是使用它自己的預設值,就是更糟地沿用上一次被接受的風格。而一種在前期沒有被呈現過的風格,最終會在看完成品時才被發現,此時說「看起來很廉價」就意味著要全部重來。製作三張靜態稿只需要幾分鐘;但選錯風格卻會毀掉一整部影片。

1 · 開始構思前請先閱讀

  • 已簽署的簡報: 平台、比例、目標觀眾、訊息、品牌,以及委託者回答「對我來說什麼看起來廉價」的答案(這是一個硬性約束)。
  • 風格紀錄檔,位於委託者專案中的 .reels/looks-log.md(格式請參考 references/looks-log.md)。如果該檔案不存在,請建立它。
  • 品牌。 如果有品牌,三種風格會共享其顏色和字體,而在它們的「骨架」上有所區別:媒介、佈局、紋理、動態。如果沒有品牌,則在所有方面都不同。

2 · 構思五種,保留三種

首先撰寫五個一行描述的概念,每個概念來自不同的出發點:

  1. 主題本身的世界(例如,供應鏈主題就使用倉庫貨箱)
  2. 希望觀眾感受到的情緒
  3. 觀眾:滿足他們的期待,或者刻意打破它
  4. 這個主題的其他影片看起來的樣子,將其翻轉
  5. 一個不尋常的格式(一張收據、一個倒數計時、一封信、一個巨大的單詞)

保留差異最大的三個。每種風格必須在 references/axes.md 中定義的 6 個特質中,至少有 3 項與其他兩種風格不同,並且始終在「媒介」或「佈局」上有所區別。至少有一種風格必須打破該主題的常見外觀。 如果兩種風格的佈局輪廓相同,則視為一種。如果簡報指定了佈局(reel-intake F4),則三種風格都保留該佈局,並在「媒介」以及至少另外兩項特質上有所區別。

然後,根據以下兩個清單檢查每一種風格:

  • 應避免的預設風格(references/axes.md)。套件本身的 template/starter.html 就是其中之一;它只是一個骨架,永遠不該被當作一種風格。
  • 風格紀錄檔。 除非委託者要求,否則絕不重新展示一種其「媒介」、「佈局」和「色板」都與紀錄檔中任何一條完全相符的風格。被拒絕的風格就是一個約束條件。委託者選擇過的風格只有在他們主動要求時(「和上次一樣」)才會重新出現,並且會作為第四個選項,與三種新的風格並列。

3 · 製作三張靜態稿

  • 將 template/starter.html 為每一種風格複製一次到該影片的資料夾中(reels/<name>/look-a.html、look-b.html、look-c.html),旁邊放上該影片的 reel.json;對於 3D 外觀,則以相同方式複製 template/film.html。字型和 formats.json 會從套件根目錄載入,因此複製的檔案可以直接使用。只更改外觀:CSS 變數、佈局、背景、字體。每張靜態稿都使用相同的開場節拍和相同的文字。
  • 以簡報指定的格式為每種風格渲染一張靜態稿,然後將它們並排顯示並加上名稱:
    node tools/stills.mjs --page reels/<name>/look-a.html --format 9:16 --out reels/<name>/out/looks/a 1.5
    node tools/stills.mjs --page reels/<name>/look-b.html --format 9:16 --out reels/<name>/out/looks/b 1.5
    node tools/stills.mjs --page reels/<name>/look-c.html --format 9:16 --out reels/<name>/out/looks/c 1.5
    python3 tools/sheet.py reels/<name>/out/looks/sheet.jpg 3 360 --labels "A · Ledger,B · Dock,C · Receipt" reels/<name>/out/looks/a/t001.50.jpg reels/<name>/out/looks/b/t001.50.jpg reels/<name>/out/looks/c/t001.50.jpg
    
  • 使用探測工具檢查每張靜態稿:文字必須位於安全區內(node tools/probe.mjs --page reels/<name>/look-a.html --format 9:16 "1.5" "sel:.title,.line,.kicker,.cap" "safe" → inside: true;探測工具測量的是文字本身,因此超出畫面的單詞會失敗)。
  • 顯示帶有名稱的合併圖,並為每種風格加上一行描述,例如 A · Ledger: 以字型為主導、淺色紙張、平靜。再加入一行關於動態能量的說明,因為靜態稿無法呈現。在委託者觀看之前,不要推薦任何一種:先入為主的推薦會限制他們的判斷。

4 · 選擇與紀錄

  • 委託者選擇一種,或者進行混合(「A 的佈局,C 的色板」)。混合是一種新的風格:在製作之前,先將其呈現為靜態稿。
  • 將所有內容寫入紀錄檔: 每種展示過的風格(其六項特質和靜態稿)、選擇了哪一種、哪些被拒絕,以及委託者用自己的話表達的評論。
  • 然後,film-engine 會以被選中的風格製作 10 秒測試片段,以便在完整製作前獲得委託者的確認。被選中風格的靜態稿同時也是封面圖的初稿。

系列模式

當簡報指定為「系列」時,第一集的選擇將被鎖定在紀錄檔中,作為該系列風格。後續的影片會跳過三種風格的選擇過程,並維持該風格。多樣性則在風格內部實現:主題、開場畫面、節拍順序。如果委託者在系列中途想要一種新風格,這將被視為一個新系列。

當故事是一段旅程

只有在簡報是關於一段旅程(例如職業生涯,或一個從頭到尾的過程)時,體素行走(voxel-walk 技能)才能被選為三種風格之一。它永遠不是預設選項,並且受相同規則約束:必須與其他兩種風格不同,且受到風格紀錄檔的規範。

誠實的限制

  • 只有體素行走經過了端到端的建構和測試。其他每一種風格都是根據簡報即時建構的:採用新風格的第一部影片需要更長時間,並且會接受完整的影片審計。
  • 靜態稿能呈現顏色、字型和佈局。它們無法呈現節奏。10 秒的測試片段才是判斷動態效果的地方。

鳴謝

「從不同路徑構思五種,保留離群值,相同佈局視為一種」的規則改編自 HyperFrames 的提案階段(heygen-com/hyperframes, Apache-2.0)。命名預設風格並記錄嘗試過程的想法源自 Anthropic 的前端設計技能(經改寫)。相同場景、不同風格、並排比較,是常見動態工作室處理風格幀的做法。

Individual skills in this repo

This repo contains 4 individual skills — each has its own dedicated page.

thativanng/reels-maker

The gates every code-rendered film passes before anyone sees it. A 40 fps collision pass (no mover touches a solid or another mover), pixel probes (nothing sits over or behind a face, a head, a subtitle or the frame edge), then an independent auditor (a fresh agent) who reads frame sheets at ≥2 fps and signs off. The builder never signs off their own film. Use it before sending ANY render, after every fix round, and whenever someone says "check the film", "audit this", "is it ready", or "why does this frame look wrong".

thativanng/reels-maker

Build and render a film, reel or animation as code. One HTML page draws any frame on demand with window.seek(t), and a headless browser renders every frame at 2x into an MP4 with sound. Use it whenever someone wants a video made with code rather than a video generator, says "make a film / reel / animated explainer / career video", "render this to MP4", "turn this page into a video", or needs the finishing steps (audio cues, loudness, colour-safe encode, phone preview). It is style-agnostic and renders 9:16, 4:5, 1:1 or 16:9. It runs after reel-intake (the brief) and reel-style (the look), builds on template/starter.html or a style pack such as voxel-walk, and passes film-audit before anything is shown to anyone.

thativanng/reels-maker

The interview before any video is built. It reads what the person already gave (source text, CV, links, brand files), then asks the rest in a few short rounds of numbered questions with a recommended answer marked, always including the format (platform, reel or video, ratio, layout, length, sound). It ends in a one-screen brief that splits "you said" from "I assumed", plus a storyboard, and builds nothing until the person says yes. Use it whenever someone asks for a reel, a video, an explainer, a career film, an animation or a "make a video about X", before film-engine or any style pack, and again when a request changes its purpose, platform or audience mid-way.

thativanng/reels-maker

The voxel career-film style. A blocky 3D version of the person walks, without ever vanishing, through one scene per role. Their outfit changes as they walk, each scene rises out of the floor ahead of them, and a dark banner tracks year, company and role. Use it when someone wants their career, a journey or a "how I got here" told as a short 3D film for LinkedIn or a portfolio, says "make my career film", "turn my CV into a video", "voxel film", or wants a new chapter added to an existing one. It runs on film-engine (render, audio, finish) and must pass film-audit before anything is sent.

相關技能