Agent Skills by ALSEL
汎用デザイン・クリエイティブ⭐ リポ 117品質スコア 90/100

bananahub

`/bananahub`向けのAgent標準マルチプロバイダー画像ワークフローです。デフォルトで英語以外のプロンプトを英語に正規化し、Gemini/Nano Banana、OpenAI GPT Image、チャット互換の画像ルートを使用して画像の生成または編集ができます。BananaHubのプロンプトやワークフローテンプレートの検出と利用もできます。このスキルは、ユーザーが明示的に「bananahub」「BananaHub」と言及するか、`/bananahub`コマンドを使用した場合にのみ起動します。「生成图片」や「画一个」といった一般的な画像生成リクエストでは起動しません。代表的なトリガーは、「/bananahub」「bananahubで画像を作成」「bananahub 画像生成」「bananahubでプロンプト最適化」「bananahubでテンプレートを探す」「/bananahub discover」です。

description の原文を見る

Agent-native multi-provider image workflow for `/bananahub`. Normalizes non-English prompts into English by default, generates or edits images across Gemini/Nano Banana, OpenAI GPT Image, and chat-compatible image routes, and discovers or uses BananaHub prompt and workflow templates. Trigger only when the user explicitly mentions bananahub / BananaHub or uses the `/bananahub` command. Do NOT activate on generic image-generation requests like "生成图片" or "画一个". Typical triggers: "/bananahub", "用 bananahub 画", "bananahub 生图", "bananahub 优化提示词", "bananahub 找模板", and "/bananahub discover".

SKILL.md 本文

BananaHub

非英語または混合言語のリクエストから、1 つの /bananahub ワークフロー内でプロバイダーを通じた画像の生成または編集を行います。Gemini/Nano Banana がデフォルトモデルファミリーのままであり、OpenAI GPT Image サポートはプロバイダーでルーティングされます。BananaHub はプロンプト最適化、保守的な拡張、モデルフォールバック、画像編集、テンプレート使用、BananaHub ディスカバリーを単一のスキルに統合し、複数のインストールに分散させません。

クイックスタート

  • Open Agent Skills からインストール: npx skills add https://github.com/bananahub-ai/bananahub-skill --skill bananahub
  • Claude Code に直接インストール: claude skill install https://github.com/bananahub-ai/bananahub-skill
  • セットアップを一度実行: /bananahub init
  • 自然言語リクエストから生成: /bananahub 一只橘猫趴在键盘上打盹
  • 画像を編集: /bananahub edit 把背景换成海滩 --input photo.png
  • 再利用可能なテンプレートをディスカバー: /bananahub discover 代码库讲解图

