本文へ移動
cccskills
無料GitHub で公開

ppt-scene-graph

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

完全独立,无需外部 python-pptx 依赖(已 vendor)。

日本語の概要は準備中です。原文の説明を表示しています。

連携ツールPowerPoint

実行スコア 未検証

インストール方法を見る

含まれるファイル(109)

  • SKILL.md6.2 KB
  • LICENSE1.1 KB
  • ppt_scene_graph/__init__.py743 B
  • ppt_scene_graph/design.py6.8 KB
  • ppt_scene_graph/pipeline.py29.2 KB
  • ppt_scene_graph/vendor/__init__.py202 B
  • ppt_scene_graph/vendor/pptx/__init__.py2.1 KB
  • ppt_scene_graph/vendor/pptx/action.py9.4 KB
  • ppt_scene_graph/vendor/pptx/api.py1.7 KB
  • ppt_scene_graph/vendor/pptx/chart/__init__.py0 B
  • ppt_scene_graph/vendor/pptx/chart/axis.py16.9 KB
  • ppt_scene_graph/vendor/pptx/chart/category.py7.0 KB
  • ppt_scene_graph/vendor/pptx/chart/chart.py9.7 KB
  • ppt_scene_graph/vendor/pptx/chart/data.py29.1 KB
  • ppt_scene_graph/vendor/pptx/chart/datalabel.py9.2 KB
  • ppt_scene_graph/vendor/pptx/chart/legend.py2.5 KB
  • ppt_scene_graph/vendor/pptx/chart/marker.py2.0 KB
  • ppt_scene_graph/vendor/pptx/chart/plot.py12.9 KB
  • ppt_scene_graph/vendor/pptx/chart/point.py2.7 KB
  • ppt_scene_graph/vendor/pptx/chart/series.py7.2 KB
  • ppt_scene_graph/vendor/pptx/chart/xlsx.py10.6 KB
  • ppt_scene_graph/vendor/pptx/chart/xmlwriter.py65.8 KB
  • ppt_scene_graph/vendor/pptx/dml/__init__.py0 B
  • ppt_scene_graph/vendor/pptx/dml/chtfmt.py1.3 KB
  • ppt_scene_graph/vendor/pptx/dml/color.py8.9 KB
  • ppt_scene_graph/vendor/pptx/dml/effect.py1.5 KB
  • ppt_scene_graph/vendor/pptx/dml/fill.py13.0 KB
  • ppt_scene_graph/vendor/pptx/dml/line.py3.0 KB
  • ppt_scene_graph/vendor/pptx/enum/__init__.py0 B
  • ppt_scene_graph/vendor/pptx/enum/action.py1.7 KB
  • ppt_scene_graph/vendor/pptx/enum/base.py5.7 KB
  • ppt_scene_graph/vendor/pptx/enum/chart.py13.7 KB
  • ppt_scene_graph/vendor/pptx/enum/dml.py11.8 KB
  • ppt_scene_graph/vendor/pptx/enum/lang.py21.9 KB
  • ppt_scene_graph/vendor/pptx/enum/shapes.py29.0 KB
  • ppt_scene_graph/vendor/pptx/enum/text.py7.9 KB
  • ppt_scene_graph/vendor/pptx/exc.py473 B
  • ppt_scene_graph/vendor/pptx/media.py10.3 KB
  • ppt_scene_graph/vendor/pptx/opc/__init__.py0 B
  • ppt_scene_graph/vendor/pptx/opc/constants.py17.7 KB
  • ppt_scene_graph/vendor/pptx/opc/oxml.py5.9 KB
  • ppt_scene_graph/vendor/pptx/opc/package.py29.4 KB
  • ppt_scene_graph/vendor/pptx/opc/packuri.py3.7 KB
  • ppt_scene_graph/vendor/pptx/opc/serialized.py11.2 KB
  • ppt_scene_graph/vendor/pptx/opc/shared.py709 B
  • ppt_scene_graph/vendor/pptx/opc/spec.py998 B
  • ppt_scene_graph/vendor/pptx/oxml/__init__.py15.3 KB
  • ppt_scene_graph/vendor/pptx/oxml/action.py1.6 KB
  • ppt_scene_graph/vendor/pptx/oxml/chart/__init__.py0 B
  • ppt_scene_graph/vendor/pptx/oxml/chart/axis.py9.2 KB
  • ppt_scene_graph/vendor/pptx/oxml/chart/chart.py7.9 KB
  • ppt_scene_graph/vendor/pptx/oxml/chart/datalabel.py7.5 KB
  • ppt_scene_graph/vendor/pptx/oxml/chart/legend.py2.0 KB
  • ppt_scene_graph/vendor/pptx/oxml/chart/marker.py1.7 KB
  • ppt_scene_graph/vendor/pptx/oxml/chart/plot.py9.0 KB
  • ppt_scene_graph/vendor/pptx/oxml/chart/series.py7.4 KB
  • ppt_scene_graph/vendor/pptx/oxml/chart/shared.py5.9 KB
  • ppt_scene_graph/vendor/pptx/oxml/coreprops.py10.2 KB
  • ppt_scene_graph/vendor/pptx/oxml/dml/__init__.py0 B
  • ppt_scene_graph/vendor/pptx/oxml/dml/color.py2.4 KB
  • ppt_scene_graph/vendor/pptx/oxml/dml/fill.py5.8 KB
  • ppt_scene_graph/vendor/pptx/oxml/dml/line.py379 B
  • ppt_scene_graph/vendor/pptx/oxml/ns.py4.6 KB
  • ppt_scene_graph/vendor/pptx/oxml/presentation.py4.2 KB
  • ppt_scene_graph/vendor/pptx/oxml/shapes/__init__.py588 B
  • ppt_scene_graph/vendor/pptx/oxml/shapes/autoshape.py14.4 KB
  • ppt_scene_graph/vendor/pptx/oxml/shapes/connector.py3.5 KB
  • ppt_scene_graph/vendor/pptx/oxml/shapes/graphfrm.py12.8 KB
  • ppt_scene_graph/vendor/pptx/oxml/shapes/groupshape.py9.8 KB
  • ppt_scene_graph/vendor/pptx/oxml/shapes/picture.py8.3 KB
  • ppt_scene_graph/vendor/pptx/oxml/shapes/shared.py13.6 KB
  • ppt_scene_graph/vendor/pptx/oxml/simpletypes.py19.3 KB
  • ppt_scene_graph/vendor/pptx/oxml/slide.py11.0 KB
  • ppt_scene_graph/vendor/pptx/oxml/table.py19.6 KB
  • ppt_scene_graph/vendor/pptx/oxml/text.py19.8 KB
  • ppt_scene_graph/vendor/pptx/oxml/theme.py685 B
  • ppt_scene_graph/vendor/pptx/oxml/xmlchemy.py26.3 KB
  • ppt_scene_graph/vendor/pptx/package.py7.7 KB
  • ppt_scene_graph/vendor/pptx/presentation.py3.7 KB
  • ppt_scene_graph/vendor/pptx/py.typed0 B
  • ppt_scene_graph/vendor/pptx/shapes/__init__.py720 B
  • ppt_scene_graph/vendor/pptx/shapes/autoshape.py13.4 KB
  • ppt_scene_graph/vendor/pptx/shapes/base.py7.7 KB
  • ppt_scene_graph/vendor/pptx/shapes/connector.py9.8 KB
  • ppt_scene_graph/vendor/pptx/shapes/freeform.py12.2 KB
  • ppt_scene_graph/vendor/pptx/shapes/graphfrm.py6.0 KB
  • ppt_scene_graph/vendor/pptx/shapes/group.py2.2 KB
  • ppt_scene_graph/vendor/pptx/shapes/picture.py6.7 KB
  • ppt_scene_graph/vendor/pptx/shapes/placeholder.py14.4 KB
  • ppt_scene_graph/vendor/pptx/shapes/shapetree.py46.3 KB
  • ppt_scene_graph/vendor/pptx/shared.py2.7 KB
  • ppt_scene_graph/vendor/pptx/slide.py18.3 KB
  • ppt_scene_graph/vendor/pptx/spec.py23.3 KB
  • ppt_scene_graph/vendor/pptx/table.py16.6 KB
  • ppt_scene_graph/vendor/pptx/templates/default.pptx33.2 KB
  • ppt_scene_graph/vendor/pptx/templates/docx-icon.emf124.2 KB
  • ppt_scene_graph/vendor/pptx/templates/generic-icon.emf5.3 KB
  • ppt_scene_graph/vendor/pptx/templates/notes.xml722 B
  • ppt_scene_graph/vendor/pptx/templates/notesMaster.xml10.9 KB
  • ppt_scene_graph/vendor/pptx/templates/pptx-icon.emf5.4 KB
  • ppt_scene_graph/vendor/pptx/templates/theme.xml10.7 KB
  • ppt_scene_graph/vendor/pptx/templates/xlsx-icon.emf127.3 KB
  • ppt_scene_graph/vendor/pptx/text/__init__.py0 B
  • ppt_scene_graph/vendor/pptx/text/fonts.py12.6 KB
  • ppt_scene_graph/vendor/pptx/text/layout.py10.0 KB
  • ppt_scene_graph/vendor/pptx/text/text.py24.9 KB
  • ppt_scene_graph/vendor/pptx/types.py867 B
  • ppt_scene_graph/vendor/pptx/util.py7.9 KB
  • README.md10.0 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

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

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

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. 解析场景图

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 质量

