For a Nano Banana Pro poster, start at 2k, set the final aspect ratio, and put every required word in quotes in its own block with a stated position. On SpicyAPI, 1k and 2k cost the same $0.0668 per image, so there is no reason to inspect lettering at 1k. Fix a single wrong line with an edit; when the copy changes often or must be exact in a specific font, set it as a normal text layer on top of the generated image.
Nano Banana Pro is a filtered model. Based on our September 2026 tests, text-to-image renders suggestive portraits but refuses strong NSFW content and softens mid-level NSFW requests, and edits are less predictable: lingerie-style edits can be refused. Plan it for SFW work: release announcements, character introductions and event cards.
Make one poster with four short text blocks
Open Nano Banana Pro text to image. Paste this prompt:
Create a portrait promotional poster for a fictional adult creator's new fashion portrait collection. Show a fictional adult woman aged 35 in an opaque navy tailored suit, seated beside a cream wall under soft window light. Keep her head and shoulders below the headline region.
Required text exactly as written:
Headline: “AFTER HOURS”
Subtitle: “A portrait collection”
Release line: “18 OCTOBER”
Footer: “Discover the series”
The headline is the largest text at the top. Place the smaller subtitle directly below it. Put the release line and footer in a separate cream panel at the bottom. Dark navy lettering, generous margins, plain background behind every text block. No additional words, dates, logos or decorative lettering.
Try it in the Playground
- Open Run this prompt on Nano Banana Pro link, or the text-to-image page and paste the prompt into Prompt. Stay on the Playground tab, Form view, and sign in with a funded account to run.
- Check Aspect ratio and Resolution before you run: set 4:5 and 2k. The API defaults are 1k and 16:9, a small landscape image, and the Playground may open on other values.
- Run it and check the lettering against the four strings.
- To fix one line, open the edit page, add the poster under Images and paste the edit prompt below into Prompt.
Keep the first composition to about four short strings. A biography paragraph, a long URL and six social handles is a different layout problem; generate the portrait and typeset that denser copy in an editable document.
For the look of the lettering, describe it ("bold white sans-serif", "thin minimalist serif", "heavy blocky headline") or name a family such as Century Gothic; either way the model draws a lookalike, not the real font. Google's prompting guide adds a text-first step: if you need the wording drafted, settle it in a normal chat first and then ask for the image. The result is a raster image, not editable text.
Check the wording before you ask for more detail
Read the headline letter by letter against “AFTER HOURS”, then check the date digits, then view the poster at the width it will have on a phone. Correct letters can still be too small, and attractive large letters can still spell the wrong word.
| What failed | Next change |
|---|---|
| “HOURS” became “HOUR” | Edit the headline only, quoting the complete string |
| Date correct but tiny | Enlarge the release line and simplify the bottom panel |
| Hair crosses the headline | Ask for a larger plain headline region or move the portrait lower |
| Unrequested words on clothing | Say the wardrobe has no visible lettering |
| Copy correct, font wrong | Set the approved words as a text layer |
Correct one line on the existing poster
Open Nano Banana Pro editing, upload the accepted poster, and keep Aspect ratio on auto and Resolution on 2k. For a wrong date:
Use image one as the current poster. Replace the date in the bottom panel with exactly “18 OCTOBER”. Keep the headline “AFTER HOURS”, subtitle “A portrait collection”, footer “Discover the series”, person, outfit, colors and layout. Do not add new wording or rearrange the poster.
Afterwards compare every line, not just the date. If the date is fixed but the face or another line changed, go back to the last accepted image and add the date as a text layer instead of editing again.
There is no mask field, so "change only this line" is an instruction, not a locked selection.
Add a portrait or layout reference
To put an approved fictional adult character into a new poster, use editing with the portrait as image one and a plain block sketch as image two:
Image one defines the adult character's face and clothing. Image two defines only the large headline region, central portrait region and bottom information panel. Use the exact four text strings in this prompt, not any placeholder words in the sketch.
Keep sketch faces and placeholder words out of image two, or they compete with the portrait and your copy. If the portrait already contains lettering, say whether it belongs to the garment or should disappear.
If a name or word keeps coming back misspelled, write it in a document, screenshot it, add the screenshot as an extra reference and tell the model to copy the lettering from it.
Call it from code
Install the Python SDK (pip install spicyapi), set SPICY_API_KEY, and run:
import uuid
from spicyapi import SpicyClient, output_assets
client = SpicyClient()
task = client.create_task(
model="google/nano-banana-pro/text-to-image",
input_data={
"prompt": (
"Create a portrait promotional poster for a fictional adult creator's new fashion portrait collection. "
"Show a fictional adult woman aged 35 in an opaque navy tailored suit, seated beside a cream wall under soft window light. "
"Keep her head and shoulders below the headline region.\n\n"
"Required text exactly as written:\n"
"Headline: \u201cAFTER HOURS\u201d\nSubtitle: \u201cA portrait collection\u201d\n"
"Release line: \u201c18 OCTOBER\u201d\nFooter: \u201cDiscover the series\u201d\n\n"
"The headline is the largest text at the top. Place the smaller subtitle directly below it. "
"Put the release line and footer in a separate cream panel at the bottom. "
"Dark navy lettering, generous margins, plain background behind every text block. "
"No additional words, dates, logos or decorative lettering."
),
"aspect_ratio": "4:5",
"resolution": "2k",
},
idempotency_key=str(uuid.uuid4()), # new key per new request; reuse only to retry the same one
)
final = client.wait_for_terminal(task["taskId"])
print(output_assets(final)[0]["url"])Uploads, waiting and errors are in the Python SDK reference. The edit endpoint, google/nano-banana-pro/edit, takes image_urls (1 to 14) with the same prompt, aspect_ratio and resolution.
Or let an Agent run it
An assistant can make the poster for you through the CLI, the MCP server or the Skill. The CLI and MCP show the price and ask you to confirm before a paid call.
- CLI.
spicyapiruns one task from a terminal (npx @spicyapi/cliworks without installing):spicyapi tasks create --model google/nano-banana-pro/text-to-image --input-file input.json --wait. - MCP. Connect the MCP server, ask for "the poster", and the assistant calls
spicyapi_task_create(it stops for your price confirmation) and thenspicyapi_task_wait. - Skill.
npx skills add spicyapi-ai/spicy-skillinstalls the Agent Skill, which has the assistant read the live schema before it calls.
Prices and defaults
| Resolution | Text to image | Edit with one source image |
|---|---|---|
| 1k | $0.0668 | $0.0668 |
| 2k | $0.0668 | $0.0668 |
| 4k | $0.118 | $0.118 |
These are default-route prices; an edit with one to eight source images costs the same as text to image. If a request falls back to the official route, it costs at most $0.1072 at 1k and 2k or $0.192 at 4k, plus $0.00088 for each source image. That route is also the only one for nine to fourteen sources, so a 14-image edit at 2k is about $0.12. Aspect ratio does not change the price, and refused requests are not charged.
Use 4k when the accepted design needs a larger delivery, not to rescue small text. Editing defaults to the source image's shape (auto).
Localize the copy without redrawing the character
Approve the translated strings first. A longer subtitle may need two lines, so do not insist on identical line breaks across languages; for German, “Eine Porträtserie” can replace “A portrait collection” while a collection title that is a name stays fixed.
For several languages on one portrait, the maintainable setup is an image-only master plus a text layer per language. Use generated typography when the lettering treatment is part of the idea and the short text can be checked; use editable typography when exact spelling, recurring updates or a specific font is the requirement.






