Spaces:
Running
Running
| 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 | |