Nano Banana 2.1

Nano Banana 2.1 is Google's updated image generation and editing model in the Nano Banana 2 family. It improves graphic composition and subject consistency, and it follows complex prompts and edit instructions more accurately. It works from text alone or from as many as fourteen reference images plus one reference video, and it can ground a generation in live web and image search so the result reflects current facts and real visual references. It generates at 1K, 2K and 4K, with three levels of thinking that trade speed for reasoning depth, which suits layout-heavy design work, recurring characters and products, and precise multi-step edits.

Complete technical specification for integration
Ready-to-use code snippets for common workflows
Step-by-step tutorials for advanced use cases
← All GuidesText and layouts
How to get exact copy and structured layouts from Nano Banana 2.1: quoting strings, setting a type hierarchy, building infographics, and translating a design.
Introduction
Copy is where generated design work usually fails. Most image models paint lettering as texture, so a clean poster comes back with a headline that is one letter off and the file is unusable. Layout fails the same way: panels drift apart, and a caption lands under the wrong icon.
Nano Banana 2.1 works out the layout and the strings before it renders, which makes it usable for design work where a typo is a failed deliverable. The poster below carries eight separate strings, from the title down to the footer line.

A poster for a summer music festival, portrait format, flat graphic style. A large stylized sun in coral and mustard sits behind a silhouette of pine trees along the bottom third, on a deep teal background with a fine paper grain. Across the top in a heavy condensed white sans serif, the title "SOLSTICE SOUNDS". Directly under it in smaller mustard capitals, "JULY 18-20, LAKE ARDEN". In the middle of the poster, a centered lineup in white capitals, one name per line, each line smaller than the one above: "THE PAPER LANTERNS", "MARA VELOZ", "NIGHT FERRY", "OKAPI DRIVE". Along the bottom edge in small white capitals, "3 DAYS, 4 STAGES" on the left and "TICKETS ON SALE NOW" on the right.
This guide covers quoting copy, building a type hierarchy, dense copy, multi-panel graphics, app screens, and translating a finished design into another language.
Quoting exact copy
Wrap every string you want rendered in quotation marks. The quotes mark copy you are setting, and everything outside them is a description the model is free to word itself. The two yard signs below come from one scene. The first prompt quotes its three lines, and the second only describes what the sign announces.

A real estate yard sign on a white post in front of a two-story suburban house with a trimmed lawn, photographed from the sidewalk on a clear morning. The sign has a navy panel with white lettering: at the top in bold capitals "OPEN HOUSE", in the middle in a lighter weight "SATURDAY 2-4 PM", and at the bottom in small capitals "MAPLE & FINCH REALTY". Photoreal, shallow depth of field with the sign in sharp focus.

A real estate yard sign on a white post in front of a two-story suburban house with a trimmed lawn, photographed from the sidewalk on a clear morning. The sign has a navy panel with white lettering announcing an open house on Saturday afternoon, with the name of the agency at the bottom. The sign carries no phone number and no web address. Photoreal, shallow depth of field with the sign in sharp focus.
Both signs are legible. Only the first one says what the client approved. The unquoted prompt left the wording to the model, which picked its own hours, 1PM to 4PM, and named the agency Forest Hill Realty. Quote each string with the capitalization and punctuation it should print with.
Building a hierarchy
A design with several strings needs a role for each one: which is the headline, which is secondary, where each one sits, how heavy it is. Give every string its own clause with a position, a size relative to the others, and a weight. The label prompt below sets four strings that way:

A studio packshot of a squat frosted glass jar with a matte white lid on a pale sand backdrop, the wordmark "LUMEN & OAT" in small widely spaced black capitals at the top of the label, the product name "Daily Barrier Cream" in a large black serif across the middle, the claim "FRAGRANCE FREE" in small capitals inside a thin outlined pill below it, the size "50 ml / 1.7 fl oz" in tiny gray type along the bottom edge of the label, soft even studio light with a gentle shadow to the right, sharp print detail.
Relative sizes do more than point sizes. "Large" and "tiny" give the model an order to keep, while a number of points means nothing at an unknown print scale. Name a typeface by its class, such as serif or condensed sans, for the same reason.
Dense copy
Longer copy holds when the prompt writes it out line by line. Put each line in its own quoted string, in reading order, grouped under the heading it belongs to. The menu below has three sections and nine priced items:

