关于 brand-kit
使用 video-studio 创建和复用视频外观预设的技能。它将字幕与卡片样式保存到文件,并应用于分镜文档,让已确认的样式不依赖对话记录。
主要功能
- 01列出并查看样式预设
- 02将预设应用于分镜文档
- 03把分镜外观保存为预设
- 04按角色设置字幕和卡片样式
- 05保留场景明确设置的覆盖值
适用场景
- 01在多个视频中复用字幕样式
- 02为分镜场景应用一致的卡片外观
- 03保存成片样式以供后续使用
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ scrollmark/ social-skills --skill brand-kit安装后在 Claude Code 中输入/brand-kit确认已加载。
详细介绍
品牌套件
风格属于用户,而不是项目。用户今后制作的每个视频都可以重复使用,因此它应该保存在文件中,而不是某个生成器脚本里,也不该只留在你对本次会话的记忆中。
要求
预设机制是 styles,需要先运行 pip install 'video-studio-engine @ https://github.com/scrollmark/social-skills/archive/refs/heads/master.tar.gz'(基础安装,无额外依赖),然后通过 video-studio styles … 运行。这里并未随附该机制:它会读取和写入样式目录树及故事板文档,因此不是一个可以放在技能文件夹里的独立文件。
没有安装它,就没有 --list、--show、--apply 或 --save,也没有任何功能可以将预设展开为故事板——你仍然可以与用户确定品牌风格并手动编写文件,但应用它就只能手动编辑。--apply 和 --save 还要求故事板 JSON 符合引擎所用的结构。
当前提供的内容:外观预设
video-studio styles --list
video-studio styles --show tourism
video-studio styles --apply tourism --storyboard <project>/storyboard.json
video-studio styles --save theirs --from <project>/storyboard.json
预设是一个 Markdown 文件:包含 frontmatter(name、description)、说明何时使用该预设的文字,以及一个包含取值的 JSON 代码块。JSON 只涵盖两项内容——captions(颜色、stroke、strokeWidth、fontSize、wordGap、wordsPerPage、uppercase、bottom、palette),以及 cards,即将 label、stat、title 或 cta 等命名角色映射到 bg、fg、fontFamily、italic、weight、fontSize、tracking、align 和 rect。未知键会被报告,而不会被静默丢弃,因为拼错的键不会产生任何效果,看起来却像是有意选择了某种样式。
解析顺序是从前往后,采用第一个匹配项:<project>/styles/ → $VIDEO_STUDIO_STYLES → 用户自己的 ~/.config/video-studio/styles/ → 工具链自带的预设。用户级目录至关重要;保存在代码检出目录中的预设,会随着该目录一同消失。
卡片可以指定字体。 fontFamily 可使用编辑器加载的任何字体系列——包括所有 Google Fonts 和系统字体栈——并可搭配 italic 和 weight。bg: "transparent" 会让文字直接显示在素材画面上,不添加底板。这正是区分不同外观的大部分关键所在:在此功能出现之前,无论预设如何设置,每个视频中的每张卡片都使用 Inter。指定真实的后备字体("Playfair Display, Didot, Georgia, serif"),并为不常见的展示字体明确设置 fontSize——自动字号是按 Inter 的字宽校准的。
根据角色编写卡片,而不是根据颜色。 写入 {"card": {"style": "label", "heading": "TOKYO"}},让 --apply 填入 bg、fg、tracking 和 rect。场景中明确设置的任何值都会优先,因此一次性覆盖不意味着放弃品牌风格。
用户描述想要的外观时,就把它保存下来。 --save 会从完成的故事板中提取外观,保存为预设文件;默认保存到用户自己的配置目录。只存在于本次对话中的外观,明天就会消失——这正是此功能的意义所在。告诉用户文件保存到了哪里,以及下次该如何称呼它。
应用预设是一个展开步骤,而不是渲染时的查询:故事板最终会包含实际值,因此它仍然是一份可读的文档;之后编辑预设,也不会悄悄更改已经获批的视频。
标题一致性
排版前先为每个文本元素分类。不要把所有屏幕文字都当作“标题”。
- 字幕用于辅助旁白。字幕来自配音时间文件,并通过
captionStyle渲染——预设的captions块能让字幕在不同视频中保持一致。将字幕放在靠近下方安全区的位置;只有当画面内容占据该区域时,才按场景覆盖设置。 - 标签是编辑性叠加元素:姓名、排名、日期、统计数据、类别标签、姓名条、行动号召。将它们构建为卡片角色,让品牌掌控其样式。标签体现品牌个性——可以滑入、弹出、加徽章或加边框。
- 标牌是场景内的文字对象:海报、告示牌、记分牌、手机通知。将它们合成为卡片。不要要求生成器生成可读文字;它会凭空编造字形。
系统地处理对比度——优先确定品牌级颜色、描边、阴影和面板,再考虑按场景做例外调整。标签动效默认采用滑入/飞入加缩放/弹出;每个品牌使用一套入场动效风格,只根据场景节奏调整方向、延迟和强度。不要在同一视频中混用无关的标签风格;如果要更改效果,应让改动有叙事上的合理性,并从该处起持续使用新效果。
品牌套件可以增加的内容——提案,尚未实现
预设涵盖颜色、字幕和卡片几何样式,但不涵盖品牌标识的其他部分。提案是在 ~/.config/video-studio/brands/<name>/ 下建立一个套件目录,并通过同一解析链(<project>/brands/ → $VIDEO_STUDIO_BRANDS → 用户级 → 随附目录)进行解析,采用相同的 frontmatter 加 JSON 格式:
brand.md— 与现在完全相同的外观 JSON,另加套件名称,方便用户说“使用 Northwind”,而不必指定颜色。logo/— 字标和图形标识,提供 SVG 和透明 PNG 格式,并在旁注明安全区和最小尺寸规则。fonts/— 实际字体文件。目前的fontFamily指定的字体,渲染主机未必安装。voice.md— 旁白风格:使用哪种声音、语速,以及品牌不会说哪些话。cta.md— 结尾文案,提供不同格式所需的两三种长度。
这些内容目前都无法解析。 styles 会读取 captions 和 cards,并将其他所有键标记为未知项,因此在承诺支持品牌套件之前,需要先编写新代码。在此之前:与用户确认其他组成部分,将它们写入项目,并明确说明只有字幕、卡片颜色和卡片几何样式会自动延续到下一个视频。
反模式
- 每个视频都重新决定配色。 同一场制作中手工制作的三个短片,同类标签的高度各不相同。这正是预设文件要避免的偏差。
- 把品牌套件说得好像已经能用。 标识、字体、声音和行动号召文案都只是提案。如果实际只保存了外观,却声称“已保存到你的品牌”,下次会话就会打破这一承诺。
- 品牌只存在于聊天中。 如果没有将品牌写入文件并明确说出路径,就不算保存。
- 只写字体名称,不附字体文件。 如果渲染主机没有
fontFamily指定的字体,就会静默回退到其他字体,而最终交付的就是回退字体。