Skip to content

Instantly share code, notes, and snippets.

@shunsukeaihara
Created December 18, 2025 10:09
Show Gist options
  • Select an option

  • Save shunsukeaihara/95b6d80037ec67ec1655798b18d22c8b to your computer and use it in GitHub Desktop.

Select an option

Save shunsukeaihara/95b6d80037ec67ec1655798b18d22c8b to your computer and use it in GitHub Desktop.
nanobabana proで生成したスライド画像群からpptxを雑に構築 with gemini cli
以下のステップに従って、画像として保存されたプレゼンテーションスライドから情報を読み取り、編集可能な PPTX 形式のプレゼンテーション資料を作成してください。
なお、JSONの構造は、pptxに変換することを想定し、抽出されたデータ構造から適切に生成し、全体で最適化してください。
ステップ1:スライド画像の解析と構造化
1.カレントディレクトリ以下の連番で名前がついた画像ファイル(ex: 1.jpg, 2.png...)をスライド画像を入力として読み取り、各スライドについて以下の情報を抽出してください。
• テキスト情報(内容・改行・箇条書き構造など)
• 画像・アイコンなどの視覚パーツ(nanobananaの適切な生成コマンド-icon, pattern, diagram, generate, storyなどの種類も判定して下さい。)
• 各パーツのサイズ、位置関係、アラインメント
• パーツ間の入れ子構造
• 各要素の役割
(例:タイトル、パンチライン、本文、表、箇条書き、画像、アイコン など)
これらを、スライド単位の JSON データとして生成してください。
この時点では JSON Schema を固定せず、データに適した構造を自律的に設計してください。
視覚パーツについては元のスライドから情報の欠落がないようにかつ編集しやすい粒度で切り出すようにして下さい。
ステップ2:JSON の統合と全体最適化
各スライドから生成された JSON を統合し、以下の条件を満たす 単一の統合 JSON を生成してください。
• レイアウトパターンやコンポーネント構造が全体で統一されていること
• 役割定義および入れ子構造のトンマナが全スライドで一貫していること
• スライド間で意味的・視覚的な整合性が保たれていること
この統合処理により、全体で一つの一貫したプレゼンテーション構造を構築してください。
ステップ3:画像・アイコン生成(元画像をコンテキストとして使用)
統合された JSON のうち、画像・アイコン・装飾要素など、生成が適切なパーツについては、以下の条件で画像を生成してください。
• 視覚パーツの切り出しも元のスライド画像をコンテキストとして参照し、形状・雰囲気・情報量を過度に崩さないように生成すること
• nanobanana pro を用いて生成するのが適切な要素については、生成画像を作成すること
• 生成した画像ファイルのパスを、対応する要素の JSON に埋め込むこと
• 画像全体のトンマナ(配色・タッチ・密度など)は、プレゼン全体で統一されるように配慮すること。
ステップ4:JSON → PPTX 生成コードの作成と実行
最終的に生成された、画像ファイルパスを含む統合済み JSON を入力として、
• この JSON を解釈し、
• テキスト
• レイアウト
• 図形
• 画像
を再構築する PPTX 生成プログラムを作成してください
• 使用言語・ライブラリは一般的な構成(例:Python + python-pptx など)で構いません
• 生成したプログラムを用いて、実際に編集可能な PPTX ファイルを作成してください
本処理を実行するにあたり、以下の項目を遵守して下さい。
- JSONの構造は、抽出されたデータ構造から適切に生成し、全体で最適化してください。
- 表については、pptxの表を使うのではなくtextboxを並べる形で生成して下さい。
- nanobanana proにわたすプロンプトは日本語で記述して下さい。
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment