mcpField
N
nano-banana

nano-banana

github.com/rebyteai-templateクリエイティブ・メディア1767 回インストール19 週間前に更新
リポジトリ

nano-banana について

nano-banana は、Google Nano Banana(Gemini のネイティブ画像生成)でテキストプロンプトから画像を作るスキルです。Flash と Pro を選択でき、比率やサイズを指定して下書きから高解像度素材まで生成できます。

主な機能

  1. 01テキストプロンプトから画像生成
  2. 02Flash と Pro のモデル選択
  3. 03画像比率とサイズの指定
  4. 04Base64 とデータ URL の返却
  5. 05Python と Node.js の例

活用シーン

  1. 01ソーシャルメディア画像の素早い作成
  2. 02最大 4K の印刷素材の生成
  3. 03調査レポート用イラストの作成

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/rebyteai-template/rebyte-skills --skill nano-banana

インストール後、Claude Code で/nano-bananaを入力して読み込まれたか確認します。

同梱ファイル.gitignoreREADME.md

詳細

Nano Banana - 画像生成 API

Google Nano Banana(Gemini のネイティブ画像生成)を使って、テキストプロンプトから画像を生成します。

ベース URL

https://api.eng0.ai/api/data

モデル

モデルID最適な用途最大解像度
Flashflash高速生成、大量のタスク1024px
Proproプロ品質、複雑なプロンプト4K

画像を生成する

テキストの説明から画像を作成します。

curl -X POST https://api.eng0.ai/api/data/images/generate \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "A futuristic cityscape at sunset with flying cars",
    "model": "flash",
    "aspectRatio": "16:9"
  }'

パラメーター:

名前型必須デフォルト説明
promptstringはい-生成する画像のテキストによる説明
modelstringいいえflashflash(高速、1024px)または pro(高品質、最大 4K)
aspectRatiostringいいえ1:1出力のアスペクト比
imageSizestringいいえ1K1K、2K、または 4K(4K は pro モデルのみ)

アスペクト比:

比率用途
1:1正方形(ソーシャルメディア、アイコン)
16:9横長(プレゼンテーション、バナー)
9:16縦長(モバイル、ストーリー)
4:3標準の横長
3:4標準の縦長
21:9ウルトラワイド(シネマティック)
2:3, 3:2, 4:5, 5:4さまざまな形式

レスポンス:

{
  "image": {
    "base64": "iVBORw0KGgoAAAANSUhEUgAA...",
    "mimeType": "image/png",
    "dataUrl": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA..."
  },
  "description": "A vibrant futuristic cityscape..."
}

レスポンスフィールド:

フィールド説明
image.base64Base64 エンコードされた画像データ
image.mimeType画像の MIME タイプ(通常は image/png)
image.dataUrlHTML/CSS ですぐに使えるデータ URL
description生成された画像についてのモデルによる説明

一般的なワークフロー

シンプルな画像を生成する
curl -X POST https://api.eng0.ai/api/data/images/generate \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "A cute robot holding a cup of coffee"
  }'
高品質な 4K 画像を生成する
curl -X POST https://api.eng0.ai/api/data/images/generate \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "Professional product photo of a sleek smartphone on marble surface",
    "model": "pro",
    "imageSize": "4K",
    "aspectRatio": "4:3"
  }'
ソーシャルメディア用バナーを生成する
curl -X POST https://api.eng0.ai/api/data/images/generate \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "Abstract gradient background with geometric shapes in blue and purple",
    "aspectRatio": "16:9"
  }'
モバイル向けストーリー画像を生成する
curl -X POST https://api.eng0.ai/api/data/images/generate \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "Cozy coffee shop interior with warm lighting",
    "aspectRatio": "9:16"
  }'

Python で使用する

import requests
import base64
from pathlib import Path

BASE_URL = "https://api.eng0.ai/api/data"

def generate_image(
    prompt: str,
    model: str = "flash",
    aspect_ratio: str = "1:1",
    image_size: str = "1K"
) -> dict:
    """Generate an image from a text prompt."""
    response = requests.post(
        f"{BASE_URL}/images/generate",
        json={
            "prompt": prompt,
            "model": model,
            "aspectRatio": aspect_ratio,
            "imageSize": image_size
        }
    )
    return response.json()

