# Prompt templates `scripts/build-requests.mjs` assembles these from film.json for you. Use this page when you need to write or fix one by hand, or paste into another tool. ## 1. Cast bible (GPT Image 2, `openai/gpt-image-2`; with the user's own photo `openai/gpt-image-2/edit`) ``` Photorealistic casting and wardrobe reference sheet for a brand film. One wide photograph showing the same person three times side by side, evenly spaced, full length, on a warm off-white seamless studio backdrop: left, a relaxed three-quarter front view; middle, exact side profile; right, back view. {{CAST}} Wardrobe identical in all three views: {{WARDROBE}} Soft even daylight, 50mm lens, natural unretouched skin texture, true-to-life proportions and hands. Tasteful editorial casting style. No text, no labels, no logos. The person is fictional and must not resemble any real or famous person. ``` With the user's own photo (consent confirmed), start with: `Use the person in the reference photo: keep their face, hair, skin tone and build exactly as they are.` and drop the last sentence. ## 2. Keyframe (GPT Image 2 edit, `openai/gpt-image-2/edit`, refs: bible, location still, product photo) ``` A still frame from a cinematic brand film. {{SHOT_SIZE_AND_ANGLE}}. {{CAST}}, wearing {{WARDROBE}}, {{FROZEN_ACTION}}; {{WHERE_THE_FACE_IS}}. {{PLACE_DETAIL}}. {{LIGHT}}. {{LENS_AND_COMPOSITION}}. The person is the same as in reference image 1: same face, hair, skin tone, build and wardrobe. The place matches reference image 2. No other people anywhere in the frame. {{LOOK_LINE}} Photorealistic, true-to-life anatomy and proportions. No text, no logos, no watermark. ``` | Placeholder | Example | |---|---| | `{{SHOT_SIZE_AND_ANGLE}}` | "Medium shot from behind and slightly to her right, three-quarter back view, waist up" | | `{{CAST}}` / `{{WARDROBE}}` | the locks from film.json, pasted verbatim | | `{{FROZEN_ACTION}}` | "sits on the edge of a villa's teak deck with her lower legs in clear water, leaning back on her hands" | | `{{WHERE_THE_FACE_IS}}` | "her face turned away towards the sea so only the line of her cheek shows" | | `{{PLACE_DETAIL}}` | "rippling light reflections from the water play on the underside of the thatched eave" | | `{{LIGHT}}` | "morning sun from the front-left, a glittering path on the water, warm rim on her hair" | | `{{LENS_AND_COMPOSITION}}` | "50mm lens, shallow depth of field, she sits on the right third" | | `{{LOOK_LINE}}` | `locks.look`, e.g. "Shot on 35mm motion picture film, Kodak Vision3 250D look, gentle film grain, soft halation on highlights, …" | Sizes: `image_size` {width: 1536, height: 864} for 16:9, {width: 864, height: 1536} for 9:16 (2048 × 1152 / 1152 × 2048 for a 1080p film). `quality: "high"`, `output_format: "jpeg"`. ## 3. Motion (Seedance: draft `bytedance/seedance-2.0/mini/image-to-video` 480p; final `bytedance/seedance-2.5/image-to-video` 720p) ``` {{SUBJECT_ACTION_FOR_THE_WHOLE_CLIP}}; {{ONE_CAMERA_MOVE}}. {{ENVIRONMENT_MOTION}}. {{GUARDS}} No other people appear. One continuous shot, no cuts, real-time speed. ``` | Placeholder | Example | |---|---| | `{{SUBJECT_ACTION_FOR_THE_WHOLE_CLIP}}` | "The woman walks slowly away from the camera along the boardwalk towards the villas at a relaxed, natural pace" | | `{{ONE_CAMERA_MOVE}}` | "the camera follows behind her on a smooth gimbal at the same speed, keeping her centred" | | `{{ENVIRONMENT_MOTION}}` | "The hem of her linen shirt moves gently in the breeze, small ripples cross the turquoise water" | | `{{GUARDS}}` | "She never turns around." / "Her hair stays tied in the low bun the whole time." / "The bottle and its label stay unchanged." | Request fields: `prompt`, `image_url` (the approved keyframe), `resolution` ("480p" draft, "720p" final), `duration` ("4"–"6"), `aspect_ratio` "auto", `generate_audio` (false for drafts, true for finals: same price), finals also `bitrate_mode` "high" and `codec` "H264".