| name | model-select |
| description | Choose the cheapest model that meets each shot's actual quality requirement, using per-second cost and identity-control needs. Trigger - /model-select, before clip-render and whenever a budget is set or challenged. Prevents paying premium rates for shots that do not need them. |
Model Select โ pay premium only where it shows
The finding this skill exists for
On a real 24-shot film, only 8 shots contained a recurring character's face. The other 16 were abstract cards, architecture, aerials, hands, and a logo plate โ none had any identity requirement. All 24 were rendered on the most expensive identity-preserving model.
| Approach | Credits |
|---|
| Uniform premium (what was actually done) | 1,080 |
| Mixed tier (premium only for the 8 identity shots) | 500 |
| Wasted | 580 โ 54% |
Never pick one model for a whole film. Classify each shot, then price it.
Free / unlimited โ check, don't assume
Many models carry supports_unlim: true, but that allowance is a free-trial pool, not a plan benefit. Run:
models_explore(action:'list', unlim:true) โ read the top-level `unlim` block
If unlim.available is false, use_unlim:true will be rejected and everything runs on credits. Verify before promising a client free generation. Never pass use_unlim:true to "save the user money" on your own initiative โ if an allowance exists, ask first, because it is theirs to spend.
Step 1 โ classify every shot
| Class | Test | Tier |
|---|
| Identity-critical | A recurring, recognisable person must match other shots | Premium |
| Human, non-recurring | People appear but continuity across shots does not matter | High |
| Environment | Architecture, landscape, aerial, interiors โ no faces | High or Standard |
| Abstract | UI cards, particles, light, gradients, logo plates | Standard |
| Previz | Timing/animatic only, never delivered | Draft |
Step 2 โ price by cost-per-second, not per-clip
Per-clip pricing hides the real difference: an 8-second model at a higher clip price can be far cheaper per second.
Video โ verified 2026-08-07
| Model | cr/sec | Identity control | Tier |
|---|
| Kling v3.0 std | 1.5 | start frame | Draft |
| Kling v3.0 pro | 1.75 | start + end frame | Standard โ best value |
| Veo 3.1 fast (8s) | 2.75 | start frame | High โ best quality/credit |
| Seedance 2.0 720p fast | 3.5 | full refs | Standard |
| Seedance 2.0 720p std | 4.5 | full refs | High |
| Kling v3.0 4k | 6 | start + end | High (4K) |
| Grok Video 1.5 1080p | 8 | start + refs | High |
| Seedance 2.0 1080p std | 9 | full refs โ strongest | Premium |
| FLUX 3 Video 1080p | 9 | full refs | Premium |
| Veo 3.1 ultra (8s) | 10.9 | start frame | Flagship โ hero shot only |
| Seedance 2.0 4k | 22 | full | Flagship โ avoid, shoot 1080p and upscale |
Image โ verified 2026-08-07
| Model | Credits | Use |
|---|
| Nano Banana (budget) | 1 | Previz, contact-sheet roughs |
| Seedream 4.5 basic | 1 | Cheap 4K stills |
| FLUX.2 pro 2k | 1.5 | Strong prompt adherence |
| Nano Banana Pro 2k | 2 | DEFAULT keyframes โ 2k costs the same as 1k, never generate at 1k |
| Nano Banana 2 ยท 2k | 2 | Faster alternative |
| GPT Image 2 ยท 2k medium | 3 | Text and typography in-frame |
| Nano Banana Pro 4k | 4 | Thumbnails, posters, anything cropped into |
Audio
ElevenLabs TTS is 0.15 credits per take. Effectively free โ always audition five or more voices. There is no excuse for an unauditioned voice.
No model exists
Music and sound effects. The music/SFX models are game-pipeline only. Licence externally and put it in the client quote as a real line item.
Step 3 โ the default recipe
Identity-critical โ Seedance 2.0 1080p std (9 cr/s)
Human/environment โ Veo 3.1 fast (2.75 cr/s)
Abstract โ Kling v3.0 pro (1.75 cr/s)
Previz โ Kling v3.0 std (1.5 cr/s)
Keyframes โ Nano Banana Pro 2k (2 cr)
Thumbnail โ Nano Banana Pro 4k (4 cr)
VO โ ElevenLabs (0.15 cr)
Post โ ffmpeg + ImageMagick (0)
Mixing models has a real cost: grade and motion character differ between providers. Budget a colour-match pass in post, and never mix models within a continuous sequence โ switch only at act or scene boundaries.
Step 4 โ preflight, always
higgsfield generate cost <model> --prompt x --duration 5 --resolution 1080p --mode std
Never submit a batch without pricing it. Write the estimate into shot_tracker.json under budget.estimated_total and have it approved.
Output
{
"shots_classified": { "identity": 8, "human": 4, "environment": 6, "abstract": 6 },
"model_plan": { "S005": "seedance_2_0", "S016": "veo3_1", "S024": "kling3_0" },
"estimated_credits": 500,
"uniform_premium_would_cost": 1080,
"saving": 580,
"unlim_available": false,
"external_costs": ["music licence"]