nano / README.md
leave-everything's picture
Upload 4 files
92b9aa5 verified
---
title: NanoBanana V9 - Gemini画像生成
emoji: 🍌
colorFrom: yellow
colorTo: red
sdk: gradio
sdk_version: 5.49.1
app_file: app.py
pinned: false
license: mit
---
# 🍌 NanoBanana - Gemini画像生成 (Version 9)
Google Gemini AIを使用したテキストから画像を生成するアプリケーション(Gradio 5 + 新Google Gen AI SDK対応)
## ✨ V9の主な変更点
-**Gradio 5.49.1**にアップグレード(パフォーマンス改善、SSR対応)
-**新Google Gen AI SDK** (`google-genai`) に移行
-**FastAPI削除** - Gradio純正API機能を使用
- ✅ 依存パッケージ30%削減(10個→7個)
- ✅ HF Spacesで最適化
## 🚀 クイックスタート
### 1. インストール
```bash
pip install -r requirements.txt
```
### 2. APIキーの設定
[Google AI Studio](https://aistudio.google.com/app/apikey)で無料APIキーを取得
### 3. 起動
```bash
python app.py
```
ブラウザで `http://localhost:7860` を開く
## 📡 API使用方法
### エンドポイント
#### `GET /api/health`
ヘルスチェック
```bash
curl http://localhost:7860/api/health
```
レスポンス例:
```json
{
"status": "healthy",
"timestamp": "2025-11-24T12:00:00.000Z",
"version": "9.0.0",
"available_models": {...}
}
```
#### `GET /api/models`
利用可能なモデルのリスト
```bash
curl http://localhost:7860/api/models
```
レスポンス例:
```json
{
"models": {
"gemini-2.5-flash-image": {...},
"gemini-3-pro-image-preview": {...}
}
}
```
#### `POST /api/generate`
画像生成
**cURLの例:**
```bash
curl -X POST http://localhost:7860/api/generate \
-H "Content-Type: application/json" \
-d '{
"data": [
"富士山と桜、フォトリアリスティック、4K画質",
"YOUR_GEMINI_API_KEY",
"gemini-2.5-flash-image",
"1024x1024",
"Photorealistic",
true,
"",
"my-image",
false
]
}'
```
**Pythonの例:**
```python
from gradio_client import Client
client = Client("http://localhost:7860")
result = client.predict(
prompt="富士山と桜、フォトリアリスティック、4K画質",
gemini_api_key="YOUR_API_KEY",
model="gemini-2.5-flash-image",
size="1024x1024",
style="Photorealistic",
save_to_dataset=False,
dataset_folder="",
custom_filename="my-image",
return_image_data=False,
api_name="/generate"
)
print(result)
```
レスポンス例:
```json
{
"data": [{
"success": true,
"filename": "my-image.png",
"local_path": "/file=generated_images/my-image.png",
"prompt": "富士山と桜、フォトリアリスティック、4K画質",
"size": "1024x1024",
"style": "Photorealistic",
"model": "gemini-2.5-flash-image",
"dataset_url": "https://huggingface.co/datasets/..."
}]
}
```
## 📦 依存関係
```txt
gradio==5.49.1
google-genai>=1.52.0
pillow>=10.0.0
numpy>=1.24.0
python-dotenv>=1.0.0
huggingface_hub>=0.27.0
datasets>=2.14.0
```
## 🏗️ アーキテクチャ
```
V9 (Gradio 5 + google-genai)
├── Gradio Blocks UI
├── Gradio Native API (/api/*)
└── Google Gen AI SDK (Client-based)
```
**V8からの主な変更:**
- FastAPI層を削除 → Gradio純正APIに統合
- google-generativeai → google-genai SDK
- uvicorn削除 → Gradio単体で起動
## 🔧 環境変数(オプション)
Dataset保存機能を使用する場合のみ設定してください。
`.env.example``.env`にコピーして設定:
```bash
# Hugging Face Dataset(オプション)
HF_TOKEN=your_hf_token_here
DATASET_REPO_ID=your_username/your_dataset_name
```
## 📝 V8からの移行ガイド
### APIエンドポイントの変更
| V8 (FastAPI) | V9 (Gradio API) | 変更内容 |
|-------------|----------------|---------|
| `POST /api/generate/url?param=value` | `POST /api/generate` + JSON body | リクエスト形式変更 |
| `POST /api/generate/full` | `POST /api/generate` + `return_image_data=true` | パラメータ化 |
| `GET /api/health` | `GET /api/health` | 互換性あり |
| `GET /api/models` | `GET /api/models` | 互換性あり |
### リクエストフォーマットの変更
**V8 (FastAPI + クエリパラメータ):**
```bash
curl -X POST "http://localhost:7860/api/generate/url?prompt=富士山&gemini_api_key=...&model=gemini-2.5-flash-image&size=1024x1024&style=Photorealistic"
```
**V9 (Gradio API + JSONボディ):**
```bash
curl -X POST http://localhost:7860/api/generate \
-H "Content-Type: application/json" \
-d '{"data": ["富士山", "...", "gemini-2.5-flash-image", "1024x1024", "Photorealistic", true, "", "", false]}'
```
### パラメータの順序(V9)
`/api/generate`エンドポイントの`data`配列の順序:
1. `prompt` (string) - 画像生成プロンプト
2. `gemini_api_key` (string) - Gemini APIキー
3. `model` (string) - モデル名(デフォルト: "gemini-2.5-flash-image")
4. `size` (string) - サイズ(デフォルト: "1024x1024")
5. `style` (string) - スタイル(デフォルト: "Default")
6. `save_to_dataset` (boolean) - Dataset保存(デフォルト: true)
7. `dataset_folder` (string) - Datasetフォルダ名(デフォルト: "")
8. `custom_filename` (string) - カスタムファイル名(デフォルト: "")
9. `return_image_data` (boolean) - base64データ返却(デフォルト: false)
## 🚢 HF Spacesへのデプロイ
1. リポジトリを作成
2. `README.md`のYAMLヘッダーを確認:
```yaml
---
title: NanoBanana V9
emoji: 🍌
colorFrom: yellow
colorTo: orange
sdk: gradio
sdk_version: 5.49.1
app_file: app.py
pinned: false
---
```
3. コードをpush
4. HF Spacesの設定でSecretsを追加(オプション):
- `HF_TOKEN`: Hugging Faceトークン(Dataset保存用)
- `DATASET_REPO_ID`: データセットリポジトリID
## 🎨 利用可能なモデル
### gemini-2.5-flash-image(推奨)
- 高速・低コスト($0.039/画像)
- 10種類のアスペクト比対応
- 一般用途に最適
### gemini-3-pro-image-preview
- 高品質・2K/4K解像度対応
- プロフェッショナル用途向け
## 🎭 利用可能なスタイル
- Photorealistic(写真風)
- Artistic(芸術的)
- Anime(アニメ風)
- 3D Render(3Dレンダリング)
- Watercolor(水彩画)
- Oil Painting(油絵)
- Digital Art(デジタルアート)
- Sketch(スケッチ)
- Studio Photo(スタジオ写真)
- Minimalist(ミニマリスト)
## 📏 利用可能なサイズ
- 512x512
- 768x768
- 1024x1024(推奨)
- 1024x768
- 768x1024
- 1536x1536
- 2048x2048(gemini-3-pro-image-previewのみ)
## 🔍 トラブルシューティング
### エラー: "google-genai not found"
```bash
pip install google-genai>=1.52.0
```
### エラー: "API key required"
Gemini APIキーが正しく入力されているか確認してください。
### 画像が生成されない
1. Gemini APIキーが有効か確認
2. インターネット接続を確認
3. モデル名が正しいか確認
## 📄 ライセンス
MIT License
## 🙏 謝辞
- Google Gemini AI
- Gradio 5
- Hugging Face
---
**Version**: 9.0.0
**最終更新**: 2025-11-24
**開発**: Claude Code + tomo2chin2