Communitygithub.com

一句話影片

將使用者的一句話需求,自動製作成配有音樂和字幕的 MP4 短影片:可用於解說、科普、產品介紹、數據播報、知識卡片,長度 20 到 90 秒,支援橫屏或豎屏。只需填寫一份 video.json,一條命令即可產出影片;可將實拍素材片段剪輯進去,也能匯出 Final Cut Pro 和剪映的專案檔以供後續剪輯;無需影片生成模型,Windows、macOS、Linux 通用。

一句話影片 是什麼?

這項技能「一句話影片」能讓 AI 根據使用者的一句簡單需求,自動生成一支結構完整的短影片。它徹底簡化了影片製作流程:使用者只需提供一個主題或一句話,AI 便會負責設計影片風格、規劃每場畫面,並產生一份標準化的 `video.json` 設定檔。接著,技能會自動調用本機工具(Node.js、ffmpeg 等)來合成影片,包含時間軸、配樂、字幕、轉場與編碼。它支援多種內建版式(如對比圖、步驟圖、數據條)與風格包(如紙藝、黏土、立體等 15 種視覺風格),讓影片在無需任何影片生成模型的情況下,依然擁有豐富的視覺效果。此外,它還支援將使用者提供的實拍或錄屏素材剪輯進影片中,或匯出 Final Cut Pro / 剪映的專案檔供後續進階編輯。此技能適用於 Windows、macOS、Linux 平台,適合需要快速產出高質量講解、科普、產品介紹或數據播報影片的開發者與內容創作者。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/li2092/one-prompt-video/tree/HEAD

在你喜歡的 AI 中提問

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

說明文件

一句話影片 是做什麼的?

使用者給一句話,你先做設計:定風格,定每一場畫面上看到什麼。然後寫一份 video.json,題材裡看得見的東西由你寫畫面程式碼畫出來。腳本負責排時間、配樂、字幕、編碼、自檢。

下文命令裡的 SKILL 要換成本檔案所在目錄的絕對路徑(例如 /home/me/skills/one-prompt-video)。所有命令在使用者的當前工作目錄裡跑,檔案路徑都相對它。

五步

1. 準備環境(每個工作目錄跑一次)

node "SKILL/scripts/setup.mjs"

它檢查 Node、畫圖庫、ffmpeg、中文字體,缺的會裝或告訴你怎麼裝。全部 [通過] 再往下走。有 [缺少] 時把那幾行原樣告訴使用者。

2. 設計(不反問使用者,自己定,最後告訴使用者你定了什麼)

在當前工作目錄新建一個資料夾(用片名,下面叫 片名/),先把設計寫進 片名/方案.md,十幾行就夠。寫完方案再寫別的。只有文字卡片的片子觀眾看不下去,這一步決定片子好不好看。

補齊使用者沒說的

使用者沒說的預設
多長30 秒左右,5 到 8 場
橫屏豎屏橫屏 16:9;提到手機、豎屏、抖音、小紅書、影片號用 9:16
語言和使用者說話的語言一致
人聲不要。預設是字幕加配樂。本技能不帶配音服務:使用者要人聲時,先告訴他配音要自己準備(一個能從命令列出聲的 TTS,或自己的錄音),再照 references/voice.md 接

定風格

  1. 使用者要的是氛圍、故事、場景、角色,或者說了「不要解說」「要畫面感」「像電影」:這支片子不用版式,整支由你畫。改讀 references/film.md,照它做。
  2. 其餘的片子從下面的風格包表裡選一個。風格包自帶場景、道具、角色、轉場和音效,畫面比內置主題豐富得多。按題材選:先看「適合」一欄;對得上不止一個時,選和題材裡的實物最近的(手作、食物、生活小事選 papercraft 或 clay,設備和流程選 isometric,帳目和業績選 dashboard)。使用者點名了一種樣子(「像打遊戲」「做成聊天記錄」「新聞播報那種」)就用對應的風格包。
  3. 內置主題只在兩種情況用:使用者明說要簡潔、克制、商務;或者內容嚴肅,裝飾會妨礙閱讀。用內置主題的片子,自己畫的場要佔到一半。
  4. 定一樣貫穿全片的東西:題材裡的一件實物(機翼、咖啡豆、月亮、店鋪的門臉)。它在片頭出現,在後面幾場裡再出現,片子才連得起來。

