| name | clip-render |
| description | Render approved keyframes into video clips at the tier each shot actually needs. Trigger - /clip-render, ONLY after storyboard-review has recorded keyframes_approved. |
Clip Render
Precondition — check it, don't assume it
Read shot_tracker.json. If gates.keyframes_approved.status != "approved", stop and run storyboard-review. That gate protects roughly 1,000 credits on a 24-shot film.
Per-shot model, not per-film
Apply the plan from model-select. Premium identity models are for recurring recognisable faces only; everything else runs a cheaper tier.
Motion prompting
- Describe what changes, not what the frame already contains — the keyframe supplies composition.
- Prefer one slow continuous camera move. Say
No cuts explicitly.
- For any brand mark in frame:
must not warp or morph.
- For faces:
photorealistic and stable, no morphing — generative video drifts on long holds.
- Restate
no readable text every time. It is not inherited from the keyframe prompt.
Operational traps
- Concurrency caps near 6. Submit in waves and feed a new job as each completes. Larger batches return
out of credits errors that are rate limits, not balance — check higgsfield account status before believing them.
- Some models intercept dark or moody prompts with a preset recommendation instead of submitting the job. Pass
declined_preset_id with the returned preset id to proceed.
- Clips render ~5.04s for a nominal 5s. Account for the drift when cutting.
- Trim favouring the back two-thirds — model motion settles late, and the opening frames are usually the weakest.
Verify against the clip, not the keyframe
Run cropdetect for unexpected letterboxing and grab a mid-clip frame to confirm identity held. A keyframe defect does not always survive into the clip, and a clip defect does not always exist in the keyframe — check the artefact you are actually shipping.