LTX-2 Fast is a production-grade text-to-video engine that creates synchronized audio and 1080p video from text prompts. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing.
Idle
$0.04per run·~25 / $1
Action scene! Steampunk airship pirates, wearing goggles and leather gear, swing on ropes from their rickety airship onto the deck of a massive, opulent passenger dirigible amidst clouds. Cannons fire in the background. Dynamic, adventurous.
Black and white film noir. A lone detective in a fedora and trench coat stands under a flickering streetlamp on a rain-soaked cobblestone street late at night. Shadows are long and deep. He lights a cigarette, the flame briefly illuminating his weary face. Moody, atmospheric.
Dynamic chase sequence. A sleek, neon-lit hovercar weaves dangerously through dense flying traffic between towering, rain-slicked skyscrapers in a futuristic megacity. Sparks fly as it narrowly avoids collisions. Blade Runner aesthetic, fast-paced.
Tense handheld camera shot, POV style. Peeking through a dusty, grimy window into an abandoned, dark house. The only light comes from the camera's weak flashlight beam, sweeping nervously across dilapidated furniture covered in white sheets. Suddenly, the beam catches a pair of eyes reflecting back from the deep darkness at the end of the hallway before darting away.
Cinematic sci-fi horror. Inside a vast, dark server room filled with humming racks. A single, massive spherical AI core pulsates with an ominous red light. Sparks erupt erratically from nearby consoles. Suddenly, all the server lights go dark except for the core's intense red glow. A cold, synthetic voice echoes (implied): "I am awake." Volumetric smoke, oppressive atmosphere.
LTX-2 Fast is a high-speed variant of the LTX-2 AI creative engine from Lightricks, built for creators and production teams that need rapid, synchronized text-to-video generation. It delivers cinematic motion, matching sound, and consistent visual style — all in a fraction of the time compared to standard models.
Now support 20s generation!!
🚀 Ultra-Fast Inference Generates full-quality videos in seconds, optimized for low latency and quick iteration in real workflows.
🎧 Audio–Video Synchronization Maintains perfect timing between motion, rhythm, and sound, ensuring seamless A/V alignment across every frame.
🎥 Realistic Cinematic Motion Handles camera pans, dolly shots, zooms, and character movement smoothly, with stable frame transitions and natural lighting.
🎨 Style-Preserving Generation Keeps your intended color palette, tone, and artistic mood consistent throughout the clip.
⚙️ Lightweight & Efficient Designed for production pipelines that need fast turnaround, predictable cost, and dependable visual quality.
| Parameter | Description |
|---|---|
| prompt* | Describe scene, action, camera and mood. |
| duration | Choose up to 20s. |
| audio (optional) | Upload .wav/.mp3 to drive A/V synchronization. |
| Target Resolution | Price per second | Approx. Runtime per $1 |
|---|---|---|
| 1080p | $0.04 / s | ~25 seconds per $1 |
Cinematic aerial shot of a futuristic city at sunrise, warm golden light reflecting off glass towers, gentle camera tilt, ambient soundtrack in sync.
Grab a WaveSpeedAI API key, then call POST https://api.wavespeed.ai/api/v3/lightricks/ltx-2-fast/text-to-video 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 Ltx 2 Fast Text To Video 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",
"duration": 6,
"generate_audio": true
}
JSON
)
# 1. Submit the prediction.
SUBMIT_RESPONSE=$(curl --silent --show-error --fail-with-body \
-X POST "https://api.wavespeed.ai/api/v3/lightricks/ltx-2-fast/text-to-video" \
-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/lightricks/ltx-2-fast/text-to-video";
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",
"duration": 6,
"generate_audio": true
}),
});
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",
"duration": 6,
"generate_audio": True
}
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/lightricks/ltx-2-fast/text-to-video", 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)Ltx 2 Fast Text To Video is a Lightricks model for video generation, exposed as a REST API on WaveSpeedAI. LTX-2 Fast is a production-grade text-to-video engine that creates synchronized audio and 1080p video from text prompts. Ready-to-use REST inference API, best performance, no coldstarts, 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/lightricks/lightricks-ltx-2-fast-text-to-video.
Ltx 2 Fast Text To Video starts at $0.040 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`, `duration`, `generate_audio`. 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/lightricks/lightricks-ltx-2-fast-text-to-video.
Median end-to-end generation time on WaveSpeedAI is around 38 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 (Lightricks). The license summary appears on the model card above; see WaveSpeedAI's Terms of Service for platform-level conditions.