多数 AI 生成 PPT 的工具产出的是一张位图,或者一层改得动位置、改不动形状的壳。想改第三页的数字,只能重新生成碰运气。ppt-master(5.4 万 Star)绕开了这一步——它输出的是原生对象:母版与版式继承、带调节手柄的预设形状、数据驱动的图表、真正的 OOXML 动画。丢进 PowerPoint,双击就能接着改。

作者何雨果(Hugo He)是投融资行业的注册会计师和咨询工程师,日常工作就是审阅和修改 PPT。做这个项目的动机很简单:受不了 AI 生成的幻灯片被压成一张张图片。
原生对象覆盖到哪
把每页导出成能改的 .pptx 已经不算本事,差别在于改得动多少。ppt-master 把 PowerPoint 的对象模型直接写进文件:
| 层级 | 实现 |
|---|---|
| 母版与版式 | 真正的 p:sldMaster / p:sldLayout 继承结构 |
| 形状 | 187 种 Office 预设几何、连接符、布尔合并、自由路径 |
| 图表与表格 | 默认导出 SVG 派生形状;加 --native-charts-and-tables 转为带数据源的原生对象 |
| 公式 | LaTeX / mhchem 编译为可编辑 OMML,不生成图片 |
| 效果 | 渐变、图案、透明度、外阴影、发光 |
| 动画 | 页间转场、进入/强调/动作路径/退出动画、备注转语音旁白 |
图表那条最能看出它的取向。默认不导出原生 Chart,而是导出 SVG 派生形状,为的是 PowerPoint、Keynote、LibreOffice、WPS 四端渲染不出岔子。需要带数据源的对象,加参数切过去。
让 AI 写 SVG,而不是写 OOXML
要让模型直接吐出合法的 DrawingML 不现实——坐标、形状、渐变、阴影的表达足够繁琐,约束又多。ppt-master 换了个中间层:AI 先生成一份受约束的 SVG,确定性脚本再把 SVG 编译成 DrawingML。

SVG 和 DrawingML 都是绝对坐标下的 2D 矢量格式,矩形、路径、渐变、阴影能一一对应,转换过程更像方言翻译。项目用的是一套自定的规范化 SVG 中间语言,不是任意 SVG 都能转——是 SVG 适应 ppt-master,不是 ppt-master 去追整个 SVG 标准。
叙事模式与视觉风格
动笔之前,项目会先读材料、定核心信息,挑一个叙事 mode:pyramid(结论先行)、narrative(讲故事)、instructional(教学)、showcase(展示)、briefing(中性通报)。同一份材料,选 pyramid 会先抛结论再层层支撑,选 briefing 就平铺事实。
视觉是另一条轴,18 种内置风格,从 swiss-minimal、editorial 到 dark-tech、brutalist、ink-wash,都支持自定义。输出格式也不限于 16:9——小红书 3:4、朋友圈 1:1、竖版 Story 9:16、A4 打印,同一条管线指定格式就行。
它不是一个应用,是一个 Skill
ppt-master 跑在具备 agent 能力的工具里,不提供独立界面。Claude Code、Codex、Cursor、Windsurf 都能驱动,也能通过 npx skills add hugohe3/ppt-master 从插件市场安装。
它的 Skill 目录是一个路由化工程,顶层三条路线互斥:
| 路线 | 输入 | 产出 |
|---|---|---|
| Generate PPTX | 材料或主题 | 创作、重建、重设计新 PPTX |
| Create Template | 参考资料 | 可复用的品牌/风格/模板 |
| Edit Native PPTX | 既有 deck | 保留原生设计,填内容或改页面 |
SKILL.md 里有一条硬规矩:Do not decide on the user's behalf。每到阻塞门,AI 必须停下等确认。作者的定位很明确:harness + model = agent,工具只负责工作流,上限由模型决定。
短板没藏着
| 短板 | 说明 |
|---|---|
| 需要配置 | 装 Python、克隆仓库、配置 AI 编辑器,不是打开浏览器就能用 |
| 生成较慢 | 10 页约 10-20 分钟,逐页串行以保证跨页一致 |
| 无协作 | 本地文件,没有实时共编和分享链接 |
| 非完整自由画布 | 预览里能选中改文字、颜色、字号,但没有缩放手柄 |
怎么跑起来
前置条件只有 Python 3.10+:
git clone https://github.com/hugohe3/ppt-master.git
cd ppt-master
pip install -r requirements.txt
用 IDE 打开目录,把 PDF、DOCX 或 Markdown 放进 projects/,在聊天面板里说:
PROMPT 请用 projects/q3-report/sources/report.pdf 生成一份 PPT
不想来回确认,加一句"快速生成,不用跟我确认"。成品落在 exports/_.pptx。
数据不出本地:源文档转换、SVG 生成、PPTX 导出都在本机完成,唯一的外部通信是跟 AI 模型的对话。
写在最后
项目地址:github.com/hugohe3/ppt-master
示例站:hugohe3.github.io/ppt-master-examples
上限一直卡在模型这边,作者自己也没回避。你跑过这类生成式排版吗,用的哪个模型,实际产出和宣传差多少?