メインコンテンツへスキップ
このページでは、すぐに使えるエージェントスキルを提供します。すでに使用しているコーディングエージェントに追加するだけで、自然言語(または明示的なコマンド)を使って、APIYIプラットフォーム上でNano Banana 2(gemini-3.1-flash-image)を呼び出し、画像生成や編集を行えます。必要なのは2つのファイルだけです。コピーすればすぐに使えます。
Proスキル(gemini-3-pro-image、最高クラスの品質)が必要な場合は、Nano Banana Proエージェントスキルをご覧ください。このページではNano Banana 2(Proレベルの品質とFlashクラスの速度を、よりお得に提供)を紹介します。

このスキルの機能

単一の統合スキルです。スクリプトが入力画像を渡したかどうかを自動判定し、テキストから画像生成と画像編集を切り替えます。

テキストから画像生成

プロンプトのみ → 完全に新しい画像を生成。14種類のアスペクト比と 512/1K/2K/4K の解像度に対応します。

画像編集

1枚の画像 + 指示 → ローカル編集、スタイル変更、背景置換などを行えます。

マルチ画像合成

複数画像 + 1つの指示 → 合成、比較、服装の差し替えなどができます。
Pro と比べると、Nano Banana 2 は 4つの超縦長/超横長比率(1:4 / 4:1 / 1:8 / 8:1)と、専用の512px低解像度階層を追加し、1回あたりわずか $0.055/image です(token ベースでは最安で約 $0.025/image)— 大量利用により適しています。

どのエージェントが使用できるか

Skill は本質的には単なる フォルダ です。Agent が読むための指示一式(SKILL.md)と、実際の処理を行うスクリプトで構成されています。つまり、ローカルファイルを読み取り、シェルコマンドを実行できる どのコーディング Agent でも使用できます。たとえば Codex, OpenClaw, hermes-agent, Claude Code などです。必要条件は1つだけです。Agent を実行するマシン(あなたのコンピューターまたはサーバー)に Python 3 がインストールされていて、ネットワークアクセス があることです(スクリプトが api.apiyi.com を直接呼び出します)。それだけです。特定の Agent に依存するものではありません。

3ステップでセットアップ

① フォルダを作成してファイルを貼り付ける

次の2つのファイルを含むスキルフォルダを作成します(全文は次の2セクションにあります):

② 同じフォルダにキーを入れる

api.apiyi.com コンソールで作成した APIYI API Key を nano-banana-2/.env に書き込みます:
スクリプトはこの .env からキーを自動的に読み取ります — 追加の設定や環境変数は不要です。
.env には秘密キーが入っています。プロジェクトのリポジトリ経由でこのスキルを共有する場合は、必ず .env を .gitignore に追加し、git に commit しないでください。

③ エージェントに渡す

  • スキルを自動検出するエージェント(例: Claude Code)の場合: フォルダ全体の nano-banana-2/ を、そのスキル用ディレクトリに置きます。個人用の ~/.claude/skills/、またはリポジトリ経由で共有されるプロジェクトレベルの .claude/skills/ のどちらでも構いません。
  • その他のエージェント: それぞれのスキル/プラグインの規約に従って配置してください。最も簡単なのは、「このフォルダの SKILL.md を読んで、それに従ってください」とエージェントに伝えることです。
インストールが完了したら準備完了です — 例については 使い方 をご覧ください。

SKILL.md

nano-banana-2/SKILL.mdに以下の内容をすべて記述します(descriptionには「何をするか + いつ使うか」を記述します。これはAgentがスキルを自動で起動する際に使用します)。
nameは小文字の英字とハイフンのみで構成し、claude / anthropicのような予約語を含めてはいけません。スラッシュコマンドに対応しているAgentでは、ディレクトリ名がコマンドになります。つまり、nano-banana-2は/nano-banana-2になります。${CLAUDE_SKILL_DIR}はClaude Codeが提供するスキルディレクトリ変数です。他のAgentでは、スクリプトの実際のパスを使用してください。

scripts/nano_banana_2.py

