
Aippt
- 6 installs
- 58 repo stars
- Updated January 6, 2026
- ceeon/aippt-enterprise
Generates a packaged PPTX from a template by using reference images to constrain style and prompts to swap content, rendering each page with AI then packing to .pptx.
About
A template-driven workflow that exports a PPT template to images, builds a layout library, maps content per page, and generates AI images to assemble a final .pptx. A developer uses it to batch-produce on-brand decks with consistent style but varied content.
- Reference-image constraint keeps every page's style consistent
- End-to-end steps from template analysis to packaged .pptx output
Aippt by the numbers
- 6 all-time installs (skills.sh)
- Ranked #1,096 of 1,335 Generative Media skills by installs in the Skillselion catalog
- Data as of Jul 28, 2026 (Skillselion catalog sync)
npx skills add https://github.com/ceeon/aippt-enterprise --skill aipptAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 6 |
|---|---|
| repo stars | ★ 58 |
| Last updated | January 6, 2026 |
| Repository | ceeon/aippt-enterprise ↗ |
What it does
Generates a packaged PPTX from a template by using reference images to constrain style and prompts to swap content, rendering each page with AI then packing to .pptx.
Files
<!-- input: 文章/内容 + PPT模板 output: 完整的 .pptx 文件 pos: 核心 skill,PPT 自动化生成
架构守护者:一旦我被修改,请同步更新: 1. 本文件的头部注释 2. README.md 索引表 -->
AIPPT - AI PPT 生成工作流
核心理念:用垫图约束风格,用提示词替换内容,AI 生成每一页。
什么时候用
- 有现成 PPT 模板,想快速生成新内容
- 需要批量生成多页 PPT
- 希望每页风格一致但内容不同
---
工作流程
导出图片 → 分析模板 → 内容分段 → 表达形式设计 → 内容映射 → 上传图床 → 调用API → 下载保存 → 打包PPTX
↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
垫图 布局库 页面规划 最佳表达形式 提示词 URL 生成图片 PNG文件 .pptx---
快速开始
Step 1: 准备垫图
读 01_导出方法.md — PPT 导出为图片
Step 2: 分析模板
读 02_PPT模板分析方法.md — 输出布局库
Step 3: 规划内容
读 03_内容分段方法.md — 确定每页放什么
Step 3.5: 表达形式设计(关键)
对每页内容问:最佳表达形式是什么?
- 模板有合适布局 → 用模板
- 模板没有 → 用创意页面(风格不变,表达自由)
详见 04_内容映射方法.md 的"表达形式设计"章节
Step 4: 映射+提示词
读 04_内容映射方法.md — 内容匹配布局,生成提示词
提示词规范见 02_PPT模板分析方法.md 第六章Step 5: 生成图片
上传垫图 → 调用 API → 下载保存
Step 6: 打包 PPT
node scripts/images2pptx.js <图片目录> output.pptx---
文件索引
| 文件 | 地位 | 功能 |
|---|---|---|
01_导出方法.md | 阶段1 | PPT 导出为图片(垫图) |
02_PPT模板分析方法.md | 阶段2 | 分析模板,输出布局库 |
03_内容分段方法.md | 阶段3 | 内容拆分为页面 |
04_内容映射方法.md | 阶段4 | 内容匹配布局,生成提示词 |
05_图床上传方法.md | 工具 | 图床上传获取 URL |
config/secrets.md | 配置 | API Key |
scripts/images2pptx.js | 工具 | 图片打包成 PPTX |
---
API 调用
读取配置
从 config/secrets.md 获取 API Key
调用生图 API
curl -s -X POST "https://api.apicore.ai/v1/images/generations" \
-H "Authorization: Bearer API_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "gemini-3-pro-image-preview-4k", "prompt": "提示词", "size": "16:9", "n": 1}'模型选择
| 模型 | 说明 |
|---|---|
gemini-3-pro-image-preview | 标准版 |
gemini-3-pro-image-preview-2k | 2K 高清 |
gemini-3-pro-image-preview-4k | 4K 超清(默认) |
下载图片
curl -s -o "输出.png" "图片URL"---
打包 PPTX
# 首次使用安装依赖
npm install pptxgenjs
# 打包
node scripts/images2pptx.js <图片目录> [输出文件名]- 自动识别 jpg/png/gif/webp
- 按文件名数字排序
- 输出 16:9 比例
---
目录结构
AIPPT2/
├── SKILL.md # 入口(本文件)
├── README.md # 总览
├── 01_导出方法.md
├── 02_PPT模板分析方法.md
├── 03_内容分段方法.md
├── 04_内容映射方法.md
├── 05_图床上传方法.md
├── config/
│ └── secrets.md # API Key
└── scripts/
└── images2pptx.js # 打包脚本node_modules/
.DS_Store
config/
<!-- input: SKILL.md(Step 1 调用)、PPT 模板文件 output: 02_PPT模板分析方法.md(垫图给它分析) pos: 阶段1,工作流起点
架构守护者:一旦我被修改,请同步更新: 1. 本文件的头部注释 2. README.md 索引表 -->
PPT 导出为图片
将PPT模板导出为图片,作为垫图使用。
---
推荐方法:PDF 转图片
最可靠的方法,保证字体正确。
步骤1:导出 PDF
用 WPS / Office / Keynote 打开 PPT,导出为 PDF:
- WPS:文件 → 输出为PDF
- Office:文件 → 导出 → PDF
- Keynote:文件 → 导出到 → PDF
这一步确保字体正确嵌入 PDF
步骤2:PDF 转图片
# Mac/Linux(需要安装 poppler)
# Mac: brew install poppler
# Ubuntu: apt install poppler-utils
# 1. 先创建输出目录
mkdir -p "输出目录"
# 2. 转图片(推荐先用150 DPI测试,大文件用300 DPI)
pdftoppm -png -r 150 "模板.pdf" "输出目录/图"
# 如果PDF很大(>10MB),建议先用低分辨率测试
# 成功后可改为 -r 300 重新生成高清版本常见问题:
- exit code 137:降低分辨率
-r 150 - 中文路径:使用绝对路径
步骤3:重命名
cd 输出目录
for i in {01..22}; do
[ -f "图-${i}.png" ] && mv "图-${i}.png" "图.${i}.png"
done---
备选方法
Mac(Keynote CLI):
osascript <<'EOF'
tell application "Keynote"
activate
open POSIX file "/路径/模板.pptx"
delay 5
export front document to POSIX file "/输出目录" as slide images with properties {image format:PNG}
close front document saving no
end tell
EOFWindows(PowerShell):
$ppt = New-Object -ComObject PowerPoint.Application
$presentation = $ppt.Presentations.Open("C:\路径\模板.pptx")
foreach ($slide in $presentation.Slides) {
$slide.Export("C:\输出目录\slide$($slide.SlideIndex).png", "PNG")
}
$presentation.Close()
$ppt.Quit()---
完整执行示例
# 1. 导出PDF(手动操作)
# 2. 转图片
mkdir -p "垫图"
pdftoppm -png -r 150 "模板.pdf" "垫图/图"
# 3. 重命名
cd "垫图"
for i in {01..22}; do [ -f "图-${i}.png" ] && mv "图-${i}.png" "图.${i}.png"; done---
产出物
位置:模板/{模板名}/图/
命名:
图.001.png
图.002.png
图.003.png
...目录结构:
模板/{模板名}/
├── 模板.pptx(原文件)
├── 模板.pdf(中间文件)
└── 图/
├── 图.001.png
├── 图.002.png
├── 图.003.png
└── ...---
故障排除
- exit code 137:降低分辨率
-r 150 - 中文路径:使用绝对路径
- 优先使用PDF方法,更稳定
<!-- input: 01_导出方法.md(垫图来自这里)、SKILL.md(Step 2 调用) output: 04_内容映射方法.md(布局库给它用) pos: 阶段2,核心方法论
架构守护者:一旦我被修改,请同步更新: 1. 本文件的头部注释 2. README.md 索引表 -->
PPT 模板分析方法
分析模板,输出可复用的布局库(含提示词模板)。
---
一、分析流程
1. 导出模板图片 → 2. 逐页浏览分类 → 3. 分析页面构造 → 4. 绘制ASCII框架 → 5. 定义可改/不可改区域 → 6. 编写提示词模板---
二、页面分类
| 类型 | 特征 | 常见页面 |
|---|---|---|
| 固定页面 | 结构固定,只换文字 | 封面、目录、过渡页、结束页 |
| 内容页面 | 保持布局,替换内容 | 模板自带的各种布局 |
| 创意页面 | 保持风格,表达自由 | 根据内容设计的新表达形式 |
---
三、页面构造分析
每种布局需要明确以下元素:
| 元素 | 分析内容 |
|---|---|
| LOGO | 有无?位置?样式? |
| 页码 | 有无?位置?格式? |
| 标题 | 有无?位置?字体大小? |
| 副标题 | 有无?位置? |
| 内容区 | 位置?可放什么? |
| 装饰元素 | 有哪些?位置? |
---
四、可改/不可改区域定义(重要)
每种布局必须明确定义:
4.1 封面页
| 区域 | 可改性 | 说明 |
|---|---|---|
| 背景色 | ❌ 不可改 | 保持原色 |
| 装饰图案(马/花纹) | ❌ 不可改 | 位置、样式完全保持 |
| LOGO | ❌ 不可改 | 样式位置保持 |
| 年份数字 | ⚠️ 可选改 | 如需更新年份 |
| 主标题 | ✅ 可改 | 替换文字内容 |
| 副标题 | ✅ 可改 | 替换文字内容 |
4.2 目录页
| 区域 | 可改性 | 说明 |
|---|---|---|
| 背景/装饰 | ❌ 不可改 | 完全保持 |
| "目录CONTENTS"框 | ❌ 不可改 | 样式位置保持 |
| 章节框布局 | ⚠️ 可调整 | 可减少数量(如4→3) |
| 章节数量 | ✅ 可改 | 可删除不需要的位置 |
| 章节标题 | ✅ 可改 | 替换文字内容 |
特殊情况:章节数量变化
| 情况 | 错误写法 | 正确写法 |
|---|---|---|
| 删除(4→3) | 04:留空 | 只显示3个章节,完全删除第4个位置(包括数字和框线) |
| 增加(3→4) | 增加一个04 | 调整为4个章节布局,保持原有样式,新增第4个位置 |
原则:明确说"调整布局为X个",不要只说"留空"或"增加"
4.3 章节过渡页
| 区域 | 可改性 | 说明 |
|---|---|---|
| 背景/边框装饰 | ❌ 不可改 | 完全保持 |
| "NO.X"样式 | ❌ 不可改 | 金色渐变效果保持 |
| 编号数字 | ✅ 可改 | 如 NO.1 → NO.2 |
| 章节标题 | ✅ 可改 | 替换文字内容 |
| 英文副标题 | ✅ 可改 | 可选,替换或删除 |
4.4 内容页(左图右文)
| 区域 | 可改性 | 说明 |
|---|---|---|
| 背景色 | ❌ 不可改 | 保持原色 |
| 左侧装饰区 | ❌ 不可改 | 插画/图案保持 |
| 整体布局比例 | ❌ 不可改 | 左右分割保持 |
| LOGO | ❌ 不可改 | 位置样式保持 |
| 标题 | ✅ 可改 | 替换文字 |
| 要点内容 | ✅ 可改 | 替换文字,数量可变 |
4.5 内容页(左图右列表)
| 区域 | 可改性 | 说明 |
|---|---|---|
| 背景/装饰 | ❌ 不可改 | 完全保持 |
| 卡片样式 | ❌ 不可改 | 边框、圆角保持 |
| 标题 | ✅ 可改 | 替换文字 |
| 列表项 | ✅ 可改 | 替换文字,数量可变 |
4.6 结束页
| 区域 | 可改性 | 说明 |
|---|---|---|
| 所有装饰 | ❌ 不可改 | 与封面一致 |
| 主文字 | ✅ 可改 | 替换感谢语 |
| 副文字 | ✅ 可改 | 替换补充语 |
4.7 创意页面
核心原则:风格不变,表达自由
| 区域 | 可改性 | 说明 |
|---|---|---|
| 视觉风格 | ❌ 不可改 | 配色、装饰、字体、背景 |
| 表达形式 | ✅ 可改 | 流程图/时间轴/对比表/金句/图表... |
适用场景:模板现有布局无法最佳表达内容时
设计流程: 1. 分析内容的最佳表达形态(流程图?对比表?金句?时间轴?) 2. 从模板提取视觉约束(主色、装饰风格、字体风格) 3. 在约束内设计新表达形式 4. 选择风格最接近的模板页作为垫图参考
常见创意形态:
| 内容类型 | 表达形式建议 |
|---|---|
| 步骤/流程 | 流程图、时间轴、箭头连接 |
| 对比/优劣 | 天平图、表格、左右对照 |
| 核心金句 | 大字居中、引用框、背景装饰 |
| 数据/统计 | 图表、数字高亮、信息图 |
| 层级关系 | 金字塔、树状图、环形图 |
提示词模板:
{垫图URL} 参考这张PPT模板的视觉风格,设计一个新页面。
【不可改区域】(严格保持原样)
- 视觉风格:配色、装饰、字体、背景与模板一致
【可改区域】
- 表达形式:{流程图/时间轴/对比表/金句/...}
- 内容:{具体内容}
【生成指令】
absolutely no watermark, clean output only---
五、输出格式
每种布局按此格式整理:
### {布局名称}
**ASCII 框架**┌─────────────────────────────────────────┐ │ │ │ (画出实际布局) │ │ │ └─────────────────────────────────────────┘
**页面构造**
| 元素 | 有无 | 位置 | 说明 |
|------|------|------|------|
| LOGO | ✓ | 左上 | 带箭头装饰 |
| ... | ... | ... | ... |
**可改/不可改区域**
| 区域 | 可改性 | 说明 |
|------|--------|------|
| 背景装饰 | ❌ 不可改 | 完全保持 |
| 标题文字 | ✅ 可改 | 替换内容 |
| ... | ... | ... |
**适用场景**:{什么内容适合用这个布局}
**垫图**:`图/图.00X.png`
**提示词模板**:{垫图URL} 参考这张PPT模板,生成新页面。 【不可改区域】(严格保持原样)
- 背景色、装饰图案、LOGO位置
- 字体样式、颜色
【可改区域】
- 主标题:{主标题}
- 副标题:{副标题}
【生成指令】 absolutely no watermark, clean output only
---
六、提示词编写规范
6.1 基本结构
提示词分两部分:内容描述 + 生成指令
{垫图URL} 参考这张PPT模板,生成新页面。
【不可改区域】(严格保持原样)
- {列出所有不能改的元素}
【可改区域】
- {列出要替换的内容}
【生成指令】
absolutely no watermark, clean output only说明:【生成指令】 是给AI的命令,不会显示在图片上。放在最后,与内容空一行隔开。6.2 删除元素的写法
当需要删除模板中的某些元素时:
# 错误写法
04:留空
04:(空)
04位置不显示
# 正确写法
只显示3个章节,完全删除第4个位置(包括数字和框线)
布局调整为只有3个格子6.3 数量变化的写法
# 要点从3个变2个
【可改区域】
- 要点数量:只显示2个要点
- 要点1:xxx
- 要点2:xxx6.4 生成指令(必须)
所有提示词末尾都要加 【生成指令】 段落:
【生成指令】
absolutely no watermark, clean output only作用:告诉AI不要生成水印或多余文字。这是命令,不是内容。
---
七、产出物
位置:用户指定文件夹
命名:02-模板分析-v1.md
---
八、输出文档结构
# {模板名} 模板分析
## 模板概览
- 总页数:XX 页
- 风格:{风格描述}
- 主色:{主色}
- 固定页面:P1(封面)、P2(目录)...
- 内容页布局:X 种
## 布局库
### 封面页
**ASCII 框架**
(绘制)
**页面构造**
| 元素 | 有无 | 位置 | 说明 |
|------|------|------|------|
| ... | ... | ... | ... |
**可改/不可改区域**
| 区域 | 可改性 | 说明 |
|------|--------|------|
| ... | ... | ... |
**适用场景**:PPT开头
**垫图**:`图/图.001.png`
**提示词模板**:
(填写)
---
### 目录页
...
### 内容页 - {布局特征}
...
### 创意页面(按需添加)
**核心原则**:风格不变,表达自由
**可改/不可改区域**
| 区域 | 可改性 | 说明 |
|------|--------|------|
| 视觉风格 | ❌ 不可改 | 配色、装饰、字体、背景 |
| 表达形式 | ✅ 可改 | 根据内容选择最佳形式 |
**适用场景**:模板现有布局无法最佳表达时
**垫图**:选择风格最接近的模板页
**提示词模板**:
(见 4.7 创意页面)<!-- input: SKILL.md(Step 3 调用)、用户提供的原始内容 output: 04_内容映射方法.md(分段表给它用) pos: 阶段3,内容拆分
架构守护者:一旦我被修改,请同步更新: 1. 本文件的头部注释 2. README.md 索引表 -->
内容分段方法
将内容拆分为PPT页面,确定每页放什么。
---
核心流程
整理内容 → 确定页数 → 分配内容到每页---
一、确定PPT结构
1.1 标准结构
| 位置 | 页面类型 | 数量 |
|---|---|---|
| 开头 | 封面 | 1 |
| 开头 | 目录 | 1 |
| 中间 | 章节分隔 | N(按章节数) |
| 中间 | 内容页 | 若干 |
| 结尾 | 结束页 | 1 |
1.2 根据内容调整
| 内容长度 | 建议页数 | 章节数 |
|---|---|---|
| 短(<1500字) | 10-15页 | 2-3章 |
| 中(1500-3000字) | 15-20页 | 3-4章 |
| 长(>3000字) | 25-30页 | 4-6章 |
---
二、内容分段原则
2.1 一页一观点
每页只讲一个核心信息:
- ❌ 一页放5个要点
- ✅ 一页放1-3个相关要点
2.2 内容类型匹配页面
| 内容类型 | 适合页面 | 说明 |
|---|---|---|
| 问题/痛点 | 对比页、列表页 | 用 ❌ 标记 |
| 解决方案 | 对比页、列表页 | 用 ✅ 标记 |
| 步骤流程 | 流程页、时间轴 | 带箭头 |
| 核心概念 | 金句页、定义页 | 大字号 |
| 多个特点 | 多栏页、列表页 | 并列展示 |
---
三、分段步骤
步骤1:提取关键信息
从内容中提取:
- 核心观点(1-3个)
- 章节划分(自然段落)
- 要点列表
- 金句/定义
步骤2:规划页面
P1 封面
P2 目录(列出章节)
P3 痛点/引入
P4 章节1分隔
P5 章节1内容
P6 章节1内容
P7 章节2分隔
...
PN 结束页步骤3:分配内容
每页标注:
- 页码
- 页面类型(封面/目录/章节/内容/结束)
- 具体内容
---
四、产出物
位置:项目/{项目名}/
命名:03-内容分段-v1.md
示例:
项目/Skills教程/03-内容分段-v1.md
项目/年会方案/03-内容分段-v1.md---
五、输出格式
# [项目名] - 内容分段
## 页面规划
| 页码 | 类型 | 内容概要 |
|------|------|----------|
| P1 | 封面 | 主标题+副标题 |
| P2 | 目录 | 4个章节 |
| P3 | 内容 | 痛点对比 |
| P4 | 章节 | 01 章节标题 |
| ... | ... | ... |
## 详细内容
### P1. 封面
- 主标题:xxx
- 副标题:xxx
### P2. 目录
- 01 章节1
- 02 章节2
- ...
### P3. 痛点对比
- 左侧:传统方式的问题
- 右侧:新方式的优势
...<!-- input: 02_PPT模板分析方法.md(布局库)、03_内容分段方法.md(分段表)、SKILL.md(Step 4 调用) output: 05_图床上传方法.md(提示词需要图床URL)、SKILL.md 的 API 调用步骤 pos: 阶段4,内容与模板对接
架构守护者:一旦我被修改,请同步更新: 1. 本文件的头部注释 2. README.md 索引表 -->
内容映射方法
将分段内容匹配到模板布局,确定每页用哪个垫图。
---
核心流程
内容分段 → 表达形式设计 → 逐页匹配 → 确定垫图
↓
问:最佳表达形式是什么?
↓
模板能满足?
/ \
是 否
↓ ↓
用模板 用创意页面---
零、表达形式设计(映射前必做)
对每页内容,先问:最佳表达形式是什么?
| 内容类型 | 最佳表达形式 | 选择 |
|---|---|---|
| 步骤/流程 | 流程图、时间轴 | 模板有?→ 用模板 / 无?→ 创意页面 |
| 对比/优劣 | 对比图、天平 | 模板有?→ 用模板 / 无?→ 创意页面 |
| 核心金句 | 大字居中 | 模板有?→ 用模板 / 无?→ 创意页面 |
| 普通说明 | 左图右文 | 用模板布局 |
| 多个要点 | 列表/卡片 | 用模板布局 |
决策逻辑: 1. 分析内容 → 确定最佳表达形式 2. 查布局库 → 有合适的?→ 用模板 3. 没有?→ 用创意页面(风格不变,表达自由)
创意页面详见:02_PPT模板分析方法.md 4.7 节---
一、映射步骤
1.1 准备输入
| 输入 | 来源 |
|---|---|
| 内容分段表 | 03-内容分段-v1.md |
| 模板布局库 | 02-模板分析-v1.md |
1.2 逐页匹配
对每页内容,从布局库中选择合适的布局:
| 内容类型 | 选择布局 |
|---|---|
| 封面 | 封面页 |
| 目录 | 目录页 |
| 章节分隔 | 章节过渡页 |
| 单主题说明 | 左图右文 |
| 信息列表 | 左图右列表 |
| 对比/优劣 | 左右两栏 / 创意页面 |
| 多个要点 | 三栏/四宫格 |
| 步骤流程 | 列表/流程 / 创意页面 |
| 结束 | 结束页 |
| 需要特殊表达 | 创意页面(流程图/时间轴/对比图/金句等) |
---
二、输出格式
2.1 映射表
| 页码 | 内容概要 | 布局类型 | 垫图 |
|---|---|---|---|
| P1 | 主标题+副标题 | 封面页 | 图.001.png |
| P2 | 4个章节 | 目录页 | 图.002.png |
| P3 | 痛点引入 | 左图右文 | 图.004.png |
| P4 | 章节1 | 章节过渡 | 图.003.png |
| ... | ... | ... | ... |
2.2 每页详情(含提示词)
### P3. 痛点引入
**布局**:左图右文
**垫图**:图.004.png
**内容**:
- 标题:改了4次才写对
- 要点1:让AI改 → 风格变了
- 要点2:再改 → 文字乱码
- 要点3:改了4次才对
**提示词**:
{垫图URL} 参考这张PPT模板的整体风格,生成新的内容页。
【必须保持】配色、装饰风格、整体布局
【内容】
- 标题:改了4次才写对
- 要点:让AI改→风格变了 / 再改→文字乱码 / 改了4次才对
absolutely no watermark---
三、产出物
位置:项目/{项目名}/
命名:04-内容映射-v1.md
示例:
项目/Skills教程/04-内容映射-v1.md
项目/年会方案/04-内容映射-v1.md---
四、输出文档结构
# [项目名] - 内容映射
## 使用模板
模板名称:xxx
布局库:模板/xxx/02-模板分析-v1.md
## 映射表
| 页码 | 内容概要 | 布局类型 | 垫图 |
|------|----------|----------|------|
| P1 | ... | 封面页 | 图.001.png |
| P2 | ... | 目录页 | 图.002.png |
| ... | ... | ... | ... |
## 详细内容
### P1. 封面
**布局**:封面页
**垫图**:图.001.png
**内容**:
- 主标题:xxx
- 副标题:xxx
### P2. 目录
...<!-- input: 01_导出方法.md(垫图文件)、04_内容映射方法.md(需要上传垫图) output: SKILL.md 的 API 调用步骤(URL 用于提示词) pos: 工具方法,图生图前置
架构守护者:一旦我被修改,请同步更新: 1. 本文件的头部注释 2. README.md 索引表 -->
图片上传(图生图必需)
本地图片需先上传到图床获取 URL,才能用于图生图。
推荐图床
freeimage.host(推荐,永久存储)
curl -s -X POST -F "source=@本地图片路径" "https://freeimage.host/api/1/upload?key=6d207e02198a847aa98d0a2a901485a5"返回 JSON,提取 image.url 字段获取直链,如 https://iili.io/xxxxx.png
Litterbox(临时,1小时有效)
curl -s -F "reqtype=fileupload" -F "time=1h" -F "fileToUpload=@本地图片路径" https://litterbox.catbox.moe/resources/internals/api.php注意:部分网络环境可能 SSL 连接失败
Catbox(永久)
curl -s -F "reqtype=fileupload" -F "fileToUpload=@本地图片路径" https://catbox.moe/user/api.php注意:部分网络环境可能 SSL 连接失败
图床对比
| 图床 | 有效期 | 稳定性 | 备注 |
|---|---|---|---|
| freeimage.host | 永久 | 高 | 推荐首选 |
| litterbox | 1小时 | 中 | 部分网络不可用 |
| catbox | 永久 | 中 | 部分网络不可用 |
| sm.ms | 永久 | 高 | 需要登录 |
| imgbb | 永久 | 高 | 需要注册获取 API Key |
使用方式
1. 上传图片,获取返回的 URL 2. 将 URL 放在 prompt 开头,后面跟描述文字
示例:
https://iili.io/xxxxx.png 将这张图片进行4K增强,保持原有内容不变配置文件模板
此目录包含配置文件的模板。
使用方法
1. 复制整个目录为 config/:
cp -r config.example config2. 编辑 config/secrets.md,填入你的真实 API 密钥
文件说明
| 文件 | 用途 |
|---|---|
secrets.md | 存放 API 密钥,供图片生成等模块使用 |
注意
config/目录已被.gitignore忽略,不会被提交到 Git- 请勿将真实密钥提交到代码仓库
<!-- input: 无 output: API Key 供其他模块读取 pos: 配置文件
架构守护者:API Key 变更时更新此文件 -->
API 密钥
API_KEY=your-api-key-here
{
"name": "方法",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"dependencies": {
"pptxgenjs": "^4.0.1"
}
},
"node_modules/@types/node": {
"version": "22.19.3",
"resolved": "https://registry.npmjs.org/@types/node/-/node-22.19.3.tgz",
"integrity": "sha512-1N9SBnWYOJTrNZCdh/yJE+t910Y128BoyY+zBLWhL3r0TYzlTmFdXrPwHL9DyFZmlEXNQQolTZh3KHV31QDhyA==",
"license": "MIT",
"dependencies": {
"undici-types": "~6.21.0"
}
},
"node_modules/core-util-is": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
"integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==",
"license": "MIT"
},
"node_modules/https": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/https/-/https-1.0.0.tgz",
"integrity": "sha512-4EC57ddXrkaF0x83Oj8sM6SLQHAWXw90Skqu2M4AEWENZ3F02dFJE/GARA8igO79tcgYqGrD7ae4f5L3um2lgg==",
"license": "ISC"
},
"node_modules/image-size": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/image-size/-/image-size-1.2.1.tgz",
"integrity": "sha512-rH+46sQJ2dlwfjfhCyNx5thzrv+dtmBIhPHk0zgRUukHzZ/kRueTJXoYYsclBaKcSMBWuGbOFXtioLpzTb5euw==",
"license": "MIT",
"dependencies": {
"queue": "6.0.2"
},
"bin": {
"image-size": "bin/image-size.js"
},
"engines": {
"node": ">=16.x"
}
},
"node_modules/immediate": {
"version": "3.0.6",
"resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz",
"integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==",
"license": "MIT"
},
"node_modules/inherits": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
"license": "ISC"
},
"node_modules/isarray": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
"integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==",
"license": "MIT"
},
"node_modules/jszip": {
"version": "3.10.1",
"resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz",
"integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==",
"license": "(MIT OR GPL-3.0-or-later)",
"dependencies": {
"lie": "~3.3.0",
"pako": "~1.0.2",
"readable-stream": "~2.3.6",
"setimmediate": "^1.0.5"
}
},
"node_modules/lie": {
"version": "3.3.0",
"resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz",
"integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==",
"license": "MIT",
"dependencies": {
"immediate": "~3.0.5"
}
},
"node_modules/pako": {
"version": "1.0.11",
"resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz",
"integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==",
"license": "(MIT AND Zlib)"
},
"node_modules/pptxgenjs": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/pptxgenjs/-/pptxgenjs-4.0.1.tgz",
"integrity": "sha512-TeJISr8wouAuXw4C1F/mC33xbZs/FuEG6nH9FG1Zj+nuPcGMP5YRHl6X+j3HSUnS1f3at6k75ZZXPMZlA5Lj9A==",
"license": "MIT",
"dependencies": {
"@types/node": "^22.8.1",
"https": "^1.0.0",
"image-size": "^1.2.1",
"jszip": "^3.10.1"
}
},
"node_modules/process-nextick-args": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
"integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==",
"license": "MIT"
},
"node_modules/queue": {
"version": "6.0.2",
"resolved": "https://registry.npmjs.org/queue/-/queue-6.0.2.tgz",
"integrity": "sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==",
"license": "MIT",
"dependencies": {
"inherits": "~2.0.3"
}
},
"node_modules/readable-stream": {
"version": "2.3.8",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
"integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
"license": "MIT",
"dependencies": {
"core-util-is": "~1.0.0",
"inherits": "~2.0.3",
"isarray": "~1.0.0",
"process-nextick-args": "~2.0.0",
"safe-buffer": "~5.1.1",
"string_decoder": "~1.1.1",
"util-deprecate": "~1.0.1"
}
},
"node_modules/safe-buffer": {
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
"integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
"license": "MIT"
},
"node_modules/setimmediate": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
"integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==",
"license": "MIT"
},
"node_modules/string_decoder": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
"integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
"license": "MIT",
"dependencies": {
"safe-buffer": "~5.1.0"
}
},
"node_modules/undici-types": {
"version": "6.21.0",
"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz",
"integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==",
"license": "MIT"
},
"node_modules/util-deprecate": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
"integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
"license": "MIT"
}
}
}
{
"dependencies": {
"pptxgenjs": "^4.0.1"
}
}
<!-- 架构守护者:一旦本文件夹有任何变化(新增/删除/重命名文件),请更新此文件 -->
AIPPT 方法库
用垫图 + AI 生成 PPT 的完整方法论。
文件清单
| 文件 | pos | input(谁调用我) | output(我给谁用) |
|---|---|---|---|
SKILL.md | 入口 | 用户 | 调用 01-05 所有方法 |
01_导出方法.md | 阶段1 | SKILL.md | → 02 |
02_PPT模板分析方法.md | 阶段2 | 01、SKILL.md | → 04 |
03_内容分段方法.md | 阶段3 | SKILL.md | → 04 |
04_内容映射方法.md | 阶段4 | 02、03、SKILL.md | → 05、API调用 |
05_图床上传方法.md | 工具 | 01、04 | → API调用 |
config/secrets.md | 配置 | SKILL.md | API 调用 |
scripts/images2pptx.js | 工具 | SKILL.md | 最终 .pptx |
工作流程
导出图片 → 分析模板 → 内容分段 → 内容映射 → 上传图床 → 调用API → 下载保存 → 打包PPTX快速开始
详见 SKILL.md
#!/usr/bin/env node
/**
* images2pptx.js - 将图片文件夹打包成 PPT
*
* 用法: node images2pptx.js <图片目录> [输出文件名]
* 示例: node images2pptx.js ./slides output.pptx
*/
const pptxgen = require('pptxgenjs');
const fs = require('fs');
const path = require('path');
// 参数解析
const args = process.argv.slice(2);
if (args.length < 1) {
console.log('用法: node images2pptx.js <图片目录> [输出文件名]');
console.log('示例: node images2pptx.js ./slides output.pptx');
process.exit(1);
}
const inputDir = path.resolve(args[0]);
const outputFile = args[1] || 'output.pptx';
const outputPath = path.resolve(inputDir, outputFile);
// 检查目录
if (!fs.existsSync(inputDir)) {
console.error(`错误: 目录不存在 - ${inputDir}`);
process.exit(1);
}
// 获取图片文件
const imageExts = ['.jpg', '.jpeg', '.png', '.gif', '.webp'];
const images = fs.readdirSync(inputDir)
.filter(f => imageExts.includes(path.extname(f).toLowerCase()))
.sort((a, b) => {
// 尝试按数字排序(支持 "第1页", "slide1", "1" 等格式)
const numA = parseInt(a.match(/\d+/)?.[0] || '0');
const numB = parseInt(b.match(/\d+/)?.[0] || '0');
if (numA !== numB) return numA - numB;
return a.localeCompare(b, 'zh-CN');
});
if (images.length === 0) {
console.error('错误: 目录中没有找到图片文件');
process.exit(1);
}
console.log(`找到 ${images.length} 张图片:`);
images.forEach((img, i) => console.log(` ${i + 1}. ${img}`));
// 创建 PPT
const pptx = new pptxgen();
pptx.layout = 'LAYOUT_16x9';
pptx.title = path.basename(inputDir);
images.forEach((filename) => {
const slide = pptx.addSlide();
slide.addImage({
path: path.join(inputDir, filename),
x: 0,
y: 0,
w: '100%',
h: '100%'
});
});
// 保存
pptx.writeFile({ fileName: outputPath })
.then(() => {
console.log(`\n✅ PPT 生成成功: ${outputPath}`);
console.log(` 共 ${images.length} 页`);
})
.catch(err => {
console.error('生成失败:', err);
process.exit(1);
});
4K 高清化
将低分辨率图片增强为 4K 超清图片。
完整流程
1. 上传图片获取 URL
优先使用 PicGo:
curl -s -X POST "http://127.0.0.1:36677/upload" \
-H "Content-Type: application/json" \
-d '{"list":["/绝对路径/image.png"]}'2. 调用 4K 模型生成
curl -s -X POST "https://ismaque.org/v1/images/generations" \
-H "Authorization: Bearer API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gemini-3-pro-image-preview-4k",
"prompt": "图片URL 4K增强",
"size": "3:4",
"n": 1
}'3. 下载保存
从响应中提取 data[0].url,下载到本地:
curl -s -o "output_4k.png" "生成的图片URL"尺寸选择
根据原图比例选择合适的 size:
| 原图比例 | size 参数 | 输出分辨率 |
|---|---|---|
| 竖版(手机截图) | 3:4 | 3584 × 4800 |
| 横版 | 4:3 | 4800 × 3584 |
| 正方形 | 1:1 | 4096 × 4096 |
| 宽屏 | 16:9 | 4800 × 2704 |
批量处理
可以并行处理多张图片: 1. 先批量上传所有图片到图床 2. 并行调用 API 生成 4K 版本 3. 批量下载结果
提示词技巧
- 简洁有效:
4K增强 - 保持内容:
4K超清增强,保持内容不变 - 如需修改文字,参考
chinese-text.md
中文文字处理技巧
AI 图像生成对中文文字的处理有局限性,以下技巧可提高准确率。
提示词技巧
| 技巧 | 示例 | 说明 |
|---|---|---|
| 明确指出具体文字 | 把「肥」字改成「爬」字 | 比"修正错别字"效果好 |
| 使用引号标注 | 将「又要肥楼了」改为「又要爬楼了」 | 清晰标注原文和目标 |
| 强调只改一处 | 只改这一个字,图片其他部分完全不动 | 避免整体被重绘 |
| 一次只改一处 | 不要同时要求修改多处文字 | 降低复杂度 |
推荐提示词模板
图片URL 这张图左上角黄色对话框里写的是「原文」,请把「X」字改成「Y」字,变成「目标文字」。只改这一个字,图片其他部分完全不动。注意事项
1. 多次尝试:同样的提示词可能需要 2-3 次才成功,AI 生成有随机性 2. 检查结果:每次生成后务必检查文字是否正确 3. 原图质量:原图文字越清晰,AI 越容易识别和保持 4. 简化指令:复杂的多处修改拆分成多次单独修改
图片上传(图生图必需)
本地图片需先上传到图床获取 URL,才能用于图生图。
推荐图床
freeimage.host(推荐,永久存储)
curl -s -X POST -F "source=@本地图片路径" "https://freeimage.host/api/1/upload?key=6d207e02198a847aa98d0a2a901485a5"返回 JSON,提取 image.url 字段获取直链,如 https://iili.io/xxxxx.png
Litterbox(临时,1小时有效)
curl -s -F "reqtype=fileupload" -F "time=1h" -F "fileToUpload=@本地图片路径" https://litterbox.catbox.moe/resources/internals/api.php注意:部分网络环境可能 SSL 连接失败
Catbox(永久)
curl -s -F "reqtype=fileupload" -F "fileToUpload=@本地图片路径" https://catbox.moe/user/api.php注意:部分网络环境可能 SSL 连接失败
图床对比
| 图床 | 有效期 | 稳定性 | 备注 |
|---|---|---|---|
| freeimage.host | 永久 | 高 | 推荐首选 |
| litterbox | 1小时 | 中 | 部分网络不可用 |
| catbox | 永久 | 中 | 部分网络不可用 |
| sm.ms | 永久 | 高 | 需要登录 |
| imgbb | 永久 | 高 | 需要注册获取 API Key |
使用方式
1. 上传图片,获取返回的 URL 2. 将 URL 放在 prompt 开头,后面跟描述文字
示例:
https://iili.io/xxxxx.png 将这张图片进行4K增强,保持原有内容不变PPT 生图方法论
基于 ASCII PPT 框架 + Gemini 生图的实践经验。
核心流程
ASCII 框架 → 提取文字+布局 → 构造 prompt → Gemini 生图风格选择
| 风格 | 适用场景 | prompt 关键词 |
|---|---|---|
| 扁平插画风 | 封面、痛点页、场景示意 | Flat design, clean vectors, soft pastel colors, minimal shadows, 2D style |
| 等距视图风 | 文件结构图、流程图 | Isometric 3D illustration, soft gradients, clean geometric shapes |
| 科技渐变风 | 封面、章节分隔页背景 | Abstract technology background, gradient, flowing lines, subtle glow effects |
| 卡通人物风 | 痛点表情、状态展示 | Cute cartoon character, chibi style, simple expressions, pastel colors |
| 线条图标风 | 步骤示意、功能对比 | Minimal line art icons, thin stroke, monochrome with accent color |
让文字正确的技巧
AI 生图文字容易出错,以下技巧可提高准确率:
1. 用引号包裹具体文字
❌ 写上标题和副标题
✅ Center large title text "Skills" in bold white font2. 明确指定位置
❌ 文字在图中
✅ Center / below / bottom right corner / top left3. 明确指定样式
❌ 大标题小标题
✅ bold white font / smaller white text / 48px4. 完整示例
Center large title text "Skills" in bold white font,
subtitle below "像管理笔记一样管理提示词" in smaller white text,
bottom right corner small text "成峰 / 2025.12"Prompt 模板
封面页 (cover)
Flat design presentation cover slide, clean minimalist vector style,
[背景描述] background with [装饰元素].
Center large title text "[主标题]" in bold white font,
subtitle below "[副标题]" in smaller white text,
bottom right corner small text "[署名]",
modern tech aesthetic, 16:9 ratio章节分隔页 (section)
[风格] presentation section divider,
[背景色] gradient background,
large centered text "[章节号]" and "[章节标题]",
clean minimalist design, no other elements, 16:9 ratio内容页配图 (content)
[风格] illustration, [主题描述],
[颜色方案] color palette,
no text, suitable for presentation slide,
clean background, 4:3 ratio金句页 (quote)
[风格] presentation quote slide,
[背景描述] background,
centered text "[金句内容]" in elegant white font,
inspirational atmosphere, 16:9 ratio注意事项
1. 中文文字有随机性 - 同样的 prompt 可能需要 2-3 次才正确 2. 复杂文字建议后期加 - 只让 AI 生成背景,文字用设计软件 3. 检查生成结果 - 每次都要核对文字是否正确 4. 保持风格统一 - 同一套 PPT 使用相同的风格关键词
案例参考
见 案例/ 文件夹。
文章转 ASCII PPT 方法论
将文章内容转换为 ASCII PPT 框架,为 AI 生图提供精确布局指导
---
核心流程
阅读文章 → 提取信息 → 设计结构 → ASCII 绘图 → 补充说明---
第一步:阅读文章,提取核心信息
1.1 快速浏览,把握整体
- 文章类型:教程 / 产品介绍 / 观点论述 / 技术分享
- 目标受众:开发者 / 产品经理 / 普通用户
- 核心信息:作者想传递的1-3个关键点
1.2 标注关键段落
阅读时标记:
- 痛点/问题:用户遇到的困扰
- 解决方案:产品/方法的核心价值
- 优势/特点:3-5个关键卖点
- 章节:文章的自然分段
---
第二步:设计 PPT 结构
2.1 标准 PPT 模板(21页)
| 页码 | 类型 | 内容 | 用途 |
|---|---|---|---|
| 1 | cover | 封面 | 吸引注意力 |
| 2-3 | content | 痛点引入 | 引发共鸣 |
| 4-6 | content | 解决方案/优势 | 展示价值 |
| 7 | section | 章节分隔 01 | 结构清晰 |
| 8-10 | content | 判断标准/使用场景 | 实用信息 |
| 11 | section | 章节分隔 02 | 继续推进 |
| 12-14 | content | 核心概念/原理 | 深入讲解 |
| 15 | section | 章节分隔 03 | 保持节奏 |
| 16-18 | content | 实战案例/步骤 | 可操作性 |
| 19 | section | 章节分隔 04 | 收尾准备 |
| 20 | content | 总结 | 强化记忆 |
| 21 | end | 结束页 | 行动召唤 |
2.2 根据文章调整
- 短文章(<1500字):10-15 页,减少章节分隔
- 长文章(>3000字):25-30 页,增加案例和细节
- 教程类:增加步骤演示页
- 观点类:增加金句页
---
第三步:ASCII 绘图
3.1 基础画框
# 标准全屏框
┌─────────────────────────────────────────────────────────────┐
│ │
│ 内容区域 │
│ │
└─────────────────────────────────────────────────────────────┘
# 上下分割(标题+内容)
┌─────────────────────────────────────────────────────────────┐
│ 标题区域 │
├─────────────────────────────────────────────────────────────┤
│ │
│ 内容区域 │
│ │
└─────────────────────────────────────────────────────────────┘
# 左右分割(图+文)
┌─────────────────────────────────────────────────────────────┐
│ │ │
│ 左侧(图片) │ 右侧(文字列表) │
│ │ │
└─────────────────────────────────────────────────────────────┘3.2 常用模板
封面页 (cover)
┌─────────────────────────────────────────────────────────────┐
│ │
│ [主标题] │
│ [副标题/一句话描述] │
│ │
│ [署名/日期] │
└─────────────────────────────────────────────────────────────┘痛点引入 (content)
┌─────────────────────────────────────────────────────────────┐
│ [大标题] │
├───────────────────┬─────────────────────────────────────────┤
│ │ ❌ [痛点1] │
│ [表情插图] │ ❌ [痛点2] │
│ │ ❌ [痛点3] │
│ │ │
│ │ [总结语/感叹] │
└───────────────────┴─────────────────────────────────────────┘三大优势 (content)
┌─────────────────────────────────────────────────────────────┐
│ [标题] │
├───────────────────┬─────────────────────────────────────────┤
│ │ ✅ [优势1] │
│ [对比图/流程图] │ ✅ [优势2] │
│ │ ✅ [优势3] │
└───────────────────┴─────────────────────────────────────────┘章节分隔页 (section)
┌─────────────────────────────────────────────────────────────┐
│ │
│ [章节号,如 01、02] │
│ [章节标题] │
│ │
└─────────────────────────────────────────────────────────────┘金句页 (quote)
┌─────────────────────────────────────────────────────────────┐
│ │
│ [核心金句/定义,大字号] │
│ │
│ [补充说明] │
│ │
└─────────────────────────────────────────────────────────────┘列表页 (content)
┌─────────────────────────────────────────────────────────────┐
│ [标题] │
├─────────────────────────────────────────────────────────────┤
│ │
│ ✅ [项目1] [简短说明] │
│ ✅ [项目2] [简短说明] │
│ ✅ [项目3] [简短说明] │
│ ❌ [不适合项1] [简短说明] │
│ ❌ [不适合项2] [简短说明] │
│ │
└─────────────────────────────────────────────────────────────┘流程页 (content)
┌─────────────────────────────────────────────────────────────┐
│ [标题] │
├─────────────────────────────────────────────────────────────┤
│ │
│ ① [步骤1] │
│ ↓ │
│ ② [步骤2] │
│ ↓ │
│ ③ [步骤3] │
│ ↓ │
│ ④ [步骤4] │
│ │
│ [总结数据/对比] │
└─────────────────────────────────────────────────────────────┘---
第四步:补充说明
4.1 配图建议
每页 ASCII 框架后,添加一行配图建议:
**配图建议**: 背景使用渐变色或科技感图案
**配图建议**: 左侧放置抓狂/无奈的表情插图
**配图建议**: 使用流程图样式,箭头用动画依次出现4.2 设计建议
针对特殊页面,添加设计建议:
**设计建议**: 大字号章节号,背景使用醒目颜色
**设计建议**: 问题部分使用大字号强调
**设计建议**: 使用对比色区分适合/不适合4.3 AI 生图提示词(可选)
如果需要直接生图,在最后添加 Prompt 模板:
---
## AI 生图提示词参考
### 封面背景Abstract technology background with gradient colors (purple to blue), clean and modern style, suitable for presentation cover, 4:3 ratio
### 烦恼表情Cartoon character looking frustrated and stressed, surrounded by floating documents and chat windows, simple flat design style
---
实战案例
案例 1:技术教程类文章
原文结构: 1. 介绍问题背景 2. 传统方案的痛点 3. 新方案介绍 4. 核心原理 5. 使用步骤 6. 实战案例 7. 总结
转换思路:
- PPT1: 封面(技术标题 + 副标题)
- PPT2-3: 痛点页(传统方案的问题)
- PPT4-6: 新方案优势(对比展示)
- PPT7: 章节"原理篇"
- PPT8-10: 核心原理讲解
- PPT11: 章节"实践篇"
- PPT12-15: 使用步骤
- PPT16-18: 实战案例
- PPT19: 总结
- PPT20: 结束页
案例 2:产品介绍类文章
原文结构: 1. 用户场景描述 2. 现有解决方案不足 3. 产品介绍 4. 核心功能 5. 使用场景 6. 成功案例
转换思路:
- PPT1: 封面
- PPT2: 场景引入(引发共鸣)
- PPT3: 现有方案痛点
- PPT4-6: 产品介绍 + 核心功能
- PPT7: 章节"适用场景"
- PPT8-10: 详细使用场景
- PPT11: 章节"成功案例"
- PPT12-15: 案例展示
- PPT16: 总结页
- PPT17: 结束页
---
统计信息(放在文末)
---
## 统计信息
| 模板类型 | 用途 | 数量 |
|---------|------|-----|
| cover | 封面页 | 1 |
| content | 正文页 | 13 |
| section | 章节分隔页 | 6 |
| quote | 金句页 | 2 |
| end | 结束页 | 1 |
| **总计** | | **21** |---
注意事项
内容精简
- 一页一观点:每页只讲清楚一个核心信息
- 文字极简:PPT 上只放关键词和短句,不要大段文字
- 用图标:用 ✅❌→↓ 等符号替代文字说明
视觉节奏
- 章节分隔:每 3-5 页内容后加一个章节页
- 风格变化:封面、章节页、结束页用醒目设计
- 内容页:保持统一风格,避免视觉疲劳
ASCII 绘图技巧
- 对齐优先:使用等宽字体,确保所有线条对齐
- 适度留白:不要填满整个框架,留出视觉呼吸空间
- 符号统一:统一使用
│─┌┐└┘├┤等线条符号
---
快速模板
复制这个模板开始:
# [文章标题] - ASCII PPT 设计
---
## PPT 1: 封面页 (cover)
┌─────────────────────────────────────────────────────────────┐ │ │ │ [主标题] │ │ [副标题/一句话描述] │ │ │ │ [署名/日期] │ └─────────────────────────────────────────────────────────────┘
**配图建议**: 背景使用渐变色或科技感图案
---
## PPT 2: 痛点引入 (content)
┌─────────────────────────────────────────────────────────────┐ │ 每次都要面对的问题 │ ├───────────────────┬─────────────────────────────────────────┤ │ │ ❌ [痛点1] │ │ [烦恼表情图] │ ❌ [痛点2] │ │ │ ❌ [痛点3] │ └───────────────────┴─────────────────────────────────────────┘
**配图建议**: 左侧放置抓狂/烦恼的表情插图
---
(继续添加更多页面...)