开源 · Apache-2.0 · 可商用 · 预览版v0.5.1

便宜模型,
也能酿出好片

写一份产品简报,AI 挑镜头、写文案,一条命令出一支竖版宣传片(1080×1920,抖音、视频号的画幅)。

在 DeepSeek Harness 里用

装成 Claude Code、Codex、opencode 的 skill,或用 DeepSeek Harness 插件,也能不用 agent 直接跑脚本。

还是预览版:成片先当初稿,看完整片、改完再发。现在能用到什么程度

  • No.01卡片信息流cards · 9:16

  • No.02答题互动quiz · 9:16

  • No.03角色漫游journey · 4:5 / 9:16

三种配方的实际渲染效果,产品和数据都是虚构的。点任意一支,从这一段看完整演示。

精酿 BrewReel 是什么?

精酿 · BrewReel 是开源的 AI 辅助宣传片制作工具。你提供产品简报和素材,语言模型编写分镜,程序按配方在本机渲染视频;成片需要人工检查后再发布。

适合什么需求
面向愿意安装本地运行环境的开发者和内容创作者,用于制作产品介绍、卖点讲解、答题互动或角色漫游宣传片。
输入与输出
输入产品简报、可选的实拍素材与配音配置;输出宣传片和对应分镜记录。cards、quiz 默认 1080×1920,journey 默认 1080×1350,均为 30 fps。
费用与使用条件
项目采用 Apache-2.0 许可;模型与配音接口可能另收费。Remotion 有独立许可,4 人及以上的营利组织需购买 Company License。

项目作者:Finderchangchang。安装步骤、实测记录和已知限制以 GitHub 项目文档为准。

No.01配方单

三种配方,按内容挑

分镜里写 meta.style 选配方,不写就是默认的 cards。每种配方自带设计令牌、镜头组件、校验规则和叙事模板。

No.01默认

卡片信息流cards

cards 卡片信息流:三个实际渲染画面
画幅
9:16
看点
渐变底 + 居中白卡片 + 描边大字幕,一镜讲一件事
适合
单一卖点、使用流程、界面演示、实物和门店、价目表
No.02

答题互动quiz

quiz 答题互动:三个实际渲染画面
画幅
9:16
看点
红笔圈出一个常见误解 → 答题倒数 → 揭晓 → 词条卡
适合
有一个常见误解,能出一道只有一个正确答案的选择题(「X 到底是什么意思?」)
No.03

角色漫游journey

journey 角色漫游:三个实际渲染画面
画幅
4:5(默认)/ 9:16
看点
原创吉祥物小熊猫踩滑板,一镜到底穿过剪纸城市,每站一张明信片,车票打孔收尾
适合
有 4–6 个清楚的类别、功能或站点,想按一条路线挨站逛一遍

怎么选

  1. 能出一道选择题quiz
  2. 有 4–6 个类别想挨站逛journey
  3. 其余情况cards不写就是它

开始上手

No.02上手

装依赖、跑样例,
再交给 AI 写分镜

先把渲染环境装好、跑通仓库自带的样例,再挑一种方式让模型写分镜。

1装依赖,跑个样例

git clone https://github.com/Finderchangchang/brewreel.git
cd brewreel/template && npm install && npx remotion browser ensure
cd .. && pip install numpy scipy
node scripts/validate.mjs examples/ledger.json
node scripts/make.mjs examples/ledger.json --out ../brewreel-out/ledger

npm install 装渲染引擎,npx remotion browser ensure 下载一次 Chrome Headless Shell。校验那条通过就说明装好了;出片那条要几分钟,终端末行出现「交付:<mp4 路径>」才算出片。--out 不能指向仓库里面。

2让 AI 写分镜,三选一

装成 skill可用

适合能读 SKILL.md 的 AI 编程助手。把整个仓库 clone 到 ~/.claude/skills/brewreel/(Claude Code)或 ~/.agents/skills/brewreel/(通用约定),然后把简报交给助手(模板见 brief-template.md),让它照 SKILL.md 出片。

装成 Claude Code 的 skill

git clone https://github.com/Finderchangchang/brewreel.git ~/.claude/skills/brewreel
可选:让 Claude Code 走 DeepSeek(占位符换成你自己的 key)
export ANTHROPIC_BASE_URL=https://api.deepseek.com/anthropic
export ANTHROPIC_AUTH_TOKEN=<你的 DeepSeek API Key>
export ANTHROPIC_MODEL=deepseek-flash[1m]

无头脚本可用

脚本直接调 OpenAI 兼容接口(默认 DeepSeek):简报进、视频出,校验报错会原样回喂给模型重试,至多 3 次。

export LLM_API_KEY=<你的 DeepSeek API Key>
export LLM_BASE_URL=https://api.deepseek.com
export LLM_MODEL=deepseek-chat
python scripts/llm_make.py path/to/brief.md

Windows PowerShell 用 $env:LLM_API_KEY="..." 代替 export。以上都是占位符,换成你自己的 key;不要把 key 提交进仓库或写进 issue。加 --dry-run 不调接口、不读密钥,只把拼好的提示写出来并估算 token 数。

DeepSeek Harness已发布到 npm

已发布到 npm。插件还没接真实 DeepSeek 模型实测,遇到问题请开 issue。

装上后,模型照着 skill 写分镜,校验、出片、核对都调插件的 7 个工具完成:查环境、装依赖、列配方与行业、读说明、校验分镜、后台出片带进度、核对成片。需要 dsh 0.1.7-rc.2 或更高的 0.1.x(npm 上 dsh 的 latest 标签目前还指向更早的 0.1.5-rc.3,所以安装时要写明版本号)、Node.js 22.19+ 的 22.x 或 24+,以及 pnpm。

npm install -g @deepseek-ai/dsh@0.1.7-rc.2 pnpm    # 还没装 dsh 时
dsh plugin --profile web add dsh-brewreel
dsh web

web 可以换成你自己的 profile 名,profile 已经在运行的要重启才生效。初次使用时对模型说「检查一下视频插件环境」,它会调 doctor,经你同意后再调 setup 装渲染依赖。想用仓库里还没发版的代码,可以 clone 后在上一级目录执行 dsh plugin --profile web add ./brewreel/integrations/deepseek-harness。

No.03怎么酿

模型只填一份分镜,
其余交给配方和脚本

好酒靠配方。强模型先把一种风格调成配方:现成组件加校验规则。DeepSeek 这类便宜模型照着配方填分镜,校验、配乐、渲染、质检都交给脚本。

  1. 01你

    写简报

    商家或你自己填,有通用模板,六个行业另有专用模板。

    brief.md
  2. 02你或模型

    选配方

    meta.style 选配方,meta.industry 选行业包。

    meta
  3. 03便宜模型

    写分镜

    只输出一份 JSON:挑镜头、填文字,不写代码、不算坐标。

    storyboard.json
  4. 04脚本

    校验

    硬性规则加广告法、行业合规;报告指出哪一镜哪个字段要改,回喂给模型。

    validate.mjs
  5. 05脚本

    开酿

    配乐 → 渲染 → 拼图 → 检查帧 → 交付清单,有 ✗ 就不交付。

    video.mp4
  6. 06你

    人工自查

    照片授权、评价真实性、价格条件这些机器判断不了的事,由发布者确认。

    自查清单

配方里还装了这些

  • 合规先拦一遍

    《广告法》极限词、六个行业的合规规则、断词换行、安全区等几十条校验,报错用中文写清楚哪里要改。

  • 有 ✗ 就不交付

    版式、空帧、英文片混进汉字,任何一项自查不过就不交付;每支片带 manifest.json,绑定分镜。

  • 配乐现场合成

    代码现场合成原创配乐,按镜头切点卡拍,响度统一到 -16 LUFS,没有版权问题。

  • 中英双语

    文档双语;字幕可选中文或英文,英文片每半拍扫一次画面,混进汉字就不交付。

  • 配音:三家任选

    分镜里写 meta.voice、每镜写一句 vo 就带配音,MiniMax / 阿里云 / 火山引擎三家可选。镜头时长跟着旁白走,字幕逐字点亮,配乐在人声处自动压低约 10 dB;同一句只合成一次,改画面、重渲染不再计费。

看六个行业包

No.04行业包

六个行业包,合规先拦一遍

分镜里写 meta.industry 选行业。每个行业包带合规规则、推荐的镜头结构、给商家的简报模板和一份回归测试简报。

  • 软件样片(记账工具):封面与片中一帧
    软件App / SaaS / 工具类产品software
  • 餐饮样片(单品上新):封面与片中一帧
    餐饮餐饮、门店、单品上新food
  • 电商样片(实物商品):封面与片中一帧
    电商电商实物商品ecommerce
  • 教培样片(成人职业课程):封面与片中一帧
    教培成人职业培训(不含 K12)education
  • 美业样片(无实拍照片):封面与片中一帧
    美业生活美容(不含医美)beauty
  • 文旅样片(住宿):封面与片中一帧
    文旅文旅、住宿、民宿travel

