--- 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