mirror of
https://github.com/pbakaus/impeccable.git
synced 2026-09-11 21:57:14 +03:00
Default the gemini provider to Nano Banana Pro.
gemini-3-pro-image is Google's strongest image model; IMAGE_GEN_MODEL still overrides for the cheaper flash tier. AI-assisted commit. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -33,7 +33,7 @@ Run it from the project root (that is where it finds `.impeccable/.env`). It pri
|
||||
|
||||
**gemini** (Nano Banana):
|
||||
|
||||
- **Model**: `gemini-3.1-flash-image` by default; a `IMAGE_GEN_MODEL` line in `.impeccable/.env` overrides it, and the wrapper retries the `-preview` sibling once when Google's model naming drifts.
|
||||
- **Model**: `gemini-3-pro-image` (Nano Banana Pro, the strongest tier) by default; a `IMAGE_GEN_MODEL` line in `.impeccable/.env` overrides it (e.g. `gemini-3.1-flash-image` for the cheaper high-volume tier), and the wrapper retries the `-preview` sibling once when Google's model naming drifts.
|
||||
- **Size**: the wrapper pins aspect ratio 1:1, so output is always square; Gemini picks the pixel size for its tier (1024 by default) and ignores `--width`/`--height`. A 1024 square passes the pipelines' square gate as a "nearest supported square"; do not upscale it.
|
||||
- **Format**: Gemini frequently returns JPEG bytes regardless of the `--out` filename; the wrapper converts them, so the written file is always a real PNG. Do not re-check or re-convert it.
|
||||
- **Protocol**: synchronous; one call returns the image inline, no polling. Moderation arrives as an imageless response, which the wrapper turns into a clear error, not as an HTTP failure.
|
||||
|
||||
@@ -237,9 +237,9 @@ async function generateBfl({ apiKey, prompt, ref, width, height, out }) {
|
||||
// only requires square). Moderation shows up as a response with no image
|
||||
// part plus a block reason, not as an HTTP error.
|
||||
async function generateGemini({ apiKey, prompt, ref, out }) {
|
||||
// IMAGE_GEN_MODEL overrides for users on a different tier; the default
|
||||
// is the high-volume Nano Banana model.
|
||||
let model = loadEnv("IMAGE_GEN_MODEL") || "gemini-3.1-flash-image";
|
||||
// IMAGE_GEN_MODEL overrides for users on a cheaper tier; the default is
|
||||
// Nano Banana Pro, Google's strongest image model.
|
||||
let model = loadEnv("IMAGE_GEN_MODEL") || "gemini-3-pro-image";
|
||||
const parts = [{ text: prompt }];
|
||||
if (ref) parts.push({ inlineData: { mimeType: "image/png", data: fs.readFileSync(ref).toString("base64") } });
|
||||
const body = JSON.stringify({
|
||||
|
||||
Reference in New Issue
Block a user