定每一場

方案裡列一張表,每場一行,按這個順序想:

這一場要讓觀眾明白的一件事畫面上看到什麼怎麼做(哪種版式,或自己畫)旁白

「畫面上看到什麼」寫的是圖:一樣東西、一個過程、一張圖表、一個結構。先想圖,再想字。照下面八條定:

  1. 遮字看。 把這一場的字全部遮掉,剩下的畫面還看得出在講什麼,這一場才成立。講機翼,畫面上要有機翼和氣流;講咖啡訂閱,畫面上要有盒子、豆袋和沖煮卡片。
  2. 看得見的東西自己畫。 題材裡的實物、過程、結構,用 layout: "custom" 寫畫面程式碼畫出來,寫法見 references/custom-scenes.md。全片最要緊的那一場必須是自己畫的;一支片子至少兩場自己畫,三分之一以上更好。
  3. 版式按資訊的形狀選,讓版式自己說明關係。 比大小用 bars,先後順序用 steps,兩方對照用 compare,一個真實的量用 number(序號、鐘點、編號不是量,不用 number)。statement 全片最多一場,bullets 最多一場,quote 只放真實的引語。
  4. 不寫次要的標籤和說明。 kicker、subtitle、note、label、cta 和每一場的 title 預設都不寫。只有去掉它觀眾就看不懂這一場時才寫。版式已經表達的關係不用文字再說一遍:長條圖不用起「四個季度對比」這樣的標題,步驟不用寫「第一步」,對比卡不用寫「對比」。
  5. 畫面與旁白分工。 旁白(say)講完整的句子,講的是畫面上正在出現的東西;畫面上只留圖、關鍵詞和數字。同一句話不既排成大字又放進字幕。
  6. 相鄰兩場不一樣。 同一種版式不連用兩場;上一場是居中大字,下一場就換成圖或圖表。
  7. 重點省著用。 大數字、金句全片各一次。
  8. 頭尾。 第一場用 title,開頭兩場內說清這支片子講什麼。最後一場用 end,落在一句結論或一個行動上;結尾比開頭小、比開頭短:一句話,加上那樣貫穿全片的東西。

你看不了圖、也寫不了畫面程式碼時,第 2 條做不到:照常用風格包和版式做,回報時如實告訴使用者這支片子以文字版式為主。

3. 寫 video.json 和畫面程式碼

照方案寫 片名/video.json:

{
  "title": "一句話,出一支片",
  "theme": "papercraft",
  "aspect": "16:9",
  "seconds": 30,
  "scenes": [
    { "layout": "title", "title": "一句話,出一支片", "say": "說一句話,就能拿到一支短影片。" },
    { "layout": "custom", "module": "scenes/pipeline.mjs", "seconds": 7, "cues": 3, "say": "你說一句話,模型做設計、填表,腳本把它變成片子。" },
    { "layout": "bars", "unit": "秒", "items": [{ "label": "第 1 次", "value": 68 }, { "label": "第 2 次", "value": 51 }, { "label": "第 3 次", "value": 57 }], "say": "小模型測了三次,每次一分鐘左右。" },
    { "layout": "custom", "module": "scenes/laptop.mjs", "seconds": 6, "say": "一台普通的筆記型電腦就能出片。" },
    { "layout": "end", "title": "現在試試", "say": "現在就試一次吧。" }
  ]
}
  • seconds 是全片的目標時長,腳本會按它分配每一場的時間,成片和它差三秒以內是正常的(每場要湊成整數拍,片尾還有一秒多淡出)。不寫就按字數自動估。
  • say 是這一場的字幕(有配音時也是配音稿)。每場一句,30 個漢字以內(英文 12 個詞以內)。
  • 自己畫的場,畫面程式碼放在 片名/scenes/ 裡。每寫完一場先出靜幀看(--still),認得出畫的是什麼再寫下一場。
  • 畫面上的字是給人掃一眼的,要短。寫不下就拆成兩場,不要把一場塞滿。
  • 不編事實。使用者沒給的數字、引語、人名、公司名不要寫成真的;要舉例的數字,在旁白裡說明是示意。產品的功能和效果只用使用者給的說法;你自己補的解釋,在最後回報時逐條列出來請使用者核對。

