Ltx 2 19b Control
Playground
Try it on WavespeedAI!LTX-2 19B ControlNet generates synchronized audio-video (up to 20s) from video input with pose, depth, or canny edge guidance. Supports audio preservation, generation, or removal for flexible video transformation. Ready-to-use REST inference API, best performance, no cold starts, affordable pricing.
Features
LTX-2 19B ControlNet
LTX-2 ControlNet is a video-to-video transformation model that applies pose, depth, or edge guidance to generate new video content while preserving motion structure from the input. Built on the 19B DiT architecture, it supports synchronized audio handling with options to preserve original audio, generate new audio, or output silent video.
Why Choose This?
-
ControlNet guidance modes Choose from pose, depth, or canny edge detection to guide video generation while preserving motion structure.
-
Flexible audio handling Preserve original audio, generate new synchronized audio, or create silent output.
-
High-fidelity output Leverages the 19B-parameter DiT architecture for detailed, temporally consistent video.
-
Character-driven transformation Use a reference image to drive the appearance while the input video controls motion.
-
Prompt Enhancer Built-in tool to automatically improve your prompts for better results.
Parameters
| Parameter | Required | Description |
|---|---|---|
| video | Yes | Input video providing motion and structure |
| image | No | Reference image for appearance guidance |
| prompt | No | Text description of desired output |
| mode | No | Control mode: pose (default), depth, or canny |
| audio_mode | No | Audio handling: preserve (default), generate, or none |
| resolution | No | Output resolution: 480p, 720p (default), or 1080p |
| seed | No | Random seed for reproducibility (-1 for random) |
Control Modes
| Mode | Description |
|---|---|
| pose | Skeleton/pose guidance for human motion (default) |
| depth | Depth map guidance for scene structure |
| canny | Edge detection guidance for shape preservation |
Audio Modes
| Mode | Description |
|---|---|
| preserve | Keep original audio from input video (default) |
| generate | Create new synchronized audio |
| none | Output video without audio |
How to Use
- Upload your video — the input video providing motion structure.
- Upload your image (optional) — reference image that defines appearance.
- Write your prompt — describe the desired transformation.
- Select control mode — pose, depth, or canny based on your needs.
- Select audio mode — preserve, generate, or none.
- Set resolution — 480p for speed, 720p for balance, 1080p for quality.
- Run — submit and download the transformed video.
Pricing
| Resolution | 5s | 10s | 15s | 20s (max) |
|---|---|---|---|---|
| 480p | $0.15 | $0.30 | $0.45 | $0.60 |
| 720p | $0.20 | $0.40 | $0.60 | $0.80 |
| 1080p | $0.30 | $0.60 | $0.90 | $1.20 |
Billing Rules
- Base price: $0.20 (720p, 5 seconds)
- Resolution multiplier: 480p = 0.75×, 720p = 1×, 1080p = 1.5×
- Minimum charge: 5 seconds
- Maximum billed duration: 20 seconds
- Total cost = (duration / 5) × $0.20 × resolution_multiplier
Best Use Cases
- Character Animation — Animate a character image with motion from reference video.
- Style Transfer — Apply a reference style to existing video content.
- Motion Preservation — Maintain motion structure while changing appearance.
- Video Editing — Transform video subjects while keeping movement.
- Dance Transfer — Apply dance moves to different characters.
Pro Tips
- Match the subject pose in your image to the starting pose in the video.
- Use pose mode for human/character motion, depth for scene structure, canny for edge-based guidance.
- Preserve audio for lip-sync scenarios, generate for new content.
- Iterate at 480p, then render final at 720p or 1080p.
Notes
- Maximum video duration is 20 seconds per job.
- Videos shorter than 5 seconds are billed as 5 seconds.
- For best results, ensure the reference image matches the subject type in the video.
Related Models
- LTX-2 19B Image-to-Video — Generate video with audio from a reference image.
- LTX-2 19B Text-to-Video — Generate video with audio from text prompts.
- Wan 2.2 Animate — Character animation and replacement model.
Authentication
For authentication details, please refer to the Authentication Guide.
API Endpoints
Submit Task & Query Result
# Submit the task
curl --location --request POST "https://api.wavespeed.ai/api/v3/wavespeed-ai/ltx-2-19b/control" \
--header "Content-Type: application/json" \
--header "Authorization: Bearer ${WAVESPEED_API_KEY}" \
--data-raw '{
"mode": "pose",
"audio_mode": "preserve",
"resolution": "720p",
"seed": -1
}'
# Get the result
curl --location --request GET "https://api.wavespeed.ai/api/v3/predictions/${requestId}/result" \
--header "Authorization: Bearer ${WAVESPEED_API_KEY}"
Parameters
Task Submission Parameters
Request Parameters
| Parameter | Type | Required | Default | Range | Description |
|---|---|---|---|---|---|
| video | string | Yes | - | The video for generating the output. | |
| image | string | No | - | Optional reference image for appearance guidance. If not provided, the model generates based on the prompt. | |
| prompt | string | No | - | The positive prompt for the generation. | |
| mode | string | No | pose | canny, depth, pose | The control mode for video generation. Canny: edge detection guidance. Depth: depth map guidance. Pose: skeleton/pose guidance. |
| audio_mode | string | No | preserve | preserve, generate, none | Audio handling mode. Preserve: keep original audio from input video. Generate: create new synchronized audio. None: output video without audio. |
| resolution | string | No | 720p | 480p, 720p, 1080p | The resolution of the output video. |
| seed | integer | No | -1 | -1 ~ 2147483647 | The random seed to use for the generation. -1 means a random seed will be used. |
Response Parameters
| Parameter | Type | Description |
|---|---|---|
| code | integer | HTTP status code (e.g., 200 for success) |
| message | string | Status message (e.g., “success”) |
| data.id | string | Unique identifier for the prediction, Task Id |
| data.model | string | Model ID used for the prediction |
| data.outputs | array | Array of URLs to the generated content (empty when status is not completed) |
| data.urls | object | Object containing related API endpoints |
| data.urls.get | string | URL to retrieve the prediction result |
| data.has_nsfw_contents | array | Array of boolean values indicating NSFW detection for each output |
| data.status | string | Status of the task: created, processing, completed, or failed |
| data.created_at | string | ISO timestamp of when the request was created (e.g., “2023-04-01T12:34:56.789Z”) |
| data.error | string | Error message (empty if no error occurred) |
| data.timings | object | Object containing timing details |
| data.timings.inference | integer | Inference time in milliseconds |
Result Request Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| id | string | Yes | - | Task ID |
Result Response Parameters
| Parameter | Type | Description |
|---|---|---|
| code | integer | HTTP status code (e.g., 200 for success) |
| message | string | Status message (e.g., “success”) |
| data | object | The prediction data object containing all details |
| data.id | string | Unique identifier for the prediction, the ID of the prediction to get |
| data.model | string | Model ID used for the prediction |
| data.outputs | string | Array of URLs to the generated content (empty when status is not completed). |
| data.urls | object | Object containing related API endpoints |
| data.urls.get | string | URL to retrieve the prediction result |
| data.status | string | Status of the task: created, processing, completed, or failed |
| data.created_at | string | ISO timestamp of when the request was created (e.g., “2023-04-01T12:34:56.789Z”) |
| data.error | string | Error message (empty if no error occurred) |
| data.timings | object | Object containing timing details |
| data.timings.inference | integer | Inference time in milliseconds |