跨客户端的图片转可编辑 PowerPoint Skill。支持 Codex、WPS Comate,以及其他兼容 SKILL.md 的 Agent 环境。
它面向幻灯片截图、信息图、海报、界面截图和流程图等图片型参考,把文字、色块、线条、表格、图表和连接关系尽量重建为可编辑 PowerPoint 对象,同时保留原图的版式结构、层级、对齐、间距、配色、文字层级和阅读顺序。
这个项目把能力分成两层:
- 平台无关层:结构还原、对象分类、坐标映射、文本保真、局部图片降级和验收标准。
- 运行时适配层:根据当前客户端选择可用的 PPTX 生成与渲染工具。
同一份 SKILL.md 不绑定单一厂商:
| 客户端 | 优先执行引擎 | 说明 |
|---|---|---|
| OpenAI Codex | Presentations + artifact-tool | 使用原生可编辑对象、渲染与版面检查 |
| WPS Comate | 本机 PPT Skill + PptxGenJS / WPS 演示能力 | 使用标准 .pptx 对象并通过 WPS 环境检查 |
| 其他兼容 Agent | PptxGenJS 或客户端原生 PPTX 工具 | 必须满足可编辑对象与渲染验收能力 |
WPS Comate 官方页面介绍了 Skill 技能生态;当前客户端支持在对话中调用 Skill,也支持通过上传 SKILL.md 创建技能。参见 WPS Comate 帮助中心 与 WPS Comate 技能市场说明。
- 一张源图对应一张幻灯片,并保持原始顺序。
- 原图是唯一空间基准,不主动重新设计、美化、摘要、翻译或重排。
- 可读文字必须重建为文本框。
- 色块、边框、分隔线、箭头和简单图标优先使用原生形状。
- 表格、图表、流程节点和连接线尽量保持独立可编辑。
- 照片、截图、纹理、复杂插画和品牌标识可以作为局部图片保留。
- 禁止把整张源图作为幻灯片背景来冒充可编辑 PPT。
- 将演示文稿截图恢复成可编辑 PPT
- 将信息图或流程图重建为可编辑幻灯片
- 根据图片还原 UI、表格、图表和版式结构
- 将多张图片按顺序批量转换为 PPT
- 在没有原始 PPTX 文件时恢复可修改的演示内容
| 图片内容 | PPT 中的优先实现 |
|---|---|
| 标题、正文、标签、注释 | 可编辑文本框 |
| 背景色块、卡片、边框、分隔线 | PowerPoint 原生形状 |
| 流程箭头和节点关系 | 可编辑连接线或路径 |
| 表格 | 原生表格或对齐的文本与形状 |
| 图表 | 原生图表或可编辑图形组件 |
| 照片、截图、复杂插画 | 保持原比例的局部图片 |
| Logo、产品图标、品牌标识 | 原始素材或源图局部裁切 |
当某个区域无法可靠拆分时,Skill 只允许把该局部区域保留为图片,并在交付说明中标注原因和可编辑性限制。
Release 同时提供两种压缩包:
image-to-ppt-v0.3.2.zip:带image-to-ppt/顶层目录,适合解压到 Agent 的 Skills 目录。image-to-ppt-v0.3.2-wps-comate.zip:压缩包根目录直接包含SKILL.md,适合 WPS Comate 上传创建 Skill。
git clone https://github.com/ShiChen872/image-to-ppt-skill.git
mkdir -p ~/.codex/skills
cp -R image-to-ppt-skill/skills/image-to-ppt ~/.codex/skills/unzip image-to-ppt-v0.3.2.zip -d ~/.codex/skills/调用示例:
使用 $image-to-ppt,把这些图片按原来的结构重建成可编辑 PPT。
推荐使用客户端的 Skill 创建/管理入口,上传:
image-to-ppt-v0.3.2-wps-comate.zip
上传完成后,可以在对话框输入 / 选择 image-to-ppt,或直接描述需求让 Comate 匹配该 Skill。
在当前 macOS 客户端中,也可以把 Skill 目录复制到本地自定义技能目录进行开发调试:
mkdir -p ~/.wpscomate/agent/skills/custom
cp -R skills/image-to-ppt ~/.wpscomate/agent/skills/custom/本地目录属于客户端实现细节,未来版本可能调整;正式共享或跨设备使用时优先采用客户端上传方式。
调用示例:
/image-to-ppt
把这些图片依次重建成可编辑 PPT,保持原有结构、文字、颜色、对齐和阅读顺序,不要重新设计。
将 skills/image-to-ppt/ 完整复制到客户端支持的个人或项目级 Skills 目录。该环境还必须提供:
- 原始分辨率图片检查能力
- 可编辑 PPTX 生成引擎
- 本地文件读写能力
- PPTX 渲染或视觉检查能力
- 字体检测或明确的字体替代策略
如果环境缺少图片检查或可编辑 PPTX 引擎,Skill 会报告能力缺口,而不会返回整页贴图的伪可编辑文件。
- 预检当前客户端、PPTX 引擎、图片处理、渲染器、Python 依赖和字体。
- 按原始分辨率检查图片,并用 YAML 记录坐标、对象和局部图片降级。
- 批量裁切复杂区域,在棋盘格背景上检查残影、白底和相邻内容污染。
- 使用当前运行端可用的 PPTX 引擎重建可编辑对象。
- 自动生成并排图、透明叠加图、差异图和边缘差异图。
- 审计 PPTX 页数、文本、形状、媒体文件和整页图片风险。
- 通过结构保真、文字保真和可编辑性验收后导出标准
.pptx。
新版增加四个可跨客户端复用的脚本:
| 脚本 | 作用 |
|---|---|
preflight_runtime.py |
检查客户端、PPTX 生成引擎、渲染器、字体及依赖,不修改共享运行时 |
extract_regions.py |
根据 YAML 批量裁切局部图片并清理连通背景 |
compare_render.py |
生成并排、叠加、差异、边缘差异与诊断指标 |
audit_pptx.py |
检查 OOXML 完整性、可编辑文本、媒体文件及整页扁平化 |
建议在任务目录创建独立环境,不要把依赖安装到客户端共享运行时:
python3 -m venv .venv
.venv/bin/pip install -r skills/image-to-ppt/requirements.txt工具链示例:
.venv/bin/python skills/image-to-ppt/scripts/preflight_runtime.py --client auto
.venv/bin/python skills/image-to-ppt/scripts/extract_regions.py \
--manifest reconstruction.yaml --output-dir assets/regions \
--preview qa/regions.png --report qa/regions-report.json
.venv/bin/python skills/image-to-ppt/scripts/compare_render.py \
--source source.png --render preview.png --output-dir qa
.venv/bin/python skills/image-to-ppt/scripts/audit_pptx.py \
output/final.pptx --expected-slides 1 \
--manifest reconstruction.yaml --regions-dir assets/regions \
--regions-report qa/regions-report.jsonv0.3.2 根据 WPS Comate 的进一步实测增加来源真实性检查:拒绝纯白或近似空白的代理源图;extract_regions.py 会记录源图和每个裁切文件的 SHA-256;审计器会核对裁切来源报告,阻止模型把自行绘制的 PNG 冒充源图裁切;比较工具也会拒绝使用空白源图生成无意义指标。v0.3.1 的文字遮挡、完整文本、坐标、媒体及清单检查继续保留。
在 1280 × 720 等效分辨率下,Skill 使用以下目标进行检查:
- 主要区域边缘目标偏差不超过 4 px
- 重复对齐线目标偏差不超过 2 px
- 主要对象尺寸目标偏差不超过 1%
- 文字块和基线目标偏差不超过 3 px
- 图片不允许拉伸,裁切必须保持原始视觉焦点
- 可读文字不得烘焙进整页图片
- 任何局部图片降级必须记录在交付说明中
这些数值是检查目标;如果肉眼可见的偏差改变了原始结构,即使没有超过阈值也必须修正。
- 图片模糊或文字不可辨认时,Skill 不会猜测缺失内容。
- 系统缺少原字体时,会使用最接近的已安装字体并说明替换关系。
- 复杂纹理、照片、品牌资产或无法可靠分解的插画可能保留为局部图片。
- 只有截图而没有原始数据时,图表会根据可见证据重建,不会虚构隐藏数据。
- PowerPoint 不支持同一文件内使用不同幻灯片尺寸;混合比例图片会采用统一画布并使用最小留边。
- 不同客户端的渲染器可能产生细微字体和阴影差异,交付说明会记录残余差异。
image-to-ppt-skill/
├── README.md
├── LICENSE
└── skills/
└── image-to-ppt/
├── SKILL.md
├── requirements.txt
├── agents/
│ └── openai.yaml
├── scripts/
│ ├── audit_pptx.py
│ ├── compare_render.py
│ ├── extract_regions.py
│ └── preflight_runtime.py
└── references/
├── fidelity-and-editability.md
├── reconstruction-manifest.md
└── runtime-adapters.md
agents/openai.yaml 为支持该元数据的客户端提供界面信息;不识别该文件的客户端可以忽略它。
如果本机已有 Codex 的 skill-creator,可以运行:
python3 ~/.codex/skills/.system/skill-creator/scripts/quick_validate.py \
./skills/image-to-ppt预期结果:
Skill is valid!
WPS Comate 上传包的根目录必须直接包含 SKILL.md;Release 前会单独检查压缩包结构。