nanobanana

Installation
SKILL.md

Gemini の画像生成モデルで画像を生成し tmp/images/ に保存する。API キーは環境変数 GEMINI_API_KEY を使用する。

パラメータの enum・モデル別の対応状況は assets/parameters.md を参照。curl サンプルは assets/flash.sh / assets/pro.sh。

  1. $ARGUMENTS から プロンプト本文 と以下のオプションを抽出する。プロンプトが空ならユーザーに質問する
    • --model (flash | pro | 任意のモデル ID) / --aspect / --size (デフォルト 1K) / --person (Flash のみ) / --thinking (Flash のみ)
    • モデルは --model で明示指定されない限り常に flash (gemini-3.1-flash-image-preview) を使う。ユーザーが暗に Pro を示唆していても確認なしに Pro へ切り替えない
    • Pro で --person / --thinking が指定されたら警告し、該当フィールドは request に含めない
    • Pro で --size 512 や Pro 非対応の --aspect(1:4 / 4:1 / 1:8 / 8:1)が指定されたらユーザーに確認
  2. 実行ごとに一意の ID を作る(例: ID=$(date +%Y%m%d-%H%M%S)-$$)。中間ファイルは tmp/images/${ID}.request.json / tmp/images/${ID}.response.json のように ID 付きで扱い、並列実行時の衝突を防ぐ
  3. 選択したモデルの curl サンプルをベースに、INSERT_INPUT_HERE をプロンプト(JSON エスケープ済み)に、imageConfig の各フィールドを指定値に差し替えて tmp/images/${ID}.request.json を生成する。Pro では thinkingConfig を含めない
  4. curl -sS -X POST -H "Content-Type: application/json" "https://generativelanguage.googleapis.com/v1beta/models/${MODEL_ID}:streamGenerateContent?key=${GEMINI_API_KEY}" -d @tmp/images/${ID}.request.json -o tmp/images/${ID}.response.json を実行
  5. レスポンス(JSON 配列)の candidates[].content.parts[].inlineData から base64 画像を取り出し、mimeType に応じた拡張子で tmp/images/${ID}.<ext> に保存する。parts[].text があれば報告に含める。抽出は jq | base64 -d を 1 パイプで行い、.b64 等の中間ファイルは作らない
  6. 画像が正常に生成できたら tmp/images/${ID}.request.json と tmp/images/${ID}.response.json を削除する(生成に失敗した場合は調査用に残す)
  7. 使用モデル・保存パス・テキスト応答をユーザーに報告する。error フィールドがあれば内容を報告

注意事項

Installs
11
Repository
tanabee/skills
GitHub Stars
3
First Seen
Jun 24, 2026
nanobanana — tanabee/skills