WaveSpeed Cinematic Video Generator creates Hollywood-quality videos from text prompts and optional reference images with native audio, director-level camera control, and real-world physics. Ready-to-use REST inference API, best performance, no cold starts, affordable pricing.
대기 중
$0.8실행당·~12 / $10
An extremely old woman plays basketball in a vibrant urban park with graffiti walls. Shot 1: Close-up on her weathered hands dribbling the ball with surprising speed and control, sneakers squeaking against the court. Shot 2: Wide shot — she bursts into a full sprint down the court, tracksuit flapping, white hair flying, moving faster than anyone expects. Shot 3: Low-angle shot looking up as she leaps toward the hoop with every ounce of strength, body fully extended, the city skyline visible behind her. Shot 4: Slow-motion close-up of the ball leaving her fingertips, arc perfect, dropping cleanly through the net. Shot 5: She lands, turns to the camera, breathing hard, and shouts with a huge grin — 'I can still dunk!' The energy is raw and electric, full of grit and joy, capturing the unstoppable determination of an elderly athlete who refuses to slow down.
A serious-looking orange tabby cat sits at the head of a corporate boardroom table, wearing a tiny suit and tie, pointing at a whiteboard with a laser pointer while other cats sit around the table looking bored or distracted. One cat is asleep, another is batting a pen off the table. The fluorescent office lighting and scattered coffee cups make it feel disturbingly real.
An old man performs tai chi in slow, graceful movements on the rooftop of a gleaming cyberpunk skyscraper, completely unfazed by the flying cars zooming past his elbows and the holographic billboards flashing around him. Total peace. Total chaos.
A Volkswagen Beetle overtook an F1 car on a corner, and the commentator cheered excitedly.
Cinematic Video Generator produces film-quality video content with stunning visual fidelity and cinematic motion. Whether generating from text alone or guided by reference images, this model delivers Hollywood-quality results with dramatic lighting, professional composition, and smooth, natural movement — ideal for high-end creative productions.
Film-quality output Produces videos with cinematic lighting, professional color grading, and Hollywood-grade visual fidelity.
Dual-mode generation Text-to-Video (T2V) with prompt only, or Image-to-Video (I2V) by adding reference images — one model, two workflows.
Reference image support Guide generation with up to 4 reference images for consistent style, characters, or scenes.
Dramatic motion Natural, cinematic camera movements and subject motion that feel professionally directed.
Flexible aspect ratios Support for 16:9, 9:16, 4:3, and 3:4 formats for various delivery platforms.
Prompt Enhancer Built-in tool to automatically improve your scene descriptions.
| Parameter | Required | Description |
|---|---|---|
| prompt | Yes | Detailed description of the cinematic scene |
| images | No | Reference images for style/character guidance (max: 4) |
| aspect_ratio | No | Output format: 16:9 (default), 9:16, 4:3, 3:4 |
| duration | No | Video length: 5 (default), 10, 15 seconds |
| Duration | Cost |
|---|---|
| 5 s | $0.80 |
| 10 s | $1.60 |
| 15 s | $2.40 |
Grab a WaveSpeedAI API key, then call POST https://api.wavespeed.ai/api/v3/wavespeed-ai/cinematic-video-generator with your input as JSON. The endpoint returns a prediction id. Start polling the result endpoint around every 2 seconds, increase the interval for long-running tasks, and stop on any terminal status. On completed, read output values from data.outputs. Examples for Cinematic Video Generator below.
set -euo pipefail
: "${WAVESPEED_API_KEY:?Set WAVESPEED_API_KEY}"
REQUEST_BODY=$(cat <<'JSON'
{
"prompt": "A cinematic shot of a city at sunset, soft golden light",
"aspect_ratio": "16:9",
"duration": 5
}
JSON
)
# 1. Submit the prediction.
SUBMIT_RESPONSE=$(curl --silent --show-error --fail-with-body \
-X POST "https://api.wavespeed.ai/api/v3/wavespeed-ai/cinematic-video-generator" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $WAVESPEED_API_KEY" \
-d "$REQUEST_BODY")
TASK=$(printf '%s' "$SUBMIT_RESPONSE" | jq 'if has("data") then .data else . end')
PREDICTION_ID=$(printf '%s' "$TASK" | jq -r '.id')
if [ -z "$PREDICTION_ID" ] || [ "$PREDICTION_ID" = "null" ]; 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 has("data") then .data else . end')
STATUS=$(printf '%s' "$RESULT" | jq -r '.status')
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
doneconst submitUrl = "https://api.wavespeed.ai/api/v3/wavespeed-ai/cinematic-video-generator";
const apiKey = process.env.WAVESPEED_API_KEY;
if (!apiKey) throw new Error('Set WAVESPEED_API_KEY');
async function requestJson(url, options = {}) {
const response = await fetch(url, options);
if (!response.ok) throw new Error(await response.text());
return response.json();
}
// 1. Submit the prediction.
const body = await requestJson(submitUrl, {
method: "POST",
headers: {
"Authorization": `Bearer ${apiKey}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"prompt": "A cinematic shot of a city at sunset, soft golden light",
"aspect_ratio": "16:9",
"duration": 5
}),
});
const task = body.data ?? body;
if (!task.id) throw new Error("Submission response did not contain a prediction id");
const resultUrl = task.urls?.get ||
`https://api.wavespeed.ai/api/v3/predictions/${task.id}/result`;
// 2. Poll until the prediction finishes.
while (true) {
const resultBody = await requestJson(resultUrl, {
headers: { "Authorization": `Bearer ${apiKey}` },
});
const result = resultBody.data ?? resultBody;
if (result.status === "completed") {
console.log(result.outputs);
break;
}
if (["failed", "cancelled", "timeout"].includes(result.status)) throw new Error(JSON.stringify(result));
if (!["created", "processing"].includes(result.status)) throw new Error("Unexpected status: " + result.status);
await new Promise(resolve => setTimeout(resolve, 2000));
}import json
import os
import time
from urllib.request import Request, urlopen
api_key = os.environ["WAVESPEED_API_KEY"]
headers = {"Authorization": f"Bearer {api_key}", "Content-Type": "application/json"}
payload = {
"prompt": "A cinematic shot of a city at sunset, soft golden light",
"aspect_ratio": "16:9",
"duration": 5
}
def request_json(url, data=None):
request = Request(url, data=data, headers=headers, method="POST" if data else "GET")
with urlopen(request) as response:
return json.load(response)
# 1. Submit the prediction.
body = request_json("https://api.wavespeed.ai/api/v3/wavespeed-ai/cinematic-video-generator", json.dumps(payload).encode())
task = body.get("data", body)
if not task.get("id"):
raise RuntimeError("Submission response did not contain a prediction id")
result_url = task.get("urls", {}).get("get") or f"https://api.wavespeed.ai/api/v3/predictions/{task['id']}/result"
# 2. Poll until the prediction finishes.
while True:
result_body = request_json(result_url)
result = result_body.get("data", result_body)
status = result.get("status")
if status == "completed":
print(result.get("outputs", []))
break
if status in {"failed", "cancelled", "timeout"}:
raise RuntimeError(result)
if status not in {"created", "processing"}:
raise RuntimeError(f"Unexpected status: {status}")
time.sleep(2)Cinematic Video Generator is a WaveSpeedAI model for video generation, exposed as a REST API on WaveSpeedAI. WaveSpeed Cinematic Video Generator creates Hollywood-quality videos from text prompts and optional reference images with native audio, director-level camera control, and real-world physics. Ready-to-use REST inference API, best performance, no cold starts, affordable pricing. You can call it programmatically or try it from the playground above.
POST your input parameters to the model's REST endpoint (shown in the API tab of this playground) with your WaveSpeedAI API key in the Authorization header. Submission returns a prediction ID. Poll the result endpoint starting around every 2 seconds, increase the interval for long-running tasks, and stop on any terminal status. The playground generates production-oriented Python, JavaScript, and cURL examples with timeouts, transient-error handling, and safe GET retries. Full request/response shape is documented at https://wavespeed.ai/docs/docs-api/wavespeed-ai/cinematic-video-generator.
Cinematic Video Generator starts at $0.80 per run. That figure is the base price — the final charge scales with the parameters you set in the form (output size, length, count, references, or whatever knobs this model exposes), so a higher-quality or larger output costs more than a minimal one. The exact cost for your current input is shown live next to the Generate button before you submit, and the actual per-call charge is recorded on the prediction afterwards.
Key inputs: `prompt`, `images`, `aspect_ratio`, `duration`. The full JSON schema (types, defaults, allowed values) is rendered above the Generate button and mirrored in the API reference at https://wavespeed.ai/docs/docs-api/wavespeed-ai/cinematic-video-generator.
Median end-to-end generation time on WaveSpeedAI is around 203 seconds per request, based on recent successful runs. Queue time varies with global demand; live status is visible in the prediction record.
Commercial usage rights depend on the model's license, set by its provider (WaveSpeedAI). The license summary appears on the model card above; see WaveSpeedAI's Terms of Service for platform-level conditions.