Communitygithub.com

lhaovo/short-video-skills

將已通過 G2 的生成清單轉化為真實影片片段——按段落建立 KIE Seedance 任務、輪詢、下載、媒體體檢、抽幀質檢、聽聲核台詞,並將每段的狀態與請求指紋寫入生成台賬。三種模式互斥(文生/首幀圖生/首尾幀圖生)。旁白由模型直接唸,台詞照稿寫進提示詞,不走獨立 TTS 配音。

short-video-skills 是什麼?

這是一個專為影片生成設計的 AI 技能,主要將已確定的畫面與台詞轉化為可用的影片片段,並確保過程可追溯。它支援 KIE Seedance 平台,提供三種互斥的生成模式(文生、首幀圖生、首尾幀圖生),讓使用者根據需求選擇最合適的方式。此技能的獨特之處在於旁白由模型直接朗讀,台詞直接嵌入提示詞中,而非使用獨立的 TTS 配音,這簡化了工作流程但更需仔細核對台詞正確性。技能包含七個步驟:讀取清單、決定模式、撰寫提示詞、提交任務、輪詢下載、媒體體檢(腳本檢查)、以及抽幀質檢與聽聲(人工檢查)。它也內建了批次處理、並發控制、以及詳細的錯誤定位與處理機制。所有生成的狀態與指紋都會記錄在生成台賬中,以避免重複提交。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/lhaovo/short-video-skills/tree/HEAD/short-video-generate

在你喜歡的 AI 中提問

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

說明文件

影片生成台

只做一件事:讓已經定死的畫面動起來,並且留下可追溯的記錄。

影片模型在這裡負責三件事:動作、運鏡,以及把旁白唸出來。主體長相、服裝、場景、色板、光線、構圖、螢幕文字在 S1/S2 已經鎖死,這一層不允許重新創作。它一旦開始"發揮",整條片子的一致性就崩了。

旁白不再走獨立配音。 台詞寫進提示詞,由模型直接唸——這是這套流程和傳統做法最大的不同,也是這一層最需要盯的地方。


一、進來的前提

四樣東西缺一不可,缺一樣就退回上一段:

要件在哪缺了會怎樣
03-生成清單.mdshort-video-prompt 產出,且 G2 已過不知道該出幾段、每段多長
每段台詞原文清單的逐段提示詞裡模型不知道唸什麼,會自己編
資產圖 / 首幀04-素材/01-資產圖/、04-素材/02-首幀/主體每段一個樣
KIE_API_KEY環境變數提交不了任務

沒有首幀不等於不能做:純氛圍、空鏡、轉場可以直接文生。但有主體出現的段落必須有圖,這是硬線。

沒有台詞的段落可以不做旁白,比如空鏡、純音樂段。但一旦這段要說話,台詞就必須進提示詞——這是現在唯一的聲音來源。


二、三種模式,互斥不可混用

平台一個請求只能選一種,字段越界就變成另一個模式,任務會直接失敗。

模式必填什麼時候用明確禁止
text 文生prompt空鏡、氛圍、純背景光效、轉場帶 first_frame_url / last_frame_url
first 首幀圖生prompt + first_frame_url預設走這個:需要鎖定起始構圖帶 last_frame_url
first-last 首尾幀prompt + 首幀 + 末幀需要同時鎖起始和結束、保證相鄰段能接—

清單裡的「參考圖」模式怎麼落

short-video-prompt 的清單模式列可能是「首尾幀 / 參考圖 / 文生」。當前模型沒有參考圖模式——reference_image_urls 這類字段在這個模型上不開放。所以要做一次映射:

清單寫的是實際提交成說明
首尾幀first-last直通
參考圖first把參考圖當首幀用,鎖起始構圖
文生text直通,但只對無主體鏡頭成立

這一步不是妥協,是能力邊界。 如果某段確實需要"參考圖鎖主體 + 自由構圖",只能靠首幀把構圖也一起鎖掉,或者回到 S2 改切段。


三、參數口徑

