# 🍌 NanoBanana PRO > Generate knowledge posters (infographics) from your Obsidian notes using AI ![Obsidian Plugin](https://img.shields.io/badge/Obsidian-Plugin-7C3AED?logo=obsidian&logoColor=white) ![License](https://img.shields.io/badge/License-MIT-green) ![Version](https://img.shields.io/badge/Version-1.0.21-blue) ## ✨ Features - 🎨 **AI-Powered Infographic Generation**: Transform your notes into beautiful visual posters - πŸ€– **Multiple AI Providers**: Choose from OpenAI, Google Gemini, Anthropic Claude, or xAI Grok - πŸ“ **Prompt Preview & Edit**: Review and customize the generated prompt before creating images - πŸ“Š **6 Visual Styles**: Infographic, Poster, Diagram, Mind Map, Timeline, Cartoon (Comic Strip) - πŸ”„ **Auto-Retry**: Automatic retry on transient failures with exponential backoff - πŸ“ˆ **Progress Tracking**: Real-time progress modal with step-by-step feedback - πŸŒ™ **Dark Mode Support**: Fully compatible with Obsidian's dark theme ## πŸ“Έ Screenshots ### Progress Modal ``` β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ 🎨 Knowledge Poster 생성 쀑... β”‚ β”‚ β”‚ β”‚ β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 60% β”‚ β”‚ β”‚ β”‚ βœ… 1. λ…ΈνŠΈ 뢄석 μ™„λ£Œ β”‚ β”‚ βœ… 2. ν”„λ‘¬ν”„νŠΈ 생성 μ™„λ£Œ β”‚ β”‚ πŸ”„ 3. 이미지 생성 쀑... β”‚ β”‚ ⏳ 4. 파일 μ €μž₯ λŒ€κΈ° β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ ``` ### Prompt Preview ``` β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ πŸ“ ν”„λ‘¬ν”„νŠΈ 미리보기 β”‚ β”‚ β”‚ β”‚ πŸ€– λͺ¨λΈ: gemini-2.0-flash-exp β”‚ β”‚ πŸ“Š μŠ€νƒ€μΌ: Infographic β”‚ β”‚ β”‚ β”‚ [이미지 생성] [λ‹€μ‹œ 생성] [μ·¨μ†Œ] β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ ``` ## πŸš€ Installation ### Community plugins (recommended) Once the plugin is listed in the [Obsidian Community directory](https://community.obsidian.md): 1. Open **Settings β†’ Community plugins** 2. Turn off Restricted mode if it is enabled 3. Select **Browse** and search for **NanoBanana PRO** 4. Install and enable the plugin 5. Add a Google API key in the plugin settings ### Via BRAT 1. Install the [BRAT](https://github.com/TfTHacker/obsidian42-brat) plugin 2. Open BRAT settings 3. Click **Add Beta Plugin** 4. Enter: `reallygood83/nanobanana-pro-obsidian` 5. Enable the plugin ### Manual installation 1. Download the latest release from [Releases](https://github.com/reallygood83/nanobanana-pro-obsidian/releases) 2. Extract `main.js`, `manifest.json`, and `styles.css` to your vault's `.obsidian/plugins/nanobanana-pro/` folder 3. Reload Obsidian 4. Enable the plugin in Settings β†’ Community plugins ## βš™οΈ Configuration ### API Keys You'll need at least a **Google API Key** for image generation. Optionally configure other providers for prompt generation: | Provider | Required | Purpose | |----------|----------|---------| | Google | βœ… Yes | Image generation (always required) | | OpenAI | Optional | Prompt generation | | Anthropic | Optional | Prompt generation | | xAI | Optional | Prompt generation | **Get your API keys:** - [Google AI Studio](https://aistudio.google.com/apikey) - [OpenAI Platform](https://platform.openai.com/api-keys) - [Anthropic Console](https://console.anthropic.com/settings/keys) - [xAI Console](https://console.x.ai/) This plugin is free. Image and prompt generation use the API keys you provide, and those providers may charge usage fees. ## Network use This plugin sends the active note's content to the AI providers you configure, so it can generate a prompt and an image. Nothing is sent to the plugin author. | Service | Host | When it is used | |---------|------|-----------------| | Google Gemini | `generativelanguage.googleapis.com` | Prompt generation (if Google is selected) and all image generation | | OpenAI | `api.openai.com` | Prompt generation, only if you select OpenAI | | Anthropic | `api.anthropic.com` | Prompt generation, only if you select Anthropic | | xAI | `api.x.ai` | Prompt generation, only if you select xAI | API keys are stored locally in your Obsidian plugin data and are sent only to the matching provider. ### Settings | Setting | Default | Description | |---------|---------|-------------| | AI Provider | Google | Provider for prompt generation | | Prompt Model | gemini-2.0-flash-exp | Model for generating image prompts | | Image Model | gemini-2.0-flash-exp | Model for generating images | | Image Style | Infographic | Visual style preset | | Show Preview | βœ… Enabled | Preview prompt before generation | | Show Progress | βœ… Enabled | Show progress modal | | Attachment Folder | 999-Attachments | Where to save images | | Auto-Retry Count | 2 | Retry on transient failures | ## πŸ“– Usage ### Generate Knowledge Poster 1. Open a note with content 2. Use Command Palette (`Cmd/Ctrl + P`) 3. Search for "Generate Knowledge Poster" 4. (Optional) Edit the prompt in preview modal 5. Wait for generation to complete 6. Image will be embedded at the top of your note ### Commands | Command | Description | |---------|-------------| | Generate Knowledge Poster | Full generation process | | Generate Prompt Only | Generate and copy prompt to clipboard | | Regenerate Last Poster | Retry last generation with same prompt | ### Keyboard Shortcuts You can assign custom hotkeys in Settings β†’ Hotkeys: - Search for "NanoBanana" to find all commands ## 🎨 Image Styles | Style | Description | Best For | |-------|-------------|----------| | πŸ“Š Infographic | Charts, icons, visual hierarchy | Data-driven content | | 🎨 Poster | Bold typography, strong imagery | Announcements, summaries | | πŸ“ Diagram | Technical, clear connections | System architecture | | 🧠 Mind Map | Central concept with branches | Brainstorming, concepts | | πŸ“… Timeline | Progression and milestones | Historical, processes | | 🎬 Cartoon | Comic strip with sequential panels | Stories, tutorials, step-by-step | ## ❓ Troubleshooting ### "API key is not configured" β†’ Go to Settings β†’ NanoBanana PRO and add your API key ### "Rate limit exceeded" β†’ Wait a few minutes and try again. Consider upgrading your API plan. ### "Content was blocked by safety filters" β†’ Modify your note content or try a different style ### Image generation fails repeatedly β†’ Try regenerating with a different style, or edit the prompt in preview mode ### No image in response β†’ The model may not support image generation. Try `gemini-2.0-flash-exp` or similar. ## πŸ› οΈ Development ### Build from source ```bash # Clone the repository git clone https://github.com/reallygood83/nanobanana-pro-obsidian.git cd nanobanana-pro-obsidian # Install dependencies npm install # Build for production npm run build # Development mode (watch) npm run dev ``` ### Project Structure ``` . β”œβ”€β”€ src/ β”‚ β”œβ”€β”€ main.ts # Plugin entry point β”‚ β”œβ”€β”€ types.ts # TypeScript interfaces β”‚ β”œβ”€β”€ settings.ts # Settings tab UI β”‚ β”œβ”€β”€ settingsData.ts # Default settings β”‚ β”œβ”€β”€ progressModal.ts # Progress modal UI β”‚ β”œβ”€β”€ previewModal.ts # Prompt preview modal β”‚ └── services/ β”‚ β”œβ”€β”€ promptService.ts # AI prompt generation β”‚ β”œβ”€β”€ imageService.ts # Image generation β”‚ └── fileService.ts # File operations β”œβ”€β”€ manifest.json β”œβ”€β”€ package.json β”œβ”€β”€ styles.css └── README.md ``` ## πŸ“ Changelog ### v1.0.21 - Prepare the plugin for the Obsidian Community directory - Mask API keys in settings - Disclose network use and third-party AI providers - Use `Vault.process` when embedding generated images ### v1.0.0 - Initial release - Support for 4 AI providers (OpenAI, Google, Anthropic, xAI) - 5 image styles - Progress modal with step tracking - Prompt preview and edit - Auto-retry with exponential backoff - Korean and English UI support ## 🀝 Contributing Contributions are welcome! Please feel free to submit a Pull Request. 1. Fork the repository 2. Create your feature branch (`git checkout -b feature/AmazingFeature`) 3. Commit your changes (`git commit -m 'Add some AmazingFeature'`) 4. Push to the branch (`git push origin feature/AmazingFeature`) 5. Open a Pull Request ## πŸ“„ License This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details. ## πŸ™ Acknowledgments - [Obsidian](https://obsidian.md/) for the amazing platform - [Google Gemini](https://ai.google.dev/) for image generation capabilities - All the amazing AI providers making this possible --- ## πŸ‘¨β€πŸ’» Developer [![X (Twitter)](https://img.shields.io/badge/X-@reallygood83-000000?style=flat&logo=x&logoColor=white)](https://x.com/reallygood83) [![YouTube](https://img.shields.io/badge/YouTube-λ°°μ›€μ˜λ‹¬μΈ-FF0000?style=flat&logo=youtube&logoColor=white)](https://www.youtube.com/@%EB%B0%B0%EC%9B%80%EC%9D%98%EB%8B%AC%EC%9D%B8-p5v) --- Made with 🍌 by NanoBanana PRO