校验会拦

  • 《广告法》极限词
  • 没依据的数字
  • 丢掉的价格条件
  • 冒充实拍的图

不做的品类

  • 医疗美容
  • 处方药 / 药品
  • K12 学科培训
  • 保健品功效宣称
  • 烟草

校验规则没覆盖,硬要做也不保证合规。

用之前,先看现在能用到什么程度

No.05已知限制

现在能用到什么程度

这是预览版。下面照实写,用之前先看一遍。

预览版

目前还不建议把成片不经人工修改直接对外发布。

测试和修复仍在进行中。把成片当初稿:看完整片再改再发,不要只看校验通过就发。

建议用法:行业片尽量配商家实拍照片,出片时传 --brief <简报>,交付前把画面上每个价格、条件、日期、营业时间、距离逐条和简报对一遍。

便宜模型实测:9 支,没有一支到 7 分

v0.2.0 发布前的那一轮,让小模型扮演便宜模型:只给简报和 SKILL.md,从零写分镜、跑校验、出片。7 分是我们定的「可以直接发」的线。

类别整体合规
软件 / 工具类 5–6 7–8
行业片 4–5 4–5
可以直接发:7 分 10 分制,人工逐帧看片打分。行业片失分主要在跨字段的事实问题上。
  • quiz / journey 修复后还没重测:两个配方各测了 3 支,修了评审列出的问题,样例分镜都重新通过了校验和出片检查;但便宜模型还没重新写一轮打分,公开的分数仍是修复前的。journey 的配乐和音效还没有人工试听。
  • 阿里云、火山引擎配音还没用真实 key 实测:两家按官方文档接入,用照文档造的假响应做了单测;时间戳字段的嵌套位置、默认音色能不能用,要等初次真实调用确认。MiniMax 已用真实 key 出过三种配方的样片。
  • 真人念得比估算慢:校验按中文每秒 5 字估算,MiniMax 真人实测约每秒 4 字,校验通过的长句出片时可能被拦下(会告诉你第几镜要删几个字)。写旁白按每秒 4 字留余量。
  • 没有实拍就只能插画:全程没有商家实拍照片时,画面靠组件和插画兜底,行业片会明显吃亏。
  • DeepSeek Harness 插件还没接真实 DeepSeek 模型实测。
  • 不做的品类:医疗美容、处方药 / 药品、K12 学科培训、保健品功效宣称、烟草。
仍存在的主要问题(8 条)
  1. 价格条件可以靠删 facts 绕过去:价格条件、日期范围、加价项的检查,只对模型自己写进 meta.facts 的内容生效。
  2. 组件会悄悄丢数据:比如 mockApp 的 dashboard 只显示放得下的行,不支持的字段直接不显示,校验不报。
  3. 位置和插画的真实性:「步行几分钟」这类说法仍会被模型编出来;插画和标签对不上等情况,校验还拦不全。
  4. 模板感:不同片子的封面、默认折线图、片尾白卡经常一样,只换了字和颜色。
  5. 文案质量没有自动检查:截断的半个词、别扭句子、重复三遍的卖点、前后矛盾的说法都查不出来。
  6. 核心动作不强制演示:工具类产品「点开始」这样的核心动作,可能被演成一个不相关的界面。
  7. 版式:深色主题上品牌色数字的对比度可能不够;内容少时部分面板下半截留白。
  8. 英文和素材检查的覆盖面:行业合规词表按中文写,英文查得没有中文全;素材只能在文件层面查。
发现误伤或漏拦的规则?提一个 issue

各轮测试方法和结果,见 README 的「已知限制」。

No.06为什么叫精酿

好酒靠配方,
原料普通也能酿好

先让强模型把一种视频风格做到位,再把它的版式、动效、节奏和规则写成一份「配方」:现成组件加校验脚本。之后 DeepSeek 这类便宜模型就是普通原料,照着配方填分镜,就能酿出同一水准的片子。

配方
风格包
调配方
从参考视频里提炼风格
开酿
出片

路径和字段沿用原名:styles/、meta.style、distill/。

  1. 一创

    直接拿现成配方开酿。

  2. 二创 · 换皮

    node scripts/gen-styles.mjs --new <id> 生成新风格,换配色、字体、角色;只换配色,改 tokens.json 就行。

  3. 三创 · 调配方

    按 distill/ 的六步流程拆一支参考视频:抽帧、拆解、复刻、再设计、组件化、便宜模型测试和评审。

再设计 + 原创性检查是必经步骤

