nano-banana-pro について
Google の Nano Banana 2 API で画像を生成・編集する Codex スキルです。プロンプトの反復、解像度の選択、作業ディレクトリへの PNG 保存を案内します。
主な機能
- 01プロンプトから画像を生成
- 02既存画像を編集
- 03512から4Kまで解像度を選択
- 04ドラフトから最終版まで反復
- 05作業ディレクトリに PNG を保存
活用シーン
- 01文章の説明から画像を作成
- 02指示文に基づいて画像を修正
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ steipete/ agent-scripts --skill nano-banana-proインストール後、Claude Code で/nano-banana-proを入力して読み込まれたか確認します。
同梱ファイルscripts/generate_image.pyscripts/test_generate_image.py
詳細
Nano Banana 2 による画像生成と編集
Google の Nano Banana 2 API(Gemini 3.1 Flash Image)を使用して、新しい画像を生成したり、既存の画像を編集したりできます。
使い方
スクリプトは絶対パスを使用して実行してください(最初にスキルディレクトリへ cd しないでください)。
新しい画像を生成:
uv run ~/.codex/skills/nano-banana-pro/scripts/generate_image.py --prompt "your image description" --filename "output-name.png" [--resolution 512|1K|2K|4K] [--api-key KEY]
既存の画像を編集:
uv run ~/.codex/skills/nano-banana-pro/scripts/generate_image.py --prompt "editing instructions" --filename "output-name.png" --input-image "path/to/input.png" [--resolution 512|1K|2K|4K] [--api-key KEY]
重要: 画像がスキルディレクトリではなく、ユーザーが作業している場所に保存されるよう、必ずユーザーの現在の作業ディレクトリから実行してください。
デフォルトのワークフロー(下書き → 反復 → 最終版)
目標:プロンプトが確定するまで、4K の生成に時間をかけず、素早く反復します。
- 下書き(1K):素早いフィードバックループ
uv run ~/.codex/skills/nano-banana-pro/scripts/generate_image.py --prompt "<draft prompt>" --filename "yyyy-mm-dd-hh-mm-ss-draft.png" --resolution 1K
- 反復:プロンプトを少しずつ調整し、実行ごとに新しいファイル名を使用します。
- 編集する場合:納得できるまで、すべての反復で同じ
--input-imageを使用してください。
- 編集する場合:納得できるまで、すべての反復で同じ
- 最終版(4K):プロンプトが確定してからのみ実行します。
uv run ~/.codex/skills/nano-banana-pro/scripts/generate_image.py --prompt "<final prompt>" --filename "yyyy-mm-dd-hh-mm-ss-final.png" --resolution 4K
解像度の選択肢
Gemini 3.1 Flash Image API では、次の出力サイズをサポートしています。
- 512 - 約 512px クラスのコンパクトな解像度
- 1K(デフォルト) - 約 1024px の解像度
- 2K - 約 2048px の解像度
- 4K - 約 4096px の解像度
ユーザーのリクエストを API パラメーターに対応付けます。
- 「512」、「512px」、「0.5K」、「サムネイル」、「極小」 →
512 - 解像度の指定なし →
1K - 「低解像度」、「1080」、「1080p」、「1K」 →
1K - 「2K」、「2048」、「標準」、「中解像度」 →
2K - 「高解像度」、「高精細」、「高解像度」、「4K」、「ウルトラ」 →
4K
API キー
スクリプトは次の順序で API キーを確認します。
--api-key引数(ユーザーがチャットでキーを指定した場合に使用)GEMINI_API_KEY環境変数
どちらも使用できない場合、スクリプトはエラーメッセージを表示して終了します。
事前確認とよくあるエラー(すぐに解決する方法)
-
事前確認:
command -v uv(存在する必要があります)test -n \"$GEMINI_API_KEY\"(または--api-keyを渡します)- 編集する場合:
test -f \"path/to/input.png\"
-
よくあるエラー:
Error: No API key provided.→GEMINI_API_KEYを設定するか、--api-keyを渡してください。Error loading input image:→ パスが誤っているか、ファイルを読み取れません。--input-imageが実在する画像を指していることを確認してください。- 「quota/permission/403」形式の API エラー → キーが誤っている、アクセス権がない、またはクォータを超過しています。別のキーまたはアカウントをお試しください。
ファイル名の生成
次のパターンでファイル名を生成します:yyyy-mm-dd-hh-mm-ss-name.png
形式: {timestamp}-{descriptive-name}.png
- タイムスタンプ:現在の日付と時刻を
yyyy-mm-dd-hh-mm-ss形式(24 時間表記)で指定 - 名前:説明的な小文字のテキストをハイフンでつなぐ
- 説明部分は簡潔にします(通常 1~5 語)
- ユーザーのプロンプトや会話の内容を使用します
- 内容が不明確な場合は、ランダムな識別子を使用します(例:
x9k2、a7b3)
例:
- プロンプト「静かな日本庭園」 →
2025-11-23-14-23-05-japanese-garden.png - プロンプト「山に沈む夕日」 →
2025-11-23-15-30-12-sunset-mountains.png - プロンプト「ロボットの画像を作成」 →
2025-11-23-16-45-33-robot.png - 内容が不明確 →
2025-11-23-17-12-48-x9k2.png
画像編集
ユーザーが既存の画像の変更を希望する場合:
- 画像パスが指定されているか、現在のディレクトリにある画像が参照されているか確認します。
- 画像のパスを指定して
--input-imageパラメーターを使用します。 - プロンプトには編集の指示を含めます(例:「空をもっとドラマチックにする」、「人物を削除する」、「漫画風に変更する」)。
- よくある編集作業:要素の追加・削除、スタイルの変更、色の調整、背景のぼかしなど。
プロンプトの扱い
生成の場合: ユーザーの画像の説明をそのまま --prompt に渡します。明らかに不十分な場合に限り、内容を調整します。
編集の場合: 編集指示を --prompt に渡します(例:「空に虹を追加する」、「水彩画風にする」)。
どちらの場合も、ユーザーの創作意図を保ってください。
プロンプトテンプレート(高い成功率)
ユーザーの指示が曖昧な場合や、変更を正確に行う必要がある場合は、テンプレートを使用します。
-
生成テンプレート:
- 「次の画像を作成してください:。スタイル:。構図:<camera/shot>。照明:<lighting>。背景:<background>。カラーパレット:<palette>。避けるもの:<list>。」
-
編集テンプレート(それ以外はすべて維持):
- 「変更するのは次の点のみです:。次の要素は同一に保ってください:被写体、構図/トリミング、ポーズ、照明、カラーパレット、背景、テキスト、全体的なスタイル。新しいオブジェクトを追加しないでください。テキストがある場合は、変更せずに維持してください。」
出力
- PNG を現在のディレクトリに保存します(ファイル名にディレクトリが含まれている場合は、指定されたパスに保存します)。
- 新しいファイル名が必要です。既存のファイル、ハードリンク、シンボリックリンクは拒否されます。親ディレクトリは必要に応じて作成されますが、シンボリックリンクを含むパス要素は拒否されます。その場合は、実際のディレクトリパスを使用してください。macOS と Linux では、絶対パスおよび現在のディレクトリ外のパスも引き続き使用できます。
- スクリプトは生成した画像のフルパスを出力します。
- 画像を読み戻さないでください。保存先のパスをユーザーに伝えるだけにしてください。
オフラインの出力安全性回帰テスト(Pillow が必要):リポジトリのルートディレクトリで python3 -m unittest discover -s skills/nano-banana-pro/scripts -p 'test_*.py' を実行します。
例
新しい画像を生成:
uv run ~/.codex/skills/nano-banana-pro/scripts/generate_image.py --prompt "A serene Japanese garden with cherry blossoms" --filename "2025-11-23-14-23-05-japanese-garden.png" --resolution 4K
既存の画像を編集:
uv run ~/.codex/skills/nano-banana-pro/scripts/generate_image.py --prompt "make the sky more dramatic with storm clouds" --filename "2025-11-23-14-25-30-dramatic-sky.png" --input-image "original-photo.jpg" --resolution 2K