Slice 技能
將文章、筆記、論文或粗略主題轉換為豎版 1080×1920 卡片影片——搭配旁白、按 TTS 節奏分頁,並提供 13 套視覺主題,涵蓋 抖音 / 小红书 / 知乎 / X / 公众号 / 飞书 / TikTok / LinkedIn / 雪球 / 微博 / 即刻 / B 站 / 播客。
從
paper-slide更名為slice。 產品現在稱為 Slice (voxflow.studio/apps/slice);舊的 slug 已不再使用。paper-slide僅作為 13 個主題 ID 之一留存。
選擇路線
| 情境 | 路線 | 說明 |
|---|---|---|
| 使用者想要 deck JSON(不渲染)——快速、可腳本化、可管線化 | CLI:voxflow slice <article.md> --theme <id> | 直接呼叫 /api/slice/deck 後端(200 配額;從 #3307 Deploy 2 起由 /api/paper-slide/slice 改名)。回傳與網頁 App 相同的標準 5–8 張卡片 deck JSON,接受全部 13 個主題。無 mp4——將 --json 管線至自訂工具、本機 Remotion 組合(貢獻者),或貼入網頁 App 進行渲染。 |
| 使用者正在迭代 deck——在提交渲染前對文案/結構進行多輪編輯 | CLI:voxflow slice stage <deck.json> | 啟動本機預覽頁面(無配額成本),每次儲存 deck JSON 時會熱重新載入。實用循環:voxflow slice ... -o deck.json → voxflow slice stage deck.json → 調整提示詞 → 重新執行 slice → 預覽即時更新。參閱下方的 Stage 路線。 |
| 使用者想要完成的 mp4 + 封面(預設消費者流程) | 網頁 App:https://voxflow.studio/apps/slice | 唯一能端到端執行精確 6 套 Slice 主題的地方。免費方案提供 9:16 mp4 + 多重比例封面(9:16/3:4/1:1)。 |
使用者希望透過 CLI 離線取得類似影片,但僅有 deck 的 voxflow slice 不夠 | voxflow present 或 voxflow picstory --style sketchnote | 僅為近似輸出。 不同的視覺方案;無法輸出 Slice 的 editorial-mag / notion-card / brutalist / glass-dark 主題。參閱下方的 CLI 近似路線。 |
本機 checkout 含有 video-present/src/compositions/PaperSlide(僅限 VoxFlow 貢獻者) | 本機 Remotion 實驗腳本 | 參閱 本機 Remotion 路線。注意:實驗腳本僅演練原始的 paper-slide 組合;其他 12 個主題僅透過雲端 worker 渲染。 |
| 使用者只需要策略或文案 | 透過 voxflow slice(或依照 schema 手動)產生 deck JSON;告知他們使用哪個渲染器。 | Deck schema 與渲染器無關;同一份 JSON 可在任何主題中渲染。 |
| 使用者要求開源/打包 | 保持私有 API、Token、產生的音訊、MP4 輸出不出現在技能套件中。 |
工作流程
- 選擇符合平台的主題。 閱讀
references/themes.md一次——它列出了所有 13 個主題、其視覺特徵,以及每個主題適合的平台 / 內容類型。不要什麼都用paper-slide。 - 選擇一個場景。 具體用例勝過泛泛填充:論文摘要、產品更新、會議總結、職涯建議、創始人課程、市場評論、事件回顧。
- 撰寫精簡的 deck。 4-6 張卡片:一個標題 + 3-5 個主體。每張主體卡片一個想法。標題要夠短,一行能容納。
- 從受控關鍵詞中選擇視覺元素。 不要在渲染時搜尋網路或產生隨機圖片——選一個標準的
figureKeyword;渲染器會將其對應到本機的手繪場景 / 姿勢 / 圖示。(參閱references/deck-schema.md。) - 透過選定的路線渲染。 精確主題使用網頁 App;近似使用 CLI;貢獻者使用本機腳本。
- 驗證成品。 檢查時長、尺寸(1080×1920),並在回報完成前至少檢查一個標題影格和一個主體影格。
- 回報路徑。 MP4 / 海報 / 道具的絕對路徑。
撰寫 deck JSON、選取關鍵詞或除錯版面時,請閱讀 references/deck-schema.md。參考 references/example-decks.md 取得種子 deck。選擇主題或解釋主題取捨時,請閱讀 references/themes.md。
網頁 App 路線(預設——適用於所有人)
https://voxflow.studio/apps/slice
工作流程:
- 將文章 / 筆記貼入主編輯器。
- AI 將其切片為 5–8 張卡片。
- 選擇一個主題(13 個選項——參閱
references/themes.md)+ 一個聲音(6 個生產級聲音:男主播 / 霸总男声 / 闲聊男声 / 小美 / 小心 / 小徐)。 - 渲染 → 1080×1920 mp4 + 多重比例封面(9:16 / 3:4 / 1:1)。
告知使用者這是唯一能針對所有 13 個主題產生精確 Slice 渲染的路線——它們是私有 Remotion 組合,未隨 CLI 發佈。
CLI Deck 路線(voxflow slice)
適用於想要結構化 deck JSON 但不需要渲染的使用者——快速(單趟往返,200 配額)、可管線化、支援主題。呼叫與網頁 App 相同的 /api/slice/deck 後端,因此 deck 形狀是標準的。
voxflow slice article.md # 預設主題:paper-slide
voxflow slice article.md --theme editorial-mag -o deck.json
voxflow slice --text "長篇文章..." --theme bold-poster --json | jq .deck
何時使用此路線:
- 使用者想在提交渲染前檢查 / 迭代 AI 的切片品質。
- 使用者想將 deck 貼入網頁 App 的「匯入 deck」流程,以使用不同主題渲染。
- 使用者是擁有私有
video-present/src/compositions/PaperSlideRemotion 組合的貢獻者,並希望在本機渲染 deck——voxflow slice ... --json -o props.json然後將props.json餵入實驗腳本。 - 使用者正在建構需要結構化輸出的自動化(例如從
deck.cards[*].caption + narration以文字形式在 Twitter / 即刻上發佈知識卡片)。
限制:
- 無 mp4。產生 1080×1920 影片的雲端渲染器位於網頁 App 中。
- 無 TTS。如果你想要每張卡片的音訊而不渲染,請將
voxflow slice與voxflow narrate配對使用。
Stage 路線——voxflow slice stage(迭代預覽)
適用於提交雲端渲染之前的人機協作迭代階段。Stage 會啟動一個本機 HTTP 伺服器,支援熱重新載入——每次儲存 deck JSON 時,頁面都會即時更新。無配額成本,無網路往返。
voxflow slice deck.md -o deck.json # 1. 產生 deck(200 配額)
voxflow slice stage deck.json # 2. 開啟本機預覽(免費)
# 3. 手動編輯 deck.json 或重新執行 slice
# 4. 儲存後預覽熱重新載入
想要一個無配額、無需登入的入門範例?直接使用內建範例:
voxflow slice stage examples/11-slice-stage/sample-deck.json
標誌:
voxflow slice stage <deck.json> [--port <n>] [--theme <id>] [--no-open]
--port 預設 5180。發生衝突時會自動跳號 +1 直到 5189。
--theme 將預覽鎖定到一個主題(必須是 13 個有效 ID 之一)。
--no-open 不要自動開啟瀏覽器(CI / SSH / 代理環境)。
何時使用 Stage:
- 使用者處於多輪編輯循環中——文案調整、卡片重新排序、主題 A/B 測試——每次迭代重新開啟 mp4 會造成高昂的摩擦。
- 使用者想要在純文字優先的平台(X / Twitter / 即刻 / Threads / Mastodon / 部落格評論)上將個別卡片發布為純文字。Stage 為每張卡片提供「複製文字」按鈕(標題 + 標題 + 旁白),deck 層級的工具列則提供「複製 JSON / 下載 .json / 複製為 Markdown」用於貼入 Notion / 部落格 / 飞书。針對 小红书 / 微博 / 公众号 頭圖的圖片 / 輪播匯出將在未來階段推出,屆時才會有每張卡片的靜止畫面。
- AI 驅動的循環:代理重新產生
deck.json,人類透過瀏覽器審查——頁面會更新,代理無需重新列印路徑。
文字匯出工具(Phase 1.4 純文字)
Stage UI 提供純文字優先的匯出控制項,讓卡片無需支付完整渲染費用即可在純文字平台上重複使用:
- 每張卡片的「複製文字」——點擊任何卡片上的小按鈕 → 剪貼簿中會得到
{title}\n\n{caption (如果不同)}\n\n{narration}(已修剪)。貼入推文、即刻貼文或部落格片段。 - Deck 工具列——「複製 JSON」——將完整的 deck JSON 複製到剪貼簿(用於管線至自訂工具 / 與另一個代理分享 / 儲存快照)。
- Deck 工具列——「下載 .json」——將 deck 儲存為
<seriesTitle>.json(檔案名稱會自動清理,上限 60 個字元 +.json)。 - Deck 工具列——「複製為 Markdown」——將整個 deck 格式化為 Markdown(H1 = seriesTitle,每個卡片 H2,旁白為 blockquote)。貼入 Notion / 部落格編輯器 / 飞书文件。
格式化器位於 lib/stage-core/deck-format.js(formatCardAsText、formatDeckAsMarkdown、suggestDeckFilename),並在 tests/deck-format.test.js 中有單元測試。它們的原始碼透過 Function.prototype.toString() 被字串化到提供的 HTML 中,因此瀏覽器執行的是與測試相同的程式碼——單一事實來源,無需雙重維護。
針對 小红书 / 微博 / 公众号 頭圖的圖片 / MP4 輪播匯出不屬於 Phase 1.4 純文字。它們將在未來階段推出,屆時才會有每張卡片的 renderStill 縮圖(這需要一個尚不存在的後端 Remotion 端點)。
Stage 不是什麼:
- 還不是完整的 Remotion 預覽。MVP 顯示 deck 結構(卡片 + JSON);雲端渲染的主題縮圖將在 Phase 1.3 透過
renderStill提供。 - 不是完整渲染像素的替代品——主題是伺服器端組合。Stage 預覽的是 deck 文字,而非最終的影片影格。
使用 AI 編輯循環(實際的迭代工作流程)
Stage 不試圖成為 Cursor——它是一個視覺回饋閉環,將提示詞傳遞給使用者已開啟的任何 AI 工具(Claude Code、Cursor、ChatGPT 等)。兩種設計涵蓋整個編輯循環:
| 意圖 | 使用者體驗 | 輸出 |
|---|---|---|
| 整張卡片重寫(「重新產生這張卡片,保留其他」) | 滑鼠懸停在卡片上 → 角落按鈕 使用 AI 編輯 | 彈出視窗,內含提示詞:檔案路徑 + cards[N] JSON 片段 + <你的指令> 欄位 |
| 區域性短語重寫(「就這個短語不對」) | 選取卡片內的文字 → 浮動按鈕 使用 AI 編輯選取內容 出現 | 彈出視窗,內含提示詞:檔案路徑 + 精確選取的子字串(含引號)+ 完整卡片 JSON 作為上下文 |
使用者輸入指令(例如「縮短到 12 個字,更有衝擊力」),點擊 複製提示詞,貼入他們的 AI。AI 使用其原生的檔案編輯工具(Claude Code 的 Edit、Cursor 的 Apply 等)來改寫檔案。Stage 的 SSE 監視器會在大約 150 毫秒內熱重新載入預覽。循環直到滿意為止。
為什麼選擇這種設計而不是內嵌聊天/MCP 伺服器:請參閱 #3330 以了解完整的設計理由(通用複製貼上 vs. 僅限 Claude Code 的 MCP、成本 vs. 覆蓋率的權衡、未來根據使用情況遙測決定是否升級為 MCP)。
CLI 近似路線(完整 mp4 備案)
如果使用者必須從 CLI 取得 mp4(沒有網頁 App,沒有貢獻者的 Remotion 存取權限),則使用 voxflow present 或 voxflow picstory 作為備案——它們涵蓋相同的文章轉影片形式,但使用其各自的視覺方案,而非精確的 13 個 Slice 主題。
voxflow present --text "貼入文章或摘要" --style editorial --output slice-approx.mp4
voxflow picstory --topic "主題" --style sketchnote --scenes 4 --output slice-sketch.mp4
每個 Slice 主題最接近的 CLI 方案:
| Slice 主題 | 最接近的 CLI 路線 |
|---|---|
| paper-slide | voxflow picstory --style sketchnote |
| editorial-mag | voxflow present --style editorial |
| bold-poster | voxflow present --style brutalist(最接近的重量) |
| notion-card | voxflow present --style minimal |
| brutalist | voxflow present --style brutalist |
| glass-dark | voxflow present --style noir 或 --style aurora |
| editorial-stencil | voxflow present --style editorial(無 letterbox / 雙色調等效方案) |
| broadsheet | voxflow present --style editorial(無 FT 鮭魚色調色盤) |
| blueprint | voxflow picstory --style chalkboard(最接近的網格/圖表感覺) |
| daisy-pastel | voxflow picstory --style sketchnote(無粉彩插圖等效方案) |
| showa-catalog | voxflow picstory --style vintage_newspaper(無城市流行等效方案) |
| photo-feature | voxflow picstory --style photo(photo-feature 需要每張卡片的 imageUrl——參閱 deck-schema) |
| atmospheric | voxflow present --style noir |
務必告知使用者:「這是 Slice 的近似草稿。精確的 13 種主題渲染器位於 voxflow.studio/apps/slice。」
本機 Remotion 路線(僅限貢獻者)
如果您的 checkout 中沒有 video-present/src/compositions/PaperSlide,請跳過——這是私有程式碼;npm / skills 使用者不會有。
從貢獻者 checkout 根目錄開始:
cd video-present
node scripts/paper-slide-experiments.mjs
渲染子集:
cd video-present
PAPER_SLIDE_EXPERIMENT_FILTER=research-reading node scripts/paper-slide-experiments.mjs
驗證輸出:
ffprobe -v error -select_streams v:0 \
-show_entries stream=width,height,duration \
-of default=nw=1 out/paper-slide-experiments/research-reading.mp4
ffmpeg -y -hide_banner -loglevel error -ss 9 \
-i out/paper-slide-experiments/research-reading.mp4 \
-frames:v 1 -q:v 2 out/paper-slide-experiments/research-reading-body.jpg
預期:1080×1920,20-35 秒,無黑色閃爍,無標題溢出,圖形未裁切。
Deck 撰寫規則(適用於所有 13 個主題)
- 標題卡片:鉤子、對比或承諾。避免像「介紹」這樣的抽象標籤。
- 主體卡片:一個想法。標題通常少於 16 個中文字元或 7 個英文單詞。
- 旁白:對話式,每張主體卡片 25-60 個中文字元。
- 場景關鍵詞(適合時優先使用):
problem-framing、evidence-board、customer-pain、timeline-review、owner-deadline、risk-guardrail、cashflow-ledger、team-alignment、before-after、learning-loop、decision-fork、growth-system。 - 圖形 / 圖示關鍵詞(視覺強調):
thinking、running、climbing、stuck、celebrating、briefcase、users、target、clock。