A printed takeaway menu for a bowl restaurant, portrait format, photographed flat from above on a light wood counter. Cream paper with dark green type. At the top, the restaurant name "GREEN FORK" in a bold condensed sans serif, with "BOWLS & WRAPS" in small capitals under it. Below, three sections separated by thin horizontal rules, each with a bold section heading and three items, each item on one line with the dish name on the left and the price aligned on the right. Section "GRAIN BOWLS": "Miso Salmon 14.50", "Harissa Chicken 13.00", "Roasted Squash 12.00". Section "WRAPS": "Falafel & Pickles 10.50", "Chipotle Beef 11.50", "Halloumi & Mint 11.00". Section "SIDES": "Sweet Potato Fries 5.00", "Charred Corn 4.50", "House Slaw 4.00". At the bottom in small italic type, "Add avocado to any bowl for 2.00". Clean modern layout, crisp legible print.
The prompt states the row format once, "dish name on the left and the price aligned on the right", and then every item follows it. This request also sets settings.thinkingLevel to high, which gives the model more reasoning time for a layout with this many strings. The prompting guide covers the three levels.
When one string in a dense layout comes back wrong, fix it with an edit instead of rerolling the whole design. Pass the image back as a reference and quote the wrong string and its replacement.
Multi-panel layouts
An infographic is a layout problem before it is a text problem. State the grid first: how many panels, in what direction they read, what every panel contains. Then list the copy panel by panel.

A horizontal infographic for an online store titled "HOW RETURNS WORK" in bold dark navy capitals across the top, on an off-white background. Below the title, four equal panels in a single row, read left to right and connected by thin arrows. Each panel has a large coral circle with a white number, a simple navy line icon, a bold two-word heading, and one line of smaller gray caption text. Panel 1: number "1", a laptop icon, heading "Start online", caption "Request a return in your account". Panel 2: number "2", a printer icon, heading "Print label", caption "We email a prepaid shipping label". Panel 3: number "3", a parcel icon, heading "Drop off", caption "Leave it at any pickup point". Panel 4: number "4", a wallet icon, heading "Get refunded", caption "Money back within 5 days". Flat vector style, generous spacing, consistent line weight.
The repeated sentence shape is deliberate. Every panel is described with the same four parts in the same order, so the model builds four matching panels. A panel described differently from its neighbors comes back looking different from them.
App screens
UI mockups follow the same rules with one addition: name the regions of the screen, such as the header and the tab bar, and place each string inside one.

A high-fidelity mobile app screen for a fitness tracker, shown flat as a full-screen UI design with no phone frame, light theme with a white background and a violet accent color. Header at the top: the greeting "Good morning, Maya" in bold dark type with "Tuesday, March 4" in small gray type under it. Below the header, a large circular progress ring in violet with "6,240" in large bold numerals in its center and "of 10,000 steps" in small gray type beneath the number. Below the ring, two rounded cards side by side: the left card reads "Sleep" with "7h 32m" in bold, the right card reads "Water" with "5 of 8 glasses" in bold. Below the cards, a wide rounded violet button with white text "Start workout". At the bottom, a tab bar with four icons labeled "Home", "Workouts", "Progress", and "Profile", with "Home" highlighted in violet. Clean modern sans serif, consistent spacing, crisp interface design.
The prompt walks the screen from top to bottom, one region per sentence, which is the order a designer would read a wireframe in. That makes it a fit for store screenshots and pitch decks drawn up before a build exists.
Translating a design
A finished design can be localized without rebuilding it. Pass the image in inputs.referenceImages and ask for the copy in another language, with the layout held:
Translate every piece of text in this infographic into Spanish. Keep the layout, the icons, the colors, the numbers, and the typography unchanged, and resize text only where a longer translation needs it.
A horizontal infographic for an online store titled "HOW RETURNS WORK" in bold dark navy capitals across the top, on an off-white background. Below the title, four equal panels in a single row, read left to right and connected by thin arrows. Each panel has a large coral circle with a white number, a simple navy line icon, a bold two-word heading, and one line of smaller gray caption text. Panel 1: number "1", a laptop icon, heading "Start online", caption "Request a return in your account". Panel 2: number "2", a printer icon, heading "Print label", caption "We email a prepaid shipping label". Panel 3: number "3", a parcel icon, heading "Drop off", caption "Leave it at any pickup point". Panel 4: number "4", a wallet icon, heading "Get refunded", caption "Money back within 5 days". Flat vector style, generous spacing, consistent line weight.

Translate every piece of text in this infographic into Spanish. Keep the layout, the icons, the colors, the numbers, and the typography unchanged, and resize text only where a longer translation needs it.

