Agent Skills by ALSEL
汎用デザイン・クリエイティブ⭐ リポ 482品質スコア 96/100

gpt-image2-ppt

OpenAIのgpt-image-2を使用して、視覚的に優れたPPTスライドを生成します。Spatial Glass、Tech Blue、Editorial Monoなど10種類のキュレーション済みスタイルに対応し、ユーザーが提供したPPTXファイルを模倣するテンプレートクローンモードも搭載しています。HTMLビューアと16:9形式のPPTXファイルを出力します。プレゼンテーション、スライド、ピッチデック、投資家向けPPT、雑誌風PPTの作成依頼などで活用してください。

description の原文を見る

Generate visually striking PPT slides via OpenAI's gpt-image-2 -- 10 curated styles (Spatial Glass / Tech Blue / Editorial Mono / Dark Aurora / Risograph / Wabi / Swiss Grid / Hand Sketch / Y2K Chrome / Retro Vector) plus a template-clone mode that mimics any user-supplied .pptx; ships an HTML viewer and a 16:9 .pptx. Use when the user asks to make a presentation, slides, deck, pitch deck, investor PPT, magazine-style PPT, or 做一份 PPT / 生成幻灯片 / 用 gpt-image 生成 PPT / 按这个模板生成 PPT.

SKILL.md 本文

gpt-image2-ppt -- gpt-image-2 で PPT を生成

Markdown アウトライン(または slides_plan.json)+ ビジュアルスタイルを OpenAI 公式 Images API(gpt-image-2)に直接入力し、ページごとに画像を生成した後、キーボード操作でページを切り替えられる HTML ビューアと 16:9 の .pptx に統合します。

10 種類の組み込みスタイル

スタイル ID一言での位置づけ適用シーン
gradient-glassApple Vision OS / Spatial GlassAI 製品発表、技術シェア、クリエイティブ提案
clean-tech-blueStripe / Linear レベルの青白資金調達ピッチ、ビジネスプラン、企業戦略
vector-illustrationレトロベクターイラスト + 黒い輪郭線教育トレーニング、ブランドストーリー、コミュニティシェア
editorial-monoKinfolk / Monocle エディトリアルデザインブランド発表、文化インタビュー、書籍シェア
dark-auroraLinear / Vercel ダークネオンAI 製品、開発者ツール、技術シェア
risographRiso 2 色印刷 + ハーフトーン テクスチャクリエイティブスタジオ、文化ブランド、独立 zine
japanese-wabi無印 / 原研哉式わびさび茶道、ライフスタイル、ラグジュアリー、文化講演
swiss-gridBauhaus / Vignelli インターナショナルグリッド学術報告、博物館展示、厳粛な報告
hand-sketchスケッチノート / ホワイトボード手描きワークショップ、製品ブレインストーミング、トレーニング
y2k-chromeY2K ミレニアム液体メタル + バタフライステッカートレンドブランド、エンタメ、ブランドコラボ、Z 世代マーケティング

スタイル選択の原則:技術系は dark-aurora / gradient-glass を優先、商務系は clean-tech-blue / editorial-mono を優先、文化生活系は japanese-wabi / vector-illustration を優先、トレンドエンタメ系は risograph / y2k-chrome を優先、学術系は swiss-grid を優先、ワークショップと初期クリエイティブ系は hand-sketch を優先します。

テンプレートクローンモード

スキルに .pptx テンプレートを直接提供すると、以降のすべてのページがこのテンプレートに合わせてレンダリングされます。

# 1 行で実行:自動レンダリング + vision スタイル抽出 + 画像生成。本機に LibreOffice または docker イメージがあれば実行可能
python3 scripts/generate_ppt.py \
  --plan slides_plan.json \
  --template-pptx ./company-template.pptx \
  --template-strict

--template-strict は、各ページでテンプレートの対応ページを image reference として gpt-image-2 に入力し、最高の再現性を実現します。

テンプレートレンダリング:本機で PowerPoint を操作する必要はありません

スキルに付属の render_template.py は、.pptx を自動的に各ページ PNG にレンダリングして <cwd>/template_renders/<stem>/page-NN.png に保存します。

バックエンドは優先度順に自動選択します:

  1. 本機の libreoffice / soffice コマンド(最速)
  2. 本機の docker + linuxserver/libreoffice イメージ(初回ダウンロード ~2.5GB)
  3. PDF → PNG は pymupdf(既に requirements に含まれる);インストールされていない場合は pdf2image + poppler を使用

