Vidu Q3 Text To Video

Vidu Q3 Text To Video

Playground

Try it on WaveSpeedAI!

Vidu Q3 Text-to-Video turns text prompts into high-quality videos with exceptional visual fidelity and diverse motion. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing.

Features

Vidu Q3 Text-to-Video is an advanced AI video generation model that creates high-quality videos directly from text descriptions. With support for multiple styles, resolutions up to 1080p, and optional audio generation, it delivers cinematic results with smooth motion and rich detail.


Why Choose This?

  • Multiple styles Choose between general realistic style or anime aesthetic.

  • High resolution output Generate videos in 540p, 720p, or 1080p quality.

  • Flexible duration Create videos from 1 to 16 seconds in length.

  • Audio generation Optional synchronized audio and background music.

  • Motion control Adjust movement amplitude for subtle or dynamic animations.

  • Prompt Enhancer Built-in tool to automatically improve your video descriptions.


Parameters

ParameterRequiredDescription
promptYesText description of the video scene and action
styleNoVisual style: general (default), anime
resolutionNoOutput quality: 540p, 720p (default), 1080p
durationNoVideo length in seconds (1-16, default: 5)
aspect_ratioNoOutput ratio: 16:9, 4:3, 9:16, etc.
movement_amplitudeNoMotion intensity: auto (default), small, medium, large
generate_audioNoGenerate synchronized audio (default: enabled)
bgmNoAdd background music (default: enabled)
seedNoRandom seed for reproducibility (-1 for random)

How to Use

  1. Write your prompt — describe the scene, characters, and action in detail.
  2. Select style — choose general for realistic or anime for animated style.
  3. Set resolution — higher resolution for better quality, lower for faster processing.
  4. Adjust duration — set video length up to 16 seconds.
  5. Configure audio (optional) — enable/disable audio generation and background music.
  6. Set motion intensity (optional) — control how dynamic the movement is.
  7. Run — submit and download your video.

Pricing

ResolutionCost per second
540p$0.07
720p$0.15
1080p$0.16

Best Use Cases

  • Social Media Content — Create short-form videos for TikTok, Reels, and Stories.
  • Concept Visualization — Bring creative ideas to life without filming.
  • Anime Content — Generate anime-style animations from descriptions.
  • Marketing Videos — Produce promotional content from text.
  • Storytelling — Create narrative scenes for creative projects.

Pro Tips

  • Use the Prompt Enhancer to refine your descriptions automatically.
  • Be specific about character actions, emotions, and scene details.
  • Use “anime” style for stylized, animated content.
  • Set movement_amplitude to “small” for subtle, cinematic motion or “large” for dynamic action.
  • Enable generate_audio and bgm for complete video with sound.
  • Use seed for reproducible results when iterating on prompts.

Notes

  • Maximum video duration is 16 seconds.
  • Audio generation adds synchronized sound effects and ambient audio.
  • BGM adds background music appropriate to the scene mood.
  • Ensure prompts describe clear, visualizable scenes for best results.

Authentication

For authentication details, please refer to the Authentication Guide.

API Endpoints

Submit Task & Query Result

set -euo pipefail

export WAVESPEED_API_KEY="your-api-key"

REQUEST_BODY=$(cat <<'JSON'
{
  "prompt": "A cinematic ocean wave at sunrise, highly detailed",
  "style": "general",
  "resolution": "720p",
  "duration": 5,
  "aspect_ratio": "4:3",
  "movement_amplitude": "auto",
  "generate_audio": true,
  "bgm": true
}
JSON
)

# 1. Submit the prediction.
SUBMIT_RESPONSE=$(curl --silent --show-error --fail-with-body \
  -X POST "https://api.wavespeed.ai/api/v3/vidu/q3/text-to-video" \
  -H "Authorization: Bearer ${WAVESPEED_API_KEY}" \
  -H "Content-Type: application/json" \
  -d "${REQUEST_BODY}")

