How to Choose the Right Model
A guide to selecting the best model for your use case.
Decision Framework
1. Identify Your Task Type
| Task | Run type | Try first |
|---|---|---|
| Generate images | text-to-image | Nano Banana Pro, Seedream 5 Pro |
| Edit images | image-to-image | Nano Banana Pro, Qwen Image 2 |
| Create videos | text-to-video | Veo 3.1, Kling 3, Seedance 2.5 |
| Animate images | first-to-video | Kling 3, Veo 3.1, Wan 3 |
| Generate speech | text-to-speech | ElevenLabs Eleven 3, Index TTS 2 |
| Create music | text-to-music | Minimax Music 2.6, Eleven Music |
| Transcribe audio | speech-to-text | Whisper Large v3 Turbo, Qwen-Audio-3.1-ASR-Flash-Filetrans |
| Talking avatars | digital-human | OmniHuman 1.5, Kling Avatar 2 |
| Create 3D models | image-to-3d | Tripo P1, Tripo H3.1 |
| The run type is the third segment of the model slug, so it also determines the endpoint you call. |
2. Consider Quality vs. Speed
Model families usually publish several variants, and the suffix tells you the trade-off:
| Priority | Look for |
|---|---|
| Highest quality | -pro variants — slower and more expensive |
| Balanced | The unsuffixed base model |
| Fastest | -fast / -turbo variants |
| Lowest cost | -lite / -mini variants |
Where a model exposes channels, that's a second dial on the same trade-off: economy is cheaper than stable, which is cheaper than official. Changing the channel is often enough — you may not need a different model.
3. Consider Resolution
Resolution and duration are the biggest cost multipliers, so don't pay for more than the destination needs:
| Output | Typical setting | Use case |
|---|---|---|
| Draft image | 1k | Prompt iteration |
| Final image | 2k and up | Print, large display |
| Draft video | 480p | Composition checks |
| Standard video | 720p | Web and social |
| Premium video | 1080p | Production |
Accepted values differ per model — check the model's page for what it supports.
Comparing Models Empirically
Rather than relying on a static ranking, measure on your own prompts. The result object gives you what you need:
timings.api_call— time actually spent at the provider, the fair latency comparison- Cost per task — visible in your dashboard per request
Run the same prompt across two or three candidates with a fixed seed, then compare output quality against those two numbers.
Tips
- Start cheap, iterate — Draft with a fast, low-cost model or the
economychannel, then switch for the final render - Check model pages — Each model lists its own parameters, channels, and price
- Fix the seed when comparing — Otherwise you're comparing two random samples, not two models
- Try the web interface first — Faster than wiring up API calls to evaluate a model
Next Steps
- How to Write Better Prompts — Improve your results
- How to Reduce Costs — Optimize spending