mcpField
N
nano-banana

nano-banana

github.com/evoscientistドキュメント481282 回インストール2 日前に更新
リポジトリ

nano-banana について

Nano Banana は、Gemini の画像生成 API を使って、計画した内容から画像ベースのスライドを作るプレゼンテーション作成者や研究者向けスキルです。ブラウザーでの確認、反復編集、PPTX へのパッケージ化に対応します。

主な機能

  1. 01アウトラインからスライド内容を計画
  2. 02Gemini API によるスライド画像の生成
  3. 03ビジュアルスタイルと画像モデルの選択
  4. 04ブラウザーでの確認とフィードバック入力
  5. 05スライド画像の PPTX 化

活用シーン

  1. 01文書やアウトラインを基にしたプレゼン作成
  2. 02講演、報告、提案用のビジュアルスライド生成
  3. 03研究用の図表、ダイアグラム、構成図の作成
  4. 04レビュー内容に基づくスライドの修正

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/evoscientist/evoskills --skill nano-banana

インストール後、Claude Code で/nano-bananaを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

requirements.txt
scripts/
atlas_image.py
edit_slide.py
generate_ppt.py
package_pptx.py
serve_viewer.py
styles/
gradient-glass.md
lineal-color.md
vector-illustration.md
templates/
viewer.html

詳細

Nano Banana

Gemini の画像生成 API を使用して高品質なプレゼンテーションスライドを画像として生成し、ブラウザーでインタラクティブにレビューして、フィードバックに基づいて繰り返し編集します。

このスキルを使用するタイミング

  • ユーザーがプレゼンテーション、スライドデッキ、または PPT の作成を依頼した場合
  • ユーザーが講演や講義用のビジュアルスライドの生成を希望する場合
  • ユーザーがドキュメントやアウトラインをもとにスライドを作成したい場合
  • ユーザーが「PPT を作って」「スライドを生成して」「プレゼンテーションを作成して」と依頼した場合
  • ユーザーが既存の生成済みスライドの編集や調整を希望する場合
  • ユーザーが論文やドキュメント向けに高品質な図、ダイアグラム、イラストを必要としている場合
  • ユーザーが研究用の図、アーキテクチャ図、概念イラストの生成を依頼した場合

次の用途には使用しないでください:

  • 学術論文の執筆 → paper-writing を使用してください
  • 学術会議での講演のストーリー構成の計画 → academic-slides を使用してください

始める前に:前提条件

スライドの生成に進む前に、次の前提条件を確認してください。このドキュメント内のスクリプトとスタイルのパスは、このスキルのディレクトリを基準にしています。

  1. 依存関係:pip install pillow google-genai python-pptx python-dotenv(スキルのルートにある requirements.txt にも記載されています)。ユーザーが作業している環境にインストールしてください。Atlas Cloud も同じ依存関係を使用するため、追加の SDK は不要です。

  2. プロバイダーと API キー:デフォルトのプロバイダーは Gemini です。API キーが利用可能か確認してください:

    echo $GOOGLE_API_KEY
    

    空の場合は、ユーザーにキーの提供を依頼してください。キーは次のいずれかの方法で指定できます:

    • 設定で指定する:EvoSci config set google_api_key <key>
    • 直接提供する(--api-key 引数で渡す)
    • ユーザーが会話内でキーを提供した場合は、--api-key を指定してスクリプトに渡す

    代わりに Atlas Cloud を使用するには、ATLASCLOUD_API_KEY を設定して --provider atlas を渡します。Atlas Cloud はオプトイン方式であり、デフォルトの Gemini ワークフローは変更されません。

  3. 言語:スライドの内容をどの言語にするか、ユーザーに確認してください。これは slides_plan.json に記述する内容に影響しますが、スタイルテンプレートには影響しません。


基本的なワークフロー

Phase 1: Content Planning Conversation     ← most important phase
Phase 2: Generate slides_plan.json
Phase 3: Select Style & Generate Slides
Phase 4: Launch Review Server
Phase 5: Apply Feedback Edits              ← repeat Phase 4-5 until satisfied
Phase 6: Package as PPTX
Phase 7: Cleanup

以下のフェーズを順番に進めてください。フェーズ 1 を省略しないでください。生成されるスライドの品質は、計画の深さに直接左右されます。


フェーズ 1:コンテンツ計画のための対話

これは最も重要なフェーズです。十分な計画を立てずに生成を急ぐと、平凡なスライドになってしまいます。ユーザーと構造化された対話を行ってください。