骨架可以保留:叙事结构、节奏、动效、镜头语言。皮肤必须重做:配色、角色、招牌细节。check-originality.mjs 自动检查和参考片的配色色差(CIEDE2000),招牌清单每一条都要写明换成了什么或已删除。

去 GitHub 看配方源码

从这里开始用

把安装步骤和使用方法写清楚,遇到问题可以直接回来查。

No.07常见问题

开酿之前,
常被问到的

没找到答案?提一个 issue,或公众号私信。

成片能直接发吗?

还不建议。把成片当初稿:看完整片,改掉别扭的文案和重复的卖点再发;行业片把画面上每个价格、条件、日期、营业时间、距离逐条和简报对一遍。实测情况见「现在能用到什么程度」。

要花钱吗?

本项目免费开源。模型调用用你自己的 API Key,按用量在服务商那边结算,项目不经手任何费用;渲染在你自己的电脑上跑。渲染引擎 Remotion 对 4 人及以上的营利组织收费,见下面 Remotion 那一条。

可以商用吗?要注明出处吗?

可以商用。项目以 Apache-2.0 开源,个人和公司都可以使用、修改、再分发,或集成进自己的产品,不需要付费或事先授权。再分发或二次开发请保留 LICENSE、NOTICE,并注明出处,推荐写法:

基于 精酿 BrewReel(https://github.com/Finderchangchang/brewreel)二次开发

用它做出的视频不要求署名。别用「精酿」「BrewReel」名称或 brewreel.com 暗示由原作者出品或背书。渲染依赖的 Remotion 另有许可,见下一条。

Remotion 要授权吗?升级到 5.0 要注意什么?

Remotion 是源码可见、非开源的软件:个人、3 人及以下的营利公司、非营利组织可免费使用(含商用);4 人及以上的营利组织需要购买 Remotion 的 Company License,详见 remotion.dev/license。本仓库的 Apache-2.0 不改变 Remotion 自己的许可条件。

本仓库把 remotion / @remotion/cli 钉在 4.0.529。升级到 5.0 后,Remotion 免费层需要在配置里传 licenseKey(个人 / 3 人以下公司 / 非营利填 free-license),升级前请先看 THIRD_PARTY_LICENSES.md。

背景音乐是怎么来的?

scripts/make_bgm.py 用 numpy / scipy 现场合成:乐器、和声、旋律、混音、母带都在脚本里,不用外部素材库。每个镜头一个段落,音符落在整拍 / 半拍,镜头切换处有镲或加花,所以音乐是卡着镜头走的;响度校到 -16 LUFS。

因为是现场合成的,没有版权问题。正式发抖音这类平台时,也可以出片时加 --no-bgm 出静音版,再在平台里配乐。

有没有配音?

有。v0.5.0 起接了 MiniMax 语音合成,v0.5.1 起也可以用阿里云(百炼 CosyVoice)和火山引擎(豆包语音)。分镜里写 meta.voice 和每镜的 vo,设好对应的环境变量(MINIMAX_API_KEY / DASHSCOPE_API_KEY / VOLCENGINE_TTS_API_KEY)后出片即可;镜头时长跟着旁白走,字幕逐字点亮,配乐在人声处自动压低。没有 key 时加 --voice-provider mock 用占位音预览节奏。不写 meta.voice 就和以前一样没有配音。用 AI 配音发布时,记得按平台要求勾选 AI 生成内容声明。

为什么画面是插画,不是实拍?

项目不生成「看起来像真实拍摄」的拟真图片。没有商家素材时,画面用组件和简笔插画兜底,并明确标注,不冒充实拍。有商家实拍照片(门店、成品、价目表)时,用实拍镜头放进去,可信度会好很多;照片是否授权会列进「需人工复核」。

Chrome Headless Shell 下载失败?

国内网络环境下 npx remotion browser ensure 可能连不上 Google 的下载地址。可以手动下载后用 --browser-executable 指定本地 Chrome / Chromium 路径(不同 Chrome 版本渲染结果可能有细微差异)。

Windows 上要注意什么?

只支持 x64。环境变量用 PowerShell 写法 $env:LLM_API_KEY="...",不是 export。分镜一律用文件路径传入,不要在命令行拼 JSON(Windows shell 会吃掉引号)。make.mjs 在 Windows 上调 python,装在别处的,设环境变量 PYTHON 指过去。

便宜模型,也能酿出好片。

开源、可商用。点个 Star,新配方上线时不错过。

在 GitHub 上 Star55

完整演示

三种配方的实际渲染效果,约 50 秒,有配乐和音效(这支演示没有配音)。产品和数据都是虚构的。