name: short-video-factory description: 批量剪辑竖屏促销短视频(抖音/视频号,30 秒左右):实拍素材 + 活动"明白卡" → 按爆款模板自动写文案、剪映 SAMI 配音、选镜头、渲染 60fps 成片、自动质检,一条命令出 N 条内容各不相同的成片。用户说"批量剪视频/复刻爆款/按模板出片/照着这个视频剪 N 条/商场活动短视频/量产短视频"时使用。代码仓库在 E:/short-video-factory(GUI: app.py)。
Short Video Factory
把"一堆实拍素材 + 一张活动明白卡 + 一条参考爆款"变成几十条内容各不相同、可直接交付的 30 秒竖屏促销片。
仓库:E:/short-video-factory(Python,独立 .venv)。项目数据在单独的项目目录(config.json 的 project),代码里不放任何客户内容。
何时使用
- 用户要"照着某条爆款剪 N 条"、"批量出片"、"把这些素材剪成促销短视频"
- 已有项目要继续出片、改文案、改风格、修甲方反馈
硬性规则(违反就会交付事故)
- 促销数字只能来自明白卡:写在项目
project.json的number_whitelist。文案里出现白名单外的数字,生成器会拒绝——不许为了通过而把数字加进白名单,先问用户。 - 禁用词:
banned_words(极限词 + 甲方点名不要的词,如"双节")。 - 风险素材不用:素材索引里带标记的(儿童/路人正脸、明星肖像、品牌自有折扣牌、拍摄者手指入镜、虚焦、汉堡节等非本档期招牌)。
- 配音数字读法:配音文本自动转中文(450团500 → 四百五十团五百),字幕仍显示阿拉伯数字。新增数字时同步补
spoken_numbers。 - 不付费:配音用剪映 SAMI(经 jianying-editor skill)、音乐用剪映云端曲库,本机渲染。要用付费配音/生成前先问用户。
- 只动项目目录和仓库,原始素材只读。
- 看不到画面/听不到声音的结论要说明是"抽帧/转写核对",声音听感让用户判断。
标准流程
cd E:/short-video-factory
.venv/Scripts/python app.py # 图形工作台 http://127.0.0.1:7860
# 或命令行:
.venv/Scripts/python svf/batch.py --n 6 --start 601 -j 3 --qc-sample 0.2 # 出 6 条
.venv/Scripts/python svf/batch.py --n 70 --start 900 --dry # 只预演文案重复度
产出:<项目>/成片/批次_bXXX-bYYY/(mp4 + 抽帧 + 报告.md + 清单.csv)。每条也会生成剪映草稿(可人工精修后在剪映里导出)。
新项目接入(一次性)
- 建项目目录,写
project.json(参考仓库projects/example/project.json):品牌名、素材源sources、白名单、禁用词、配音、音乐、博主口播片段。 svf/ingest_mingbaika.py 明白卡.xlsx→ 列出明白卡里的数字,和用户确认后写白名单。svf/ingest_proxy.py→ 全部素材转 1080x1920/60fps 预览(HDR 自动色调映射)。svf/ingest_sheets.py→ 联系表;Claude 看联系表给每段素材分类 + 打风险标记,写数据/素材索引.json(字段:文件/时长/类别/内容/标记/预览)。svf/ingest_transcribe.py→ 博主口播转写,挑可用原声句写进project.json的host_clips。- 参考爆款:逐帧拆解(镜头时长、转场位置、字幕样式、花字),必要时用素材逐帧比对还原对方的剪辑清单;沉淀到
templates/。 - 写
数据/文案池.json(每类 5–10 种说法),GUI"文案池"页检查通过后再出片。
五种风格(轮换分配)
S1 信息种草 · S2 博主口播(原声+口型同步加速)· S3 卡点混剪(镜头吸附音乐拍点)· S4 清单体(N 个理由)· S5 美陈氛围(慢节奏)
甲方反馈的处理方式
- 改措辞 → 改文案池 / 禁用词,不要手改单条脚本(生成器会覆盖)
- 语速 →
project.json的batch.speed(每风格) - 画面抖/掉帧 → 已默认 60fps + 1.5 倍预放大;仍抖就查该镜头素材本身
- 字幕断句错 → 把词加进
caption_words(不会被劈开)
经验与坑
见仓库 docs/经验教训.md。最重要的几条:剪映 6.0+ 草稿加密、11.5 无法自动导出;SAMI 会把 500 读成"五零零";整段转写会漏句/重复(要逐句);并行渲染受 CPU 限制;素材 HDR 不做色调映射会发灰。