pi-banana 2.5.1 → 2.5.2

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.
@@ -53,7 +53,7 @@ const ASPECT_RATIOS = [
53
53
  "21:9",
54
54
  ] as const;
55
55
  const IMAGE_SIZES = ["1K", "2K", "4K"] as const;
56
- const IMAGE_QUALITY = ["lite", "fast", "high"] as const;
56
+ const IMAGE_QUALITY = ["lite", "fast", "high", "max"] as const;
57
57
  const VISION_QUALITY = ["fast", "high"] as const;
58
58
  type ImageQuality = (typeof IMAGE_QUALITY)[number];
59
59
 
@@ -67,6 +67,7 @@ const MODEL_FOR_QUALITY: Record<ImageQuality, string> = {
67
67
  lite: "gemini-3.1-flash-lite-image", // Nano Banana 2 Lite (ultra-low latency, cheapest)
68
68
  fast: "gemini-3.1-flash-image", // Nano Banana 2
69
69
  high: "gemini-3-pro-image", // Nano Banana Pro
70
+ max: "gemini-3-pro-image", // Google fallback; configured provider maps max to GPT Image 2
70
71
  };
71
72
 
72
73
  const DEFAULT_OUTPUT_DIR =
@@ -311,7 +312,7 @@ export default function (pi: ExtensionAPI) {
311
312
  quality: Type.Optional(
312
313
  StringEnum(IMAGE_QUALITY, {
313
314
  description:
314
- "'lite' = Nano Banana 2 Lite (ultra-low latency, cheapest). 'fast' = Nano Banana 2 (default, ~3s, cheap). 'high' = Nano Banana Pro (slower, top quality).",
315
+ "'lite' = Nano Banana 2 Lite (ultra-low latency, cheapest). 'fast' = Nano Banana 2 (default, ~3s, cheap). 'high' = Nano Banana Pro (strong editing). 'max' = premium benchmark tier, GPT Image 2 when the configured provider supports it.",
315
316
  default: DEFAULT_QUALITY,
316
317
  }),
317
318
  ),
@@ -362,7 +363,7 @@ export default function (pi: ExtensionAPI) {
362
363
  const provider = await resolveProvider(ctx);
363
364
  if (provider.kind === "openai-compat") {
364
365
  const { config } = provider;
365
- const oaiModel = config.models[quality] ?? config.models.fast;
366
+ const oaiModel = config.models[quality] ?? config.models.high ?? config.models.fast;
366
367
  if (!oaiModel) {
367
368
  throw new Error(`banana: no model mapped for quality "${quality}". Run /banana-setup.`);
368
369
  }
@@ -415,7 +416,7 @@ export default function (pi: ExtensionAPI) {
415
416
  content: [
416
417
  {
417
418
  type: "text",
418
- text: `🎨 ${verbLabel} ${aspectRatio} ${imageSize} image with ${quality === "lite" ? "Nano Banana 2 Lite" : quality === "fast" ? "Nano Banana 2" : "Nano Banana Pro"}…`,
419
+ text: `🎨 ${verbLabel} ${aspectRatio} ${imageSize} image with ${quality === "lite" ? "Nano Banana 2 Lite" : quality === "fast" ? "Nano Banana 2" : quality === "high" ? "Nano Banana Pro" : "GPT Image 2"}…`,
419
420
  },
420
421
  ],
421
422
  details: { model, aspectRatio, imageSize, quality, editing },
@@ -18,7 +18,7 @@ import { resolve } from "path";
18
18
  export interface OpenAiCompatConfig {
19
19
  baseUrl: string;
20
20
  apiKey: string;
21
- models: { lite?: string; fast?: string; high?: string };
21
+ models: { lite?: string; fast?: string; high?: string; max?: string };
22
22
  visionModel?: string;
23
23
  /** Optional provider id whose key lives in pi's auth.json (e.g. "mantice"). */
24
24
  providerName?: string;
@@ -52,7 +52,8 @@ export async function configureBananaProvider(ctx: any, opts: ConfigureOptions):
52
52
  const models = {
53
53
  lite: pick(/lite|fast|turbo|mini/i),
54
54
  fast: pick(/^(?!.*(lite|high|max|pro|ultra)).*$/i),
55
- high: pick(/max|high|pro|ultra/i),
55
+ high: pick(/high|pro/i),
56
+ max: pick(/max|ultra/i),
56
57
  };
57
58
  const visionModel = opts.visionModel ?? probe.visionModels[0];
58
59
  persistBananaConfig({ baseUrl, apiKey, models, ...(visionModel ? { visionModel } : {}) });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pi-banana",
3
- "version": "2.5.1",
3
+ "version": "2.5.2",
4
4
  "description": "Generate, edit, and analyze images in pi using Google Nano Banana (image gen) and Gemini Vision (analysis). Inline terminal preview, reference-image editing, auto-save.",
5
5
  "author": "Francesco Frapporti <effedue@gmail.com>",
6
6
  "license": "MIT",