Model API
LTX-2.3 22B Distilled
Generate video with audio from images using LTX-2.3 Distilled
Model id
ltx-2.3-22b/distilled/image-to-videoThis model has other modes with their own ids: ltx-2.3-22b/distilled/text-to-video.
Run it
Quote the input, start the generation with the quote, then poll the job. Set RAYWAKE_API_KEY first; see Authentication.
# 1. Price the exact input (quotes are valid for up to 10 minutes)
curl -s https://api.raywake.com/v1/quotes \
-H "Authorization: Bearer $RAYWAKE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "ltx-2.3-22b/distilled/image-to-video",
"input": {
"prompt": "A red ceramic cup on a wooden table, soft morning light",
"image_url": "https://example.com/input.png"
}
}'
# 2. Start the generation with the quote_id from step 1
curl -s https://api.raywake.com/v1/generate \
-H "Authorization: Bearer $RAYWAKE_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"model": "ltx-2.3-22b/distilled/image-to-video", "quote_id": "QUOTE_ID", "input": {"prompt":"A red ceramic cup on a wooden table, soft morning light","image_url":"https://example.com/input.png"}}'
# 3. Poll until the status is terminal
curl -s https://api.raywake.com/v1/jobs/JOB_ID \
-H "Authorization: Bearer $RAYWAKE_API_KEY"Input
| Name | Type | Description |
|---|---|---|
promptrequired | string | The prompt used for the generation. |
image_urlrequired | string (image URL) | The URL of the image to generate the video from. |
num_frames | integer | The number of frames to generate. |
video_size | string (enum) | The size of the generated video. |
generate_audio | boolean | Whether to generate audio for the video. |
use_multiscale | boolean | Whether to use multi-scale generation. If True, the model will generate the video at a smaller scale first, then use the smaller video to guide the generation of a video at or above your requested size. This results in better coherence and details. |
fps | number (enum) | The frames per second of the generated video. |
scheduler | string (enum) | The scheduler to use. |
acceleration | string (enum) | The acceleration level to use. |
camera_lora | string (enum) | The camera LoRA to use. This allows you to control the camera movement of the generated video more accurately than just prompting the model to move the camera. |
camera_lora_scale | number (enum) | The scale of the camera LoRA to use. This allows you to control the camera movement of the generated video more accurately than just prompting the model to move the camera. |
negative_prompt | string | The negative prompt to generate the video from. |
seed | integer | The seed for the random number generator. |
enable_prompt_expansion | boolean | Whether to enable prompt expansion. |
video_output_type | string (enum) | The output type of the generated video. |
video_quality | string (enum) | The quality of the generated video. |
video_write_mode | string (enum) | The write mode of the generated video. |
sync_mode | boolean | If `True`, the media will be returned as a data URI and the output data won't be available in the request history. |
distill_lora_second_pass_scale | number | The scale of the distill LoRA to use for the second and subsequent passes. |
interpolation_direction | string (enum) | The direction to interpolate the image sequence in. 'Forward' goes from the start image to the end image, 'Backward' goes from the end image to the start image. |
image_strength | number | The strength of the image to use for the video generation. |
end_image_strength | number | The strength of the end image to use for the video generation. |
Output
A succeeded job lists its results under outputs, stored on our side. See Jobs for every field.
"outputs": [
{ "type": "video", "url": "https://…", "mime_type": "video/mp4", "thumbnail_url": "https://…" }
]Pricing
- 1 megapixel$0.01/ megapixel
The exact charge for your input comes from a quote. How charges settle