どちらの LibreOffice も利用できない場合は、ユーザーに PowerPoint/Keynote/WPS から各ページ PNG を手動でエクスポートするよう指示し、page-01.png から始まる辞書順の命名規則に従わせます。

generate_ppt.py --template-pptx ... を実行する際に --template-images を省略すると、レンダリングが自動的に 1 回実行されます。または手動で先に実行することもできます:

python3 scripts/render_template.py company-template.pptx
# -> <cwd>/template_renders/company_template/page-01.png ... page-NN.png

テンプレート模倣の 2 層キャッシング

資料パス用途
テンプレート各ページ PNG<cwd>/template_renders/<stem>/page-NN.pngLibreOffice 1 回レンダリングの長期再利用
Vision スタイル分析<cwd>/template_cache/<sha256>.jsongemini-3.1-pro-preview 1 回分析の長期再利用
生成成果物<cwd>/outputs/<timestamp>/毎回実行時に新ディレクトリ

すべてが呼び出し元の cwd 下にあり、プロジェクトとの関係は自然です。template_renders/template_cache/outputs/ をプロジェクトの .gitignore に追加することをお勧めします。

Vision モデル(エージェントが設定の必要性を自ら判断)

  • 本スキルを実行する現在のエージェント自体が多モーダルの場合(Claude Code は Claude Opus/Sonnet などの多モーダル SKU を使用、codex は GPT 多モーダル SKU を使用など)、外部 vision モデルを接続する必要がまったくありません:エージェント自体に Read template_renders/<stem>/page-*.png させ、スタイルを 1 回で抽出して template_cache/<sha256>.json に書き込むだけで済みます(スキーマは template_analyzer.py を参照)。これがデフォルトパスであり、VISION_* を設定する必要はありません。
  • エージェント自体が純テキストモデルの場合のみ(または特定のより強力な vision で強制的にテンプレート分析を行いたい場合)、VISION_* を設定して template_analyzer.py に独立した OpenAI 互換多モーダル chat completions エンドポイントを使用させます(Gemini / GPT / Claude いずれでも選択可能、デフォルトは内置されていません)。

Vision 分析と画像生成の gpt-image-2 は常に分離されています — vision プロバイダーの変更は出力パスに影響しません。

インストール

git clone git@github.com:JuneYaooo/gpt-image2-ppt-skills.git
cd gpt-image2-ppt-skills
bash install_as_skill.sh --target claude   # Claude Code
# または
bash install_as_skill.sh --target codex    # Codex
# API ダイレクト接続モードを使用する場合のみ、対応ディレクトリの .env を編集して API_KEY を入力してください

必須の環境変数

OPENAI_BASE_URL=https://api.openai.com    # または任意の OpenAI 互換リレーサービス
OPENAI_API_KEY=sk-...
GPT_IMAGE_MODEL_NAME=gpt-image-2
GPT_IMAGE_QUALITY=high                     # low / medium / high / auto

# オプション:テンプレートクローンモードの vision 分析バックエンド。
# デフォルトでは、本スキルを実行するエージェント自体に画像を見させます(多モーダル Claude Code / 多モーダル codex いずれでも可)。
# エージェント自体が純テキストモデルの場合のみ、以下を外部接続する必要があります。
# デフォルトエンドポイントは内置されていないため、信頼できるサービスを記入してください。そうでなければ入力しないでください。
# VISION_BASE_URL=https://your-openai-compatible-relay.example.com/v1
# VISION_API_KEY=sk-...
# VISION_MODEL_NAME=gemini-3.1-pro-preview   # または gpt-4o / claude-3.5-sonnet など任意の多モーダル SKU

セキュリティに関する注意:スクリプトは <script_dir>/.env~/.codex/skills/.../.env~/.claude/skills/.../.env~/skills/.../.env、および明示的な GPT_IMAGE2_PPT_ENV からのみ認証情報を読み込みます。プロジェクトディレクトリの .env を再帰的に読み込んで無関係なキーを誤って取得することはありません。

Codex エージェント本体の場合(ネイティブ image_generation 出力 — 推奨)

本体が Codex の場合(現在このスキルを実行しているエージェントが Codex CLI / Codex TUI)、ネイティブの image_generation ツールと ChatGPT ログイン状態を備えています。この場合、generate_ppt.py を実行しないでください。ネイティブツールを直接使ってパイプライン全体を完成させてください — 依存関係なし、API キーなし、ネスト化なし。

判定方法

image_generation ツールにアクセスでき、OPENAI_API_KEY を手動で設定することなく画像を生成できます — この 2 つの条件を満たしていればネイティブパスを使用します。

