Prostir

Case 04

An image generator that can't leave the brand

Gemini's Nano Banana model is everywhere and people love it. The problem: it knows nothing about your brand colors, your reference photos, or your hero shapes. In this case you open Prostir Studio in the browser, drop in eight reference images, write four short JavaScript tools (palette, format, mood, retake), wire your own Gemini key, and publish. Your team gets one agent that turns one sentence into a brand-correct image.

01

Before: fifty prompts to land one usable image

  • Nano Banana is great. The prompt drifts: wrong palette, wrong shape, wrong mood.
  • Designers re-render the same idea five times, then drop it into Figma to recolor by hand.
  • Three people on the team produce three different brand readings because nobody owns the prompt.
02

What you do inside Prostir Studio

You build this one by clicking, with fine control over tools and assets.

  1. 01
    Studio → Agents → Create agent → name it Brand Image Director.

    An empty agent shell ready for a prompt, resources, and tools.

  2. 02
    Drop eight reference images and one brand notes doc into Resources.

    Each one becomes a resource the assistant can read at generation time.

  3. 03
    Paste the system prompt: you generate images via the Gemini Nano Banana tool, always after applying palette, format, and mood.

    This sets the order: never call Gemini before the guarding tools have run.

  4. 04
    Add four small JavaScript tools: palette_for, format_for, mood_for, retake.

    Each is 10 to 20 lines of pure JS. Studio dry-runs them before publishing.

  5. 05
    Add the Gemini connection using your own API key.

    Prostir keeps the key as a creator-owned secret (BYOK). It is never exposed to the agent's caller.

  6. 06
    Publish.

    Link: prostir.build/yourhandle/brand-image-director. Share with the team, or turn on a Stripe price for outside designers.

03

What lives inside the agent

Eight images and one doc carry the visual identity. Four tools enforce it.

image hero-photos/01-08.jpg Eight in-brand hero shots: color, light, framing.
doc brand-notes.md Forbidden colors, props to never show, shapes that must appear.
code palette_for.js Returns hex stops for the chosen mood and surface.
code format_for.js Picks the aspect ratio and safe area for the placement.
code mood_for.js Maps a one-word mood to light, contrast, and reference image IDs.
code retake.js Tweaks the previous prompt with a single delta (colder, warmer, tighter).
04

What the published agent feels like in ChatGPT

The designer adds the agent once and types a sentence.

ChatGPT

Generate a hero image for the autumn campaign. LinkedIn placement. Calm, slightly cinematic.

format_for + palette_for + mood_for

Format → LinkedIn 1.91:1. Palette → muted ambers and slate. Mood → calm cinematic, low-key, soft falloff.

Gemini Nano Banana

Generated with the locked palette, hero photo #03 used as composition reference.

Retake. Colder, less amber.

retake

Cooler blue-grey palette, same composition. Re-rendered ✓.

05

After: art direction in one sentence

  • Designers stop drifting. Every render comes back inside the brand by default.
  • When something is off, asking for a colder retake is one phrase, not a full re-prompt.
  • Everyone with access to the agent gets the same brand-locked output. No more Figma recoloring.

What gets published

A published Prostir agent at your own link. A designer types one prompt for a hero image. The agent applies your palette, aspect ratio, and mood, calls Gemini, and returns an on-brand image. Wrong direction? Ask for a colder retake. Another pass runs with the same rails in place.

Ready to launch?

One afternoon from idea to live link.

Upload what only you have. Write the rules in plain language. Open the link in ChatGPT, Claude, or your site. Ship the agent only you could ship.

Need custom scale, white-label, or dedicated setup? Talk to sales.