ステップ 1 — 背景を把握する:

  • プレゼンテーションのテーマは何ですか?
  • 対象者は誰ですか?(技術分野の同僚、経営幹部、学生、一般の人々)
  • 講演時間はどのくらいですか?(ページ数を決める際の参考になります)
  • どのような場面で使用しますか?(会議、社内講演、講義、ピッチ)

ステップ 2 — ストーリーラインを定める:

  • 冒頭のつかみは何ですか?(意外な事実、問いかけ、トレンド)
  • 主なセクションや論点は何ですか?(3~5 個)
  • 聴衆に覚えておいてほしい重要なメッセージは何ですか?
  • 締めくくりのメッセージは何ですか?

ステップ 3 — ページごとの内容を概説する:

  • 各スライドについて、タイトル+重要なポイント 2~4 個+ビジュアルの説明を合意します
  • 表紙、コンテンツ、データのどのタイプに当たるか、各スライドを特定します
  • ページ間の論理的な流れを確保します

時間に応じたページ数の目安:

時間ページ数構成
5 分5表紙+コンテンツ 3 ページ+締めくくり
10~15 分8~12表紙+導入+3~4 セクション+まとめ+締めくくり
20~30 分15~20表紙+導入+5~6 セクション+まとめ+締めくくり
45~60 分25~30表紙+導入+7~9 セクション(各 2~3 ページ)+まとめ+締めくくり

ユーザーがドキュメントやアウトラインを提供した場合は、内容を十分に読み込んだうえで、先にスライドの構成案を提示し、承認を得てから進めてください。


フェーズ 2:slides_plan.json の生成

次のスキーマで、ワークスペースのルートに slides_plan.json ファイルを作成します。

{
  "title": "Presentation Title",
  "total_slides": 10,
  "slides": [
    {
      "slide_number": 1,
      "page_type": "cover",
      "content": "Title: My Presentation\nSubtitle: A subtitle here\nLabel: 2026 Edition"
    },
    {
      "slide_number": 2,
      "page_type": "content",
      "content": "Title: First Topic\nKey points:\n- Point one\n- Point two\n- Point three"
    },
    {
      "slide_number": 3,
      "page_type": "data",
      "content": "Title: Key Metrics\nMetric 1: 95% accuracy\nMetric 2: 3x faster\nMetric 3: 10k users"
    }
  ]
}

page_type の値: cover、content、data

重要なコンテンツフィールドのルール

content フィールドは、画像生成モデルに渡される内容です。以下のルールを厳守してください。

  1. 必ず説明的なタイトルと箇条書きを書いてください
  2. 必ず希望するビジュアルレイアウトを説明してください(例:「左右の比較」、「4つのアイコンカード」)
  3. 「Slogan:」「Visual:」「Points:」などのメタラベルで行を始めないでください。モデルがこれらをスライド上に表示するテキストとして描画してしまいます
  4. タイトル部分とコンテンツの下部に同じ文を記載しないでください。重複して表示されます
  5. フッターのテキスト、ページ番号、透かしの指示を含めないでください

悪い例(メタラベルが表示テキストとして混入します):

Title: Why AI Matters
Visual: left-right comparison chart
Points:
- Point one
- Point two
Slogan: AI changes everything

良い例(メタラベルがなく、すっきりしています):

Title: Why AI Matters
Visual layout: left-right comparison chart showing traditional vs AI approach
Key points:
- Point one with brief explanation
- Point two with brief explanation
Bottom tagline: AI changes everything

フェーズ 3:スタイルを選択してスライドを生成する

利用可能なスタイル
スタイルファイルビジュアルの特徴最適な用途
Lineal Colorstyles/lineal-color.md白い背景、ティールのアクセント、フラットな2Dアイコン、情報カード技術講演、講義、教育
Gradient Glassstyles/gradient-glass.md明るいパステル調の背景、すりガラス風のカード、Apple Keynoteのような雰囲気製品発表、ピッチ、SaaS
Vector Illustrationstyles/vector-illustration.mdクリーム色の背景、黒い輪郭線、レトロな色使い、おもちゃのような魅力教育、子ども向けコンテンツ、ブランドストーリー

スタイルをユーザーに提示して、選んでもらってください。迷っている場合は、デフォルトとして Lineal Color をおすすめしてください。

利用可能なモデル
モデル速度品質使用する場面
gemini-3-pro-image-preview中程度最高最終版、重要なプレゼンテーション
gemini-3.1-flash-image-preview高速良好ドラフト、迅速な反復、大規模なスライドデッキ
gemini-2.5-flash-image最速基本手早いプロトタイプ、大量生成
google/nano-banana-2-lite/text-to-image高速良好Atlas Cloudでの1Kスライド生成
google/nano-banana-2-lite/edit高速良好Atlas Cloudでの1Kスライド編集

