mcpField
N
nano-banana

nano-banana

github.com/glebisクリエイティブ・メディア403211 回インストール3 日前に更新
リポジトリ

nano-banana について

nano-banana は、Google Gemini の画像生成 API を使って画像を作成・編集するコマンドラインスキルです。スタイルや用途別サイズのプリセットに加え、参照画像、複数案の生成、プロジェクト履歴を扱えます。

主な機能

  1. 01テキストからの画像生成と編集
  2. 02スタイル・用途別サイズのプリセット
  3. 03複数案の並列生成と一覧画像
  4. 04参照画像によるスタイル指定
  5. 05プロジェクト出力と生成履歴

活用シーン

  1. 01記事・プレゼン・SNS向けのイラスト作成
  2. 02テキスト指示による既存画像の編集
  3. 03参照スタイルに沿った画像セットの作成

インストール

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

$npx skills add https://github.com/glebis/claude-skills --skill nano-banana

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

同梱ファイル

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

platforms.yaml
presets.yaml
secrets.enc.yaml
.claude-plugin/
plugin.json
references/
api_reference.md
scripts/
generate_image.sh
nano_banana.py

詳細

Nano Banana - Gemini 画像生成

Google の Gemini 画像生成 API を使用して、テキストプロンプトから画像を生成・編集します。

使用する場面

  • テキストの説明から画像を生成、作成、制作するようユーザーから依頼された場合
  • テキストの指示で既存の画像を編集する場合
  • スタイル変換:参照画像の美的な特徴に合った新しい画像を生成する場合
  • プレゼンテーション、記事、サムネイル、ソーシャル投稿用のイラストを作成する場合
  • 同じコンセプトのバリエーションを一括生成する場合

初回セットアップ

scripts/nano_banana.py init

ウィザードは依存関係(sops、age、magick)を確認し、API キーを検証して、既定値を ~/.config/nano-banana/config.yaml に保存します。

クイックスタート

# Simple generation
scripts/nano_banana.py "a minimalist illustration of a rocket" ./rocket.png

# With style preset
scripts/nano_banana.py --preset editorial "interconnected nodes" ./nodes.png

# YouTube thumbnail (auto-cropped to 1280x720)
scripts/nano_banana.py --preset grain --platform youtube "coffee on desk" ./thumb.png

# Generate 4 variants + contact sheet
scripts/nano_banana.py --preset wireframe "a crystal" ./crystal.png --n 4

# Edit existing image
scripts/nano_banana.py --edit ./old.png "make the background deep teal" ./new.png

# Style reference (match aesthetic of existing image)
scripts/nano_banana.py --reference ./style.png "a new mountain landscape" ./mountain.png

# Re-roll last prompt
scripts/nano_banana.py again

# View history
scripts/nano_banana.py history -n 10

必要条件

  • GEMINI_API_KEY — SOPS + age を使って secrets.enc.yaml から自動的に復号されます。代替手段:export GEMINI_API_KEY=...
  • sops、age — キーの復号に使用します
  • magick(ImageMagick)— プラットフォームに合わせた調整とコンタクトシートの作成に使用します
  • pyyaml を備えた python3

モデル

モデルエイリアスNano Banana の名称使用場面
gemini-3.1-flash-image-preview(既定)flashNano Banana 2指示への追従性が最も高く、高速
gemini-3-pro-image-previewproNano Banana Pro最高品質、画像内のテキストに対応
gemini-2.5-flash-imageflash-2.5Nano Banana(初代)旧モデル

--model flash|pro|flash-2.5 または完全な ID で指定します。

スタイルプリセット

scripts/nano_banana.py list-presets
scripts/nano_banana.py --preset editorial "your subject" out.png
プリセットスタイル
editorial黒地に細い線、落ち着いた配色、技術図解風
blueprint濃紺の背景に白/シアンの線、設計図風
ink日本の墨絵、水墨のにじみ、有機的な筆致、モノクロ
risographフラットカラー、粒状感、テラコッタ+セージ、ZINE 風
wireframe3D ワイヤーフレームメッシュ、黒地に光るエッジ
constellationかすかな線で結んだ星図の点、星空風
brutalist大胆な形、太い縁取り、強い影、フラットカラー
grainフィルム粒子のある写真、高 ISO、暖かみのある映画調の色合い

presets.yaml で定義されています。編集して独自のプリセットを追加できます。

プラットフォームプリセット

scripts/nano_banana.py list-platforms
scripts/nano_banana.py --platform youtube "your subject" out.png

生成された画像は、対象の寸法に合わせて自動的にサイズ変更され、中央でトリミングされます。

プラットフォームサイズ
youtube1280×720
youtube-short1080×1920
slides1920×1080
blog1200×630
x1600×900
square1080×1080
story1080×1920
pinterest1000×1500

機能

バリエーション + コンタクトシート

--n N を指定すると、N 個のバリエーションを並列生成し、コンタクトシートにまとめます:

scripts/nano_banana.py --preset ink "mountain" ./mt.png --n 6
# Creates mt-01.png ... mt-06.png + mt-contact.png
一括生成(キャンペーン/複数パターンの広告セット)