參數取值預設說明
duration4–15 整數秒5超 15 拆鏡,低於 4 交後期做動效或裁切
aspect_ratio9:16 / 16:9 / 1:1 / 3:4 / 4:3 / 21:9 / adaptive9:16adaptive 只給文生,圖生必須寫死比例
resolution480p / 720p480p預設控制生成成本;需要正式交付清晰度時顯式傳 720p
generate_audiotrue / falsetrue不能關。旁白就在這條音軌裡,關了等於沒聲音
web_searchtrue / falsefalse只對文生可用,一般不用

三條容易踩的:

  1. 比例必須與實際輸出一致。模型返回明顯不符比例或帶黑邊的結果,判質量失敗,不許 letterbox 之後當成片交上去。
  2. 音頻必須開。旁白、環境音全在這一軌裡。只有純空鏡確實不需要聲音時才用 --no-audio。
  3. duration 寫整數。傳 5.5 會被拒。

四、七步流程

① 讀清單 → ② 定模式 → ③ 寫影片提示詞 → ④ 提交 → ⑤ 輪詢下載 → ⑥ 媒體體檢 → ⑦ 抽幀質檢

① 讀清單,先判能不能跑

逐段核對三件事,對不上就停下來問,不要猜:

  • 每段的 duration 是否在 4–15 之間(超了先拆)
  • 聲明的首幀檔案是否真的存在
  • 引用的素材編號是否都在資產清單裡

② 定模式

按第二節的表逐段定,一整個項目盡量統一。混用不是錯誤,但混用會讓相鄰段銜接更難看。

③ 寫影片提示詞

按 references/video-prompt.md 的七段結構寫。兩條核心:

  1. 只描述"變化",不重新描述"是什麼"。 首幀已經給了模型產品長什麼樣,提示詞再描述一遍,等於讓它按文字重畫,一致性立刻丟。
  2. 台詞照抄稿子,一字不改。 旁白現在由模型直接唸,台詞原文必須進提示詞。改一個字,字幕就對不上音。

④ 提交

python scripts/kie_seedance.py create \
  --prompt "…" --mode first \
  --first 04-素材/02-首幀/S01_f01_v1.png \
  --duration 6 --out 04-素材/03-片段/S01_v1.mp4 --wait

提交成功後立刻把 taskId 和指紋寫進台賬,再去做別的事。先做後記,中途斷了就找不回來。

④-2 整條片子批次跑(預設 5 路並發)

一段一段序列跑,6 段就是半小時以上,而且大部分時間在等。批次並發跑,總時長約等於最慢的那一段。

# 先預演,把拼裝好的請求體看一眼
python scripts/kie_seedance.py batch --tasks tasks.json --out-dir 04-素材/03-片段 --dry-run

# 確認後真跑,預設 5 段同時
python scripts/kie_seedance.py batch --tasks tasks.json --out-dir 04-素材/03-片段

# 被限流就降
python scripts/kie_seedance.py batch --tasks tasks.json --out-dir 04-素材/03-片段 --concurrency 2

任務表格式見 assets/batch-tasks-example.json,每段一條,mode / first / last / duration / prompt 含義與單條命令一致。

並發不是越快越好,它有個真實的坑:台賬會被寫亂。

5 段同時跑完,如果每段一結束就去改 00-生成台賬.md,五次寫入會互相覆蓋,最後只剩一段的記錄。正確做法是:

① 批次跑完,收下匯總裡的 items(已按清單順序排好)
② 一次性回寫台賬:五段一起寫,而不是跑一段寫一段
③ 回寫後立刻核對:清單幾段,台賬就該有幾行

如果你更想邊跑邊記,那就把並發降到 1——序列 + 邊跑邊記,是唯一不會寫亂的方式。這個取捨自己定,但不能既並發又零散寫。

被限流的表現是 code != 200 或 HTTP 429,不是"畫面變差"。看到這類報錯先降並發,不要改提示詞。

失敗不中斷:一段掛了,其餘照跑,最後看匯總裡的 failed。想要"一錯就停"加 --stop-on-error,它會停止提交新任務,已經在跑的不受影響。

⑤ 輪詢下載

--wait 會一直等到下載完成。也可以分開做:create 拿到 taskId → wait --task-id。

輪詢間隔從 6 秒起逐步拉長到 30 秒,上限 15 分鐘。超時不代表失敗,先查狀態再決定。

⑥ 媒體體檢(腳本判)