TASK=$(printf '%s' "${SUBMIT_RESPONSE}" | jq 'if type == "object" and has("data") then .data else . end')
PREDICTION_ID=$(printf '%s' "${TASK}" | jq -r '.id // empty')
if [ -z "${PREDICTION_ID}" ]; then
  printf 'Submission response did not contain a prediction id
' >&2
  exit 1
fi
RESULT_URL=$(printf '%s' "${TASK}" | jq -r '.urls.get // empty')
if [ -z "${RESULT_URL}" ]; then RESULT_URL="https://api.wavespeed.ai/api/v3/predictions/${PREDICTION_ID}/result"; fi

# 2. Poll until the prediction finishes.
while true; do
  RESPONSE=$(curl --silent --show-error --fail-with-body \
    "${RESULT_URL}" \
    -H "Authorization: Bearer ${WAVESPEED_API_KEY}")
  RESULT=$(printf '%s' "${RESPONSE}" | jq 'if type == "object" and has("data") then .data else . end')
  STATUS=$(printf '%s' "${RESULT}" | jq -r '.status // empty')

  case "${STATUS}" in
    completed) printf '%s\n' "${RESULT}" | jq '.outputs'; break ;;
    failed|cancelled|timeout) printf '%s\n' "${RESULT}" | jq . >&2; exit 1 ;;
    created|processing) sleep 2 ;;
    *) printf 'Unexpected status: %s
' "${STATUS}" >&2; exit 1 ;;
  esac
done

Parameters

Task Submission Parameters

Request Parameters

ParameterTypeRequiredDefaultRangeDescription
promptstringYes-The positive prompt for the generation.
stylestringNogeneralgeneral, animeThe style of output video.
resolutionstringNo720p540p, 720p, 1080pThe resolution of the generated media.
durationnumberNo51 ~ 16The duration of the generated media in seconds.
aspect_ratiostringNo4:316:9, 9:16, 4:3, 3:4, 1:1The aspect ratio of the generated media.
movement_amplitudestringNoautoauto, small, medium, largeThe movement amplitude of objects in the frame. Defaults to auto, accepted value: auto small medium large.
generate_audiobooleanNotrue-Whether to generate audio.
bgmbooleanNotrue-The background music for generating the output.
seedintegerNo--The random seed to use for the generation. -1 means a random seed will be used.

Response Parameters

ParameterTypeDescription
codeintegerHTTP status code (e.g., 200 for success)
messagestringStatus message (e.g., “success”)
data.idstringUnique identifier for the prediction, Task Id
data.modelstringModel ID used for the prediction
data.outputsarrayOutput values, usually URL strings; some models return text strings or structured result objects (empty when status is not completed)
data.urlsobjectObject containing related API endpoints
data.urls.getstringURL to retrieve the prediction result
data.statusstringStatus of the task: created, processing, completed, or failed
data.created_atstringISO timestamp of when the request was created (e.g., “2023-04-01T12:34:56.789Z”)
data.errorstringError message (empty if no error occurred)
data.timingsobjectObject containing timing details
data.timings.inferenceintegerInference time in milliseconds

Result Request Parameters

ParameterTypeRequiredDefaultDescription
idstringYes-Task ID

Result Response Parameters

ParameterTypeDescription
codeintegerHTTP status code (e.g., 200 for success)
messagestringStatus message (e.g., “success”)
dataobjectThe prediction data object containing all details
data.idstringUnique identifier for the prediction
data.modelstringModel ID used for the prediction
data.outputsarray<string | object>Array of generated outputs (empty when status is not completed). Items are usually URL strings, but may be text strings or structured result objects, depending on the model.
data.urlsobjectObject containing related API endpoints
data.urls.getstringURL to poll for the prediction result
data.statusstringStatus: created, processing, completed, or failed
data.created_atstringISO timestamp of when the request was created
data.errorstringError message (empty if no error occurred)
data.timingsobjectObject containing timing details
data.timings.inferenceintegerInference time in milliseconds
© 2026 WaveSpeedAI. All rights reserved.