nano-banana について
nano-banana は、Google Nano Banana(Gemini のネイティブ画像生成)でテキストプロンプトから画像を作るスキルです。Flash と Pro を選択でき、比率やサイズを指定して下書きから高解像度素材まで生成できます。
主な機能
- 01テキストプロンプトから画像生成
- 02Flash と Pro のモデル選択
- 03画像比率とサイズの指定
- 04Base64 とデータ URL の返却
- 05Python と Node.js の例
活用シーン
- 01ソーシャルメディア画像の素早い作成
- 02最大 4K の印刷素材の生成
- 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 | 最適な用途 | 最大解像度 |
|---|---|---|---|
| Flash | flash | 高速生成、大量のタスク | 1024px |
| Pro | pro | プロ品質、複雑なプロンプト | 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"
}'
パラメーター:
| 名前 | 型 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
prompt | string | はい | - | 生成する画像のテキストによる説明 |
model | string | いいえ | flash | flash(高速、1024px)または pro(高品質、最大 4K) |
aspectRatio | string | いいえ | 1:1 | 出力のアスペクト比 |
imageSize | string | いいえ | 1K | 1K、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.base64 | Base64 エンコードされた画像データ |
image.mimeType | 画像の MIME タイプ(通常は image/png) |
image.dataUrl | HTML/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"
モデルの比較
| 機能 | Flash | Pro |
|---|---|---|
| 速度 | 高速 | 低速 |
| 最大解像度 | 1024px | 4K |
| 複雑なプロンプト | 良好 | 優秀 |
| テキスト描画 | 良好 | 鮮明 |
| 最適な用途 | 素早い反復、プレビュー | 最終アセット、印刷 |
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 - 金融データのビジュアライゼーションを作成する
ワークフローの例:
- トピックを調査する(deep-research)
- 関連するイラストを生成する(このスキル)
- レポートにまとめる
コメント
Markdown 対応