画像生成フロー(Codex ネイティブパス)

1. Slides データを準備

slides_plan.json がない場合は、以下の「生成フロー」の第 2-3 ステップに従い、slides_plan.md を書いてから python3 scripts/md_to_plan.py ... で json に変換してください。

2. スタイルテンプレートを読み込み

styles/<id>.md を読み、## 基础提示词模板 セクションを base prompt として取得します。

3. 各ページのプロンプトを構築

generate_ppt.pygenerate_prompt() ロジックを参考にし、コア規則:

  • カバー(cover/スライド 1):タイトル/サブタイトルをビジュアルの焦点に
  • データページ(data/最後のページ):重要な数字、対比、または結論を強調
  • コンテンツページ(content/その他のページ):階層構造、配置、余白に基づいて構造化された提示
  • すべてのテキストは簡体字中文でなければならず、フォントは Noto Sans CJK / Pingfang を使用し、草書体/装飾的フォントは禁止
  • 16:9 横長ワイドスクリーン(landscape, widescreen)、プロンプトで明確に「幅が高さより明らかに大きく、正方形は絶対に使わない」と述べてください
{style 基础提示词模板}

---

それでは本グループの【{カバーページ/コンテンツページ/データページ}】を生成してください。{対応するヒント}
本ページで表現するコンテンツは以下の通りです(このスタイルの美学に従ってレイアウトを再設計してください):

{slide content}

【強制的な言語とフォント要件】
1. すべてのテキストは簡体字中文を使用する必要があります。英文は禁止です(固有名詞を除く)
2. 中文フォントは Noto Sans CJK または Pingfang を使用し、草書体、装飾的フォントは禁止
3. タイトルは太字、本文は通常、フォントサイズは明確な対比を持つ

【画面比率 — 強制】16:9 横長ワイドスクリーン (landscape, widescreen)、幅が高さより明らかに大きく、正方形または縦図は絶対に使わない。

4. image_generation ツールを呼び出して出力

各ページについて image_generation ツールを呼び出します:

  • prompt:上記で組み立てた完全なプロンプト
  • output_formatpng
  • 返された画像を outputs/<timestamp>/images/slide-NN.png に保存(NN は 2 桁のページ番号)

並列実行可能(推奨 ≤4 並列、レート制限を避けるため)。

5. HTML ビューアを生成

templates/viewer.html を読み、/* IMAGE_LIST_PLACEHOLDER */'images/slide-01.png', 'images/slide-02.png', ... に置き換えて outputs/<timestamp>/index.html に書き込みます。

6. PPTX をパッケージ化(オプション)

python3 -c "
from pptx import Presentation
from pptx.util import Inches
prs = Presentation()
prs.slide_width = Inches(13.333)
prs.slide_height = Inches(7.5)
blank = prs.slide_layouts[6]
import os, glob
for p in sorted(glob.glob('outputs/<timestamp>/images/slide-*.png')):
    slide = prs.slides.add_slide(blank)
    slide.shapes.add_picture(p, 0, 0, width=prs.slide_width, height=prs.slide_height)
prs.save('outputs/<timestamp>/<title>.pptx')
print('done')
"

テンプレートクローンモード(Codex ネイティブパス)

本体が多モーダルエージェントである — テンプレート各ページ PNG を直接 Read してビジュアルスタイルを抽出し、template_cache/<sha256>.json に書き込みます(スキーマは template_analyzer.pyTemplateProfile を参照)。その後、上記フローに従って出力する際、対応するテンプレートページを reference image として image_generation ツールに渡します。

VISION_* を設定する必要はありません — 本体自体が vision です。

以下の「--backend codex」との違い

ネイティブパス(本セクション)--backend codex
適用シーン本体が Codex エージェントClaude Code / その他のエージェント、本機の codex CLI を借用
呼び出し方法image_generation ツールを直接呼び出しcodex exec --full-auto 子プロセスをスポーン
出力レイヤ1 層2 層(エージェント → python → codex exec)
速度数秒/枚30-60 秒/枚
信頼性ツールパラメータ正確自然言語リレー、時折失敗
API キーが必要不要不要

オプション:codex CLI で出力(--backend codex、Codex caller 以外用)

Codex エージェント本体の場合は、このパスを使用しないでください — 前セクションの「ネイティブパス」を使用してください。

Claude Code / OpenClaw / その他のエージェントでこのスキルを実行するが、本機に codex CLI がインストールされており、ログイン済み(codex login)の場合、そのログイン状態を借用して出力でき、OPENAI_API_KEY の設定を省略できます:

