@memberjunction/ai-gemini 2.133.0 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,68 @@
1
+ import { GoogleGenAI } from "@google/genai";
2
+ import { BaseImageGenerator, ImageGenerationParams, ImageGenerationResult, ImageEditParams, ImageVariationParams, ImageModelInfo } from "@memberjunction/ai";
3
+ /**
4
+ * Google Gemini 3 Pro Image (Nano Banana Pro) implementation of the BaseImageGenerator class.
5
+ * Supports Google's most advanced image generation model with 2K/4K resolution support.
6
+ *
7
+ * Model: gemini-3-pro-image-preview (November 2025)
8
+ * - Native multimodal image generation
9
+ * - High resolution output (up to 4K)
10
+ * - Advanced style control and prompt understanding
11
+ */
12
+ export declare class GeminiImageGenerator extends BaseImageGenerator {
13
+ protected _gemini: GoogleGenAI | null;
14
+ private _geminiPromise;
15
+ constructor(apiKey: string);
16
+ /**
17
+ * Factory method to create the GoogleGenAI client instance.
18
+ * Subclasses can override this to provide custom configuration.
19
+ */
20
+ protected createClient(): Promise<GoogleGenAI>;
21
+ /**
22
+ * Ensure the Gemini client is initialized before use.
23
+ */
24
+ private ensureGeminiClient;
25
+ /**
26
+ * Generate image(s) from a text prompt using Gemini 3 Pro Image (Nano Banana Pro).
27
+ */
28
+ GenerateImage(params: ImageGenerationParams): Promise<ImageGenerationResult>;
29
+ /**
30
+ * Edit an existing image using Gemini's multimodal capabilities.
31
+ * Uses image-to-image generation with the original image as context.
32
+ */
33
+ EditImage(params: ImageEditParams): Promise<ImageGenerationResult>;
34
+ /**
35
+ * Create variations of an existing image.
36
+ * Uses the original image as context with a variation prompt.
37
+ */
38
+ CreateVariation(params: ImageVariationParams): Promise<ImageGenerationResult>;
39
+ /**
40
+ * Get available Gemini image generation models.
41
+ */
42
+ GetModels(): Promise<ImageModelInfo[]>;
43
+ /**
44
+ * Get supported methods for this provider.
45
+ */
46
+ GetSupportedMethods(): Promise<string[]>;
47
+ /**
48
+ * Build generation config for Gemini API.
49
+ */
50
+ private buildGenerationConfig;
51
+ /**
52
+ * Extract image data from Gemini response.
53
+ */
54
+ private extractImageFromResponse;
55
+ /**
56
+ * Convert MIME type to image format.
57
+ */
58
+ private getMimeTypeFormat;
59
+ /**
60
+ * Handle errors and create error result.
61
+ */
62
+ private handleError;
63
+ }
64
+ /**
65
+ * Prevents tree-shaking from removing this class.
66
+ */
67
+ export declare function LoadGeminiImageGenerator(): void;
68
+ //# sourceMappingURL=geminiImage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"geminiImage.d.ts","sourceRoot":"","sources":["../src/geminiImage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAqC,MAAM,eAAe,CAAC;AAE/E,OAAO,EACH,kBAAkB,EAClB,qBAAqB,EACrB,qBAAqB,EACrB,eAAe,EACf,oBAAoB,EACpB,cAAc,EAGjB,MAAM,oBAAoB,CAAC;AAE5B;;;;;;;;GAQG;AACH,qBACa,oBAAqB,SAAQ,kBAAkB;IACxD,SAAS,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,CAAQ;IAC7C,OAAO,CAAC,cAAc,CAAqC;gBAE/C,MAAM,EAAE,MAAM;IAI1B;;;OAGG;cACa,YAAY,IAAI,OAAO,CAAC,WAAW,CAAC;IAIpD;;OAEG;YACW,kBAAkB;IAahC;;OAEG;IACU,aAAa,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAsCzF;;;OAGG;IACU,SAAS,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,qBAAqB,CAAC;IA6C/E;;;OAGG;IACU,eAAe,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAwD1F;;OAEG;IACU,SAAS,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;IAgBnD;;OAEG;IACU,mBAAmB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAIrD;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAwD7B;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAkDhC;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAazB;;OAEG;IACH,OAAO,CAAC,WAAW;CAWtB;AAED;;GAEG;AACH,wBAAgB,wBAAwB,SAEvC"}
@@ -0,0 +1,329 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.LoadGeminiImageGenerator = exports.GeminiImageGenerator = void 0;
10
+ const genai_1 = require("@google/genai");
11
+ const global_1 = require("@memberjunction/global");
12
+ const ai_1 = require("@memberjunction/ai");
13
+ /**
14
+ * Google Gemini 3 Pro Image (Nano Banana Pro) implementation of the BaseImageGenerator class.
15
+ * Supports Google's most advanced image generation model with 2K/4K resolution support.
16
+ *
17
+ * Model: gemini-3-pro-image-preview (November 2025)
18
+ * - Native multimodal image generation
19
+ * - High resolution output (up to 4K)
20
+ * - Advanced style control and prompt understanding
21
+ */
22
+ let GeminiImageGenerator = class GeminiImageGenerator extends ai_1.BaseImageGenerator {
23
+ constructor(apiKey) {
24
+ super(apiKey);
25
+ this._gemini = null;
26
+ this._geminiPromise = null;
27
+ }
28
+ /**
29
+ * Factory method to create the GoogleGenAI client instance.
30
+ * Subclasses can override this to provide custom configuration.
31
+ */
32
+ async createClient() {
33
+ return new genai_1.GoogleGenAI({ apiKey: this.apiKey });
34
+ }
35
+ /**
36
+ * Ensure the Gemini client is initialized before use.
37
+ */
38
+ async ensureGeminiClient() {
39
+ if (this._gemini) {
40
+ return this._gemini;
41
+ }
42
+ if (!this._geminiPromise) {
43
+ this._geminiPromise = this.createClient();
44
+ }
45
+ this._gemini = await this._geminiPromise;
46
+ return this._gemini;
47
+ }
48
+ /**
49
+ * Generate image(s) from a text prompt using Gemini 3 Pro Image (Nano Banana Pro).
50
+ */
51
+ async GenerateImage(params) {
52
+ const startTime = new Date();
53
+ try {
54
+ const client = await this.ensureGeminiClient();
55
+ const modelName = params.model || 'gemini-3-pro-image-preview';
56
+ // Build the generation config
57
+ const generateConfig = this.buildGenerationConfig(params);
58
+ // Generate images
59
+ const images = [];
60
+ const numImages = params.n || 1;
61
+ // Generate images one at a time for consistency
62
+ for (let i = 0; i < numImages; i++) {
63
+ const response = await client.models.generateContent({
64
+ model: modelName,
65
+ contents: params.prompt,
66
+ config: generateConfig
67
+ });
68
+ const generatedImage = this.extractImageFromResponse(response, i, params);
69
+ if (generatedImage) {
70
+ images.push(generatedImage);
71
+ }
72
+ }
73
+ if (images.length === 0) {
74
+ return this.createErrorResult(startTime, 'No images were generated');
75
+ }
76
+ return this.createSuccessResult(startTime, images);
77
+ }
78
+ catch (error) {
79
+ return this.handleError(error, startTime);
80
+ }
81
+ }
82
+ /**
83
+ * Edit an existing image using Gemini's multimodal capabilities.
84
+ * Uses image-to-image generation with the original image as context.
85
+ */
86
+ async EditImage(params) {
87
+ const startTime = new Date();
88
+ try {
89
+ const client = await this.ensureGeminiClient();
90
+ const modelName = params.model || 'gemini-3-pro-image-preview';
91
+ // Normalize the input image
92
+ const imageInput = await this.normalizeImageInput(params.image);
93
+ // Build multimodal content with the image and edit prompt
94
+ const content = [
95
+ {
96
+ inlineData: {
97
+ data: imageInput.base64,
98
+ mimeType: 'image/png'
99
+ }
100
+ },
101
+ {
102
+ text: `Edit this image: ${params.prompt}`
103
+ }
104
+ ];
105
+ const generateConfig = this.buildGenerationConfig({
106
+ ...params,
107
+ prompt: params.prompt
108
+ });
109
+ const response = await client.models.generateContent({
110
+ model: modelName,
111
+ contents: content,
112
+ config: generateConfig
113
+ });
114
+ const generatedImage = this.extractImageFromResponse(response, 0, params);
115
+ if (!generatedImage) {
116
+ return this.createErrorResult(startTime, 'Image editing did not produce a result');
117
+ }
118
+ return this.createSuccessResult(startTime, [generatedImage]);
119
+ }
120
+ catch (error) {
121
+ return this.handleError(error, startTime);
122
+ }
123
+ }
124
+ /**
125
+ * Create variations of an existing image.
126
+ * Uses the original image as context with a variation prompt.
127
+ */
128
+ async CreateVariation(params) {
129
+ const startTime = new Date();
130
+ try {
131
+ const client = await this.ensureGeminiClient();
132
+ const modelName = params.model || 'gemini-3-pro-image-preview';
133
+ // Normalize the input image
134
+ const imageInput = await this.normalizeImageInput(params.image);
135
+ const variationPrompt = params.prompt || 'Create a variation of this image with similar style and content but with subtle creative differences';
136
+ // Build multimodal content with the image and variation prompt
137
+ const content = [
138
+ {
139
+ inlineData: {
140
+ data: imageInput.base64,
141
+ mimeType: 'image/png'
142
+ }
143
+ },
144
+ {
145
+ text: variationPrompt
146
+ }
147
+ ];
148
+ const generateConfig = this.buildGenerationConfig({
149
+ ...params,
150
+ prompt: variationPrompt
151
+ });
152
+ const images = [];
153
+ const numVariations = params.n || 1;
154
+ for (let i = 0; i < numVariations; i++) {
155
+ const response = await client.models.generateContent({
156
+ model: modelName,
157
+ contents: content,
158
+ config: generateConfig
159
+ });
160
+ const generatedImage = this.extractImageFromResponse(response, i, params);
161
+ if (generatedImage) {
162
+ images.push(generatedImage);
163
+ }
164
+ }
165
+ if (images.length === 0) {
166
+ return this.createErrorResult(startTime, 'No image variations were generated');
167
+ }
168
+ return this.createSuccessResult(startTime, images);
169
+ }
170
+ catch (error) {
171
+ return this.handleError(error, startTime);
172
+ }
173
+ }
174
+ /**
175
+ * Get available Gemini image generation models.
176
+ */
177
+ async GetModels() {
178
+ return [
179
+ {
180
+ id: 'gemini-3-pro-image-preview',
181
+ name: 'Gemini 3 Pro Image (Nano Banana Pro)',
182
+ description: 'Google\'s most advanced image generation model (November 2025). Supports up to 4K resolution with exceptional quality and style control.',
183
+ supportedSizes: ['1024x1024', '1536x1024', '1024x1536', '2048x2048', '3840x2160', '2160x3840'],
184
+ maxImages: 4,
185
+ supportsEditing: true,
186
+ supportsVariations: true,
187
+ supportsNegativePrompt: true,
188
+ supportsSeed: true
189
+ }
190
+ ];
191
+ }
192
+ /**
193
+ * Get supported methods for this provider.
194
+ */
195
+ async GetSupportedMethods() {
196
+ return ['GenerateImage', 'EditImage', 'CreateVariation', 'GetModels'];
197
+ }
198
+ /**
199
+ * Build generation config for Gemini API.
200
+ */
201
+ buildGenerationConfig(params) {
202
+ const config = {
203
+ // Request image output modality
204
+ responseModalities: [genai_1.Modality.IMAGE, genai_1.Modality.TEXT]
205
+ };
206
+ // Add size/aspect ratio if specified
207
+ if (params.size) {
208
+ const [width, height] = params.size.split('x').map(Number);
209
+ if (!isNaN(width) && !isNaN(height)) {
210
+ // Gemini 3 Pro Image supports explicit dimensions
211
+ config.imageSize = { width, height };
212
+ // Also set aspect ratio for compatibility
213
+ if (width > height) {
214
+ config.aspectRatio = '16:9';
215
+ }
216
+ else if (height > width) {
217
+ config.aspectRatio = '9:16';
218
+ }
219
+ else {
220
+ config.aspectRatio = '1:1';
221
+ }
222
+ }
223
+ }
224
+ if (params.aspectRatio) {
225
+ config.aspectRatio = params.aspectRatio;
226
+ }
227
+ // Add negative prompt if supported
228
+ if (params.negativePrompt) {
229
+ config.negativePrompt = params.negativePrompt;
230
+ }
231
+ // Add seed for reproducibility
232
+ if (params.seed !== undefined) {
233
+ config.seed = params.seed;
234
+ }
235
+ // Quality setting
236
+ if (params.quality) {
237
+ config.quality = params.quality;
238
+ }
239
+ // Style setting
240
+ if (params.style) {
241
+ config.style = params.style;
242
+ }
243
+ // Merge any provider-specific options
244
+ if (params.providerOptions) {
245
+ Object.assign(config, params.providerOptions);
246
+ }
247
+ return config;
248
+ }
249
+ /**
250
+ * Extract image data from Gemini response.
251
+ */
252
+ extractImageFromResponse(response, index, params) {
253
+ const candidates = response.candidates;
254
+ if (!candidates || candidates.length === 0) {
255
+ return null;
256
+ }
257
+ const candidate = candidates[0];
258
+ if (!candidate.content || !candidate.content.parts) {
259
+ return null;
260
+ }
261
+ // Find the image part in the response
262
+ for (const part of candidate.content.parts) {
263
+ // Check for inline data (base64 image)
264
+ if (part.inlineData && part.inlineData.data) {
265
+ const generatedImage = new ai_1.GeneratedImage();
266
+ generatedImage.base64 = part.inlineData.data;
267
+ generatedImage.data = Buffer.from(part.inlineData.data, 'base64');
268
+ generatedImage.format = this.getMimeTypeFormat(part.inlineData.mimeType || 'image/png');
269
+ generatedImage.index = index;
270
+ // Set dimensions from params if available
271
+ if (params.size) {
272
+ const [width, height] = params.size.split('x').map(Number);
273
+ if (!isNaN(width) && !isNaN(height)) {
274
+ generatedImage.width = width;
275
+ generatedImage.height = height;
276
+ }
277
+ }
278
+ return generatedImage;
279
+ }
280
+ // Check for file data (URL reference)
281
+ if (part.fileData && part.fileData.fileUri) {
282
+ const generatedImage = new ai_1.GeneratedImage();
283
+ generatedImage.url = part.fileData.fileUri;
284
+ generatedImage.format = this.getMimeTypeFormat(part.fileData.mimeType || 'image/png');
285
+ generatedImage.index = index;
286
+ return generatedImage;
287
+ }
288
+ }
289
+ return null;
290
+ }
291
+ /**
292
+ * Convert MIME type to image format.
293
+ */
294
+ getMimeTypeFormat(mimeType) {
295
+ if (mimeType.includes('jpeg') || mimeType.includes('jpg')) {
296
+ return 'jpeg';
297
+ }
298
+ if (mimeType.includes('webp')) {
299
+ return 'webp';
300
+ }
301
+ if (mimeType.includes('gif')) {
302
+ return 'gif';
303
+ }
304
+ return 'png';
305
+ }
306
+ /**
307
+ * Handle errors and create error result.
308
+ */
309
+ handleError(error, startTime) {
310
+ const errorInfo = ai_1.ErrorAnalyzer.analyzeError(error, 'Gemini');
311
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error occurred';
312
+ console.error('Gemini Image Generation error:', errorMessage, errorInfo);
313
+ const result = this.createErrorResult(startTime, errorMessage);
314
+ result.errorInfo = errorInfo;
315
+ return result;
316
+ }
317
+ };
318
+ exports.GeminiImageGenerator = GeminiImageGenerator;
319
+ exports.GeminiImageGenerator = GeminiImageGenerator = __decorate([
320
+ (0, global_1.RegisterClass)(ai_1.BaseImageGenerator, 'GeminiImageGenerator')
321
+ ], GeminiImageGenerator);
322
+ /**
323
+ * Prevents tree-shaking from removing this class.
324
+ */
325
+ function LoadGeminiImageGenerator() {
326
+ // This function intentionally does nothing
327
+ }
328
+ exports.LoadGeminiImageGenerator = LoadGeminiImageGenerator;
329
+ //# sourceMappingURL=geminiImage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"geminiImage.js","sourceRoot":"","sources":["../src/geminiImage.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@memberjunction/ai-gemini",
3
- "version": "2.133.0",
3
+ "version": "3.0.0",
4
4
  "description": "MemberJunction Wrapper for Google Gemini AI Models",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -19,8 +19,8 @@
19
19
  "typescript": "^5.4.5"
20
20
  },
21
21
  "dependencies": {
22
- "@memberjunction/ai": "2.133.0",
23
- "@memberjunction/global": "2.133.0",
22
+ "@memberjunction/ai": "3.0.0",
23
+ "@memberjunction/global": "3.0.0",
24
24
  "@google/genai": "^1.34.0"
25
25
  },
26
26
  "repository": {