出力ごとに異なるテキストやプロンプトが必要な場合(例:1 つのスタイルを共有する広告セット)は、リストをループ処理します。--n は同じプロンプトを再生成するため、この用途には適しません。共通の $STYLE 文字列と、項目ごとの配列を使用します。

cd /abs/output/dir
REF="_reference.png"   # optional style anchor
STYLE="<shared visual-style description, written once>"

# Each entry: pipe-delimited fields + output filename. NAME the array — see gotchas.
ADS=(
"CALL NOW|FOR TOTAL|CONFIDENTIALITY|ad-callnow.png"
"REDACT|BEFORE|YOU SEND|ad-redact.png"
)
for entry in "${ADS[@]}"; do
  IFS='|' read -r L1 L2 L3 OUT <<< "$entry"
  python3 scripts/nano_banana.py \
    "$STYLE The exact text reads, on three centered lines: '$L1' / '$L2' / '$L3'. Spell every word correctly." \
    "$OUT" --reference "$REF" --platform youtube --model pro --no-metadata --project NAME
done

シェル使用時の注意点(macOS の zsh では、毎回つまずきやすい点です):

  • ループ配列に LINES、COLUMNS、PATH、path、status、argv などの名前を絶対に使わないでください。 — zsh ではこれらは予約されています。LINES=(...) は can't assign array value to non-array special エラーになります。ADS、ITEMS、JOBS を使ってください。
  • zsh は bash と異なり、引用符で囲まれていない変数を単語分割しません。 CMD="magick montage"; $CMD ... とすると、"magick montage" という名前の単一のコマンドを探します。複数単語のコマンドを変数に入れないでください。コマンドを直接呼び出すか、配列を使います(cmd=(magick montage); "${cmd[@]}")。
  • 展開は必ず引用符で囲んでください — "$OUT"、"${ADS[@]}" — パスやプロンプトにはスペースが含まれることがあります。
  • モデルにテキストをそのまま再現させるには、二重引用符で囲んだプロンプトの中で、表示したい正確なテキストを**'シングルクォート'で囲んでください**。
  • バッチを並列化するには、各反復の末尾に & を付け、最後に wait を実行します。ただし、同時実行数には上限を設けてください(API によるレート制限があります)。6 項目を超える場合は、順次実行するのが最も安全です。

バッチの後は、ツールを直接呼び出して(変数経由にせず)、確認用シートを作成します:magick montage ad-*.png -tile 2x3 -geometry 480x270+6+6 -background black _contact.png。

編集モード

既存の画像を渡すと、プロンプトが編集指示になります:

scripts/nano_banana.py --edit ./thumb.png "remove the watermark, warmer colors" ./clean.png
参照画像(スタイルの基準)

1 枚以上の参照画像を使って、画像を編集せずに美的スタイルを反映します:

scripts/nano_banana.py --reference ./episode1.png --reference ./episode2.png \
  "episode 3: data drift" ./ep3.png
プロジェクトとメタデータ

出力をプロジェクトごとに整理します:

scripts/nano_banana.py --project lab-04/meeting-02 --preset editorial "MCP loops" ./overlay.png
# Saves to ~/nano-banana/outputs/lab-04/meeting-02/20260414-<subject>.png + .json sidecar
再生成と履歴
scripts/nano_banana.py again              # rerun last prompt
scripts/nano_banana.py history -n 20      # show last 20 generations
scripts/nano_banana.py history --project lab-04
ドライラン

API を呼び出さずに、組み立てたプロンプトをプレビューします:

scripts/nano_banana.py --preset editorial --platform youtube "subject" --dry-run

一時的なエラーと再試行

API はときどき 500/INTERNAL を返したり、候補を返さなかったりします。スクリプトは指数バックオフ(2s、4s、8s、16s)で最大 4 回再試行します。恒久的なエラー(4xx、安全性違反)は、再試行せずにすぐに失敗します。

プロンプトのヒント

  • ビジュアルスタイルを指定します:「photograph」、「flat illustration」、「watercolor」、「3D render」
  • 構図を含めます:「centered」、「white background」、「wide shot」
  • 色を指定します:「blue and white color scheme」、「warm earth tones」
  • テキストを描画する場合は、--model pro を使い、正確なテキストを引用符で囲みます:'with the text "Hello"'

API の詳細については、references/api_reference.md を参照してください。

ファイル

  • scripts/nano_banana.py — メイン CLI(Python)
  • scripts/generate_image.sh — 薄い bash ラッパー(後方互換用)
  • presets.yaml — スタイルプリセット
  • platforms.yaml — プラットフォームサイズのプリセット
  • secrets.enc.yaml — 暗号化された API キー(SOPS + age)
  • ~/.config/nano-banana/config.yaml — ユーザーのデフォルト設定(init から)
  • ~/.config/nano-banana/history.jsonl — 生成ログ
  • ~/.config/nano-banana/last.json — 前回の実行内容(again 用)

コメント