| name | keyframe-generate |
| description | Generate one still per shot at 2k with locked identity and brand references, before any video exists. Trigger - /keyframe-generate, after the script is locked and before clip-render. |
Keyframe Generate
One still per shot. 2 credits each — this is where you iterate.
Rules
- Always 2k. 1k and 2k both cost 2 credits; 4k costs 4 and is only for thumbnails and posters.
- Lock identity with reference images, not adjectives. If the character exists in a real product, use the production asset so the film matches what users actually see.
- Never ask a model to draw a logo. It will approximate it — calligraphy and fine detail come back wrong. Prompt the scene without it and composite the real file in post. See
brand-lock.
- Forbid readable text explicitly. End every prompt with a hard instruction that no letters, words or numbers appear and that screens are abstract glow only. Models render garbled lettering otherwise.
- Name the cast's region explicitly. "Postgraduate students" yields a generic Western cast. State the region, and state it for every person in frame — background extras included.
- Repeat the full wardrobe and physical description verbatim in every shot featuring the same person. That repetition is what holds continuity without a trained character model.
Batch
Submit up to 12 per call via generate_image_batch, poll with jobs_wait, then download. Record each job_id in shot_tracker.json — job IDs are reusable directly as start_image at the clip stage, with no re-upload.
Then stop
Hand off to storyboard-review. Do not generate video.