Translate every piece of text in this infographic into Japanese. Keep the layout, the icons, the colors, the numbers, and the typography unchanged, and resize text only where a longer translation needs it.
import { createClient } from '@runware/sdk'
const client = await createClient({ apiKey: process.env.RUNWARE_API_KEY })
await client.connect()
const [result] = await client.run({
model: 'google:nano-banana@2.1',
positivePrompt: 'Translate every piece of text in this infographic into Spanish. Keep the layout, the icons, the colors, the numbers, and the typography unchanged, and resize text only where a longer translation needs it.',
resolution: '2K',
inputs: {
referenceImages: [
'https://im.runware.ai/image/os/a14d18/ws/2/ii/2f8b6c1d-94a7-4e53-b0d8-6a3e7f51c92b.jpg'
]
}
})import asyncio
import os
from runware import Runware
async def main():
async with Runware(api_key=os.environ["RUNWARE_API_KEY"]) as client:
results = await client.run({
"model": "google:nano-banana@2.1",
"positivePrompt": "Translate every piece of text in this infographic into Spanish. Keep the layout, the icons, the colors, the numbers, and the typography unchanged, and resize text only where a longer translation needs it.",
"resolution": "2K",
"inputs": {
"referenceImages": [
"https://im.runware.ai/image/os/a14d18/ws/2/ii/2f8b6c1d-94a7-4e53-b0d8-6a3e7f51c92b.jpg"
]
}
})
asyncio.run(main())curl https://api.runware.ai/v1 \
-H "Authorization: Bearer $RUNWARE_API_KEY" \
-H "Content-Type: application/json" \
-d '[
{
"taskType": "imageInference",
"taskUUID": "7c1e4a9b-3f60-4d85-a2b7-e9d05c8f1a36",
"model": "google:nano-banana@2.1",
"positivePrompt": "Translate every piece of text in this infographic into Spanish. Keep the layout, the icons, the colors, the numbers, and the typography unchanged, and resize text only where a longer translation needs it.",
"resolution": "2K",
"inputs": {
"referenceImages": [
"https://im.runware.ai/image/os/a14d18/ws/2/ii/2f8b6c1d-94a7-4e53-b0d8-6a3e7f51c92b.jpg"
]
}
}
]'runware run google:nano-banana@2.1 \
positivePrompt="Translate every piece of text in this infographic into Spanish. Keep the layout, the icons, the colors, the numbers, and the typography unchanged, and resize text only where a longer translation needs it." \
resolution=2K \
inputs.referenceImages.0=https://im.runware.ai/image/os/a14d18/ws/2/ii/2f8b6c1d-94a7-4e53-b0d8-6a3e7f51c92b.jpg{
"taskType": "imageInference",
"taskUUID": "7c1e4a9b-3f60-4d85-a2b7-e9d05c8f1a36",
"model": "google:nano-banana@2.1",
"positivePrompt": "Translate every piece of text in this infographic into Spanish. Keep the layout, the icons, the colors, the numbers, and the typography unchanged, and resize text only where a longer translation needs it.",
"resolution": "2K",
"inputs": {
"referenceImages": [
"https://im.runware.ai/image/os/a14d18/ws/2/ii/2f8b6c1d-94a7-4e53-b0d8-6a3e7f51c92b.jpg"
]
}
}Response
[
{
"taskType": "imageInference",
"taskUUID": "7c1e4a9b-3f60-4d85-a2b7-e9d05c8f1a36",
"imageUUID": "d85a0e37-6b14-4c9f-8e72-1f4a9c3b6d05",
"imageURL": "https://im.runware.ai/image/os/a14d18/ws/2/ii/d85a0e37-6b14-4c9f-8e72-1f4a9c3b6d05.jpg"
}
]resolution replaces width and height here. It sets the tier, and the frame follows the reference, so the translated file fits the slot of the original. The model writes the translation itself. For copy that has to match an approved translation, quote each translated string in the prompt, the same way as in a new design.
Tips
-
Quote every string. Text inside quotation marks is set as written. Text outside them is a description the model words itself.
-
Give each string a position, a relative size, and a weight. One clause per string, with words like "large" and "tiny" to fix the order.
-
Write dense copy line by line. State the row format once, then list every line as its own quoted string in reading order.
-
Describe repeated panels with the same sentence shape. Matching descriptions produce matching panels.
-
Raise the thinking level for dense layouts. Menus and infographics are the case for
settings.thinkingLevelathigh. -
Localize with an edit. Pass the finished design as a reference with
resolution, and the layout survives the translation.