Skip to content
Merged
Show file tree
Hide file tree
Changes from 26 commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
42c9b3e
Added fully functioning Agent Tool supporting Google's Nano Banana
devilb2103 Sep 10, 2025
8f7e48c
Merge branch 'dev' into Gemini-Nano-Banana
devilb2103 Sep 10, 2025
3402104
Merge branch 'dev' into Gemini-Nano-Banana
devilb2103 Sep 11, 2025
ec0da5c
Merge branch 'dev' into Gemini-Nano-Banana
devilb2103 Sep 11, 2025
1b5ab4c
πŸ”§ refactor: Update Google credentials handling in GeminiImageGen.js
devilb2103 Sep 13, 2025
074d470
Merge branch 'dev' into Gemini-Nano-Banana
devilb2103 Sep 13, 2025
8b7285b
Merge branch 'dev' into Gemini-Nano-Banana
devilb2103 Nov 11, 2025
f62a70c
πŸ› οΈ refactor: Remove unnecessary whitespace in handleTools.js
devilb2103 Nov 11, 2025
f5bb090
Merge branch 'dev' into Gemini-Nano-Banana
devilb2103 Nov 23, 2025
20b0552
πŸ”§ feat: Update Gemini Image Generation Tool
usnavy13 Nov 25, 2025
13d80e1
Merge remote-tracking branch 'origin/dev' into Gemini-Nano-Banana
usnavy13 Nov 25, 2025
dd70875
πŸ—‘οΈ chore: Remove outdated Gemini image generation PNG and update SVG …
usnavy13 Nov 25, 2025
ac4bd84
fix: ESLint formatting and unused variable in GeminiImageGen
usnavy13 Nov 25, 2025
79430c7
fix: Update default model to gemini-2.5-flash-image
usnavy13 Nov 25, 2025
903d077
Merge branch 'dev' into Gemini-Nano-Banana
usnavy13 Dec 3, 2025
c34dbbd
✨ feat: Enhance Gemini Image Generation Configuration
usnavy13 Dec 7, 2025
7f15ae8
Merge remote-tracking branch 'origin/dev' into Gemini-Nano-Banana
usnavy13 Dec 7, 2025
503edcd
πŸ”§ fix: Format Default Service Key Path in GeminiImageGen.js
usnavy13 Dec 7, 2025
33b3e2d
Merge remote-tracking branch 'origin/dev' into Gemini-Nano-Banana
usnavy13 Dec 13, 2025
cdfe7ed
✨ feat: Enhance Gemini Image Generation with Token Usage Tracking
usnavy13 Dec 13, 2025
250036c
✨ feat: Add new Gemini models for image generation token limits
usnavy13 Dec 13, 2025
6cfb482
Merge origin/dev into Gemini-Nano-Banana
usnavy13 Dec 16, 2025
2ae99d0
πŸ”§ fix: Update Google Service Key Path for Consistency in Initializati…
usnavy13 Dec 16, 2025
54af483
Merge branch 'dev' into Gemini-Nano-Banana
usnavy13 Dec 21, 2025
b9e4f80
Merge remote-tracking branch 'origin/dev' into Gemini-Nano-Banana
usnavy13 Dec 28, 2025
343b72a
Merge origin/dev into Gemini-Nano-Banana
usnavy13 Dec 28, 2025
b87cd20
πŸ”§ refactor: Update GeminiImageGen for improved file handling and path…
danny-avila Jan 3, 2026
5d05d27
πŸ”§ refactor: Update GeminiImageGen to streamline API key handling
danny-avila Jan 3, 2026
1301786
πŸ”§ fix: Update GeminiImageGen to handle imageSize support conditionally
danny-avila Jan 3, 2026
109ceea
πŸ”§ refactor: Simplify local storage condition in createGeminiImageTool…
danny-avila Jan 3, 2026
19fe121
πŸ”§ feat: Enhance image format handling in GeminiImageGen with conversi…
danny-avila Jan 3, 2026
c5282b7
πŸ”§ refactor: Streamline API key initialization in GeminiImageGen
danny-avila Jan 3, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 29 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -181,8 +181,16 @@ GOOGLE_KEY=user_provided

