Video Utilities API: upscaling and video-to-audio examples

August 20, 2026 · View on GitHub

Compare video enhancement and sound-generation workflows through Muapi’s unified asynchronous API. This repository groups video upscaling with video-to-audio because both are practical post-production utilities that can be chained in one media pipeline.

Open the Video Upscaler API page · Open the Video to Audio API page · Get an API key

What this repository covers

  • AI Video Upscaler, AI Video Upscaler Pro, and Topaz Video Upscale comparison.
  • MMAudio video-to-audio sound generation and text-to-audio sound-effect generation.
  • curl and Python examples for asynchronous video jobs and result polling.
  • Resolution, upscale-factor, duration, prompt, audio-preservation, and output handling notes.

Model comparison

TaskEndpointBest forMain inputs
Video upscaleai-video-upscalerGeneral resolution enhancementvideo_url, resolution and audio options
Video upscaleai-video-upscaler-proHigher-tier video enhancementvideo_url, resolution and audio options
Video upscaletopaz-video-upscaleExplicit 1x/2x/4x enhancementvideo_url, upscale_factor
Video to audiommaudio-v2-video-to-videoSound synchronized to video motionvideo_url, prompt, duration
Text to audiommaudio-v2-text-to-audioStandalone effects and ambienceprompt, duration

Use the live Video Upscaler page for current resolution/pricing details and the Video to Audio page for MMAudio workflow guidance.

Quick start with curl

Upscale a video:

export MUAPI_API_KEY="your_key"
export VIDEO_URL="https://example.com/source-video.mp4"

curl -X POST "https://api.muapi.ai/api/v1/ai-video-upscaler" \
  -H "x-api-key: $MUAPI_API_KEY" \
  -H "Content-Type: application/json" \
  -d "{\"video_url\":\"$VIDEO_URL\",\"resolution\":\"1080p\",\"copy_audio\":true}"

Generate video-synchronized audio:

curl -X POST "https://api.muapi.ai/api/v1/mmaudio-v2-video-to-video" \
  -H "x-api-key: $MUAPI_API_KEY" \
  -H "Content-Type: application/json" \
  -d "{\"video_url\":\"$VIDEO_URL\",\"prompt\":\"cinematic footsteps, cloth movement, subtle room ambience\",\"duration\":8}"

Poll the returned request identifier:

export REQUEST_ID="id_from_the_submission_response"
curl "https://api.muapi.ai/api/v1/predictions/$REQUEST_ID/result" \
  -H "x-api-key: $MUAPI_API_KEY"

See examples/quickstart.py for the complete Python polling loop.

Production notes

  • Select a target resolution that matches the source and delivery channel; upscaling cannot recover information that is absent from a heavily compressed source.
  • Preserve audio only when the source and output container support it; validate the final media with your own pipeline.
  • Use mmaudio-v2-video-to-video when timing should follow the video and mmaudio-v2-text-to-audio for a standalone effect.
  • Keep prompts specific about environment, perspective, and material sounds; persist the result URL after completion.
  • Retry transport failures with bounded backoff and avoid duplicate submissions while a request status is unknown.

Troubleshooting

ProblemCheck
Upscaler rejects the videoURL reachability, codec/container, duration, and supported resolution.
Audio is out of syncUse the video-to-video MMAudio endpoint and match duration to the source segment.
Output has no source audioCheck the endpoint’s audio-copy option and final container behavior.
Generated sound is genericDescribe the event, material, space, distance, and desired intensity in the prompt.

License

Documentation and examples are MIT licensed. Source media, generated audio/video, and model-provider usage remain subject to applicable terms.