Skip to content

About

No description, website, or topics provided.

Resources

Stars

50 stars

Watchers

0 watching

Forks

Latest commit

 

History

3 Commits

Folders and files

Repository files navigation

ppt-from-anything

English

把任意资料转换成一套图片驱动的 16:9 PowerPoint,并通过可复用的风格模板保证整套 PPT 的视觉一致性。

这是什么

这个仓库同时包含两层能力:

  • skill 层:告诉模型如何把“任意输入材料”变成一套完整 deck
  • tool 层:提供生成单页图片和组装 .pptx 的脚本

它适合这种场景:

  • 把文章、网页、项目、研究笔记、汇报材料整理成 PPT
  • 希望先统一叙事,再统一风格
  • 接受最终 PPT 是“整页图片式幻灯片”,而不是完全可编辑的原生元素

Skill 机制

这套 skill 现在明确把“流程”和“风格”拆开了:

核心机制是:

  1. 先读取源材料,理解内容和受众
  2. 再选择一个风格模板
  3. 从风格模板里提炼出一个 style_contract
  4. 用 style_contract 约束整套 deck 的页数倾向、字数密度、图像/图表比例、版式原语、每类页面的表现方式
  5. 按页生成 16:9 slide image
  6. 最后把这些图片确定性地组装成 .pptx

也就是说,风格模板不是一句“科技风”“高级感”这种模糊形容词,而是一份最小完备的 PPT 模板说明书。

当前预置风格

  • minimal-tech:简洁科技风,偏结构化、偏图解、适合技术和产品叙事
  • apple-keynote-like:极简发布会风,少字、大标题、强视觉主物体
  • cinematic-photo-impact:大图叙事风,偏实景照片、地图、证据面板和冲击力
  • red-patriotic-education:红色教育风格,默认全中文,适合红课、党史、革命历史、纪念主题和爱国教育类 PPT

仓库包含什么

依赖

  • Node.js 18+
  • Python 3.10+
  • python-pptx
  • OPENAI_API_KEY
  • RESPONSES_URL

安装 Python 依赖:

python3 -m pip install -r requirements.txt

准备环境变量:

cp .env.example .env
set -a
source .env
set +a

怎么使用这个 skill

如果你是在 Codex 里调用它,推荐的使用方式是:

  1. 给出源材料 比如一篇文章、一个 repo、一个网页、一些笔记,或者混合材料。

  2. 指定风格 你可以直接说: 用 minimal-tech 做一套 8 页 PPT

也可以描述需求: 做成简洁科技风,字不要太多,图解要多

还可以要求创建新模板: 先按“高端咨询风”给我新建一个 style,再基于这个 style 出 PPT

  1. 让模型按 skill 流程执行 它会先读 SKILL.md,再读对应 style 文件,然后再规划和生成。

  2. 检查 slide images 如果某页不够好,优先重生成单页,而不是手工改 PPT。

  3. 组装最终 PPT 确认所有图片没问题后,再统一打包成 .pptx。

如果 prompt 已经全部写完,生图阶段可以直接并行。 推荐做法是准备一个 manifest 文件,然后用 scripts/render_slides_parallel.py 按 --jobs 控制并发数。 默认并发数是 4。如果遇到接口限流,再把并发调低。

命令行用法

生成单页图片:

scripts/render_slide_via_gpt_image.sh \
  outputs/slide-images \
  slide-01 \
  "Create a polished 16:9 presentation slide image. Deck style profile: 'minimal-tech'. Slide role: 'title'. Slide title: 'Embodied Multimodality'. Core message: 'A practical path from multimodal perception to embodied agents'. Layout: large headline with restrained technical visual. Visual composition: minimal bright technology layout with structured spacing. Text policy for this style: medium-low density, balanced detail. Role treatment: strong title with one quiet technical motif. Include only this slide text: title and one short subtitle. Style prompt block: bright restrained technology aesthetic, cool grayscale palette, cyan accent, generous whitespace, precise geometry. Avoid: photo collage, decorative clutter, poster-like overload."

把一组图片组装成 .pptx:

python3 scripts/build_pptx_from_images.py \
  --images-dir outputs/slide-images \
  --pattern 'slide-*.png' \
  --output outputs/deck.pptx

并行生成多页图片:

先准备一个 slides.json:

[
  {
    "basename": "slide-01",
    "prompt_file": "prompts/slide-01.txt"
  },
  {
    "basename": "slide-02",
    "prompt_file": "prompts/slide-02.txt"
  }
]

然后执行:

python3 scripts/render_slides_parallel.py \
  --manifest slides.json \
  --output-dir outputs/slide-images

manifest 支持两种写法:

  • prompt:直接内联 prompt 文本
  • prompt_file:从单独的 .txt / .md 文件读取 prompt

补充:

  • manifest 可以是 JSON 数组,也可以是 JSONL
  • 可以用 --retries 1 或 --retries 2 自动重试失败页
  • 可以用 --skip-existing 跳过已经生成过的 slide
  • 如果想覆盖默认值,再显式传 --jobs N

如何创建新风格模板

新增风格时,不要只写“高级、现代、简洁”这种形容词。

一个合格的风格模板至少要明确:

  • 字多还是字少
  • 细节层级高还是低
  • 偏照片、偏图解、偏大字标题,还是平衡型
  • 常用版式有哪些
  • title / section / explainer / comparison / case study / conclusion 分别怎么长
  • 必须避免什么

直接参考:

项目结构

.
├── README.md
├── README.en.md
├── requirements.txt
├── .env.example
├── SKILL.md
├── references/
│   ├── create-style-template.md
│   ├── style-system.md
│   └── styles/
│       ├── apple-keynote-like.md
│       ├── cinematic-photo-impact.md
│       ├── minimal-tech.md
│       └── red-patriotic-education.md
└── scripts/
    ├── build_pptx_from_images.py
    ├── generate_image_via_responses.mjs
    ├── render_slides_parallel.py
    └── render_slide_via_gpt_image.sh

注意事项

  • 最终 deck 是图片式幻灯片,不是完整原生可编辑版式
  • OUTER_MODEL 默认是 gpt-5.4
  • IMAGE_MODEL 默认是 gpt-image-2
  • 风格一致性来自 references/styles/ 下的模板,而不是主流程里写死的一段审美描述

About

No description, website, or topics provided.

Resources

Stars

50 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages