Communitygithub.com

ruthprissman/film-style-board

為全新的動畫電影提供風格靈感板。此技能從七種真實電影中建構與測試的風格(沙畫、手繪白板、黏土動畫、水彩書本風格、不織布剪紙、活字動畫、紀實文字排版)中推薦 3–4 種,並展示包含每種風格範例與短片的靈感圖片板。

film-style-board 是什麼?

這個技能旨在協助使用者為全新動畫專案選擇視覺風格,並評估製作成本。它會根據輸入的故事、書籍、詩歌或概念,從七種預先定義的風格(沙畫、白板、黏土、水彩、不織布剪紙、活字動畫、紀實排版)中推薦 3–4 種最適合的風格,並透過 `make_board.py` 工具生成包含範例圖片與短片的靈感板 (`board.png` 與 `reel.mp4`)。 此技能支援多種平台與工作流程:若使用者擁有 ChatGPT Plus 訂閱且安裝了 Codex,它可直接利用 Codex 生成故事範例場景;否則,它會產生一組提示詞 (`prompts.html`/`prompts.txt`),讓使用者自行貼到 ChatGPT、Gemini 或 Copilot(免費版也可使用)生成圖片。此外,它還整合了新興的 AI 影片模型(如 Seedance 2.5、Kling 4.0、Veo 3.1、Gemini Omni),提供影片製作成本估算,並清楚區分「純程式碼動畫」、「AI 影片關鍵鏡頭」與「全 AI 影片」三種方案及其費用。 技能會優先檢查專案目錄中的 `local.md` 或 `styles-local.json` 等本地覆寫檔案,以支援客製化設定。整個流程設計為引導式:先確認故事細節,再推薦風格、生成靈感板,可選地展示故事場景在不同風格下的樣貌,最後提供 AI 影片整合選項與成本,幫助使用者做出明智的決策。

相容平台✓Claude Code✓Codex CLI~Cursor✓Gemini CLI
npx skills add https://github.com/ruthprissman/ruth-film-skills/tree/HEAD/skills/film-style-board

在你喜歡的 AI 中提問

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

說明文件

film-style-board · 電影風格靈感板

此技能旨在回答「這部電影該用什麼風格製作,以及費用為何」。它不會實際建構電影本身。

如果技能目錄中存在 local.md,請先閱讀它。 該檔案包含本機的偏好設定、帳戶狀態、電影與建構技能的路徑等註記,其優先級高於此處的說明。

film-style-board/
  styles.json                   風格目錄:名稱、適用場景、圖片提示詞、AI 影片相容性
  catalog/<id>.jpg, <id>.mp4    每種風格的範例(若有的話,包含 6 秒片段)
  tools/make_board.py           透過 Chrome 從 HTML 建構 board.png(與 reel.mp4),確保希伯來文正確顯示
  tools/gen_frames.py           「你的故事,用這種風格呈現」:為每種風格生成一個場景。使用 Codex 繪製,或生成提示詞頁面(--prompts-only)
  tools/video_cost.py           AI 影片價格:單一片段、關鍵鏡頭、整部電影。使用 --live 從 Higgsfield 即時測量
  references/video-models.md    模型說明、訂閱方案、如何整合 AI 影片到電影中、檢查事項
  references/codex-setup.md     給使用者的指南:安裝 Codex 並透過 ChatGPT 登入,以及故障排除方式
  (選用,不公開) local.md, styles-local.json, catalog-local/   本機覆寫設定

工具路徑: T=<技能目錄>/tools。技能目錄是技能載入時的基礎目錄(在標準安裝下為 ~/.claude/skills/film-style-board;若為外掛,則位於外掛目錄內)。

本機需求: Python 3(需安裝 Pillow:pip install pillow)、ffmpeg、與 Google Chrome。若缺少任何項目,請在建構步驟 3 前建議安裝。

步驟 1 · 確認現有素材

讀取使用者提供的素材:書本照片、文字、詩歌或點子。大部分的答案已包含在其中。最多只問一個問題,選取以下最關鍵的缺失資訊:

需要知道什麼如何不問而得知
目標觀眾:幼兒、兒童、家庭、成人書本的年齡層、文字長度
格式:16:9 螢幕,或 9:16 用於 WhatsApp/狀態「狀態」、「WhatsApp」、「手機」= 9:16
片長頁數。每頁約 20–25 秒
有角色與劇情的故事,或文字與詞語有插圖的書 vs. 詩歌、引言或真實故事