python3 scripts/generate_ppt.py --plan slides_plan.json --style styles/editorial-mono.md --backend codex

デフォルトバックエンドは依然として openai(API 直接呼び出し、高速、並列実行安定、1 ページあたり 3-10 秒)。--backend codex はエスケープハッチで、「1-2 枚の画像を試してみたいだけで、キーを設定したくない」というシナリオに適しています。

トレードオフ

  • ✅ 本スキルで OPENAI_API_KEY を設定する必要なし
  • ⚠️ 遅い:1 ページあたりエージェントループが 1 層多く、単ページ 30-60 秒以上、10 ページは 5-10 分かかる可能性
  • ⚠️ 計費は変わらない:gpt-image-2 は画像ごとの課金で ChatGPT サブスクリプション内ではなく、codex はあなたの代わりにクレジットを消費するだけ
  • ⚠️ 制御性が低い:aspect_ratio / quality / reference_image は自然言語指令に依存して codex が転送し、時折失敗

関連する env(すべてオプション):

CODEX_CMD="codex exec --full-auto"   # codex 呼び出し方法をオーバーライド(デフォルトはこれ)
CODEX_IMAGE_MODEL=gpt-image-2        # codex に渡すターゲットモデル
CODEX_TIMEOUT_SECS=900               # 単ページタイムアウト
GPT_IMAGE_BACKEND=codex              # 毎回 --backend とタイプしたくない場合は設定

テンプレートクローンの vision 分析も同理 — caller エージェント自体が多モーダル(Claude Code / 多モーダル codex)の場合、テンプレート PNG を直接 Read してスタイルを抽出でき、VISION_* を設定する必要はありません。caller エージェント自体が純テキストモデルの場合のみ、vision プロバイダーを外部接続する必要があります。

生成フロー(組み込みスタイル)

先に md、後に json:md は人間が読むため、diff / レビュー / テキスト修正が簡単;json は md から派生し、generate_ppt.py に入力され、生成済みとマークされ、手動では変更しません。

  1. ユーザーがアウトライン / 既存の slides_plan.json を提供
  2. Claude は下記の md 規約に従って slides_plan.md を書き、ユーザーとテキスト内容を確認:
    ---
    title: MediWise Health Suite ビジネスプラン
    ---
    
    ## 1. [cover] MediWise Health Suite
    サブタイトル:家庭健康管理インテリジェントプラットフォーム
    年:2026
    
    ## 2. [content] 市場痛点:ヘルスマネジメントの 2 つの分裂
    痛点 1:高頻度で低深度
    ...
    
    ## 6. [data] 効率比較:MediWise 使用前後
    ...
    
    • h2 形式:## N. [page_type, layout=layout-05] このページのタイトル行
    • N. は省略可(出現順で自動採番);[page_type] は省略可(デフォルト content);layout= はテンプレートクローンモードでのみ必要
    • page_typecover / content / data
    • h2 タイトル行 → json の content の最初の行;以下の本文 → 本文
  3. ユーザーが OK したら、json に変換:
    python3 scripts/md_to_plan.py slides_plan.md -o slides_plan.json
    
  4. スタイルを選択:上記 10 種類から 1 つ選び、対応する styles/<id>.md
  5. スクリプトを実行:
    python3 scripts/generate_ppt.py --plan slides_plan.json --style styles/editorial-mono.md
    
  6. 成果物は <cwd>/outputs/<timestamp>/ にあります:
    • images/slide-XX.png -- 各ページの PNG(16:9、1536x1024)
    • index.html -- HTML ビューア、方向キーでページ送り、スペースキーで自動再生、ESC でフルスクリーン
    • prompts.json -- 各ページで使用された完全なプロンプト(復習 / 二次調整に便利)
    • <title>.pptx -- 16:9 全ページ画像埋め込みの .pptx、シェア/プロジェクション直接使用

生成フロー(テンプレートクローン)

  1. テンプレート .pptx を取得(ユーザー提供 / 内部テンプレートライブラリ / ネットダウンロード)
  2. (オプション)先に単独でレンダリングして人工的に選択 ---- 大きなテンプレート(>15 ページ)の場合は python3 scripts/render_template.py xxx.pptx を先に実行し、template_renders/<stem>/ から 8-12 の代表ページを template_renders/<stem>_curated/ にコピーして vision 分析に提供することをお勧めします。ページ数が多いほど、layout マッチング精度が向上します
  3. slides_plan.md → slides_plan.json を生成(組み込みスタイルフロー第 2-3 ステップを参照)。各ページについて slide_number / page_typecover / content / data / など)/ content;正確にマッピングしたい場合は h2 に layout=layout-NN を追加(NN = テンプレート第 N ページ / マッピング対象のテンプレートページ番号)
  4. generate_ppt.py を実行
    python3 scripts/generate_ppt.py \
      --plan slides_plan.json \
      --template-pptx xxx.pptx \
      --template-images template_renders/xxx_curated \
      --template-strict --slides 1
    
    先に --slides 1 でカバーをスモークテストし、効果が OK になったら全量を実行
  5. ユーザーに成果物パスを通知

