# Prompt templates `scripts/build-requests.mjs` assembles these from teaser.json. Use this page to write or fix one by hand, or to paste into another tool. ## 1. Aerial keyframe (GPT Image 2, `openai/gpt-image-2`, or `openai/gpt-image-2/edit` with the user's place photos) ``` Vertical 9:16 cinematic drone aerial photograph at {{TIME_OF_DAY}} in {{SEASON}}, of {{PLACE_NAME}}: {{PLACE}}. {{WHAT_MOVES}}. {{BACKDROP}}. Seen from about {{HEIGHT}} metres up at a {{ANGLE}} degree downward angle; the property sits in the lower third of the frame, {{TOP_OF_FRAME}} fills the top. Realistic scale and architecture. {{LOOK_LINE}} No text, no signage, no logos, no watermark. ``` ## 2. Other keyframes (GPT Image 2 edit, `openai/gpt-image-2/edit`, reference 1 = approved aerial or the user's photo) ``` A vertical 9:16 still frame from a cinematic travel teaser. {{SHOT_SIZE_AND_ANGLE}} at the place from the reference image, {{TIME_OF_DAY}}. {{SUBJECT}}; {{WHAT_MOVES}}. {{PEOPLE_AND_FACES or "Nobody in frame."}} {{LIGHT}}. {{LENS_AND_COMPOSITION}}. The place matches reference image 1: same architecture, materials and landscape. {{LOOK_LINE}} Photorealistic, true-to-life scale and anatomy. No text, no signage, no logos, no watermark. ``` | Placeholder | Example (Vael Lodge) | |---|---| | `{{PLACE_NAME}}` | "Vael Lodge, a fictional secluded alpine lodge" (a real property: its real name, and only what it really has) | | `{{PLACE}}` | "a long, low chalet of dark weathered timber and grey stone with steep snow-covered roofs and two tall glass gable windows glowing warm amber, set in a snowy clearing in a dark spruce forest" | | `{{WHAT_MOVES}}` | "a thin curl of smoke rises from the stone chimney, light snow is falling" | | `{{SHOT_SIZE_AND_ANGLE}}` | "Close detail outside one of its tall timber-framed windows" | | `{{PEOPLE_AND_FACES}}` | "A fictional adult couple in chunky cream knit sweaters sit on a sheepskin rug in front of the fire, seen from behind, faces turned towards the fire and away from the camera." | | `{{LIGHT}}` | "cold blue exterior light against warm interior firelight" | | `{{LENS_AND_COMPOSITION}}` | "85mm lens, shallow depth of field, the lantern in the lower middle" | | `{{LOOK_LINE}}` | `locks.look`, e.g. "Shot on 35mm motion picture film, Kodak Vision3 500T look, gentle film grain, soft halation around warm lights, cool blue snow and shadows with warm amber window light, no HDR, no digital over-sharpening." | Request fields: `prompt`, `image_urls` (edit only, max 3), `image_size` {width: 864, height: 1536} (9:16) or {width: 1536, height: 864} (16:9), `quality` "high", `num_images` 1, `output_format` "jpeg". ## 3. Motion (draft `bytedance/seedance-2.0/mini/image-to-video` 480p; final `bytedance/seedance-2.5/image-to-video` 720p) ``` {{ONE_CAMERA_MOVE}}; {{WHAT_MOVES_IN_THE_SCENE}}. {{GUARDS}} One continuous shot, no cuts, real-time speed. ``` | Placeholder | Example | |---|---| | `{{ONE_CAMERA_MOVE}}` | "Cinematic drone shot at blue hour: the drone descends slowly and glides forward towards the glowing lodge, smooth and steady" | | `{{WHAT_MOVES_IN_THE_SCENE}}` | "light snow falls, chimney smoke drifts, the lantern flames flicker" | | `{{GUARDS}}` | "Nobody in frame." / "Their faces stay turned towards the fire, away from the camera. No other people." | Request fields: `prompt`, `image_url` (approved keyframe), `resolution` ("480p" draft, "720p" final), `duration` "4" (or "5" for 4-shot teasers), `aspect_ratio` "auto", `generate_audio` (false draft, true final: same price), finals also `bitrate_mode` "high", `codec` "H264".