最近三个月一直用HTML PPT线下演讲,
工作流极其重复枯燥,基本上都是用Codex一口气做个30页,然后就是一页一页磨,字多了不好看,字少了页面太空,没有配图的话还要用GPT Image2生成再额外接入。
一句话总结,很多HTML PPT Skill,根本就不是为演讲准备的。
![]()
这不是这些Skill的锅,真的。
我前后尝试过按章节搭配不同的颜色页面,然后也总结过几个常见的PPT的结构,比方说左右平分,上下平分,三列式上下左右4个方块的格式,基本上能在HTML PPT里面调的,我都试过了。
就跟马铃薯炒土豆一样,
同样的材料炒不出第二种味。
问题不在模板数量。仔细复盘的话是上游Agent给每页信息分配不均的锅。
上游怎么收集整理信息,怎么分配到每页,中间质量有没有过关(重复标题,字体重叠,为了好看加了很多根本没人看的小字),做好之后的演讲稿能不能分到每一页看,
这些都没Skill管。
于是就有了Humanize PPT v0.9版!
我一口气全解决了,再次怀念Claude Fable5。
![]()
🔗 github. com/LearnPrompt/humanize-ppt
从v0.7开始,我先给 Humanize PPT 划了一条边界。把渲染PPT页面外包给下游的Skill。
Humanize PPT负责把大纲,逐页意图,视频和图片素材的坑位和演讲稿,整理成结构化的 JSON 与 Markdown,再交给下游 Skill 原生渲染。
![]()
所以理论上是可以适配所有的HTML PPT Skill,当然为了严谨我跑通了两条完整的工作流。
中文可以接guizang-ppt-skill,英文可以接frontend-slides和beautiful-html-templates。
![]()
用AI做PPT最隐蔽的坑就是页数压不下来。
一小时演讲的PPT,很多时候也就三十多页。每一页都得承载信息。
要么推进一个判断,要么解释一个阻力,要么让观众突然意识到,哦,原来这个事还能这么想。
所以我把资料整理和页面信息分配,做成了 Humanize PPT 的地基。
AST,也就是 Audience、State、Transfer。
A是观众的身份。谁在听?他们已经知道什么?他们凭什么要继续听下去?
S是状态。观众看你的PPT之前是什么状态,看完之后应该变成什么状态。
T是转移。每一页slide的任务不是展示信息,而是推着观众从一个状态走到下一个状态。
Humanize PPT做的第一件事,就是在渲染之前,先帮你把素材按AST的逻辑重新编排。
![]()
它会输出一份大纲,每一页都标注观众进入时的状态,这一页的意图,以及离开时应该带走的信息。
我还真的拿同一主题的材料跑了一次前后对左边直接交给 guizang ppt skill,按背景、痛点、方案来分。右边先经过Humanize 的AST编排,再交给同一套guizang视觉体系。
![]()
从视觉上看,左边并不丑,甚至guizang的Swiss validator和静态演讲体检都能通过。
但它还是更像一个整理得很漂亮的文件夹。
到了右边,页面不再叫「背景」「痛点」「方案」,而是直接讲真实演讲不是概念展示,AST 先决定观众怎么变。
渲染器没有换,变化是来自上游。
大纲确定以后,Humanize PPT 不会马上让下游一口气写完整份 deck。
它会先拿同一份内容,渲染四张真实页面,让你提前看看最终效果。
不是看色板,也不是看几句抽象的风格描述。
直接看下游 Skill 真正做出来的 HTML 页面。字体怎么排,信息密度怎么样,版式和动效是不是你想要的,一眼就能看出来。
![]()
选定其中一个风格以后,Agent 才会沿着这套视觉体系,继续完成后面的二三十页。
这样就不用等整份 PPT 全部做完,才发现方向从一开始就错了。
图片和视频放置的方式也全改变了,
以前Humanize出大纲,会写「这一页可能需要一张图」。到了 v0.9,不只是说「需要」了。素材放哪,文件叫什么,用什么 prompt 生成,全部写进大纲。
baoyu-image-gen接GPT Image2配图,remotion-video-production做视频。
![]()
当然,后面我发现先用 SVG 做一个流程图,然后把这个图改成 Remotion,会有更好的效果。
所以我把这个工作流也融入到了 V0.9 里面了。
![]()
![]()
我之前也试过另一条路,把别人的画风和版式强行搬进自己的框架,再拖三四十个模板进来。
但最终结果,真的四不像,打破原有框架的约束后做出来的页面只能做到80%左右的效果。
四不像甚至还不是最严重的问题。
我还做出过一大堆根本讲不动的页面,信息密度不够,一句话就要跳四五页。
我挑出来一些给大家看,
![]()
比方说第三页,上面就三个词加一张全屏背景图。好看是好看,那我讲什么?很多时候,在演讲的过程中,观众其实是会分神的。我认为,如果一页PPT在观众短暂分神再回神之后,就完全看不出有什么主体内容,那这页PPT其实就是失败的。
第五页,一整屏文字挤在一起,我跟观众属于是面面相觑,一起沉默的状态,照着文字念那还不如直接打印出来一手一份。
第八页,标题就写着「技术架构」,下面一个TODO占位符还没填完,图片素材和视频素材都没有。
渲染出PPT的下一步是质检和把演讲稿分配到每一页。
Humanize PPT输出的deck支持演讲模式。按S键切换,演讲稿实时出现在独立窗口,带页码,带备注。
不用对稿,不用背稿,你盯着观众,备注在另一个屏幕跟着翻。
按 ESC 键打开全局索引,所有页面缩成一张总览。讲到哪里忘了,临时想跳页,不用一张张往回翻,找到对应页面,点一下就能直接切过去。
![]()
![]()
在演讲的过程中,我还发现HTML PPT有常见的渲染问题,
所以我们在演讲之前,还加了一个质检环节。
比方说,这个PPT原本是由beautiful-html-templates纯渲染的,风格是Neo-Grid Bold。
![]()
如果当它是一个html网页静态扫描先跑了一遍的话,全绿,0 fail,0 warn。
结果截图逐页人工复核的时候,
直接给我整不会了。
![]()
左下角的页码,把正文最后一行吃掉了一半。
观众实际看到的是「uires confirmation.」,但那句话原本应该是「What requires confirmation.」。这就是多少显得有点业余了。
![]()
但加上Humanize PPT流程后,「What requires confirmation.」会完整展现且视觉体系一个像素没动。
我还把做HTML PPT的出错大全都统计起来,通通能修。
![]()
很长一段时间,Humanize PPT都是走弯路,
一个劲在死磕。怎么让AI做得更漂亮。
现在我更想做的是,
怎么让AI做出来的PPT,真的能被拿去演讲。
漂亮当然重要,
但在演讲里,决定一份PPT有没有用的,
是你翻到下一页的时候,
观众有没有跟着你一起往前走。
这就是 Humanize PPT。
一个为演讲而生的PPT Skill。
把PPT从「看起来很高级」,
往「能大讲特讲」推一点。
那种页面明明很好看,
但站上去不知道怎么讲的尴尬感。
那种明明代码没错,
但投影上就是少了半行字的无语感。
那种一页一页截图,
跟Agent说去看第几页第几行的疲惫感。
我通通不要,
这件事交给Skill就好啦。
文章来自于微信公众号 “卡尔的AI沃茨”,作者 “卡尔的AI沃茨”