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.
- package/extensions/index.ts +5 -4
- package/extensions/providers.ts +1 -1
- package/extensions/wizard.ts +2 -1
- package/package.json +1 -1
package/extensions/index.ts
CHANGED
|
@@ -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 (
|
|
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 },
|
package/extensions/providers.ts
CHANGED
|
@@ -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;
|
package/extensions/wizard.ts
CHANGED
|
@@ -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(/
|
|
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.
|
|
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",
|