初回の生成では、反復を素早く行える gemini-3.1-flash-image-preview をおすすめしてください。最終版では gemini-3-pro-image-preview に切り替えてください。

生成コマンド
python scripts/generate_ppt.py \
  --plan slides_plan.json \
  --style styles/lineal-color.md \
  --model gemini-3.1-flash-image-preview \
  --output ppt_output

Atlas Cloud はオプションのプロバイダーとして利用できます。

python scripts/generate_ppt.py \
  --plan slides_plan.json \
  --style styles/lineal-color.md \
  --provider atlas \
  --output ppt_output

引数:

  • --plan(必須):slides_plan.json へのパス
  • --style(必須):スタイルテンプレートへのパス
  • --provider:gemini(デフォルト)または atlas
  • --model:画像生成モデル(デフォルトは gemini-3-pro-image-preview。Atlas で指定できるのは google/nano-banana-2-lite/text-to-image のみです)
  • --resolution:Gemini では 2K(デフォルト)または 4K をサポートします。Atlas では 1K を使用します
  • --output:出力ディレクトリ(デフォルト:ppt_output/TIMESTAMP)
  • --api-key:プロバイダーの環境変数に設定されていない場合に指定する、プロバイダーの API キー
  • --workers:並列ワーカー数(デフォルト:1、大規模なスライドデッキでは3~5を推奨)

出力構成:

ppt_output/
├── images/
│   ├── slide-01.png
│   ├── slide-02.png
│   └── ...
├── prompts.json    # All prompts used (for debugging)
└── index.html      # Browser viewer

終了コード。 0 はすべてのスライドが生成されたことを意味します。2 は一部のスライドのみを含むデッキが出力されたことを意味します。この場合、stderr の最終行に生成されなかったスライド番号が表示され(Failed slides: 3, 7)、各失敗は [n/total] FAIL: <reason> として出力されます。コマンドを再実行するとデッキ全体が再生成されるため、失敗の原因が共通している場合(クォータ、キー、モデル名)は、まずその問題を修正してください。1 はスライドが1枚も生成されなかったこと(または API キー/ライブラリが不足していること)を意味します。まだ確認できるものはありません。


フェーズ 4:レビューサーバーを起動する

ユーザーがスライドを確認してフィードバックを記入できるよう、対話型レビューサーバーを起動します。

python scripts/serve_viewer.py \
  --dir ppt_output \
  --plan slides_plan.json \
  --port 8080 \
  --pid-file .viewer.pid

ユーザーに次のように伝えてください。

レビューサーバーは http://localhost:8080 で実行中です。ブラウザーで開いて、各スライドを確認してください。変更が必要なスライドの下にあるテキストボックスにフィードバックを記入し、「Save Feedback」をクリックしてください。完了したら、私に知らせてください。

サーバーはフィードバックを各スライドの feedback フィールドとして、slides_plan.json に直接保存します。

次に進む前に、フィードバックを保存したことをユーザーが確認するまで待ってください。


フェーズ 5:フィードバックに基づく編集

slides_plan.json を読み込み、feedback フィールドが空でないすべてのスライドを探します。それぞれについて、編集スクリプトを実行します。

python scripts/edit_slide.py \
  --input ppt_output/images/slide-{NUMBER}.png \
  --instruction "{FEEDBACK_TEXT}" \
  --output ppt_output/images/slide-{NUMBER}.png \
  --model gemini-3.1-flash-image-preview

Atlas Cloud 経由で編集する場合、編集タスクを送信する前に、一時的な生成用途としてローカルのソース画像がスクリプトによってアップロードされます。

python scripts/edit_slide.py \
  --input ppt_output/images/slide-01.png \
  --instruction "Remove the footer text at the bottom" \
  --output ppt_output/images/slide-01.png \
  --provider atlas

引数:

  • --input(必須):元のスライド画像のパス
  • --instruction(必須):編集指示(feedback フィールドの内容)
  • --output:出力先のパス(デフォルト:入力ファイルを上書き)
  • --provider:gemini(デフォルト)または atlas
  • --model:画像編集モデル(デフォルトは gemini-3-pro-image-preview。Atlas では google/nano-banana-2-lite/edit のみ使用できます)
  • --api-key:プロバイダーの環境変数に設定されていない場合の、プロバイダー API キー

成功すると、edit_slide.py は OK: <path> を出力して 0 で終了します。失敗すると、FAIL: <reason> を出力して 1 で終了します。どちらのスクリプトも、必要な Python パッケージが不足している場合は、リクエストを送信する前に 1 で終了します。

Atlas の生成 POST リクエストは一度だけ送信され、再試行されることはありません。予測 GET リクエストのみ、上限付きのポーリングを行います。