步驟 2 · 挑選 3–4 位候選風格

素材類型候選風格
有角色與劇情的兒童繪本clay(黏土)、watercolor(若插圖為水彩風格)、sand(沙畫)、feltcut(不織布剪紙)
文字較多、說明性、有章節的書whiteboard(白板)加上一個來自前一行列的風格
詩歌、引言、每週一句、狀態更新livingwords(活字動畫)
真實故事、歷史、用於 WhatsApp 的系列內容documentary(紀實)與 livingwords(活字動畫)
  • 為每位候選風格撰寫一句話:為何它適合這個故事(加到靈感板時使用 --why 參數)。
  • 對於兒童繪本,建議從色彩鮮豔的風格開始(黏土、水彩、不織布)。沙畫與白板風格較為柔和。

步驟 3 · 從目錄生成靈感板(立即執行,無需額外成本)

OUT=<專案目錄>/style-board        # 若尚無專案,則使用暫存目錄
python $T/video_cost.py --film-seconds <片長(秒)> --hero 6 --json $OUT/cost.json
python $T/make_board.py --out $OUT --styles clay,watercolor,sand --title "<故事名稱>" \
       --why "clay=<原因>;watercolor=<原因>;sand=<原因>" --video $OUT/cost.json --reel
  • 在發送前親自檢查 board.png:確認文字無破損、圖片無缺失、卡片非空白。
  • 向使用者展示 board.png 與 reel.mp4(每種風格 6 秒,角落標示卡片編號)。若支援 SendUserFile,則發送檔案,以便同時傳到手機上。
  • 在對話中提供:簡短的編號列表、一個推薦及其原因,以及進入步驟 4 的建議。

步驟 4 · 每種風格的故事場景(選用,需事先詢問)

首先撰寫一個英文場景:故事中最具代表性的一刻,包含主要角色。勿使用知名角色名稱或文字。此場景將用於所有路徑。

接著靜默檢查是否可存取 Codex: codex login status。根據回應選擇路徑。不要問「你有 Codex 嗎?」,因為多數人不知道這是什麼。

輸出結果路徑
Logged in using ChatGPTA:由 Claude 繪製
Codex 未安裝、未登入、或使用 API 金鑰登入問一個問題:「你有付費的 ChatGPT 訂閱(Plus 或以上)嗎?」是 = B。否或不確定 = C

路徑 A · Codex 已連線

以如下方式提議:「想看看你的故事以這些風格呈現嗎?這會使用你 ChatGPT 訂閱中的 張圖片,每張約需一分鐘。」

python $T/gen_frames.py --out $OUT/frames --styles clay,watercolor,sand --scene "<場景>" [--ref <頁面照片>]

路徑 B · 有訂閱,無 Codex

用一句話解釋 Codex(「這是 OpenAI 的工具,我透過它繪圖,會從你 ChatGPT 的訂閱中扣取數量」)。接著提議為其安裝,或發送 references/codex-setup.md(專為不熟悉的人撰寫)。安裝時 Claude 執行命令,使用者只需在瀏覽器中確認。當出現 Logged in using ChatGPT 時,繼續路徑 A。若安裝卡住,則切換至路徑 C,不要強求。

路徑 C · 無訂閱,或不想安裝:提示詞模式

python $T/gen_frames.py --out $OUT/frames --styles clay,watercolor,sand --scene "<場景>" --prompts-only --title "<故事名稱>"
  • 會產生 prompts.html:一個希伯來文頁面,包含說明、每種風格的英文提示詞、複製按鈕,以及建議的檔案名稱(1.png、2.png,對應卡片編號)。也會產生 prompts.txt,內容相同。
  • 向使用者展示此頁面,為他們開啟 frames 資料夾(Windows:explorer.exe "<路徑>",Mac:open "<路徑>"),並在對話中以程式碼區塊提供完整路徑。
  • 使用者將每個提示詞貼到 ChatGPT、Gemini 或 Copilot(免費版亦可,但有每日配額),下載圖片並儲存到該資料夾中。
  • 當使用者回報「完成」時:檢查資料夾中的內容。make_board.py 會自動尋找帶有 <id> 或 <數字> 且副檔名為 png/jpg/webp 的檔案。若檔名是隨機的(例如 ChatGPT Image....png),則逐一開啟圖片,根據視覺風格辨識並重新命名為 <id>.png。

在所有路徑中