只用版式的完整例子在 SKILL/assets/example.video.json。

4. 校驗,出片

node "SKILL/scripts/make.mjs" 片名/video.json --check    # 先校驗,幾秒鐘
node "SKILL/scripts/make.mjs" 片名/video.json --sheet    # 出總覽圖,看過再出片
node "SKILL/scripts/make.mjs" 片名/video.json            # 出片
  • --check 報 [出錯] 時,每一條都寫了第幾場、哪個欄位、正確的寫法。照著改,再跑,直到通過。
  • 你能看圖的話,打開 片名/out/sheet.jpg 逐格看。每場兩格:第一格是入場到一半,第二格是全部到齊,以第二格為準。每一格問四件事:遮掉字還看得出在講什麼嗎;主體夠不夠大(佔畫面寬或高的六成以上);有沒有一大片空著;有沒有字擠在一起或一個詞被折成兩行。有一條不過就改,改完重出總覽圖。
  • 出片後讀它列印的報告(也存在 片名/out/report.txt)。有 [問題] 或 [注意] 就改了重跑;最常見的是「字太多」,把那段字縮短。

5. 告訴使用者

說清四件事:成片在哪(報告裡「成片:」那一行的路徑,檔名是 title 加 .mp4);你替使用者定了什麼(時長、畫幅、風格、哪幾場是自己畫的);片子裡哪些內容是你補的;畫面好不好看、配樂好不好聽你沒法判斷,請使用者看一遍。成片沒有人聲時順帶提一句:想加配音,要他自己找一個 TTS 接進來。

風格包

每個風格包是一整套畫面:九種版式各按自己的樣子重畫,帶自己的場景、道具、轉場、字幕和音效。theme 寫它的名字就行。

theme樣子適合
papercraft多層卡紙的景箱、紙片小人、定格抖動輕鬆的科普、產品介紹、小故事、生活類
clay暖色黏土定格,圓潤的小角色入門講解、習慣和健康、給孩子看的內容
collage牛皮紙、撕紙、膠帶、剪下來的字輕鬆的科普、盤點、欄目開場
skit扁平插畫的辦公室,兩個小人對內容有反應給非專業觀眾講道理、職場話題
isometric2.5D 的機器、傳送帶、檢查站講流程、講原理、講系統怎麼運轉
cosmos深空、星雲、發光的星體和軌道講全域、講層次、系列開篇
dashboard暗色數據大屏:面板依次點亮、儀表弧、長條圖業績、評測、監控、成本這類帶數字的內容
news演播室、標題條、滾動字幕條要點快遞、週報、數據播報
chat手機裡的一段聊天記錄,內容是一條條氣泡口語化解說、案例、問答
comic黑框分格、網點、速度線、擬聲字有轉折的故事、前後反差
detective軟木板、拍立得、便簽、紅線排查問題、複盤一件事的來龍去脈
arcade8-bit 像素遊戲:磚塊、金幣、關卡地圖講步驟、比高低、輕鬆的產品介紹
variety多層描邊花字、放射線、吉祥物、彈幕條最熱鬧的短影片、吐槽、盤點
vhs錄影帶:掃描線、換台、老電視、走帶計時懷舊向、系列節目的片頭和預告
chrome鍍鉻立體字、流動的液態漸變、星形閃光年輕向的短句、潮流話題,不適合嚴肅內容

預覽圖在 SKILL/assets/styles.jpg,能看圖就先看一眼再選。風格包的裝飾多,一場裡的字要更短;news 會把內容排成新聞節目的樣子,內容不是真新聞時在回報裡提醒使用者一句。

這些只是現成的起點,風格不設上限:要一整套新的樣子(手帳、黑膠唱片、地鐵線路圖,什麼都行)照 references/style-packs.md 寫一個自己的風格包。

十二種內置主題

主題只換顏色、背景和線條,畫面裡沒有場景和道具。用它的條件見第 2 步「定風格」第 3 條。

