Match the API to the job
Check the exact model and settings in Models and Credit Costs. An API
platform’s model catalog and supported parameters can differ from its web application.
Set up a fair pilot
- Select representative cases before looking at provider outputs. Include ordinary inputs and difficult cases your application actually needs to handle.
- Use the same source files, prompt, duration, output dimensions, audio requirements, and retry budget for every compatible configuration. Record any unavoidable differences.
- Record the provider, endpoint, model identifier, API or SDK version, settings, test date, and input-file hash. Use stable case IDs so you can repeat the comparison.
- Set acceptance criteria before generating. For a product ad, for example, a readable logo and correct product shape may matter more than cinematic motion.
- Randomize output order when reviewing quality. Hide the provider name where practical, and retain every attempt, including failures and rejected outputs.
Measure the whole workflow
Report accepted and submitted counts beside every rate. If no outputs are accepted, cost per
accepted output is undefined; do not report it as zero. With a small pilot, list individual
completion times and the sample size. A p95 from a handful of jobs is not a reliable production
estimate.
Magic Hour’s processing-time statistics describe successful API
jobs from the stated observation windows. They exclude failed and still-active jobs and do not use
the same workload as another provider. Use them for planning, then measure your own cases.
Example: compare lip-sync configurations
Start with a video and replacement audio of similar duration. Include clear front-facing speech, a slight head turn, pauses, and visible mouth closures in your test set. If your product requires multiple speakers or frequent cuts, test those as separate cases. Review mouth timing, face texture, identity, and temporal stability. A job that completes but introduces unacceptable face changes is a rejected output in the scorecard. For Magic Hour, keepstyle.generation_mode and max_fps_limit explicit. The
Lip Sync guide explains frame-based charges; the completed job’s
credits_charged is the source for its actual credit usage. Convert credits using your own billing
arrangement before comparing them with another provider’s dollar price.
For example, if a pilot spends USD 12 on 20 submitted jobs and accepts 8 outputs, its generation cost
per accepted output is USD 1.50. This is an arithmetic illustration, not measured provider performance.
Check production requirements separately
Before choosing a provider, verify its current documentation for authentication, model access, concurrency, rate limits, webhook signatures, failure billing, retention, commercial terms, and output formats. Record the source URL and the date checked for each fact. Leave unavailable facts unknown rather than assuming support. For Magic Hour, start with:- Authentication and input/output handling.
- Billing options, model costs, and resolution limits.
- Production integration and webhook signature verification.
- Development and testing. Mock responses test integration behavior; they do not measure generation quality or latency.
Reuse the scorecard
Download the CSV scorecard. Add one row per submitted attempt. Useaccepted, rejected, failed, or pending for outcome; leave unmeasured fields
blank. Record a concrete reason for every rejection or failure.
Rerun the same cases after a model, pricing, or integration change. Keep old results, label changed
configurations, and compare matched cases. Choose the provider and settings that meet your own
quality and delivery requirements at a sustainable cost.