SwishXKnowledge Base
Core Concepts

Model routing

How SwishX picks a downstream generation model for each shot.

The reasoning model doesn't render video itself — the Model routed stage of the pipeline sends each request to whichever downstream generation model actually suits the shot, then normalizes the result back into a single response shape regardless of which one ran.

Routed models

Modelrouted_model valueTypically used for
Veoveo-3Photoreal HCP and patient-facing scenes
Klingkling-1.6Fast turnaround, social-length cuts
Runwayrunway-gen-3Stylized or non-photoreal brand moments
SorasoraLonger single-shot continuity

You don't choose routed_model directly — it's an output field, decided by the router based on your prompt, the requested duration_seconds and resolution, and current per-model availability. Two identical requests submitted minutes apart can legitimately route to different models if one becomes temporarily unavailable; the reasoning and compliance guarantees are identical either way.

Keyframe-first generation

For most requests, Finsen doesn't ask the downstream model to invent a scene from text alone. It first renders a photoreal still using finsen-3.2-keyframe from the layered image prompt, then animates that exact frame with a short motion prompt. A bad still costs cents to redo; a bad multi-second clip does not — this is why keyframe regeneration is exposed as its own step (see Create a keyframe image) rather than bundled silently into video generation.

{
  "id": "vid_8f2c1a9b3d4e",
  "routed_model": "veo-3",
  "keyframe": {
    "id": "img_3a9c1f2b8e7d",
    "status": "ready"
  }
}

When keyframe-first is skipped

Very short, motion-heavy shots (under 3 seconds) route directly to text-to-video generation — a keyframe adds latency without meaningfully improving consistency at that length.

On this page