# 有台詞的段:音軌必須存在
python scripts/inspect_clip.py --file 04-素材/03-片段/S01_v1.mp4 \
  --ratio 9:16 --duration 6 --expect-audio

# 無台詞的空鏡:應當沒有音軌
python scripts/inspect_clip.py --file S02_v1.mp4 --no-expect-audio

查五件客觀事實:檔案在不在、大小是否正常、時長對不對、比例對不對、音軌在不在。通過只說明"下到了能播的檔案",不說明畫面能用,更不說明台詞唸對了。

音軌這一項現在比以前重要:旁白就在這條音軌裡。沒有音軌 = 這段沒聲音,等於廢片;有音軌但唸錯字,腳本查不出來,只能聽。

⑦ 抽幀質檢 + 聽聲(人判)

畫面:抽至少三個點(開頭、中段、結尾),按 references/clip-review.md 的七項看。

聲音:旁白現在由模型唸,所以每一段帶台詞的片段必須聽一遍,對照原稿核三件事:

聽什麼判據
有沒有漏句原稿幾句,就應聽到幾句
有沒有唸錯字關鍵詞、品牌名、數字對不對
有沒有多餘聲音不該出現的配樂、旁人、雜音

唸的和稿子不一致時,不要將就。 兩種處理:重出這一段,或改字幕去貼合實際唸的內容。唯一不能做的是照原稿打字幕——觀眾聽到的和看到的對不上,比唸錯本身更傷。

這一項必須聽。含糊關鍵字可重複轉寫至少三次輔助比對,逐句人工終審後把結論寫入 04-素材/00-台詞定案.json;見 references/clip-review.md。


五、三層狀態,別混成一個

狀態誰判含義
媒體通過腳本檔案完整、參數符合、音軌在
畫面通過人看主體沒變、沒畸形、能接上下一段
台詞通過人聽台詞唸全了,關鍵詞沒唸錯

三個都過,狀態才能寫「質量通過」。

把"下載完成"當"可用",是這條鏈上最常見的錯誤——片子進了剪輯台才發現第 4 段主體變了,前面白拼。現在多了一層:畫面都對、台詞唸錯一個字,整段還是廢的,因為字幕沒法對。

台詞這層最容易被跳過,因為它需要安靜地戴耳機聽,而不是掃一眼。


六、台賬:寫在 04-素材/00-生成台賬.md

一段一行,記六項:請求指紋、模式、taskId、狀態、輸出檔案、失敗原因。

台賬的作用不是留檔,是防重複提交。同一條片子隔一天回來接著做,讀台賬就知道哪段已完成、哪段提交過沒下載、哪段失敗過。

規則見 references/task-ledger.md,四條摘要:

  1. 狀態是「質量通過」且檔案在 → 跳過
  2. 有 taskId 且狀態是「等待中 / 生成中」→ 只查詢,不新建
  3. 狀態是「生成成功,待下載」→ 只下載;URL 過期就查同一 taskId 換新 URL
  4. 狀態是「失敗」→ 不自動重提,等用戶明確說重做

七、失敗怎麼處理

先定位是哪一層壞的,再決定改什麼。 別一上來就改提示詞。

現象病根改哪裡
主體變形、產品變樣沒有首幀,或首幀本身就不對補首幀 / 換首幀
畫面抖、閃爍動作寫得太多刪到只剩一個動作
文字錯亂、多出手指要求模型寫文字/複雜手部動作文字交後期,手部動作簡化
比例不對、帶黑邊參數與返回不符判失敗,重出,不裁黑邊
段與段接不上末幀與下一段首幀不一致用首尾幀模式,或補交接幀
漏唸、只唸半句該段台詞字數超出鏡長砍台詞,或把這一段拆兩段
唸錯字、唸成別的詞生僻字、多音字、品牌名夾在長句裡換成常用說法;品牌名單獨成句
台詞被配樂蓋住提示詞沒寫"無配樂"或不蓋人聲補一句聲音約束,重出
完全沒聲音誤用了 --no-audio,或音頻沒開檢查提交參數,重出
提交就報錯 / 429並發放太高被限流--concurrency 2 重跑,別改提示詞
同一段反覆失敗有多個變數同時變一次只改一個變數