from ppt_scene_graph import evaluate

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

CLI 使用

# 美化
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

安装方式

# 方式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 中使用

# 在 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 外部依赖)

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

コメント

ログインなしで書き込めます。使ってみた感想、質問、動かなかった環境などを気軽にどうぞ。

まだコメントはありません。最初のコメントを書いてみませんか。

送信するとすぐに公開されます。メールアドレスや電話番号などの個人情報は書かないでください。URL は 2 つまでです。

0 / 1000 文字

このフォームは reCAPTCHA で保護されており、Google のプライバシーポリシーと利用規約が適用されます。

同じリポジトリのスキル

academic-image-ppt-ja

無料概要あり

原稿の主張と図の役割を頁ごとに整理し、選んだ書式を全頁へ引き継ぐ画像スライドと話者ノートを作る。

studio-yebisu/yaoyorozu-ai-toolbox-slides102026年10月22日 更新

Convert literature reviews, paper folders, thesis drafts, journal-style reports, or research outlines into rigorous academic slide decks and review artifacts. Use when Codex must create, rebuild, or polish PPTX presentations from scholarly sources while preserving academic logic, citation-aware image/formula handling, editable layouts, figure explanations, template fidelity, and export-based visual QA.

日本語の概要は準備中です。原文の説明を表示しています。

