nano-banana について
nano-banana は、Google Gemini の画像生成 API を使って画像を作成・編集するコマンドラインスキルです。スタイルや用途別サイズのプリセットに加え、参照画像、複数案の生成、プロジェクト履歴を扱えます。
主な機能
- 01テキストからの画像生成と編集
- 02スタイル・用途別サイズのプリセット
- 03複数案の並列生成と一覧画像
- 04参照画像によるスタイル指定
- 05プロジェクト出力と生成履歴
活用シーン
- 01記事・プレゼン・SNS向けのイラスト作成
- 02テキスト指示による既存画像の編集
- 03参照スタイルに沿った画像セットの作成
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ glebis/ claude-skills --skill nano-bananaインストール後、Claude Code で/nano-bananaを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
platforms.yamlpresets.yamlsecrets.enc.yaml.claude-plugin/plugin.jsonreferences/api_reference.mdscripts/generate_image.shnano_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(既定) | flash | Nano Banana 2 | 指示への追従性が最も高く、高速 |
gemini-3-pro-image-preview | pro | Nano Banana Pro | 最高品質、画像内のテキストに対応 |
gemini-2.5-flash-image | flash-2.5 | Nano 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 風 |
wireframe | 3D ワイヤーフレームメッシュ、黒地に光るエッジ |
constellation | かすかな線で結んだ星図の点、星空風 |
brutalist | 大胆な形、太い縁取り、強い影、フラットカラー |
grain | フィルム粒子のある写真、高 ISO、暖かみのある映画調の色合い |
presets.yaml で定義されています。編集して独自のプリセットを追加できます。
プラットフォームプリセット
scripts/nano_banana.py list-platforms
scripts/nano_banana.py --platform youtube "your subject" out.png
生成された画像は、対象の寸法に合わせて自動的にサイズ変更され、中央でトリミングされます。
| プラットフォーム | サイズ |
|---|---|
youtube | 1280×720 |
youtube-short | 1080×1920 |
slides | 1920×1080 |
blog | 1200×630 |
x | 1600×900 |
square | 1080×1080 |
story | 1080×1920 |
pinterest | 1000×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用)