台詞類問題佔了一半以上。 這類問題的共同點是:畫面看著挺好,只有聽才發現。所以每段必須聽完再定通過。

返修時一次只改一個變數。同時改提示詞、時長和首幀,即使成功了也不知道是哪個起了作用,下次同樣的問題還會再犯。

詳細診斷見 references/clip-review.md。


八、邊界

  • 不重新設計視覺:主體、場景、色板、光線在 S2 已鎖定,這裡只讓它們動起來
  • 不改台詞文本:原稿怎麼寫就怎麼唸。要改詞,回 S1/S2 改,不在這裡臨時調整
  • 不做字幕:文字一律後期疊。模型可以"唸"中文,但不能"寫"中文
  • 不修音頻:唸錯的段落只能重出,或改字幕去貼合。這裡不混音、不補錄
  • 不做剪輯:不拼段、不卡點、不調色,那是 S4
  • 不判斷"好不好看":只判斷"能不能用"。觀感是審片環節的事
  • 不承諾一次就過:生成是機率事件,2–4 個候選是常態,不是失敗

九、參考資料

檔案什麼時候讀
references/api-and-modes.md查介面、參數、三模式字段、錯誤響應時
references/video-prompt.md寫影片提示詞、改提示詞時
references/task-ledger.md建台賬、續做、判斷該不該重提時
references/clip-review.md抽幀質檢、判失敗、決定返修方向時
references/assembly-ops.mdS4 拼接、字幕與混音的 FFmpeg 實施細節
assets/gen-ledger-template.md建台賬時
assets/dialogue-final-template.json記錄定版台詞、轉寫輔助和人工終審時
assets/batch-tasks-example.json批次跑清單時

腳本:

腳本用途
scripts/kie_seedance.py提交 / 批次 / 查詢 / 等待下載 / 上傳參考幀
scripts/inspect_clip.py媒體體檢(需要 ffprobe)

Individual skills in this repo

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

lhaovo/short-video-skills

为视频生成准备可用的图——把资产清单变成能直接喂给图生视频的素材:排生产顺序、定资产级别、出候选图、做一致性验收、按编号落盘、回写清单状态。支持三种来源:实拍、AI 生成、官方素材,不强制实拍。当用户说「准备素材」「出资产图」「首帧图」「角色三视图」「产品图跑一下」「资产对不上」「这条要哪些图」时使用。只管把图做出来并验收,不写分镜,不直接生成视频。

lhaovo/short-video-skills

一条短视频从策划到发布的流程总控:建制作目录、依次走「剧本分镜 → 提示词 → 生成 → 交付 → 发布」五段、每段设门禁、记录流程状态、支持跨会话续做。当用户要开一条新片子、问「下一步做什么」、想接着做某条没做完的片子、要把分镜变成提示词、要整理素材与成片、要准备发布包时使用。本技能只规定流程、目录与产物标准,不重复各环节的写作规范。

lhaovo/short-video-skills

把「我想拍点什么」变成一条想清楚的片子——先定主题(出 5 个候选、标明类型、给出推荐与淘汰理由),再定结构与分段剧本,最后切成镜头级内容分镜。支持两种入口:一句话主题(需要发散选题)与已有拆解剧本(跳过选题,先问复刻需求与复刻强度再判定改写)。当用户提到选题、定主题、短视频策划、写剧本、写大纲、分镜、镜头脚本、不知道拍什么、内容怎么排、科普干货、剧情软广、钩子怎么写、复刻别人的剧本时使用。只管内容层(讲什么、怎么讲),不碰执行层;内置的内容红线只防明显自伤,不替代合规审查。

lhaovo/short-video-skills

把已定稿的分镜表翻成可直接执行的两份清单——资产清单(要准备哪些图、每张图的图像提示词)与生成清单(每段视频的时长、模式、素材引用与提示词)。覆盖画面化、资产编号、切分生成单元、Seedance 视频提示词写法、首帧方案、一致性与失败诊断。当用户说「把分镜变成提示词」「写视频提示词」「这条片子要哪些图」「生成清单」「某个镜头生成不出来」时使用。只做翻译与清单,不重新编排内容,不直接出图出片。

相關技能