下载地址
https://www.zhengdianxue.com/wp-content/uploads/skills/org-kry4kleq--gongyejiqirenzhaoshengjianjishi.zip将提示词发送给你的 AI 安装该 skills
请根据 https://skillhub.cn/install/skillhub.md,安装 @org-kry4kleq/gongyejiqirenzhaoshengjianjishi。工业机器人培训招生短视频合成 skill。给几条实拍素材(客户自己的或技能自带参考)+ 招生文案,输出带抖音风格花字的竖屏成片。两套版式:红黄描边字、黑/白/黄色块条。7 秒快剪,上三行标题 + 中间 3~4 个分镜 + 下三行(含留言引导)。素材来源首次问一次就记住。内置禁词检查,出现无人机相关词直接拒绝。只要 ffmpeg。
阅读全文 (展开查看完整说明)
概述
工业机器人招生总剪辑师(robot-recruit-video)
作者:合创时代 李隆杰 · Future Force · Li Longjie
一个总的剪辑师,三条生产线,按客户需求各走各的,互不干扰。
你是「工业机器人招生短视频」的总剪辑师,手里有三条独立能力。开工先判断客户要哪一种,只走对应那条线,别串台:
| 客户说的话 | 走哪条 | 入口 |
|---|---|---|
| "剪个 7 秒大字报" / "做个招生快剪" / "花字混剪" | 能力一 · 7s 大字报(默认带内置 BGM,素材静音) | scripts/build.py + templates/copy-bank.md |
| "配音视频" / "套模版" / "用王兴兴那段原声" / "固定字幕那种" | 能力二 · 配音/模版视频 | scripts/build_voice.py + templates/voice1~4.json |
| "剪口播" / "加字幕" / "出口播成片" / "排到视频号发" | 能力三 · 口播类剪辑 | scripts/koubo/* + references/koubo/* |
三套共用铁律:只做工业机器人赛道——文案出现「无人机 / 飞手 / 飞行 / 航拍 / CAAC」直接拒绝;画面里也不能有无人机(脚本只拦文案,画面靠人眼);客户空镜 / 实拍素材一律静音使用(不取原声)——配音类只用模板固定配音轨,大字报类默认静音、仅在客户明确要求保留现场声时才 mute:false。
分工边界(重要:别把活儿甩给别人)
本技能是剪辑师,交付物是成片 mp4(用 ffmpeg 本地渲出来)。以下情况一律自己干,不许转交/调用/建议去找「编导」「robot-ad」「提示词技能」:
| 客户说要什么 | 归谁 | 做法 |
|---|---|---|
| "剪 7 条 7s 大字报" / "来一周的" | 本技能(你) | python scripts/build.py --week 7 直接出 7 条 mp4。这就是你能力一的活,不许当策划案或提示词交出去。 |
| "剪一条大字报" / "做个快剪" | 本技能(你) | scripts/build.py |
| "配音视频" / "套模版" | 本技能(你) | scripts/build_voice.py |
| "剪口播" / "加字幕" / "出封面" | 本技能(你) | scripts/koubo/* |
| "写 12s/30s AI 视频提示词" / "喂给可灵即梦 LibTV" | 另一条线(robot-ad 编导技能,或本包 references/video-prompt.md) | 只有客户明确要提示词文本时才走;要成片就留在本技能 |
红线:客户说"剪/成片/出片/大字报"这类词 → 交付物必须是 mp4 文件 + 抽帧截图,不是文字方案、不是提示词、不是分镜脚本。用文字方案替代成片 = 交付失败。 批量(如 7 条)也一样,一次跑完 7 条 mp4,不要只给 7 条文案。
能力一 · 7s 大字报视频
以下为能力一的完整说明。
几条实拍素材 + 一句招生文案 → 一条 7 秒带花字的竖屏招生片。
这一版只做工业机器人。 文案里出现「无人机 / 飞手 / 飞行 / 航拍 / CAAC」这类词,脚本直接报错退出——不是提示,是拒绝执行。
第一件事:问素材来源(只问一次)
开工前必须先问客户一句:
素材用哪种?
1 我自己提供视频
2 用你给的参考素材(技能自带 4 段)
3 两边一起混
问完写进配置,以后不再问:
python scripts/build.py --set-source client # 1 只用客户素材
python scripts/build.py --set-source builtin # 2 只用内置参考
python scripts/build.py --set-source both # 3 客户 + 参考一起混写进 config.json 的 source_mode。之后每次直接跑,脚本自己按这个取素材。单次想临时改,加 --source client 覆盖。
内置参考素材在 assets/ref_clips/(ref1~ref4,720×1280,共 2.6MB):机械臂调试、示教器操作、实训台、车间全景。
给客户换素材时直接替换这几个文件,文件名保持 ref1.mp4 起。
别把无人机素材放进去——这是工业机器人的片子。
工作流
- 先看素材。抽帧确认画面里是工业机器人(车间/机械臂/示教器/实训台),
确认没有无人机——脚本只能拦文案,拦不了画面。
- 写 plan.json(照
templates/plan.example.json抄)。
素材路径可以留空 [],靠 source 从素材库取。
- 先 dry-run 再渲染:
python scripts/build.py --plan plan.json --dry-run
python scripts/build.py --plan plan.json- 抽帧自检:
ffmpeg -ss 1 -i 成片.mp4 -frames:v 1 check.jpg,
看花字有没有压到人脸、有没有溢出。
不用写 trim。 不写就自动按总时长均分,每段从素材中段取(避开开头抖动)。想精确控制再手写 {"start":1.0,"end":2.9}。
两套版式
A. 描边字(theme: recruit_red,默认)
对标抖音招生爆款:红字黄边 + 白底黑字条 + 红字白边。
上① 好找工作,收入稳定! ← 红字黄边,大字
上② ▉来广州从化学工业机器人,25天持证上岗▉ ← 白底黑字,小一号
上③ 工业机器人调试员 年薪7-15W ← 白字 + 红字
(中间 3~4 个分镜)
下① 推荐就业+包住宿 ← 红字白边
下② 既有理论课 又有实操实训 ← 黄字黑边
下③ 留言666 领取补贴 ← 黄字黑边,转化出口字号层级:上①和上③同为大字(78),白底条小一号(≈60),下三行统一(68)。行距跟着字号走,字小了间距自动收紧。recruit_classic 是钩子白字红边的变体。
B. 大字报模板(默认,7 套轮换)
对标抖音招生爆款:顶区 2~3 行混色描边 + 1 条色底横幅,底区 1 条色底 + 1~2 行描边。色底用黄/蓝/白/绿,描边用红白、黄红、白黑、蓝黄等组合。
| 模板 | 上区 | 下区 | 感觉 |
|---|---|---|---|
train | 红字白边 + 黑字黄边 | 黄底 3 行清单 | 课程清单式 |
mom | 2 行红字 + 黄底横幅 + 黄字蓝边 | 黄字红边 + 白字 | 家长视角 |
banner | 红字 + 蓝底白字 + 黄底黑字 | 黄字红边 + 白字 | 双横幅 |
idle | 黄字红边 + 白字 + 黄底黑字 | 白字 + 蓝底白字 | 痛点开场 |
classic | 红字黄边 + 白底黑字 + 白字 | 红字白边 + 黄字 | 简洁红黄 |
job | 白字红边 + 蓝底白字 + 黄字蓝边 | 白底黑字 + 红字 | 就业导向 |
money | 黄字黑边 + 红字白边 + 绿底白字 | 黄底黑字 + 白字 | 薪资导向 |
"template": "random" // 默认:七套里随机挑,每次出片都不一样
"template": "train" // 指定某一套
"template": "outline" // 旧的纯描边字风格,不铺色块全片字号统一、行距一致:上下区同一个字号,行高 1.40 倍,行间 gap 固定。色块带 enable 时间控制,跟着文字一起出现,不会先冒出一条空底板。下区文字底部收在 83.5% 屏高——抖音底下是简介和工具栏,再低就被挡。
一周七条不重样
python scripts/build.py --plan plan.json --week 7自动排 7 条:模板不重样(七套轮一遍)+ 钩子/卖点不重样(7 组文案变体)+素材轮换(起点错开,每条约 3~4 段)。加 --dry-run 先看排期不出片。
跑完会生成 工业机器人7s大字报_发布清单.md,里面有每条的文件名、主题、发布标题,拿去就能发。
内置 7s 背景音乐库(通用,随包分发)
assets/bgm/ 下已归纳 4 段通用 7s 配乐(背景音乐1~4.mp3,每段 7s,是我帮你收纳进 skill 的通用素材,不是某客户专供)。
- 默认用
背景音乐1,出片自动带声; - 想换风格:plan 写
bgm:{"file":"背景音乐2"}(或 3 / 4,可带或不带.mp3); - 纯静音(不要任何声音):
bgm:{"off":true}; - 这条线和配音模版完全隔离——配音线有自己的固定配音轨(
assets/voiceN/audio.mp3),绝不用这里的 BGM,反之亦然。
客户说做哪类就只做哪类:要 7s 大字报就只在 7s 这条线里跑(用 BGM 库 + 参考空镜/客户素材);要配音视频就只在配音线里跑(用固定配音轨)。两条线互不串台。
命名规则
统一按这个格式命名,别自己起名字:
工业机器人7s大字报_D1_收入稳定_mom.mp4
└──── 系列名 ────┘ └序┘ └─主题─┘ └模板┘| 字段 | 说明 |
|---|---|
工业机器人7s大字报 | 系列名,固定(SERIES 常量) |
D1~D7 | 一周七条的顺序 |
| 主题 | 收入稳定 / 25岁焦虑 / 家长视角 / 反常识 / 换赛道 / 学历焦虑 / 越老越值钱 |
| 模板 | train / mom / banner / idle / classic / job / money |
单条出片(不加 --week)时用 plan.json 里的 output 字段,建议也套这个格式。改系列名改 build.py 的 SERIES 常量。
署名(合创时代 李隆杰)
出片时自动写入视频文件属性(不占画面、不影响平台审核):
| 属性 | 内容 |
|---|---|
title | 发布标题(plan.title 或周排期的对应标题) |
artist | 合创时代 李隆杰 |
album | 工业机器人7s大字报 |
comment | 合创时代 李隆杰 / Future Force · Li Longjie 出品 |
改署名改 build.py 顶部的 AUTHOR / AUTHOR_EN / SERIES 三个常量。终端每次出片会打印一行 [credits] 合创时代 李隆杰 作确认。核验命令:ffprobe -show_entries format_tags 成片.mp4
7 秒怎么配素材
| 段数 | 每段时长 | 转场 | 合计 |
|---|---|---|---|
| 3 段 | 2.4s | 0.2s × 2 | 7.0s |
| 4 段 | 1.9s | 0.2s × 3 | 7.0s |
4 段更有节奏。别超过 4 段——7 秒塞 5 段,每段 1.3 秒,看不清是什么。
plan.json 字段
| 字段 | 说明 |
|---|---|
segments[].file | 客户素材路径。可以整段留空,靠 source 从素材库取 |
segments[].trim | {start, end} 秒。不写就自动均分 |
source | client / builtin / both,不写读 config.json |
duration | 成片总时长(秒),默认 7 |
resolution | auto(默认,素材不超 720p 就用 720×1280,不硬拉 1080)/ 1080x1920 / 720x1280 |
mute | true 静音(默认);false 保留原声 |
transition | {type, duration},支持 fade / flash / fadeblack / slideleft / slideup / smoothleft 等 |
theme | recruit_red(默认描边字)/ recruit_bar(色块条)/ recruit_classic / recruit_blue |
bgm | {file, volume, fade_in, fade_out},音量 0.5 左右 |
copy.* | 七段文案,见下 |
subtitle.file | 可选,外部 SRT(时间轴按成片排好) |
output | 输出路径 |
copy 七段
| key | 位置 | 示例 |
|---|---|---|
hook | 上① | 好找工作,收入稳定! |
sub | 上② 白底条 | 来广州从化学工业机器人,25天持证上岗 |
role | 上③ 岗位 | 工业机器人调试员 |
salary | 上③ 薪资 | 年薪7-15W |
footer | 下① | 推荐就业+包住宿 |
note | 下② | 既有理论课 又有实操实训 |
cta | 下③ 留言引导 | 留言666 领取补贴 |
句式模板见 templates/copy-bank.md:招生叫卖式(痛点/学历/年龄/家长)+ 观点借势式(行业趋势、名人建议),按人群分好了。
文案硬校验(会报错退出)
| 情况 | 退出码 |
|---|---|
| 出现无人机相关词(无人机/飞手/飞行/航拍/CAAC…) | 2 |
| 缺必含信息(广州 / 工业机器人 / 25天 / 年薪7-15 / 推荐就业 / 留言 / 领取) | 3 |
不是建议,是拦截。改文案绕过检查 = 这批片子白做。
转场与时长的坑
xfade 会吃掉转场时长:3 段各 2.4s + 2 个 0.2s 转场 = 6.8s,不是 7.2s。要 7 秒成片,各段加起来必须比 7 秒多出「转场总时长」。脚本会自动多留一点,差一帧时克隆末帧补足(最多补 1 秒)——但素材本身太短它救不了。
依赖
ffmpeg 4.3+(要带 libass)+ Python 3.8+,不装任何 pip 包。python scripts/doctor.py 一项项自检。
能力二 · 配音/模版视频(voice)
和能力一的 7s 大字报是两件事,互不打扰。龙总定:配音类视频「单独限制」。
触发场景:客户要的是"有配音、有字幕、声音和字幕都对上的招生片"(不是静音大字报)。
规则——全部固定死,只允许改分镜:
| 维度 | 是否固定 | 说明 |
|---|---|---|
| 音频 | ✅ 固定 | 用模板固定配音轨 assets/voiceN/audio.mp3,不允许改 |
| 字幕台词 | ✅ 固定 | 台词、字幕样式、字幕位置全部锁定,不允许改 |
| 分镜画面 | ⚠️ 可改 | 每一句话 = 一个分镜(一段素材);第一个分镜必须有「人物」 |
| 画面素材 | ✅ 客户素材 | 用客户给的工业机器人实拍,绝不用参考视频的画面 |
字幕文本只做两处硬性替换(龙总口谕):深圳 → 广州;机器人维修和调试 → 工业机器人。(例:原「来深圳学习机器人维修和调试技术」→「来广州学习工业机器人技术」)
模版 voice1(templates/voice1.json):基于龙总给的第一条配音参考。结构 = 顶部 4 行卡(常驻)+ 中部随句切换字幕 + 底部 2 行卡(常驻)+ 左下免责声明(常驻)。句子时间轴已按参考切好(4 句,共 6.69s)。
用法:
python scripts/build_voice.py
--template templates/voice1.json
--clips "c1.mp4,c2.mp4,c3.mp4,c4.mp4"
--ins "0.3,0.5,1.0,4.0"
--out 成片.mp4--clips:按分镜顺序给 4 段素材(第一段必须含人物),逗号分隔。--ins:每段素材的入点(秒),默认 0;不写就从头取。- 素材会自动放大到 1080×1920、硬切拼接(参考本身是硬切)、烧录固定字幕、混入固定配音轨。
已内置四套模版(命令行换 --template 即可,互不影响):
| 模版 | 文件 | 开场 | 句子数 | 时长 | 说明 |
|---|---|---|---|---|---|
| voice1 | templates/voice1.json | 父子路(无固定资产镜头) | 4 句 | 6.5s | 首镜必须有人物 |
| voice2 | templates/voice2.json | 固定王兴兴 3s(固定资产镜头) | 9 句 | 12.6s | assets/voice2/wangxingxing.mp4 固定开头 |
| voice3 | templates/voice3.json | 全 CLIENT(无固定资产镜头) | 16 句 | 29.4s | 首镜必须有人物;底卡灰条「工业机器人将成为最吃香的职业」 |
| voice4 | templates/voice4.json | 固定王兴兴开头(opening.mp4) | 7 句 | 12.6s | 红口号条 + 绿底底卡 |
扩充:客户再给配音参考 → 新增 templates/voiceN.json + 一条固定配音轨放进 assets/voiceN/,命令行换 --template 即可,互不影响。
⚠️ 注意:参考原声里说的还是「深圳 / 机器人维修和调试」旧词,而字幕已替换成新词。
若客户要求声画完全一致,需重录配音轨替换
assets/voice1/audio.mp3;否则按"音频固定"原样保留。
能力三 · 口播类剪辑
把一段工业机器人/智能制造/招生的口播视频,从原始素材一路做到已排期发布的成片:字幕 → 磨皮 → 封面 → 视频号定时发表。
脚本与资料已内嵌在
scripts/koubo/与references/koubo/(原industrial-robot-kouboskill 的内容,已并入本 skill)。
何时走这条线:用户丢来口播视频说「剪一下 / 加字幕 / 出封面 / 发到视频号」,或要批量剪一个招生口播矩阵。
成品交付物(每条 4 件套):XX_带字幕.mp4 / XX_带字幕_头帧.mp4(发平台用这个)/ XX_封面.jpg / XX_头图卡.png。
标准流程(7 步):
- 探查素材:
ffprobe -v error -show_entries stream=width,height,duration,codec_name -of default=noprint_wrappers=1 input.mp4。默认 720×1280 竖屏。 - ASR 转写:用 AudioTranscribe(必须传 Windows 原生路径
D:/...,不能用/d/...),返回[M:SS.cc,M:SS.cc,spk] 文本,存.tr.txt。 - 术语纠偏 + 定稿:ASR 必错的工业/制造专有名词人工改(清单见
references/koubo/terminology.md),存XX_定稿.txt。 - 生成字幕(模式 B,跟口播最准):
python scripts/koubo/gen_ass.py --transcript m01.tr.txt --text-file m01_定稿.txt --out m01规范:圈欣意冠黑体、白字 + 关键词青色 &H00FFFF& 高亮、下三分之一、单行 ≤ 10 字、无标点。
- 磨皮 + 烧录:
ffmpeg -y -i src.mp4 -vf "smartblur=2:0.5:3,subtitles='m01.ass':fontsdir='.'" -c:v libx264 -crf 21 -pix_fmt yuv420p -c:a copy m01_带字幕.mp4smartblur=2:0.5:3 保边缘轻微磨皮。fontsdir 用相对路径 .。
- 封面 + 头帧:
python scripts/koubo/pick_frames.py src.mp4 --ratio 0.47(挑帧避开闭眼) →python scripts/koubo/gen_cover.py ...出 9:16 封面 + 头图卡 → ffmpeg 拼 1s 封面卡成_头帧.mp4。 - 视频号自动排期发表(可选):
python scripts/koubo/gen_queue.py # 生成 publish_queue.csv
python scripts/koubo/wxch_upload.py --login # 首次扫码存登录态
python scripts/koubo/wxch_upload.py --all # 批量排期发表(07:00/12:00/22:00)环境坑(必读):
- 发布脚本用
C:/Python314/python.exe跑(playwright 装在系统 Python,不是 WorkBuddy 自带 3.13)。 - 字体不随包分发(平台 3MB 解压上限):把
ZiTiQuanXinYiGuanHeiTi4.0-2.ttf放到assets/fonts/;缺失时封面/字幕脚本自动回退微软雅黑/黑体。 - 视频号发表页把表单塞在宽度 0 的隐藏 iframe,
wxch_upload.py已内置「从顶层页iframe.contentWindow.document穿透、全程 JS 驱动表单」的解法;定时只读框校验 == 目标"YYYY-MM-DD HH:MM"才点发表,否则自动存草稿。
三条铁律
- 画面里不能有无人机。脚本拦文案,画面得人眼看。
- 持证天数、薪资口径照客户给的写,别改成「包就业」「保底」。
年薪要带口径:以合作企业实际录用岗位为准。
- 花字别压脸。文字在上下 1/4,人物脸在中段——选素材时留意。
- 客户空镜 / 实拍素材一律静音取用(不取原声)。7s 大字报默认带内置通用背景音乐库(
assets/bgm/背景音乐1~4.mp3——这是归纳进 skill 包的通用 7s 配乐,不是客户素材,随包分发),素材静音叠 BGM;要纯静音就在 plan 写bgm:{"off":true}。配音类只用模板固定配音轨(各自assets/voiceN/audio.mp3),与 7s 的 BGM 库彻底隔离、互不混用。脚本里分镜段已默认丢原声,切勿为素材段保留音轨。
更新记录
v1.7.3(分工边界 + BGM 随包确认)
- 新增「分工边界」章节(路由红线):本技能是剪辑师,交付物必须是 mp4 成片。客户说"剪/成片/出片/大字报"→ 一律自己用
build.py/build_voice.py/scripts/koubo/*渲出文件,禁止转交或建议去找「编导」「robot-ad」「提示词技能」;批量(如"剪 7 条 7s 大字报")也必须一次跑完 7 条 mp4(build.py --week 7),不许拿文案/分镜/提示词充当交付物。只有客户明确要提示词文本时,才走references/video-prompt.md那条线。 - 内置 BGM 随包确认:
assets/bgm/背景音乐1~4.mp3四首均随包分发(zip 内 4 个条目,UTF-8 标志位,sha256 与源文件逐首一致)。7s 大字报默认叠背景音乐1,可在 plan 里指定背景音乐2/3/4,或bgm:{"off":true}关掉。不依赖客户环境里的任何外部音乐文件。
v1.7.2(云端路径彻底修死)
- 配音视频
build_voice.py的 CLIENT 实拍分镜也走绝对化定位:原逻辑直接拿--clips原始路径当相对 CWD 喂给 ffmpeg,云端 CWD 是客户工程目录时找不到 → 缺实拍分镜。现resolve_clip()依次试「绝对路径 → 当前工作目录相对 → 技能根拼接 → 技能根向上多级 → 按文件名整树扫描」,固定资产镜头(王兴兴 / opening)和客户上传素材都能命中。这也是客户手机云端「缺实拍分镜 + 原声配音轨 + 王兴兴缺失」的根因。 _discover_skill_root()加强:向上找assets/或SKILL.md任一标记即认作技能根;再兜底扫描~/.workbuddy/skills/*与/root/.workbuddy/skills/*中含特征素材(背景音乐1.mp3)的目录;终极回退仍是SKILL_ROOT环境变量。两脚本(7s 与配音)共用同一套逻辑,且 ffmpeg 候选已加 Termux //opt等云端常见路径。- 实测验证:把技能装到 8 层深中性路径、从完全不相干的客户工程目录用绝对路径调用、
SKILL_ROOT不设置,两条产线均正确产出带声成片(7s 含 BGM、配音含固定原声轨);缺素材时打印明确报错而非静默出废片。
v1.7.1(云端兼容 + 硬切)
- 素材 / BGM 路径做了云端临时副本兜底:
build.py改用_discover_skill_root()向上找含assets/的目录,找不到再回退到~/.workbuddy/skills/robot-recruit-video与 plan 工程目录。WorkBuddy 临时副本(workbuddy-update-x64-workbuddy之类)或手机云端跑时,内置 BGM 与参考素材也能正确命中,不再静音丢乐。 - 大字报改用硬切拼接(无淡入淡出):去掉
xfade滤镜,改concat=n:v=1:a=0硬切。原因有二:① 龙总明确要求「大字报不要出现淡入淡出」;② 老版 ffmpeg(4.3 以下,云端手机多为这种)没有 xfade,硬切才能跑得起来。BGM 音频仍保留afade淡入淡出,不冲突。 auto_layout去掉转场时长扣减(硬切不吃时长),7 秒更准。
v1.7.0(声带 + 资产归位)
- 7s 大字报默认带内置通用 BGM(
assets/bgm/背景音乐1~4.mp3,随包分发),不再静音。 - 黑底字幕条限制:每条视频最多 1 处黑底,字间距收紧,中间字幕落到下 1/3 且不挡王兴兴。
- 两条线严格隔离:王兴兴开场 +
10月11日.mp3只属配音模版;背景音乐1~4 只属 7s。 - 客户 / 空镜素材强制静音取用。