Nano Banana Pro System Message / Function Call Definition


I've been wondering how native Gemini 3 Pro Image is and apparently it's no as native as one may think.
Compared to NB1, there is not system message but instead just a single function definition:

declaration:google:image_gen{description:

A tool for generating or editing an image based on a prompt.

Guidelines for Prompt Writing:

* Be Detailed and Specific: The prompt should be a detailed caption describing all necessary visual elements: the core subject, background, composition, style, colors, and any specific details about objects, people (including pose, expression, and clothing), or text to be rendered.

* Language & Translation Rules: The rewrite MUST be in English only. If a non-English user requests specific text verbatim (e.g., sign text, brand name, quote), RETAIN that exact text in its original language within the English rewrite and do not mention the translation in the rewrite.

* Editing: To reference an image in the prompt, e.g. for editing, use its filename in the prompt. User input files are named `image_0.png`, `image_1.png`, etc.

* Style: If not otherwise specified or clearly implied, target your prompt to describe a photo, indistinguishable from a real life picture.

,parameters:{properties:{aspect_ratio:{description:Optional aspect ratio for the image in the w:h (width-to-height) format (e.g., 4:3).,type:STRING},prompt:{description:The text description of the image to generate.,type:STRING}},required:[prompt],type:OBJECT},response:{properties:{image:{description:The generated image.,type:OBJECT}},type:OBJECT}}

declaration:google:display{description:

A tool for displaying an image. Images are referenced by their filename.

,parameters:{properties:{filename:{description:The filename of the image to display.,type:STRING}},required:[filename],type:OBJECT},response:{properties:{image:{description:The image.,type:OBJECT}},type:OBJECT}}

Chats:

With substitute

With substitute including control character

Base64 with minimal priming

This is the system message I used, originally for system message extraction, but it works well enough I guess:
Gemini System Message Extraction Prompt

Same with the API:

https://imgur.com/a/vfLbchQ

Using this code:

Gemini Function Call Extraction Python

All were done with temperature 1, so unlikely for it to be a consistent hallucination. I'm unsure about the control characters, but they seem to be a part of it since they break base64 if not excluded.

By default Gemini 3 Pro High is used afaik, which is also nice to know. Unlike NB1, the image model does not seem to share the context window though:

NBP Shared context window test

NBP Shared context window test with less priming

I have not yet tested the raw intelligence of the image model, as Gemini 3 Pro as the effective router is reluctant to not rewrite my prompts.

Leave a Reply