蘇格拉沒有底 · 影片工坊(綜合 skill)
1. 選風格
| 漫畫口播 | 像素卡點 | |
|---|---|---|
| 目錄 | styles/comic-explainer/ | styles/pixel-beat-story/ |
| 適合 | 社科/時事/歷史「講清楚一件事」:新聞追問、制度、概念辨析 | 社會痛點「講一個人的故事」:孤獨症、阿茲海默、留守、獨居… |
| 驅動 | 使用者自錄口播,逐字時間軸(faster-whisper + difflib) | 配樂,節拍/樂句網格(beats.py) |
| 畫幅 | 直式 1080×1920 / 30fps | 橫式 4:3 1440×1080 / 30fps(可改) |
| 時長 | 跟配音走(樣板 10 分鐘,7 章) | 3–4.5 分鐘 |
| 畫面 | 暖米紙底、Q 版彩色漫畫角色(綠幕生圖摳圖)、章節卡、蓋章、程式化圖示 | 像素小屋夜景、精靈角色、會說話的小物件、HUD 計數器、打字對白 |
| 聲音 | 原聲一字不剪 + 程式化鋼琴配樂 + 音效 + ducking | 配樂(接長/斷點/回來)+ 程式化雨雷環境聲,最痛處音樂停 |
| 引擎 | node 22 + @napi-rs/canvas(render_example.js DSL) | Remotion(weilanx-claude-videos 工程,Ep54-example.tsx) |
| 樣板 | 《數據已經這麼多,為什麼還要成立一家央企?》 | 《他不是不說》《他不是來自星星》 |
判斷不了就問使用者一句:「這期做漫畫口播,還是像素卡點?」
選定後 read_file 對應的 STYLE.md 全文,按它的流程做。
2. 兩種風格共用的帳號規範(必須)
- 封面當首幀:每條都自製封面並壓進成片開頭(漫畫口播:前 0.4s;像素卡點:第 0 幀)。另存一份封面圖交付。
- 浮水印融進畫面,不加角標:「蘇格拉沒有底」寫進招牌、銘牌、App 頂欄、視窗標題、片尾署名等;使用者明確拒絕右下角角標。
- 先樣片後全片:漫畫口播出開頭到第一章(約 80s);像素卡點出第一幕(60–70s)。使用者確認畫風再做全片。
- 劇本先過審:使用者自己寫稿/錄音;我負責核事實(web_fetch 原始報導/研究原文)、指出多音字、邏輯跳躍、敏感表述,再動手。
- 音訊底線:使用者原聲不剪不重排、不用 TTS 頂替;配樂與音效必須原創/程式化或有授權,佔位曲每次交付都提醒替換。拼接音訊一律 numpy 等功率交叉淡化(ffmpeg acrossfade 拆同一輸入會截斷)。
- 響度:整片 -15 LUFS,兩遍 loudnorm(
shared/loudnorm.sh),結尾淡出。 - 角色好看:乾淨、友好、精神;使用者不接受醜的人物,配角也要順眼;同一角色固定提示詞骨架;綠幕/純色底生圖再摳(漫畫口播
key.py,像素卡點cutout.py)。 - 抽幀自查再渲染:拼聯繫表用 read_file 看——文字不出畫、不壓臉、首幀是封面、浮水印在、關鍵台詞/關鍵詞對上聲音。
- 渲染:2 核沙箱分段並行(每段 concurrency=1),先寫 /tmp 再拷進工作區(faststart 寫網路盤會 IO 報錯);只改音訊不重渲畫面,小改只重渲受影響幀段再覆蓋。
- 內容倫理(像素卡點尤其):不說 AI 能治癒任何病;不把弱勢群體浪漫化或他者化;故事標註虛構,不用真實兒童隱私;片尾數據寫出處與年份。
3. 目錄
SKILL.md ← 本檔案(選風格 + 共用規範)
shared/loudnorm.sh 兩遍 loudnorm
styles/comic-explainer/ 【漫畫口播】
STYLE.md 風格規格、版式座標、動畫 DSL、對齊與混音流程
templates/ lib.js render_example.js audio.py wh.py align2.py key.py mux.sh
examples/ 封面/抽幀示例、角色範例、文字稿格式(#開頭 / #章節 標記)
styles/pixel-beat-story/ 【像素卡點】
STYLE.md 風格、劇本公式、卡點規則、配樂整形、版式、QA
references/ story.md layout.md
scripts/ beats.py music_tools.py sfx.sh cutout.py contact.sh stills.mjs render.sh mux.sh
template/ Ep54-example.tsx ep54-music-ops.json ep54-script-example.md assets/
4. 環境
- 通用:ffmpeg ≥6、python3 + numpy scipy pillow;中文字型。
- 漫畫口播:node 22 +
@napi-rs/canvas;faster-whisper(餵 numpy 陣列,別傳檔案路徑);字型 LXGW WenKai →fonts/wk.ttf。lib.js還需要工程目錄裡的assets/、map/、heads.json(頭像裁切表{name:[cx,cy,size]}),新專案自己建。 - 像素卡點:Remotion 工程(weilanx-claude-videos,MIT;Remotion 個人/≤3 人公司免費);Noto Sans/Serif SC。沙箱裡每條 node 命令前
export NODE_OPTIONS=--max-old-space-size=4096,用./node_modules/.bin/remotion不用 npx。
5. 交付話術
一條訊息說清:片長、兩三個亮點(漫畫口播:章節與關鍵畫面;像素卡點:卡點設計)、音樂是否佔位、問哪裡想調。附成片 mp4 + 封面。