Introduction
LTX-2.3 LoRA Image to video animates one photo with up to three of your LoRA files loaded and a soundtrack generated in the same pass. It runs Lightricks' open 22-billion-parameter audio-video model; clips run 5 to 20 seconds at 480p, 720p or 1080p in the photo's own shape. The platform adds no content filter.
Choose a mode by starting material
| What you have | Mode |
|---|---|
| a written description | LTX-2.3 LoRA Text to video |
| a photo to animate | LTX-2.3 LoRA Image to video |
| a photo and a LoRA made for LTX-2 19B | LTX-2 19B LoRA Image to video |
Key features & highlights
Styles redraw your photo
A style LoRA turns the still into its style as the clip starts; in our tests a photo became claymation and another an oil painting.
Effects on real photos
In our test an effect LoRA at strength 1 applied to the person in the photo.
Sound included
Every clip has a stereo soundtrack; describe it on an "Audio:" line.
Uncensored with custom weights
LoRAs are not reviewed and nothing is filtered.
Request parameters
| Parameter | Required | Description |
|---|---|---|
prompt | Yes | Required. Trigger words first if your LoRA has them, then what happens next in this picture, the camera, and an "Audio:" line. at least 1 characters |
image_url | Yes | The opening frame. The clip starts from this photo and keeps its aspect ratio; a public, directly downloadable link. |
resolution | No | 480p, 720p (the default) or 1080p. Each step costs more per second; the shape follows your photo. |
duration_seconds | No | Any whole second from 5 to 20, billed per second on top of the fixed per-clip fee. |
loras | No | Up to three {path, scale} entries trained for LTX-2.3; each file under 2 GiB, scale 0 to 4. Default: |
seed | No | Keeps runs comparable while you tune a LoRA strength. It does not promise a frame-identical clip. |
Pricing
Billed per second of output at the chosen resolution, plus a fixed fee for each clip; the live estimate shows the full amount. Loading LoRAs adds no further charge, and the shape of your photo does not change the price.
| Specification | Price |
|---|---|
| $0.024 / second |
| $0.036 / second |
| $0.048 / second |
Use cases
Stylised animation of real photos
One style LoRA, a set of photos, a consistent animated look.
Character and effect LoRAs on your stills
Bring the community LoRA that fits the shot and animate your own frame with it.
Your users' images, their LoRAs
Animate users' own images with the LoRAs they choose; adults only.
Prompt guide & pro tips
Raise the strength for photos
Start style LoRAs at 1 to 1.3; at 0.8 an oil-painting LoRA barely showed, at 1.6 it changed a face.
Name the people
Describing who is in the photo helps a strong style keep them recognisable.
Stay in the picture
Describe what happens next in this frame rather than a new place.
Use direct, public links
Link the .safetensors file or the Civitai download; repository pages, files behind a login and files over 2 GiB fail, without charge.
API quick start
# Generate the idempotency key once; reuse it when retrying after a lost response.
export SPICY_IDEMPOTENCY_KEY="${SPICY_IDEMPOTENCY_KEY:-$(uuidgen)}"
curl -X POST https://api.spicyapi.ai/api/v1/jobs/createTask \
-H "Authorization: Bearer $SPICY_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $SPICY_IDEMPOTENCY_KEY" \
-d '{
"model": "lightricks/ltx-2.3-lora/image-to-video",
"input": {
"duration_seconds": 5,
"image_url": "https://example.com/reference.png",
"prompt": "A slow aerial shot drifting over a misty pine forest at sunrise",
"resolution": "720p"
}
}'
# Copy data.taskId from the response into TASK_ID, then poll the status.
TASK_ID="TASK_ID_FROM_RESPONSE"
curl "https://api.spicyapi.ai/api/v1/jobs/recordInfo?taskId=$TASK_ID" \
-H "Authorization: Bearer $SPICY_API_KEY"
See the API reference for authentication, the complete schema, polling, and error handling.