フィードバックがあるすべてのスライドを編集したら、slides_plan.json の feedback フィールドを空にし、更新されたスライドを確認するにはブラウザーを更新するようユーザーに伝えます。

ユーザーから追加のフィードバックがある場合は、フェーズ 4~5 を繰り返します。このレビューと編集のサイクルは、ユーザーが満足するまで続けます。


フェーズ 6:PPTX としてパッケージ化

ユーザーがすべてのスライドを承認したら、希望するファイル名を尋ねてパッケージ化します。

python scripts/package_pptx.py \
  --dir ppt_output/images \
  --output presentation.pptx \
  --kill-server .viewer.pid

引数:

  • --dir(必須):slide-XX.png 画像を含むディレクトリ
  • --output(必須):出力する .pptx ファイルのパス
  • --kill-server:serve_viewer.py の PID ファイル。パッケージ化後にレビューサーバーを自動停止します

フェーズ 7:クリーンアップ

  • レビューサーバーは package_pptx.py --kill-server によって自動的に停止します
  • ppt_output/ ディレクトリを残すか、削除するかをユーザーに尋ねます
  • 今後の再生成に備えて、slides_plan.json を残しておくこともできます

直感に反するルール

  1. コンテンツにメタラベルを含めない — 「スローガン:」「ビジュアル:」「ポイント:」などの言葉は、スライド上に表示されます。接頭辞を付けずに、希望する内容を説明してください。

  2. コンテンツでは「何を」を記述し、「どのように」は記述しない — スタイルテンプレートが視覚的なレイアウトを処理します。コンテンツフィールドでは色や配置ではなく、テキストと論理的な構成に焦点を当ててください。

  3. 計画を充実させるほど、スライドの質が高まる — フェーズ 1 の会話に 10 分かけることで、何時間もの再生成を省けます。フェーズ 3 を急がないでください。

  4. 再生成ではなく編集する — テキストの修正、色の変更、フッターの削除など、スライドに小さな変更が必要な場合は、最初から再生成するのではなく edit_slide.py を使用してください。編集すれば、視覚的な一貫性を保てます。

  5. ドラフトには Flash モデルを使う — gemini-3.1-flash-image-preview は反復作業に十分な速さです。フィードバックをすべて反映した後、最終版を作成する場合にのみ gemini-3-pro-image-preview に切り替えてください。

  6. 生成した画像を自分で読まない — すべてのモデルがマルチモーダル入力に対応しているわけではありません。品質確認のために生成された PNG 画像に read_file を使用しないでください。必ずレビューサーバーを起動し、ユーザーがブラウザーでスライドを目視確認できるようにしてください。品質を判断する手掛かりは、ユーザーのフィードバックのみです。

  7. スライド 1 枚につきアイデアは 1 つ — 1 枚のスライドに複数のコンセプトを詰め込まないでください。箇条書きが 4 項目を超える場合は、2 枚のスライドに分けてください。

  8. 下部のキャッチフレーズでタイトルを繰り返さない — タイトルが「AI が重要な理由」の場合、下部のキャッチフレーズではタイトルを言い換えるのではなく、新たな知見を加えてください。


スクリプトのリファレンス

スクリプト目的主な引数
scripts/generate_ppt.pyプランからすべてのスライドを一括生成します--plan、--style、--provider、--model、--output、--resolution、--api-key、--workers
scripts/edit_slide.py指示に基づいて単一のスライドを編集します--input、--instruction、--output、--provider、--model、--api-key
scripts/atlas_image.pyオプションの Atlas Cloud 画像タスクを送信し、状態を確認します生成スクリプトと編集スクリプトで使用します
scripts/serve_viewer.pyフィードバック機能付きのローカルレビューサーバーです--dir、--plan、--port、--no-open、--pid-file
scripts/package_pptx.pyスライド画像を .pptx にパッケージ化します--dir、--output、--kill-server

スタイルテンプレートの形式

スタイルテンプレートは styles/ 内の Markdown ファイルで、generate_ppt.py が解析する固定の構造になっています。

セクション目的コードによる解析
## Base Promptすべてのスライドに共通するビジュアル仕様はい — すべてのプロンプトに挿入されます
## Page Templatesページタイプごとのレイアウトの説明フォールバックのみ
## Examples{Base Prompt} と [Content] のプレースホルダーを含む実際のプロンプトテンプレートはい — 主なテンプレートです
その他のセクションドキュメントのみいいえ

新しいスタイルを作成するには、既存の .md ファイルをコピーし、## Base Prompt と ## Examples のセクションを変更します。コードは ## Examples から ### Cover、### Content、### Data のコードブロックを抽出します。

コメント