# GOOGLE_TITLE_MODEL=gemini-2.0-flash-lite-001

# Google Cloud region for Vertex AI (used by both chat and image generation)
# GOOGLE_LOC=us-central1

# Alternative region env var for Gemini Image Generation
# GOOGLE_CLOUD_LOCATION=global

# Vertex AI Service Account Configuration
# Path to your Google Cloud service account JSON file
# GOOGLE_SERVICE_KEY_FILE=/path/to/service-account.json

# Google Safety Settings
# NOTE: These settings apply to both Vertex AI and Gemini API (AI Studio)
#
Expand All @@ -202,6 +210,27 @@ GOOGLE_KEY=user_provided
# GOOGLE_SAFETY_DANGEROUS_CONTENT=BLOCK_ONLY_HIGH
# GOOGLE_SAFETY_CIVIC_INTEGRITY=BLOCK_ONLY_HIGH

#========================#
# Gemini Image Generation #
#========================#

# Gemini Image Generation Tool (for Agents)
# Supports multiple authentication methods in priority order:
# 1. User-provided API key (via GUI)
# 2. GEMINI_API_KEY env var (admin-configured)
# 3. GOOGLE_KEY env var (shared with Google chat endpoint)
# 4. Vertex AI service account (via GOOGLE_SERVICE_KEY_FILE)

# Option A: Use dedicated Gemini API key for image generation
# GEMINI_API_KEY=your-gemini-api-key

# Option B: Use Vertex AI (no API key needed, uses service account)
# Set this to enable Vertex AI and allow tool without requiring API keys
# GEMINI_VERTEX_ENABLED=true

# Vertex AI model for image generation (defaults to gemini-2.5-flash-image)
Copy link

Copilot AI Jan 3, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The documentation states "Vertex AI model for image generation (defaults to gemini-2.5-flash-image)" but refers to it as "Nano Banana" in the PR description. The model name "gemini-2.5-flash-image" is the actual API model identifier, while "Nano Banana" appears to be an informal name. Consider clarifying this in the comment to avoid confusion, perhaps: "Model for image generation (defaults to gemini-2.5-flash-image, known as Nano Banana)".

Suggested change
# Vertex AI model for image generation (defaults to gemini-2.5-flash-image)
# Vertex AI model for image generation (defaults to gemini-2.5-flash-image, known as "Nano Banana")

Copilot uses AI. Check for mistakes.
# GEMINI_IMAGE_MODEL=gemini-2.5-flash-image

#============#
# OpenAI #
#============#
Expand Down
2 changes: 2 additions & 0 deletions api/app/clients/tools/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ const GoogleSearchAPI = require('./structured/GoogleSearch');
const TraversaalSearch = require('./structured/TraversaalSearch');
const createOpenAIImageTools = require('./structured/OpenAIImageTools');
const TavilySearchResults = require('./structured/TavilySearchResults');
const createGeminiImageTool = require('./structured/GeminiImageGen');

module.exports = {
...manifest,
Expand All @@ -27,4 +28,5 @@ module.exports = {
createYouTubeTools,
TavilySearchResults,
createOpenAIImageTools,
createGeminiImageTool,
};
14 changes: 14 additions & 0 deletions api/app/clients/tools/manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -179,5 +179,19 @@
"description": "Provide your Flux API key from your user profile."
}
]
},
{
"name": "Gemini Image Tools",
"pluginKey": "gemini_image_gen",
"toolkit": true,
"description": "Generate high-quality images using Google's Gemini Image Models. Supports Gemini API or Vertex AI.",
"icon": "assets/gemini_image_gen.svg",
"authConfig": [
{
"authField": "GEMINI_API_KEY||GOOGLE_KEY||GEMINI_VERTEX_ENABLED",
"label": "Gemini API Key (Optional if Vertex AI is configured)",
"description": "Your Google Gemini API Key from <a href='https://aistudio.google.com/app/apikey' target='_blank'>Google AI Studio</a>. Leave blank if using Vertex AI with service account."
}
]
}
]
Loading