theme樣子適合
grid米色網格紙、紫色、白卡片講概念、講原理
minimal大面積留白、細線、一個藍點安靜克制的品牌片、片頭
pop撞色、放射線、粗黑描邊熱鬧、快節奏、短影片平台
keynote深色漸變、玻璃卡片、發光新品、重大結論、科技話題
blueprint藍圖紙、白線、黃色標註講結構、架構、怎麼組裝
whiteboard白板、麥克筆、手畫的框老師邊畫邊講,講流程和因果
chalk墨綠黑板、粉筆線、木邊框課堂板書,講題、講公式、講步驟
neon深紫夜色、發光線條、透視網格科技、遊戲、電子音樂
terminal黑底綠字、等寬字、閃爍的游標程式碼、命令列、開發工具
paper米色紙面、襯線大標題、紅色評論、讀書、人文話題
ink宣紙、遠山、朱紅印章傳統文化、詩詞、歷史
bold黑白粗體、硬切、一種紅色觀點、口號、榜單

預覽圖在 SKILL/assets/themes.jpg。使用者要別的顏色用 colors 換。

版式

每一場選一種,或者自己畫。一場只講一件事。

layout什麼時候用必填預設不寫的限制
custom題材裡看得見的東西:實物、過程、結構module、secondscues、data見 references/custom-scenes.md
title開頭titlesubtitle、kicker標題 12 字以內
bars比大小items(2 到 6 項,每項 label 和數字 value)title、unit(接在每個數後面)、highlight(第幾根用強調色,從 1 數;不寫是最高的那根)label 8 字以內
steps先後步驟、流程items(2 到 5 步)title每步 12 字以內
compare兩樣東西對照left、right(各有 title 和 1 到 4 條 items)title每條 12 字以內
number一個真實的量,全片一次valueunit、label、notevalue 寫成 "25"、"80%"、"1,280"
statement一句要讓人記住的話,全片最多一場texthighlight(text 裡要上色的詞)24 字以內
bullets並列的幾個要點,全片最多一場items(2 到 5 條文字)title每條 18 字以內
quote真實的引語textby40 字以內
end結尾titlesubtitle、cta(按鈕上的字)標題 14 字以內
  • unit 是數字的一部分,該寫就寫。number 的 label 只在光看數字和單位不知道它量的是什麼時才寫。
  • 每種版式都可以加 say(字幕)和 seconds(這一場固定多少秒)。

使用者給了影片素材(實拍、錄屏、已有的片子)時,還有一種 clip:把素材裡的一段放進來,和上面的版式混著排,整支片子全是 clip 就是剪輯。寫法:{ "layout": "clip", "file": "素材/採訪.mp4", "from": 12.4, "to": 18 }。怎麼看素材、怎麼定取哪一段,見 references/editing.md。

要更多的時候

需要讀
自己畫一場:實物、過程、結構(每支片子都要用到)references/custom-scenes.md
使用者要的是氛圍、故事、場景、角色,或整支片子都是自己設計的畫面references/film.md(你寫每一幀怎麼畫,腳本管鏡頭、配樂、出片和自檢;要能看圖)
全部欄位、換顏色、換字體、固定某一場的秒數references/video-json.md
加人聲(配音要使用者自己找 TTS 或自己錄),換成自己的配樂檔案references/voice.md、references/video-json.md
使用者給了影片素材要剪進去,或者要剪輯已有的影片references/editing.md
使用者要在 Final Cut Pro、剪映裡接著剪(出片命令加 --project)references/editing.md
現成的主題和風格包都不對,要一整套新的樣子references/style-packs.md(寫一個風格包,要自己寫幾百行畫面程式碼並對著圖改,先確認自己做得了)
安裝失敗、字體方框、ffmpeg 報錯references/troubleshooting.md
使用者明確要 3D 場景、全屏著色器的自然風景這類畫布畫不了的片子references/pipelines.md(參考生產線,要自己寫程式碼,先確認自己做得了)
使用者機器上有 Blender、庫樂隊,或有豆包語音的金鑰,想要寫實渲染、真實樂器的配樂、自然的人聲references/external-tools.md(藉助外部工具,給能力強的模型,先確認自己做得了)

這個技能做不了的:憑空生成真人或實拍的畫面(實拍只能用使用者給的素材)、對素材做調色去背這類精修(匯出工程交給剪輯軟體做)。遇到這類需求如實告訴使用者。

相關技能