studio-yebisu/yaoyorozu-ai-toolbox-slides102026年10月22日 更新

agent-slides-ja

無料概要あり

既存PPTXの書式・配置を抽出し、planとnative編集操作からPowerPointを生成・検査する。

studio-yebisu/yaoyorozu-ai-toolbox-slides102026年10月22日 更新

aham-ja

無料概要あり

読者と目的から構成・版式を決め、確認を挟みながら、編集できる図形と文字のPPTXにする。

studio-yebisu/yaoyorozu-ai-toolbox-slides102026年10月22日 更新

aham-ppt

無料

全流程AI制作PPT演示文稿技能,克制专业、风格可选 A/B/C 三档(Aham UI v6.1 · Office 轨 · PPT)。 当用户说"帮我做PPT""做演示文稿""做一个汇报""根据这份资料做PPT" "做客户方案PPT""制作幻灯片"时立即触发。即使只有一句话需求也触发。 八阶段模块化流程:规范加载→材料解析→论点提炼→叙事骨架→大纲版式→样稿确认→逐页设计→质检交付。 内置能力自适应教练机制,无论用户专业水平高低,均引导至及格以上输出。 注意:本技能用于 PowerPoint / pptx 输出;SVG/HTML 版本见 ppt-svg 技能。

日本語の概要は準備中です。原文の説明を表示しています。

studio-yebisu/yaoyorozu-ai-toolbox-slides102026年10月22日 更新

and-scene-ja

無料概要あり

原典のReact scene kitを実scaffoldし、安定layoutIdの共通canvasでentityが移動・morphする日本語ブラウザ資料を作る。

studio-yebisu/yaoyorozu-ai-toolbox-slides102026年10月22日 更新

studio-yebisu のスキルをすべて見る

このスキルの問題を報告する