テンプレートページの選択 / 再利用の原則

コア原則:できるだけ 1 ページ : 1 レイアウト を実現 ---- 同じ deck 内の各スライドが異なるテンプレートページを reference として使用すれば、観客は各ページが新しいコンテンツと感じます。同じユニークな layout が 2-3 回出現する場合、観客は無意識に「なぜこのページがまた出ているのか」と考えます。

Vision 分析時に各 layout に reuse_friendly ラベルが付きます:

reuse_friendly典型的な layout複数回使用のコスト
false(再利用不可、(!) 強い警告)カバー、3 つの指定キャラクターイラストページ、ユニークなシーン画像(雪山/放送塔/レトロラジオ)、5 ステップ zigzag 各ステップ独自アイコン、novel データ中央装置ビジュアル重複が非常に明らかで、観客は困惑します
true(再利用可能だが、依然として間隔をあけることを推奨、(i) 弱いヒント)純テキスト、カードグリッド、通用リスト、セクション小見出し致命的ではありませんが、テンプレート内の他の優れたレイアウトを無駄にします

Claude がプラン組み立て時の実行戦略:

  1. 優先的にテンプレート内の N つの異なる layout を N ページのスライドに割り当て(N が不足する場合は SKILL 内で reuse_friendly=true の部分から復用可能な部分を選択)
  2. プラン内で特定ページのコンテンツ構造が非常に似ている場合(例:複数の「5 ステップフロー」)、コンテンツを改写して異なる layout で表現することを優先試行(4 ステップ + 5 ステップは異なるフロープロセスページを使用)し、同じ zigzag を 2 回使わない
  3. スモークテスト完了後、「Layout 再利用検出」セクションの出力を確認:(!) 必須修正、(i) 情況に応じて修正;プラン内の対応スライドの layout_id を修正してください
  4. キャッシュ JSON を見て layout を選択cat <cwd>/template_cache/<sha256>.json | jq '.layouts[] | {id, page_type, reuse_friendly, summary}' で一目見てテンプレートにどのレイアウトが選択可能かわかります

generate_ppt.py はタスク派遣前に自動的に再利用検出を 1 回実行し、警告をターミナルに出力し、実行をブロックしません。

スキル呼び出し規約

ユーザーが「PPT を作成する」/ 「スライドを生成する」と言ったとき:

  1. 先に 3 つのことを聞く(直接実行しないでください):
    • コンテンツ / ページ数 / 観客は誰?
    • スタイル選好?「10 種類の組み込みスタイル」表のシーンカテゴリに基づいて 1-2 個を推奨;またはユーザー自身の .pptx テンプレートをアップロード--template-pptx を使用、自動レンダリング)
    • 単ページテストで 1 枚の画像を先に見て効果を確認する必要がありますか?(--slides 1
  2. 先に slides_plan.md を書く ユーザーに確認するためのテキスト内容(md は source of truth、人間のレビューに優しい)
  3. slides_plan.json に変換python3 scripts/md_to_plan.py slides_plan.md -o slides_plan.json(json は生成済みとマークされ、手動では変更しないでください;テキストを変更する場合は md に戻して修正してから変換します)
  4. generate_ppt.py を実行、先に --slides 1

ライセンス: Apache-2.0(寛容ライセンスのため全文を引用しています) · 原本リポジトリ

詳細情報

作者
JuneYaooo
リポジトリ
JuneYaooo/gpt-image2-ppt-skills
ライセンス
Apache-2.0
最終更新
2026/5/11

Source: https://github.com/JuneYaooo/gpt-image2-ppt-skills / ライセンス: Apache-2.0

本サイトは GitHub 上で公開されているオープンソースの SKILL.md ファイルをクロール・インデックス化したものです。 各スキルの著作権は原作者に帰属します。掲載に問題がある場合は info@alsel.co.jp または /takedown フォームよりご連絡ください。
原作者: JuneYaooo · JuneYaooo/gpt-image2-ppt-skills · ライセンス: Apache-2.0