python $T/make_board.py --out $OUT --styles clay,watercolor,sand --frames $OUT/frames --title ... --why ... --video $OUT/cost.json
  • 每個卡片中,故事圖片佔主要面積,目錄範例縮小顯示在角落。缺少圖片的風格將使用目錄範例,腳本會輸出每個卡片中使用的內容。
  • 檢查每張圖片:服裝需得體(長袖、長裙。這是預設值,--no-modest 可取消)、無文字、風格正確。若圖片不佳,則刪除並重新執行(已存在的內容不會被再次生成)。在路徑 C 中,請使用者重新生成。
  • --ref 搭配頁面照片僅適用於 watercolor,因為此風格會參考書中的插圖。其他風格的腳色是原創的,插圖不會輸入給模型,因為通常含有版權。
  • 坦誠告知圖片僅為最終視覺效果的近似,因為實際電影會透過程式碼製作動畫。
  • 文字風格(活字動畫、紀實排版)會被跳過,因為圖片模型無法書寫希伯來文。在靈感板中,它們將使用目錄範例。

步驟 5 · AI 影片:提供選項並說明費用

每個靈感板都包含一個 AI 影片區塊。在對話中以簡單詞彙說明三種方式:

  1. 純程式碼:透過程式碼製作動畫。除現有訂閱外無額外費用。
  2. 程式碼 + 4–6 個 AI 影片關鍵鏡頭:故事中的重大時刻。Kling 4.0 較划算(每部電影約 $13),而 Seedance 2.5 品質最佳(約 $41)。
  3. 全 AI 影片:一部 10 分鐘的電影約需 $105–$520,視模型而定。仍需程式碼處理字幕、旁白與混音。

必須說明的重點:

  • 點數(Credits)。Higgsfield 銷售月度訂閱。在 Plus 方案下,每個點數約值 5 美分。使用 higgsfield account status 檢查帳戶狀態。免費帳戶需先購買訂閱。Starter 方案($19,270 點數)足以在 Kling 4.0 上製作關鍵鏡頭。
  • Gemini Omni 透過 Gemini API 金鑰使用需要在金鑰上啟用計費。影片功能無免費層級。
  • 預設選項是純程式碼。 將 AI 影片作為附有價格的選項呈現,而非推薦,除非風格本身適合(如黏土、不織布、水彩)且故事中有重大時刻。
  • 風格相容性:每個卡片上都會顯示(極佳、良好、普通、不佳、不適用),詳細說明在 references/video-models.md 中。
  • 切勿在未提供從 higgsfield generate cost 取得的精確價格,且未獲得使用者明確同意前,生成需付費的片段。 可以提議從靈感板中的一個畫面生成一個 5 秒的試用片段(Kling 4.0 720p,約 11 點數)。
  • 如何將片段整合到電影中,以及每個片段需要檢查什麼(逐幀服裝、一致性、抖動、文字):請參考 references/video-models.md。

步驟 6 · 選擇完成後

  • 若已安裝所選風格的建構技能(由 styles-local.json 或 local.md 指定),則繼續使用該技能。
  • 若無,則使用現有的動畫工具建構電影:Motion Forge、HyperFrames、Remotion 或其他。靈感板、步驟 4 生成的圖片、以及該風格的 tagline/codex_prompt 即為設計規格。也可以將靈感板交給動畫師。

維護

新增風格。 從完成的電影中提取一個畫面與一段片段,並在 styles.json 中新增一條記錄(包含所有欄位,codex_prompt 需為英文或針對文字風格設為 null):

ffmpeg -ss <秒數> -i <電影>.mp4 -frames:v 1 -vf scale=960:-2 -q:v 3 catalog/<id>.jpg      # 若為 9:16 電影則用 540
ffmpeg -ss <秒數減 3> -i <電影>.mp4 -t 6 -an -vf "scale=960:-2,fps=24" -c:v libx264 -crf 30 -preset slow -pix_fmt yuv420p -movflags +faststart catalog/<id>.mp4

選擇最能展現該風格的畫面,需包含角色且畫面中央無字幕。提取數個候選並在選擇前仔細檢查。禁止公開的電影(例如根據仍受版權保護的書籍改編)應放入 catalog-local/ 而非 catalog/。

價格更新。 每月一次,或當有人詢問價格時:執行 python $T/video_cost.py --live。更新腳本中的 FALLBACK 與 CHECKED 變數,以及 references/video-models.md 中的表格。新模型:使用 higgsfield model list --video。

相關技能