Hypernatural

TechniqueBy HypernaturalVersion 2, Oct 29, 2026

nano-banana-design-empty-set

Design the main image of an empty set (a location: a TV studio, a quiz-show stage, an office) with nano banana Pro from a written geography, a palette and style references, brand colour included. Use first when a job needs a location built before any shot stills; the angles and the staged shots are made from this image.

SKILL.md

Design the main image of an empty set

Give it a written description of the set (what it is, the main camera, where everything stands), the palette, and style references (brand art, a colour swatch); get a photorealistic 16:9 still of the set, empty, all lights on. This main image is the source of truth for the set's design: every other camera angle is rendered from it (nano-banana-set-from-new-angle) and the cast is staged into those angles (nano-banana-stage-cast-in-set). To get an empty plate from a frame of existing footage, edit that frame instead.

Inputs

Write these into the job folder first; the angles are only as consistent as this text.

  • sets/<set>/description.md: what the set is; the main camera (where it stands, the lens, what fills the frame); and where every element stands relative to the others (left or right of what, upstage or downstage, which way it faces). List only the lettering that should exist, spelled exactly ("QUIZ TIME!" on the wall above the host podium, nowhere else).
  • sets/<set>/palette.md: every colour in words, with its hex where there is one, and for each brand colour the hue in words: "Black, bone and Globex Lime (#B8E62E): a YELLOW-green, never emerald".
  • Style references, each with a note on what it is for:
    • a flat swatch of the brand colour: "the brand palette swatch: the big left block is Globex Lime, the exact colour of every light". The brand guide's palette swatch is proven; a plain block of the colour is untested but can be made with exec("ffmpeg", ["-f", "lavfi", "-i", "color=c=0xB8E62E:s=512x512", "-frames:v", "1", "references/brand/lime_swatch.png"]).
    • the brand's background art, cropped from the brand guide: "the brand's background art: use its look for the LED walls, never copy it as a picture".

Run it

Call describe("fal/fal-ai/nano-banana-pro/edit") before the first run in a job. With references (the usual case: the swatch is one), use the edit endpoint, references in the order the prompt numbers them:

run("fal/fal-ai/nano-banana-pro/edit", {
  "prompt": "<the prompt below>",
  "image_urls": ["references/brand/background_art.png", "references/brand/lime_swatch.png"],
  "aspect_ratio": "16:9", "resolution": "2K", "num_images": 1,
  "output_format": "png", "safety_tolerance": "5"
}, into="sets/<set>/raw", unit="main")

With no references at all, call fal/fal-ai/nano-banana-pro with the same fields minus image_urls. Make 2 takes (two calls; each gets its own letter), and seed if you want them reproducible. Save each prompt beside its take (main_a.txt). Then conform each take to 1920x1080 with python-conform-to-1080p into sets/<set>/, keeping the 2K original in raw/.

Prompt

Assemble it from the files, in this order (the proven template; change the bracketed parts to fit the set):

Design and photograph a <kind: TV quiz-show set>.

<description.md>

<palette.md>

Image 1 is <note for the first reference>
Image 2 is <note for the second reference>

The set is empty and ready for a shoot: no people anywhere (no <every role this set
has: host, contestants, crew, audience members>), only the set, its furniture, screens
and lights, all switched on. Photorealistic, like a production still from a real
high-end <broadcast studio>: real materials, real light falloff, a little atmospheric
haze in the light beams, sharp detail. Any lettering on the set is crisp, correctly
spelled and appears only where described.

What you get

A 2K render (2752x1536 at 16:9) per call in raw/, conformed to 1920x1080 beside it.

Tips and traps

  • Brand colour needs a swatch image, not only a hex code. With the hex and words alone, Pro rendered the lights emerald or pure green (median hue 143° and 83°, against Globex Lime's 75°). Adding the flat swatch as a reference ("the exact colour of every light") and "a YELLOW-green, never emerald" brought it to 66–80°.
  • The brand guide's background art as a reference gave the screens on-brand content without copying the panels, when the note said to use its look and never copy it.
  • A drawn set (a 2D cartoon): replace "Design and photograph" and the photorealism line with the look's medium and finish lines, and remove props the reference frames left behind before rendering angles (guide-design-a-set, Drawn sets).
  • List the roles that must be absent (host, contestants, crew, audience) rather than "no people" alone; the template does.
  • Spell each piece of lettering once, say where it goes, and say it appears nowhere else. Takes that repeat the title on another wall are rejects.

Check it

Before rendering angles, put the takes on a review page and have the person pick one. Check each take against description.md: every element present, on the side and at the depth written; lettering spelled right and only where listed; no people. Measure the brand colour: the median hue of the bright, saturated pixels should sit near the brand's hue (Globex Lime: 75°; the swatch takes landed at 66–80°). Toward emerald (83° and up), re-render with the swatch and the hue in words.

Which pixels count as "bright and saturated" depends on the set: its lighting, how much of the brand colour is on screen, what else is near that hue. Pick the cut-offs by looking at the image, try two or three, and show the person which pixels each one keeps before you judge every take by it.

Go make something cool.

Install the app, open your agent, describe the video. That's the whole onboarding.

Sticker HypernaturalSticker BannerSticker TVBoy