eluckydog/ppt-scene-graph

ppt-scene-graph

PPT 视觉场景图 + 美化/创建流水线。从 PPTX 提取结构化布局数据(元素树、空间关系、布局模式),并提供一键美化、从大纲创建演示文稿能力。内置 DesignHub 设计系统,支持多种主题。完全独立,无需外部 python-pptx 依赖(已 vendor)。

Ver código fuente

Cómo usar

  1. Copia el comando y revisa el paquete antes de instalarlo en tu entorno de agente.
  2. Consulta las herramientas, credenciales y entornos necesarios en el documento original.
  3. Describe las entradas y el resultado deseado; contrasta la salida con las fuentes.
npx skills add https://github.com/eluckydog/ppt-scene-graph --skill ppt-scene-graph

Antes de empezar

  • La instalación no incluye suscripción al modelo, cuota API ni permisos sobre tus archivos.
  • Las estrellas e instalaciones reflejan actividad, no una prueba independiente de calidad o seguridad.
Documento original del Skill

Contenido del repositorio de origen con títulos, ejemplos, código, tablas, enlaces e imágenes preservados.

PPT Scene Graph — OpenClaw Skill

Visual Scene Graph for PowerPoint + Unified Production Pipeline

让 AI 看到并理解幻灯片布局,同时提供完整的美化/创建能力。


核心能力

能力说明状态
🎨 PPT 美化一键应用设计主题,自动调整字体/颜色/间距✅
🏗️ 从零创建基于大纲 YAML/JSON 自动生成完整演示文稿✅
🔍 场景图解析提取元素树、空间关系、布局模式✅
📊 质量评估评分 PPT 设计质量(对比度、对齐、一致性)✅
🎯 智能检测自动识别封面/章节/内容/结尾等幻灯片类型✅

设计系统(内置主题)

主题风格适用场景
designhub_warm温暖希望系(奶油白 + 暖红 + 生命绿)学生/公众演讲、情感叙事
designhub_pro专业商务系(深蓝 + 金)企业汇报、商务演示
projection投影优化系(高对比度、大字体)大型会场投影

快速开始

1. 美化现有 PPT

python
from ppt_scene_graph import beautify

# 使用默认主题美化
beautify("input.pptx", theme="designhub_warm", output_path="output.pptx")

# 不添加页码
beautify("input.pptx", add_page_numbers=False)

2. 从大纲创建 PPT

python
from ppt_scene_graph import create_from_outline
from ppt_scene_graph.pipeline import SlideSpec, OutlineSpec

outline = OutlineSpec(
    title="我的演示",
    subtitle="副标题",
    slides=[
        SlideSpec(type='cover', title="封面标题", subtitle="封面副标题"),
        SlideSpec(type='section', title="1. 第一章"),
        SlideSpec(type='content', title="内容页", body=["要点1", "要点2", "要点3"]),
        SlideSpec(type='ending', title="谢谢", subtitle="Q&A"),
    ]
)

create_from_outline(outline, theme="designhub_warm", output_path="output.pptx")

3. 解析场景图

python
from ppt_scene_graph import parse_slide

slide_data = parse_slide("presentation.pptx", slide_idx=0)
print(slide_data)
# {
#     "elements": [...],
#     "relations": [...],
#     "layout_pattern": "two_column"
# }

4. 评估 PPT 质量

python
from ppt_scene_graph import evaluate

report = evaluate("presentation.pptx")
print(report)
# {
#     "total_score": 85,
#     "contrast_ratio": "PASS",
#     "alignment": "GOOD",
#     ...
# }

CLI 使用

bash
# 美化
python -m ppt_scene_graph.pipeline beautify input.pptx -t designhub_warm -o output.pptx

# 创建
python -m ppt_scene_graph.pipeline create --outline outline.yaml -o output.pptx

# 评估
python -m ppt_scene_graph.pipeline evaluate input.pptx

技术架构

依赖管理

✅ 完全独立 — 无需外部 python-pptx 依赖

  • python-pptx (MIT) 已 vendor 到 ppt_scene_graph/vendor/pptx/
  • 安装 skill 后即可使用,无需 pip install python-pptx

项目结构

ppt-scene-graph-opensource/
├── ppt_scene_graph/
│   ├── __init__.py          # 导出 API + vendor 路径设置
│   ├── pipeline.py          # 美化/创建/评估流水线
│   ├── design.py            # DesignSystem 设计系统
│   └── vendor/             # Vendored 依赖
│       ├── __init__.py
│       └── pptx/           # python-pptx 源码 (MIT)
├── SKILL.md                # OpenClaw Skill 定义
├── README.md               # 使用文档
├── DESCRIPTION.txt         # 简短描述(347 字符)
├── LICENSE                 # MIT License
└── scripts/               # OpenClaw 调用脚本(可选)
    ├── beautify.py
    ├── create.py
    └── evaluate.py

集成到 OpenClaw

安装方式

bash
# 方式1:直接复制到 skills 目录
cp -r ppt-scene-graph-opensource ~/.qclaw/skills/ppt-scene-graph

# 方式2:符号链接(开发模式)
ln -s $(pwd)/ppt-scene-graph-opensource ~/.qclaw/skills/ppt-scene-graph

在 OpenClaw 中使用

python
# 在 OpenClaw agent 中调用
from ppt_scene_graph import beautify, create_from_outline, evaluate

# 美化用户上传的 PPT
beautify(upload_path, theme="projection", output_path=output_path)

# 根据用户描述创建 PPT
outline = build_outline_from_user_input(user_prompt)
create_from_outline(outline, output_path=output_path)

设计理念

This is infrastructure code. It works. Skill-ified and ready to use. If you have questions, just ask the agent.

已完成 Skill 化 (v2.0.0)

  • ✅ 完全独立 — python-pptx (MIT) 已 vendor 到 ppt_scene_graph/vendor/pptx/
  • ✅ 零外部依赖 — 安装 skill 后即可使用,无需 pip install python-pptx
  • ✅ 标准结构 — 包含 SKILL.md, README.md, scripts/, vendor/

核心原则

  • ✅ 规则驱动 — 基于启发式规则,无需模型
  • ✅ 可预测 — 确定性的输出,便于调试
  • ✅ 投影友好 — 高对比度、大字体、安全的配色方案

有问题?

  • 📖 读 README.md(完整使用文档)
  • 🧪 运行 python test_skill_simple.py(验证安装)
  • 🤖 直接问智能体(OpenClaw Agent 已加载此 skill,支持自然语言交互)

许可证

MIT — 自由使用、修改、分发


致谢

  • Steve Canny — python-pptx 原作者
  • DesignHub — 设计系统灵感来源
  • McKinsey/PPTAgent/html-ppt-skill/pptx — 主题预设聚合来源

更新日志

v2.0.0 (2026-05-30)

  • 🎉 Skill 化 — 改造为独立 OpenClaw Skill
  • 📦 Vendor python-pptx — 移除外部依赖,完全独立
  • 📝 重写文档 — SKILL.md + README.md
  • ✨ 保留所有原有功能 — 美化/创建/评估/解析

v1.0.0 (原始版本)

  • 初始版本(基于 python-pptx 外部依赖)

Relacionados por tarea