promptdojo_promptdojo_promptdojo_promptdojo_promptdojo_promptdojo_promptdojo_promptdojo_promptdojo_promptdojo_promptdojo_

The 2026 video model lineup — what each one is actually good at — step 8 of 9

Write pick_video_model(task) that takes a brief and returns the right live model ID (or "Higgsfield") as a string. Routing rules, evaluated in order (FIRST matching rule wins):

  1. If task["needs_camera_control"] is True: return "Higgsfield".
  2. Else if task.get("platform") == "agent_platform" AND task["needs_audio"] is True AND task["budget_max_per_sec"] >= 0.40: return "veo-3.1-generate-001" (Agent Platform GA Veo 3.1 Standard).
  3. Else if task["budget_max_per_sec"] < 0.06: return "veo-3.1-lite-generate-preview" (Lite at $0.05/sec is the one that fits).
  4. Else if task["needs_audio"] is True AND task["budget_max_per_sec"] >= 0.40: return "veo-3.1-generate-preview" (Gemini API preview, Veo 3.1 Standard).
  5. Else: return "gemini-omni-1.1-flash" (Google default video call).

Five briefs run. Expected output:

Higgsfield
veo-3.1-lite-generate-preview
veo-3.1-generate-preview
veo-3.1-generate-001
gemini-omni-1.1-flash

full-screen editor opens — close anytime to keep reading.