Questions this answers
- How much does AI video model benchmark cost through an API?
- When should developers use AI video model benchmark instead of a direct provider account?
- How does TokenLab help compare AI video model benchmark with related models?
An AI video model benchmark needs to compare latency, motion consistency, prompt adherence, format limits, and cost per second of output, using your own prompts and your own load pattern, not a vendor demo reel. This article gives you the dimensions to measure, sourced 2026 cost-per-second baselines across major video APIs, code for measuring latency and computing cost programmatically, and a way to scale human review past a handful of clips.
AI Video Model Benchmark: Key Takeaways
- Cost per second at comparable tiers (720p-1080p, similar audio setting) varies roughly 9x between the lower end and higher end of the source snapshot below: PixVerse V6 at $0.045/s (fal, 720p, no audio) versus Veo 3.1 Standard at $0.40/s (Google, 720p-1080p, with audio). Wider spreads exist if you include 4K or per-token seedance pricing, but those aren't directly comparable, see limitations.
- Latency is not covered in any of the provider pricing docs cited in this article. Treat generation-time claims as unverified until you measure them yourself, and use the timestamp pattern below to do it.
- Human review does not scale linearly with test volume. Use a two-tier system: automated technical checks catch format failures for free, then a stratified sample gets human eyes.
- TokenLab's per-second and per-request video prices roughly track provider-reported unit economics in several cases (Hailuo, Veo), which is a useful sanity check before you commit spend, shown in the cross-check table below.
Source Snapshot: Provider Pricing for Video APIs (2026)
| Provider | Model / Tier | Metric | Value | Source | Observed |
|---|---|---|---|---|---|
| Veo 3.1 Standard, 720p/1080p, with audio | $/s | $0.40 | Gemini API pricing | 2026-07-09 | |
| Veo 3.1 Standard, 4K, with audio | $/s | $0.60 | Gemini API pricing | 2026-07-09 | |
| Veo 3.1 Fast, 720p, with audio | $/s | $0.10 | Gemini API pricing | 2026-07-09 | |
| Veo 3.1 Lite, 720p, with audio | $/s | $0.05 | Gemini API pricing | 2026-07-09 | |
| PixVerse | V6, 720p, no audio | credits/s | 9 | PixVerse platform docs | 2026-07-09 |
| PixVerse (via fal) | V6, 720p, no audio | $/s | $0.045 | fal PixVerse V6 | 2026-07-09 |
| PixVerse (via fal) | V6, 1080p, with audio | $/s | $0.115 | fal PixVerse V6 | 2026-07-09 |
| MiniMax | Hailuo-2.3-Fast, 768p/6s | points | 0.7 | MiniMax video pricing | 2026-07-09 |
| MiniMax | Standard package | $/3,760 pts | $1,000 | MiniMax video pricing | 2026-07-09 |
| Runway | veo3, all resolutions | credits/s | 40 ($0.40/s at $0.01/credit) | Runway API pricing | 2026-07-09 |
| Runway | seedance2, 480p/720p | credits/s | 36 ($0.36/s) | Runway API pricing | 2026-07-09 |
| Kling | developer API | $/unit | $0.14 (unit basis not confirmed for per-second cost) | Kling dev pricing | 2026-07-09 |
Google also states that Veo 3.0 models are deprecated and scheduled for shutdown on June 30, 2026, with migration recommended to Veo 3.1 Preview or GA Agent Platform models. If you are still pinned to Veo 3.0 in production, that migration should be on your roadmap before then, source above.
TokenLab Live Video Model Pricing
This table includes only video models present in the TokenLab live pricing snapshot, observed 2026-07-07.
| TokenLab model | Unit | Rate | Notes |
|---|---|---|---|
| veo3.1 | per_second | $0.200000 | Lock price |
| veo3 | per_second | $0.200000 | Lock price |
| veo3.1-fast | per_second | $0.080000 | Lock price |
| veo3-fast | per_second | $0.080000 | Lock price |
| seedance-1.0-pro | per_token (output) | $2.205882 | Not directly comparable to $/s, see limitations |
| seedance-1.0-pro-fast | per_token (output) | $0.617647 | Not directly comparable to $/s |
| seedance-1.5-pro | per_token (output) | $1.176471 | Not directly comparable to $/s |
| seedance-2.0 | per_token (output) | $6.764706 | Not directly comparable to $/s |
| seedance-2.0-fast | per_token (output) | $5.441176 | Not directly comparable to $/s |
| seedance-2.0-mini | per_token (output) | $3.382353 | Not directly comparable to $/s |
| pixverse-c1 | per_second | $0.026471 | Lock price |
| pixverse-v5.6 | per_second | $0.030882 | Lock price |
| pixverse-v6 | per_second | $0.022059 | Lock price |
| hailuo-2.3 | per_request | $0.280000 | Lock price |
| hailuo-2.3-fast | per_request | $0.190000 | Lock price |
| hailuo-2.3-pro | per_request | $0.490000 | Lock price |
| hailuo-2.3-standard | per_request | $0.280000 | Lock price |
Source: TokenLab live model/pricing evidence, observed 2026-07-07.
Compare these directly on the TokenLab model directory, which filters by provider and unit type, or the model rankings page for spec-level comparisons before you run your own test set.
Get an API key and run the first test today: create a TokenLab API key and call pixverse-v6 or veo3.1-fast against the same small prompt sample to see cost and job success rate side by side, before committing to a larger test batch.
Cross-Checking TokenLab Prices Against Provider Data
TokenLab's lock prices do not derive from provider list prices directly, since routing, volume, and margin all factor in. But you can sanity-check TokenLab pricing against provider unit economics using the source snapshot above. These are estimates built from public provider data, not TokenLab's internal cost basis.
| Comparison | Provider-derived estimate | TokenLab live price | Delta |
|---|---|---|---|
| Hailuo-2.3-Fast, 768p/6s | 0.7 pts x ($1,000 / 3,760 pts) = ~$0.186 | $0.190 (per_request) | ~$0.004, close match |
| Hailuo-2.3 standard, 768p/6s | 1 pt x ($1,000 / 3,760 pts) = ~$0.266 | $0.280 (per_request) | ~$0.014, close match |
| Veo 3.1, no-audio equivalent | Runway veo3.1 no-audio: 20 cr/s x $0.01 = $0.20/s | $0.200000 (per_second) | exact match |
| Veo 3.1 Fast, 720p | Google list, with audio: $0.10/s | $0.080000 (per_second) | TokenLab ~20% lower, audio inclusion unconfirmed |
| PixVerse V6, 360p no audio | fal reseller: $0.025/s | $0.022059 (per_second, resolution unconfirmed) | close, resolution tier not stated in TokenLab evidence |
Treat every row as directional. Provider list prices, reseller prices (fal, Runway), and MiniMax package-tier per-point rates are three different pricing structures, and none confirm exactly what resolution, audio setting, or SLA tier TokenLab's flat per-second lock price maps to. Verify the exact resolution and audio assumptions in the TokenLab model directory before building a cost model that assumes an exact match.
What an AI Video Model Benchmark Must Measure
Text and code benchmarks score deterministically: does it compile, does it match a reference. Video generation has no equivalent ground truth. Two runs of the same prompt on the same model can differ visibly in motion quality, so a defensible AI video model benchmark has to combine automated technical checks with structured human review across five dimensions.
1. Latency and Queue Behavior
No provider pricing doc cited in this article states typical or worst-case generation latency. That is not benchmarked in this evidence set, and you should not take a vendor's demo-page speed claim at face value. Measure it yourself:
async function timedGenerate(provider, generateFn, input) {
const t0 = Date.now();
let submittedAt = null;
let completedAt = null;
try {
const job = await generateFn(input);
submittedAt = Date.now();
// poll or subscribe depending on provider SDK; log each state change
const result = await job.completed(); // verify exact completion API per provider docs
completedAt = Date.now();
return {
provider,
queueMs: submittedAt - t0,
generationMs: completedAt - submittedAt,
totalMs: completedAt - t0,
status: "success",
};
} catch (err) {
return {
provider,
totalMs: Date.now() - t0,
status: "error",
errorType: err?.status || "unknown",
message: err?.message,
};
}
}
Run this across 3-4 concurrent requests, not one at a time, and store p50/p90/p99 per provider, not just an average. Queue behavior under concurrency is where providers diverge most and where marketing pages say nothing.
2. Motion Consistency and Temporal Coherence
No numeric industry-standard score exists across providers in the evidence used for this article. A practical workaround: generate the same prompt on 3-4 models, strip labels, and have 2-3 reviewers rank independently on object permanence, background drift, and physics plausibility.
3. Prompt Adherence
Score pass/fail per instruction element (subject, count, camera direction, composition) rather than one quality number. Test short prompts (under 15 words), medium prompts with one camera instruction, and long prompts with multiple compositional constraints. This gives you a breakdown you can act on, for example a model that handles simple prompts well but drops camera direction on long ones.
4. Resolution, Duration, and Format Limits
Check what each API actually supports at your pricing tier, not the headline spec:
- Max resolution at default vs. premium tier
- Max clip duration per single call, and whether extension requires a separate stitching call
- Whether audio generation is a separate toggle that changes price, as it does for both Veo 3.1 (Google) and PixVerse V6 (PixVerse docs, fal)
5. Cost Per Second, Normalized
Pricing structures differ across providers: MiniMax charges per-point package deductions, PixVerse and fal charge per second by resolution and audio setting, Runway sells flat per-second credits, Google publishes direct per-second rates by tier. Normalize everything to $/s at a fixed resolution and audio setting before comparing, using the source snapshot table above as your starting reference points.
Computing Cost Per Second From a Generation Job
Once you have job metadata (duration, resolution, provider), compute cost directly instead of estimating from a rate card:
function computeCost(job, rateTable) {
const rate = rateTable[job.provider]?.[job.resolution]?.[job.audio ? "audio" : "noAudio"];
if (!rate) {
throw new Error(`No rate entry for ${job.provider} at ${job.resolution}, audio=${job.audio}. Verify pricing doc before billing.`);
}
return {
provider: job.provider,
durationSeconds: job.durationSeconds,
costUsd: Number((rate * job.durationSeconds).toFixed(4)),
};
}
Populate rateTable from the source snapshot table above, not from memory or a vendor's homepage screenshot, and re-verify it whenever you re-run the benchmark, since rates change.
Requesting a Video Generation: What to Verify Before You Ship
The fal PixVerse V6 model page documents a JavaScript subscribe call for fal-ai/pixverse/v6/text-to-video accepting prompt, resolution, duration, and generate_audio_switch. That is the extent of the payload evidence available here. A minimal client wrapper using only those documented fields, with retry and error handling:
import { fal } from "@fal-ai/client";
async function generatePixVerseVideo(prompt, resolution, durationSeconds, withAudio) {
const maxRetries = 3;
for (let attempt = 1; attempt <= maxRetries; attempt++) {
try {
return await fal.subscribe("fal-ai/pixverse/v6/text-to-video", {
input: {
prompt,
resolution,
duration: durationSeconds,
generate_audio_switch: withAudio,
},
logs: true,
});
} catch (err) {
const status = err?.status || err?.response?.status;
if (status === 429 || status === 503) {
// rate limited or provider overloaded, back off and retry
await new Promise((r) => setTimeout(r, 2000 * attempt));
continue;
}
if (status >= 400 && status < 500) {
// client error, do not retry blindly
throw new Error(`PixVerse request rejected: ${status} ${err.message}`);
}
if (attempt === maxRetries) {
throw new Error(`PixVerse generation failed after ${maxRetries} attempts: ${err.message}`);
}
}
}
}
This is not tested against a live response schema in this evidence set. Before production use, verify authentication setup, the exact response object shape, timeout behavior, and rate-limit headers in the current fal and PixVerse docs. Video generation is inherently multimodal output (frames plus optional audio track); exact multimodal request and response payloads must be confirmed in official docs before you build billing or review automation on top of them.
Automating Human Review at Scale
Reviewing hundreds of generated clips by hand does not scale. A two-tier approach keeps human time on the clips that actually need it:
Tier 1: automated technical validation (free, deterministic)
- Job completed vs. failed vs. timed out
- Output duration matches requested duration
- Output resolution matches requested resolution
- File is not corrupted or zero-length
- No black-frame or single-color-frame output (basic frame-sampling check)
Tier 2: stratified human review (sampled)
- Review 100% of Tier 1 failures to confirm they are real failures, not false positives
- Review a random 10-15% sample of Tier 1 passes for motion consistency and prompt adherence
- Use the same 2-3 reviewer blind ranking method described above, scored per rubric element
An optional pre-filter is a vision-capable LLM scoring extracted frames for gross failures (garbled subject, missing requested object) before human review. Models such as Gemini 3.5 Flash or Claude Sonnet 5 support multimodal input in TokenLab's current catalog, but there is no accuracy benchmark for this specific triage use case in the evidence used for this article. Treat any automated triage score as a pre-filter to reduce human review volume, not as a final quality judgment, until you have measured its false-negative rate against your own human-reviewed sample.
A Practical Benchmark Checklist
- Define your use case (social clips, product demos, game assets) and pick prompts that match it
- Build a fixed prompt set across short, medium, and long complexity. This article uses 20 prompts as a working example, not a researched optimal count; no provider or academic source in this evidence set specifies an ideal sample size, so size yours to your review budget
- Run each prompt on every candidate model at the same resolution and audio setting
- Record latency (p50/p90/p99), cost per second computed from actual job duration, and job success rate
- Run Tier 1 automated validation on 100% of outputs, then Tier 2 human review on failures plus a 10-15% sample
- Re-check pricing before each test cycle. This article's own model SSOT snapshot expires seven days after observation (observed 2026-07-07, expires 2026-07-14). That cadence is specific to this snapshot's expiry window, not a published industry standard, but it is a reasonable floor for how often video pricing and model availability should be re-verified
- Cross-check specs against the TokenLab model directory rather than relying on a single vendor's marketing page
Comparing Across Providers and Routing Layers
If you route between multiple video providers instead of committing to one API, the same discipline applies to the routing layer. The OpenRouter comparison covers how routing overhead and provider selection can affect latency and cost consistency, which matters more for video jobs given how long they run compared to a text completion.
For a pre-run comparison across current video providers using this same methodology, see best AI video models API 2026. If you are also evaluating image models in the same pipeline, best AI image models API 2026 uses a comparable mixed-method approach at smaller scale. For adjacent model selection work, best AI models for coding 2026 applies a similar re-test cadence discipline for a different workload.
Limitations
- No provider pricing doc cited here states typical generation latency in seconds or milliseconds. Latency figures in this article are limited to the timestamp-measurement method, not published benchmarks.
- Seedance TokenLab prices are per-output-token, and the token-to-second conversion rate is not published in the evidence used for this article. Do not convert seedance token pricing to $/s without confirming the encoding rate with TokenLab or the model provider.
- Kling developer pricing is described in "units" with a $0.14 list price reference from a search snapshot, not a confirmed per-second rate. Verify the exact per-second cost on Kling's provider page before using it in a cost model.
- PixVerse platform per-credit dollar value is only confirmed through a Starter-pack promotional bundle ($1 = 5 videos, 720p, 5s, no audio). Standalone per-credit pricing outside that bundle is not confirmed in this evidence set.
- Vidu is listed as a current video API example but has no pricing evidence in this article. Verify pricing directly on Vidu's provider page.
- Cross-provider comparisons mix direct provider pricing (Google, MiniMax, PixVerse) with reseller pricing (fal, Runway), which may include markup or volume discounts not visible from list prices alone.
- No accuracy benchmark exists in this evidence set for using an LLM as an automated video-review triage layer. Treat it as an unverified pre-filter.
- The 20-prompt test-set size and the seven-day re-test cadence recommended in this article are working defaults chosen for practicality, not figures backed by a published study or provider recommendation. Adjust both to your own review capacity and risk tolerance.
FAQ
Which model should I start testing on TokenLab today?
Based on TokenLab's live pricing (observed 2026-07-07), pixverse-v6 ($0.022059/s) and veo3.1-fast ($0.08/s) sit at the low end of cost per second, while veo3.1 and seedance-2.0 sit at the higher end. A reasonable first test is one low-cost candidate and one higher-fidelity candidate run against the same fixed prompt set, using an API key from tokenlab.sh/en/api-keys, before you commit to a single provider contract.
How do I actually measure latency programmatically? Timestamp before the request, after job submission, and after terminal completion for every call, using the pattern shown above. Store queue time and generation time separately, and track p50/p90/p99 across at least a few dozen runs under concurrent load, not a single sequential test. No provider in this evidence set publishes typical latency, so this measurement has to be yours.
Where do I get cost-per-second numbers? Use the source snapshot table in this article as a starting reference, cross-check against TokenLab's live pricing on the model directory, and then compute actual cost from real job duration using the formula shown above rather than assuming a flat rate, since resolution and audio settings change the per-second price at most providers.
How many prompts do I need for a reliable benchmark? There is no published study in this evidence set specifying an optimal prompt-set size for video model evaluation. This article uses 20 prompts split across short, medium, and long complexity as a practical starting point that balances coverage against manual review time. Scale up if your use case has more prompt variety, or down if you're doing a quick first-pass screen before a larger test.
How do I automate human review if I have to test hundreds of videos? Split it into two tiers: automated technical checks (duration match, resolution match, corrupted file detection) run on every output for free, then human review on 100% of Tier 1 failures plus a 10-15% random sample of passes. An LLM-based frame triage can reduce human review volume further, but has no measured accuracy in this evidence set, so validate its false-negative rate against a human-reviewed sample before relying on it.
How often should I re-run this benchmark? At minimum every time this article's model SSOT snapshot expires, roughly seven days from observation (observed 2026-07-07, expires 2026-07-14). That window is tied to this evidence set's own expiry, not an independent industry recommendation. Video model versions and pricing tiers change often enough that a benchmark run at evaluation time can be stale within a quarter.
Get Started
Create a TokenLab API key and run a fixed prompt set from this article against two candidate models, one from the low-cost tier (pixverse-v6, veo3.1-fast) and one from the higher-fidelity tier (veo3.1, seedance-2.0), using the latency and cost-computation code above. Check the model directory for current rates before you lock in a provider contract.
Sources
Price observed 2026-07-07
- PixVerse Platform DocsObserved 2026-07-09
- fal PixVerse V6 model pageObserved 2026-07-09
- Google AI Gemini API pricingObserved 2026-07-09
- MiniMax API video packagesObserved 2026-07-09
- Runway API pricingObserved 2026-07-09
- Kling AI Developer Platform pricingObserved 2026-07-09
- TokenLab model directoryObserved 2026-07-07
- AtlasCloud blogObserved 2026-07-07



