「生成 → 検証 → そのまま提出」までを、決定論的に実行するPowerPoint生成パイプライン。
生成AIまたは人間が、スライドの内容と構造をcontent.jsonへ記述します。
座標・余白・文字サイズ・配線はrendererが決定し、PPTXを毎回同じ結果で生成します。
対応する14種類のtypeを、21枚の出力例で確認できます。
PowerPointで確認・編集できる実物は パターンギャラリーに収録しています。
git clone https://github.com/thinas1115/pptxdsl.git
cd pptxdsl
python -m pip install -r requirements.txt- Python 3.10以上、Windows、游ゴシックを前提とします。
- 生成結果を再現できるよう、直接・間接依存のバージョンを
requirements.txtへ固定しています。 - PPTXの生成にPowerPointは不要です。PNG化と目視確認にだけ使用します。
- AWS・Fluentアイコンは
slidegen/assets/icons/へ同梱済みです。
アイコンの出典とライセンスはクレジットを参照してください。
生成AIに作らせる場合:
- AI_DECK_PROMPT.mdの入力欄へ、テーマ・想定読者・目的・必須内容・情報源・枚数目安を記入する。
- 記入した依頼文、CONTENT_SCHEMA.md、type選定ガイドを生成AIへ渡す。
- 返されたJSONを、プロジェクト直下の
content.jsonとして保存する。
手動で作る場合は、CONTENT_SCHEMA.mdに沿ってcontent.jsonを記述します。
入力時は次の4点だけ先に確認してください。
content.jsonは資料ごとに新規作成し、過去資料や回帰ギャラリーの文言を残さない。- 不明な任意項目は、仮文言や空文字を入れずフィールド自体を省略する。
- 資料の情報構造に合うtypeだけを使い、対応typeがなければ生成AIから利用者へ確認する。
- 座標・余白・文字サイズなどのレイアウト値は記述しない。
typeごとのフィールド、件数、構成図、画像、leadの指定方法は
CONTENT_SCHEMA.mdに集約しています。
python slidegen/generate_from_json.py content.json out\deck.pptx
python slidegen/check_layout.py out\deck.pptx
powershell -ExecutionPolicy Bypass -File render.ps1 -PptxPath out\deck.pptx -OutDir out\png
python contact_sheet.py out\pnggenerate_from_json.pyは生成前にschemaを検証し、不正な入力ではPPTXを生成しません。
エラーが出た場合は、表示されたslides[番号] (type=種別)の内容を修正して再実行します。
PowerPointを利用できる場合は、out\png\sheet.pngの一覧と各ページの原寸画像を確認してください。
機械検証だけでは、文字の読みやすさ、内容の正確性、余白や配線の印象までは判断できません。
Pull Requestとmainへのpushでは、Windows CIがPython 3.10・3.13の全テスト、主要デッキ生成、
check_layout.pyを実行します。PowerPointによるPNG化と目視確認はCIで代替せず、提出前に実施します。
| やりたいこと | 参照先 |
|---|---|
content.jsonのフィールドと制約を確認する |
CONTENT_SCHEMA.md |
| 内容に合うtypeを選ぶ | docs/type-selection-guide.md |
| 生成AIへの依頼文を作る | AI_DECK_PROMPT.md |
| 対応レイアウトを人間が見て確認する | サンプルスライドギャラリー |
| 新しいtypeやレイアウタを追加する | EXTENDING.md |
| 配色・フォント・表紙デザインを変更する | DESIGN_CUSTOMIZATION.md |
| 表紙・フッターだけを利用者別に変更する | docs/cover-footer-customization.md |
| rendererと品質ゲートの設計を確認する | docs/architecture.md |
| パス | 内容 |
|---|---|
slidegen/ |
renderer、レイアウトエンジン、validator、テスト |
slidegen/assets/icons/ |
同梱済みのAWS・Fluentアイコン |
slidegen/assets/images/ |
本文で使用する画像 |
slidegen/assets/cover/ |
利用者が差し替える表紙背景画像 |
out/ |
PPTX、PNG、検証結果などの生成物。Git管理外 |
実行時の生成物はすべてout/へ保存します。docs/には保守対象の説明文書と、
その文書から参照する掲載素材だけを置きます。
examples/gallery/pattern_gallery.pptxはclone後に人間が確認する配布用サンプルです。
新しい資料を作る生成AIには渡さず、内容・文言・ページ順の参考資料にも使用しません。
本リポジトリのオリジナルコードおよび文書は、MIT Licenseで提供します。
slidegen/assets/以下には、AWS Architecture Icons、Fluent UI System Icons、商標、ロゴなど、
第三者が権利を持つ素材が含まれます。これらの素材には本プロジェクトのMIT Licenseを適用せず、
各素材の利用条件が適用されます。出典と条件は第三者素材に関する通知と
クレジットを参照してください。
本ソフトウェアを使用して利用者が作成したcontent.jsonやPPTXには、本プロジェクトの
MIT Licenseを適用しません。ただし、出力へ含まれる第三者素材には各素材の利用条件が適用されます。