Geminiネイティブ形式を使用してnano-banana-2/scripts/nano_banana_2.pyを作成します(APIYIのテキストから画像生成/画像編集のリファレンスページで検証済みの動作するコードと同一です)。Python標準ライブラリのみで実行でき、pip installは不要です:
デフォルトのモデル名はgemini-3.1-flash-image(安定版の名称)です。元のgemini-3.1-flash-image-previewも引き続き動作し、同じ料金で安定版の名称に自動的にリダイレクトされます。別のモデルを使用するには、APIYI_IMAGE_MODELを設定してください。

なぜ 1 文だけで画像が生成されるのか

多くの人が疑問に思います。コマンドを一度も入力していないのに、どうして「draw a cat」で画像が生成されたのでしょうか? 仕組みはこうです。起動時に、Agent は各スキルのSKILL.mdからdescriptionを最初に読み取ります(これは「このスキルが何を行い、いつ使うか」を説明する、とても短いメタデータです)。あなたのリクエストがその状況に一致すると(例: 「画像を draw / generate / render する」「この画像を…に編集する」)、Agent は自動的にそのスキルを呼び出すと判断し、SKILL.md全体を読み込み、スクリプトを実行します。コマンドを覚えている必要はありません。 つまり:
  • よく書かれたdescription = より正確な自動起動。 このスキルの説明には、すでに「画像を generate / draw / edit / composite する」といった言い回しが含まれています。
  • Agent に推測させたくなく、完全に制御したい場合は、以下の明示的な呼び出しを使ってください。

使い方

自然言語(暗黙トリガー)

インストールしたら、エージェントに話しかけるだけです:

明示的な呼び出し(より細かく制御)

エージェントに自動判断させたくない場合は、明示的な方法が 2 つあります。
  • スラッシュコマンドに対応するエージェント(例: Claude Code):
  • 任意のエージェント / スクリプトを実行するよう伝えるだけ(最も汎用的):
アスペクト比と鮮明さの制御方法: アスペクト比には --aspect を使い(14種類の選択肢があり、Pro にはない 1:4 / 4:1 / 1:8 / 8:1 の超縦長/超横長も含まれます)、解像度には --size を使います(512 / 1K / 2K / 4K。512 は Nano Banana 2 専用の、コストを抑えられる低解像度階層です)。たとえば “portrait 9:16”、“4K でレンダリング”、または “超横長のバナーを作成して” と伝えるだけで、エージェントがこれらのフラグを自動で追加します。

生成された画像の保存先

  • -o が ベアファイル名(例: -o dog.png)の場合、画像はすべて プロジェクトルート直下の nano-banana-output/ フォルダ に自動作成されて保存されるため、プロジェクト内のその場所ですぐ見つけられます。
  • 「プロジェクトルート」は、スクリプト自身の場所から親ディレクトリへたどって見つかる .git または .claude を含む最初のディレクトリです。そのため、Agent がどのディレクトリから実行されても、画像はプロジェクト内に保存され、見つけられない一時ディレクトリに入ることはありません。
  • スクリプトは画像ごとに絶対パスを 1 つずつ完全な形で出力します。たとえば Image saved to /Users/you/project/nano-banana-output/dog.png です。
  • デフォルトでは 1 枚だけ 生成されます。-n 3 は一度に 3 枚生成し(最大 5 枚で、それ以上は 5 に丸められます)、-1、-2、-3 の接尾辞が自動で追加されます。
  • -o が ディレクトリを含むパス(例: -o images/dog.png や絶対パス)の場合は、その正確なパスに保存されます(相対パスは現在の作業ディレクトリからの相対パスです)ので、nano-banana-output/ には入りません。
  • 画像編集も同じ仕組みで動作します。出力は新しいファイルになり、元のファイルは上書きしません。
Nano Banana 2 には厳格なコンテンツ安全対策があります。スクリプトが finishReason を返し、それが STOP 以外であったり、拒否テキストを返したりした場合は、内容を調整し、同じ違反するプロンプトを繰り返し再試行しないでください。

関連ドキュメント