def save_image(result: dict, filepath: str) -> None:
    """Save generated image to a file."""
    if "image" in result:
        image_data = base64.b64decode(result["image"]["base64"])
        Path(filepath).write_bytes(image_data)
        print(f"Saved to {filepath}")
    else:
        print(f"Error: {result.get('error', 'Unknown error')}")

# Example: Generate and save an image
result = generate_image(
    prompt="A serene mountain landscape at dawn with mist in the valley",
    aspect_ratio="16:9"
)
save_image(result, "landscape.png")

# Example: Generate high-quality product image
result = generate_image(
    prompt="Minimalist tech gadget on white background, studio lighting",
    model="pro",
    image_size="4K"
)
save_image(result, "product.png")

Node.js で使用する

const fs = require('fs');

const BASE_URL = 'https://api.eng0.ai/api/data';

async function generateImage(prompt, options = {}) {
  const response = await fetch(`${BASE_URL}/images/generate`, {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({
      prompt,
      model: options.model || 'flash',
      aspectRatio: options.aspectRatio || '1:1',
      imageSize: options.imageSize || '1K'
    })
  });
  return response.json();
}

function saveImage(result, filepath) {
  if (result.image) {
    const buffer = Buffer.from(result.image.base64, 'base64');
    fs.writeFileSync(filepath, buffer);
    console.log(`Saved to ${filepath}`);
  } else {
    console.error('Error:', result.error || 'Unknown error');
  }
}

// Example usage
(async () => {
  const result = await generateImage(
    'A neon-lit cyberpunk street scene at night',
    { aspectRatio: '21:9' }
  );
  saveImage(result, 'cyberpunk.png');
})();

プロンプトのヒント

具体的にする
Bad:  "A dog"
Good: "A golden retriever puppy playing in autumn leaves, warm sunlight"
スタイルを含める
"Oil painting style portrait of a woman in Renaissance clothing"
"Minimalist vector illustration of a mountain range"
"Photorealistic close-up of a dewdrop on a leaf"
照明を指定する
"... with dramatic side lighting"
"... golden hour sunlight"
"... soft diffused studio lighting"
コンテキストを追加する
"... in the style of Studio Ghibli"
"... professional product photography"
"... vintage 1970s film aesthetic"

モデルの比較

機能FlashPro
速度高速低速
最大解像度1024px4K
複雑なプロンプト良好優秀
テキスト描画良好鮮明
最適な用途素早い反復、プレビュー最終アセット、印刷

Flash を使う場合:

  • 迅速なプロトタイピング
  • ソーシャルメディアのコンテンツ
  • 大量の画像生成
  • 速度が重要な場合

Pro を使う場合:

  • プロフェッショナル/商用利用
  • 印刷物
  • 複雑な構図
  • 品質が重要な場合

エラー処理

画像が生成されない場合:

{
  "error": "No image generated",
  "message": "SAFETY"
}

これは、プロンプトがコンテンツセーフティフィルターに引っかかった場合に発生します。

パラメーターが無効な場合:

{
  "error": "Invalid parameters",
  "message": "Missing required parameter: prompt"
}

重要な注意事項

  • 生成されるすべての画像には、不可視の SynthID ウォーターマークが含まれます
  • 画像はサーバー側で生成されるため、Base64 のレスポンスは大きくなる場合があります
  • pro モデルは時間がかかりますが、より高品質な画像を生成します
  • 4K 解像度は pro モデルでのみ利用できます
  • コンテンツセーフティフィルターにより、特定のプロンプトがブロックされる場合があります

他のスキルとの組み合わせ

このスキルは画像生成を提供します。次のスキルと組み合わせてください。

  • deep-research - リサーチレポート向けのイラストを生成する
  • market-data - 金融データのビジュアライゼーションを作成する

ワークフローの例:

  1. トピックを調査する(deep-research)
  2. 関連するイラストを生成する(このスキル)
  3. レポートにまとめる

コメント