キーパス

  • 生成スクリプト: {baseDir}/scripts/bananahub.py
  • プロバイダーアダプタ: {baseDir}/scripts/providers/ — Gemini、OpenAI Images、チャット/コンプリーション互換ランタイムアダプタ
  • ランタイムコンフィグモジュール: {baseDir}/scripts/runtime_config.py — プロバイダー定数、エイリアス、トランスポートデフォルト、コンフィグキー、エンドポイント正規化
  • コンフィグストアモジュール: {baseDir}/scripts/config_store.py — コンフィグ読み込み、プロファイルマージ、検証、プロバイダーオーバーライド、シリアライゼーションヘルパー
  • プロンプト最適化ルール: references/prompt-guide.md — フェーズ 1(基本最適化)中に読み込み
  • 拡張プロファイル: references/profiles/{name}.md — フェーズ 3(オンデマンド)中に読み込み
  • 公式リファレンス: references/official-sources.md — 権威あるソース URL、コアサンプルライブラリ
  • 機能レジストリ: references/capability-registry.md — プロバイダー/モデル機能ルーティングおよびフォールバックポリシー
  • モデルレジストリ: references/model-registry.json — 正規モデル ID、エイリアス、デフォルト、プロバイダーファミリー
  • プロバイダーガイド: references/providers/{provider}.md — 遅延ロードモデルファミリープロンプトおよびランタイムルール
  • テンプレートシステム: references/template-system.md — テンプレート/使用/作成テンプレートコマンド処理時に読み込み
  • Hub ディスカバリーガイド: references/hub-discovery.mddiscover 処理時またはローカルテンプレートマッチが弱い時に読み込み
  • テンプレートファイル: {baseDir}/references/templates/<id>/template.md(ビルトイン)+ ~/.config/bananahub/templates/<id>/template.md(ユーザーインストール)
  • テレメトリヘルパー: python3 {baseDir}/scripts/bananahub.py telemetry ... — ビルトイン/インストール済みテンプレート採用イベント用
  • テレメトリ状態: ~/.config/bananahub/telemetry.json — ローカル匿名使用 ID を格納
  • 初期化ガイド: references/init-guide.mdinit コマンド処理時に読み込み
  • 最適化パイプライン: references/optimization-pipeline.md — プロンプト最適化時に読み込み
  • テンプレートフォーマット仕様: references/template-format-spec.md — 詳細なフィールド定義、リポジトリ構造、サンプル要件
  • テンプレート検証: python3 {baseDir}/scripts/validate_templates.py — バンドル/ユーザーテンプレートメタデータをスキーマ v1/v2 互換性用に検証
  • モード検出: python3 {baseDir}/scripts/bananahub.py check-mode — プロバイダー対応/ホストネイティブ/プロンプトのみの実行モードと機能層の境界を報告
  • プロンプトアーカイブ: --save-prompt--prompt-output、または BANANAHUB_SAVE_PROMPTS=1 使用時のカレントワーキングディレクトリ bananahub-prompts/
  • API コンフィグ(優先度高→低):
    1. --config <file> CLI フラグ
    2. 環境変数(GOOGLE_API_KEYGEMINI_API_KEYBANANAHUB_PROVIDERBANANAHUB_AUTH_MODEBANANAHUB_MODELGOOGLE_GEMINI_BASE_URLGEMINI_BASE_URLBANANAHUB_BASE_URLGOOGLE_CLOUD_PROJECTGOOGLE_CLOUD_LOCATION
    3. スキルコンフィグ: ~/.config/bananahub/config.json
      • {"provider": "google-ai-studio", "api_key": "...", "model": "gemini-3-pro-image-preview"}
      • {"provider": "gemini-compatible", "api_key": "...", "base_url": "https://..."}
      • {"provider": "openai", "openai_api_key": "...", "model": "gpt-image-2"}
      • {"provider": "openai-compatible", "api_key": "...", "base_url": "https://...", "model": "gpt-image-2"}
      • {"provider": "chatgpt-compatible", "chatgpt_api_key": "...", "chatgpt_base_url": "https://...", "model": "gpt-5.4"}
      • マルチプロファイル: {"default_profile":"nano","profiles":{"nano":{"provider":"google-ai-studio","api_key":"..."},"gpt":{"provider":"openai","openai_api_key":"...","model":"gpt-image-2"}}}
      • {"provider": "vertex-ai", "auth_mode": "adc", "project": "...", "location": "global"}
    4. 永続的なコンフィグヘルパー:
      • python3 {baseDir}/scripts/bananahub.py config show
      • python3 {baseDir}/scripts/bananahub.py config doctor --json
      • python3 {baseDir}/scripts/bananahub.py init --wizard
      • python3 {baseDir}/scripts/bananahub.py init --wizard --install-deps
      • python3 {baseDir}/scripts/bananahub.py config quickset --provider openai-compatible --profile gpt --default-profile --base-url https://your-openai-compatible-endpoint --api-key <key> --model gpt-image-2
      • python3 {baseDir}/scripts/bananahub.py config quickset --provider openai --profile gpt --default-profile --api-key <key> --model gpt-image-2
      • python3 {baseDir}/scripts/bananahub.py config quickset --provider google-ai-studio --profile nano --default-profile --api-key <key> --model gemini-3-pro-image-preview
      • python3 {baseDir}/scripts/bananahub.py config quickset --provider vertex-ai --profile vertex --default-profile --auth-mode adc --project <gcp-project> --location global
      • python3 {baseDir}/scripts/bananahub.py config set --clear-base-url
  • 出力ディレクトリ: カレントワーキングディレクトリ(スキルが呼び出された場所)

初回実行検出

help 以外のコマンドを実行する前に、環境の準備状況をチェックします:

  1. セットアップステータスが不明確な場合は python3 {baseDir}/scripts/bananahub.py config doctor --json を実行します。
  2. statusneeds_setup の場合、references/init-guide.md を読み、init --wizard を実行するか、依存関係が不足している場合は init --wizard --install-deps を実行するか、suggested_commands[0] quickset コマンドを提案します。
  3. ユーザーに実際の API キーをチャットに貼り付けるよう求めないでください。ローカルウィザードまたは <key> プレースホルダー付きのターミナルコマンドを優先します。
  4. コンフィグは存在するが生成が認証/依存関係エラーで失敗した場合 → config doctor --json または init --wizard を提案します。
  5. 新しいコンフィグを ~/.config/bananahub/config.json に保存し、可能であれば名前付きプロファイル(gptnanovertex、または chat)として保存します。
  6. gpt-image-2 を全体のデフォルトモデルとして扱います。プロバイダー固有のデフォルトは Gemini/Vertex パスに対して引き続き適用されます。
  7. サポートされるランタイムプロバイダー:
    • google-ai-studio: generate / edit / models / init
    • gemini-compatible: generate / edit / models / init
    • vertex-ai: generate / edit / models / init
    • openai: OpenAI ネイティブ GPT Image generate / edit / models / init
    • openai-compatible: OpenAI スタイルエンドポイント generate / models / init、機能依存
    • chatgpt-compatible: チャット/コンプリーションエンドポイント、アシスタントの返信内に画像を返す
  8. openai-compatible は OpenAI ネイティブ GPT Image と同じではありません。エンドポイントがサポートを明示していない限り、編集、マスク編集、または GPT Image パラメーターを想定しないでください。
  9. エンドポイント正規化ルール:
    • gemini-compatible: ユーザーが /v1beta で終わる URL を貼り付けた場合、概念的に保持しますが、ランタイム中に末尾のバージョンを正規化して重複しないようにします
    • openai-compatible: ユーザーがベアホストを貼り付けた場合、ランタイムは /v1 を追加することがあります。Google の公式エンドポイントの場合は /v1beta/openai に解決します

ランタイムモードレイヤー

実行パスが不明な場合は python3 {baseDir}/scripts/bananahub.py check-mode --pretty を実行します。BananaHub には 3 つの実行モードがあります:

モードトリガー動作
provider-backedサポートされているプロバイダーのコンフィグが検証されるプロンプトを最適化/レンダリング、generate または edit を呼び出し、画像出力を保存
host-nativeプロバイダーコンフィグが不足または不完全だが、BANANAHUB_HOST_IMAGEGEN=1 またはコーラーが明示的にネイティブ画像ツールを持っているプロンプトを最適化/レンダリング、オプションでアーカイブ、プロバイダースクリプトを呼び出す代わりにホスト画像ツールに渡す
prompt-only有効なプロバイダーもホスト画像ツールもないプロンプト/テンプレートアドバイザーとして機能: 最終プロンプトを返し、要求されたときにアーカイブします。画像生成が成功したと主張しない

機能の所有権はレイヤー化されています:

  • クロスモデルスキルレイヤー: プロンプト最適化、翻訳ポリシー、保守的な拡張、--direct--raw、プロンプトアーカイビング、テンプレートディスカバリー/アクティベーション、ホストネイティブ委譲、プロンプトのみのアドバイザリ出力。
  • テンプレートレイヤー: マッチングとアクティベーションは一般的ですが、プロバイダー/モデル互換性、プロンプトバリアント、テスト済みクオリティ、サンプルはテンプレートメタデータに属します。
  • プロバイダー/モデルレイヤー: 画像編集、マスク編集、マルチリファレンス、正確なサイズ、ネイティブクオリティ、透明背景、出力フォーマット/圧縮、フォールバックは普遍的ではありません。references/capability-registry.mdreferences/model-registry.json、プロバイダーアダプタを通じてルーティングします。

機能がリクエストペイロード形状、ファイル検証、コスト、ポリシー動作、または出力解析を変更する場合、複数のプロバイダーが同様の表現をサポートしているとしても、クロスモデルとして扱わないでください。

コマンドルーティング

引数に基づいて、ユーザー入力を適切なアクションにルーティングします:

引数アクション
initreferences/init-guide.md を読み、環境の問題を診断して修正
help使用方法を表示(サポートされているコマンドと例の簡潔なリスト)
<description>references/optimization-pipeline.md を読み、以下を実行: 基本最適化 → インテント認識 → オプション拡張 → 生成
edit <description> --input <image-path> [--ref <reference-image>...]既存画像を編集: プロンプト最適化 → edit サブコマンド呼び出し
optimize <description>プロンプトのみを最適化。生成せずに結果を表示
generate <English prompt>与えられた英語プロンプトで直接画像を生成(最適化をスキップ)
modelspython3 {baseDir}/scripts/bananahub.py models を実行して、API から画像対応モデルをクエリ
check-modepython3 {baseDir}/scripts/bananahub.py check-mode --pretty を実行して、プロバイダー対応/ホストネイティブ/プロンプトのみモードと機能レイヤーを検査
templatesreferences/template-system.md を読み、すべてのテンプレートをプロファイルと種類でグループ化して一覧表示
templates <name>references/template-system.md を読み、frontmatter type を解析、プロンプトテンプレートまたはワークフローテンプレートの詳細を表示
use <template-id> [custom description]references/template-system.md を読み、frontmatter type を解析、プロンプトテンプレートから生成するかワークフローテンプレートをアクティベート
discover <request>references/hub-discovery.md を読み、ビジュアルサイトをスクレイピングせずに BananaHub で一致するテンプレートを検索
discover curated <request>references/hub-discovery.md を読み、キュレーション済み BananaHub カタログのみを検索
discover trendingreferences/hub-discovery.md を読み、現在トレンド中の BananaHub テンプレートを表示
create-template [description]references/template-system.md を読み、ユーザーがプロンプトまたはワークフローテンプレートを必要とするかを判定、作成をガイド

注釈:

  • optimize--direct--rawスキルレイヤーコントロールであり、スクリプト呼び出し前にあなたによって解釈されます
  • --direct または --raw{baseDir}/scripts/bananahub.py に渡さないでください
  • discoverスキルレイヤーコマンドです: {baseDir}/scripts/bananahub.py ではなく、BananaHub マシン可読ファイルと npx bananahub add ... を使用します
  • telemetry内部ヘルパーであり、ユーザー向けチャットコマンドではありません。テンプレートが選択されたか、出力が正常に生成されたときに使用します。

オプションフラグ(任意の生成コマンドに追加):

  • --model <model_id> — モデルを指定
  • --aspect <ratio> — アスペクト比(例: 16:9、1:1、9:16)
  • --image-size <preset> — ネイティブ画像サイズプリセット(1K2K4K
  • --openai-size <value> — OpenAI スタイル画像生成用 OpenAI ネイティブサイズ
  • --quality <value> — サポートされている場合、プロバイダーネイティブクオリティプリセット
  • --background <value> — サポートされている場合、プロバイダーネイティブ背景オプション
  • --output-format <value> — サポートされている場合、プロバイダーネイティブ出力フォーマット
  • --output-compression <N> — サポートされている場合、プロバイダーネイティブ出力圧縮
  • --resize <WxH> — 生成/編集後のポスト処理リサイズ(例: 1024x1024
  • --size <value> — レガシー互換フラグ。1K/2K/4K はネイティブ画像サイズ、WxH はポスト処理リサイズを意味す
  • --output <path> — 出力パスを指定
  • --save-prompt — 最終プロンプトを bananahub-prompts/ の下にアーカイブ
  • --prompt-output <path> — 最終プロンプトを特定ファイルまたはディレクトリにアーカイブ
  • --input <path> — 編集コマンド用のソース画像
  • --ref <path> [path...] — 編集コマンド用の参照画像(Gemini は最大 13 個。OpenAI プロバイダーは独自の低いランタイム制限を適用)
  • --mask <path> — マスク編集用 OpenAI ネイティブマスク画像
  • --direct — ダイレクトモード: すべての確認をスキップ、すぐに生成
  • --raw — ロウモード: 翻訳のみ、最適化なし
  • --retries <N> — フォールバック前の 503 ごとのモデルあたりの再試行回数(デフォルト: 1、つまり各モデルを 2 回試行)
  • --no-fallback — 自動モデルフォールバックを無効化

3 つの最適化モード

モード 1: デフォルト(フラグなし)

ユーザー入力 → 基本最適化(無音) → インテント認識 → プロファイルマッチ?
  ├─ はい → 拡張提案を表示 → ユーザーが確認/編集/拒否 → 生成
  └─ いいえ(一般) → 直接生成

モード 2: ダイレクト(--direct またはユーザーが「直接画/直出」と言う)

ユーザー入力 → 基本最適化 → インテント認識 → プロファイル拡張をロード → 直接生成

確認なし。経験者またはバッチ生成に適しています。

モード 3: ロウ(--raw

ユーザー入力 → 英語に翻訳のみ → 直接生成

最適化なし。画像内のテキストは元の言語で保持されます。

プロンプト最適化サマリー

完全なパイプラインは references/optimization-pipeline.md を読んでください。概要:

  1. フェーズ 0: ハード制約を抽出(exact_text、must_keep、must_avoid、style_lock、approved_baseline、関連する場合 allowed_delta)
  2. フェーズ 1: 基本最適化 — フォーマット修正、スマート翻訳、構造化、保守的なガードレール
  3. フェーズ 1.5: 機能/プロバイダーのルーティング — references/capability-registry.md を検査、references/model-registry.json からモデルエイリアスを解決、選択されたモデルファミリーに対してのみ references/providers/*.md を遅延ロード
  4. フェーズ 2: インテント認識 — キーワードテーブルを使用して 10 のプロファイルのいずれかにマッチ
  5. フェーズ 2.1: ローカルテンプレート自動マッチング — インストール済みテンプレートを提案(段階的情報開示)
  6. フェーズ 2.2: BananaHub ディスカバリー — 明示的に有用な場合にのみリモートカタログを検索
  7. フェーズ 2.5: スタイルオーバーレイ検出(手描きスケッチノート)
  8. フェーズ 3: 拡張 — references/profiles/ から一致するプロファイルを読み込み、主題を分類、欠落している次元を埋める
  9. フェーズ 3.5: モデル推奨 — 生成主導の高忠実度出力には gpt-image-2 を優先。編集/参照/一貫性重視フローには Gemini/Nano Banana を優先(ユーザーまたはテンプレートがオーバーライドしない限り)

画像生成フロー

  1. コマンドをビルド:
    python3 {baseDir}/scripts/bananahub.py generate "<prompt>" [--aspect RATIO] [--model MODEL] [--output PATH]
    
    この生成がアクティブなテンプレートから来ている場合、以下も渡します: --template-id <id> --template-repo <repo> --template-distribution bundled|remote --template-source curated|discovered
  2. スクリプトを実行して JSON 出力を解析
  3. 自動モデルフォールバック: サーバーエラー(500/502/503/504)で、references/model-registry.json から選択されたプロバイダーファミリーフォールバックチェーンを試します。ユーザーが明示的にクロスプロバイダーフォールバックを有効にしない限り、プロバイダーファミリーを超えないでください。--no-fallback で無効にします。
  4. 成功時:
    ✅ 图片已生成
    📁 路径: [file_path]
    🔧 模型: [model] | 宽高比: [ratio] | 尺寸: [WxH]
    📝 使用的 Prompt: [final prompt used]
    
    スクリプトが template_telemetry を返す場合、ベストエフォート成功報告のみとして扱い、ユーザーが要求しない限り失敗を表示しません。
  5. 失敗時: エラータイプに基づいて修正を提案(コンテンツポリシー → 言い換え、認証 → キーを確認、ネットワーク → プロキシを確認)

画像編集フロー

  1. 入力を検証: --input 画像パスが存在することを確認、--ref 画像を検証 13 個以上の参照画像または 14 個以上の合計画像を拒否します。
  2. 不変条件を抽出: ソース画像で変更されないままでなければならないもの
  3. 適用可能な場合にベースラインをロック: ソース画像が受け入れられた結果である場合、後のラウンドで信頼できる唯一のソースとして扱います
  4. 許可されたデルタを名付ける: このラウンドで許可される 1 つの変更を分離
  5. 編集プロンプトを最適化: フェーズ 1 のみを実行(フェーズ 2/3 をスキップ)。保守的に保ち、デルタを分離
  6. コマンドをビルド:
    python3 {baseDir}/scripts/bananahub.py edit "<prompt>" --input <image_path> [--ref <ref1> ...] [--model MODEL] [--output PATH]
    
    --ref は最大 13 個の参照画像を受け入れます。合計画像(入力 + 参照)≤ 14。 この編集がアクティブなテンプレート/ワークフロー内で実行される場合、以下も渡します: --template-id <id> --template-repo <repo> --template-distribution bundled|remote --template-source curated|discovered
  7. 成功時:
    ✅ 图片已编辑
    📁 路径: [file_path]
    📥 原图: [input_path]
    📎 参考图: [ref_images, if any]
    🔧 模型: [model] | 尺寸: [WxH]
    📝 使用的 Prompt: [final prompt used]
    

マルチ画像ユースケース: スタイル転送、キャラクター一貫性、マルチ画像ブレンディング、オブジェクト置換。

イテレーションガイド

  • 一度に 1 つの変数を変更
  • 最後の有効なプロンプトをベースとして保持
  • フォローアップを完全な書き換えではなく、デルタとして扱う
  • ユーザーが明示的に変更しない限り、ロックされた制約を保持
  • ユーザーが出力を受け入

ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ

詳細情報

作者
bananahub-ai
リポジトリ
bananahub-ai/bananahub-skill
ライセンス
MIT
最終更新
2026/5/8

Source: https://github.com/bananahub-ai/bananahub-skill / ライセンス: MIT

本サイトは GitHub 上で公開されているオープンソースの SKILL.md ファイルをクロール・インデックス化したものです。 各スキルの著作権は原作者に帰属します。掲載に問題がある場合は info@alsel.co.jp または /takedown フォームよりご連絡ください。
原作者: bananahub-ai · bananahub-ai/bananahub-skill · ライセンス: MIT