live
MODEL IDlightricks:ltx@2.3

LTX-2.3

Lightricks
by
Available with Zero Data Retention

LTX-2.3 is a multimodal video generation model that produces synchronized video and audio from text or images. It supports text-to-video and image-to-video workflows with native dialogue and ambient sound generation, emphasizing temporal stability, strong motion coherence, and production-ready output quality for professional creative pipelines. It can also extend an existing clip with new footage at its start or end.

LTX-2.3

API Options

Platform-level options for task execution and delivery.

taskType

stringrequiredvalue: videoInference

Identifier for the type of task being performed.

taskUUID

stringrequiredUUID v4

UUID v4 identifier for tracking tasks and matching async responses. Must be unique per task.

outputType

stringdefault: URL

Video output type.

Allowed values1 value

outputFormat

stringdefault: MP4

Specifies the file format of the generated output. The available values depend on the task type and the specific model's capabilities.

  • `MP4`: Widely supported video container (H.264), recommended for general use.
  • `WEBM`: Optimized for web delivery.
  • `MOV`: QuickTime format, common in professional workflows (Apple ecosystem).
Allowed values3 values

outputQuality

integermin: 20max: 99default: 95

Compression quality of the output. Higher values preserve quality but increase file size.

webhookURL

stringuri

Webhook URL that receives JSON responses via HTTP POST when generation tasks complete. For batch requests with multiple results, each completed item triggers a separate webhook call as it becomes available.

Learn more1 resource

deliveryMethod

stringdefault: async

Determines how the API delivers task results.

Allowed values2 values
Returns results directly in the API response. Over HTTP, a task still running after 120 seconds continues as an async task and comes back with status 'processing'. Poll for its results using getResponse.
Returns an immediate acknowledgment with the task UUID. Poll for results using getResponse.
Learn more1 resource

Specifies a URL where the generated content will be automatically uploaded using the HTTP PUT method. The raw binary data of the media file is sent directly as the request body. For secure uploads to cloud storage, use presigned URLs that include temporary authentication credentials.

Common use cases:

  • Cloud storage: Upload directly to S3 buckets, Google Cloud Storage, or Azure Blob Storage using presigned URLs.
  • CDN integration: Upload to content delivery networks for immediate distribution.
// S3 presigned URL for secure upload
https://your-bucket.s3.amazonaws.com/generated/content.mp4?X-Amz-Signature=abc123&X-Amz-Expires=3600

// Google Cloud Storage presigned URL
https://storage.googleapis.com/your-bucket/content.jpg?X-Goog-Signature=xyz789

// Custom storage endpoint
https://storage.example.com/uploads/generated-image.jpg

The content data will be sent as the request body to the specified URL when generation is complete.

safety

object

Content safety checking configuration for video generation.

Properties2 properties
safety » checkContent

Enable or disable content safety checking. Increases total generation time.

safety » mode

mode

stringdefault: fast

Safety checking mode for video generation.

Allowed values2 values
Checks key frames.
Checks all frames.

ttl

integermin: 60

Time-to-live (TTL) in seconds for generated content. Only applies when outputType is URL.

Include task cost in the response.

numberResults

integermin: 1max: 4default: 1

Number of results to generate. Each result uses a different seed, producing variations of the same parameters.

Inputs

Input resources for the task (images, audio, etc). These must be nested inside the inputs object.

inputs » frameImages

frameImages

array of strings or objectsmin items: 1max items: 10

An array of frame-specific image inputs to guide video generation. Each item can be either a plain image input (UUID, URL, Data URI, or Base64) or an object that pairs an image with a target position in the video.

The frameImages parameter allows you to constrain specific frames within the video sequence, ensuring that particular visual content appears at designated points. Position can be specified using frame (named positions or frame indices) or timestamp (seconds), depending on model support. This is different from referenceImages, which provide overall visual guidance without constraining specific timeline positions.

When the frame parameter is omitted, automatic distribution rules apply:

  • 1 image: Used as the first frame.
  • 2 images: First and last frames.
  • 3+ images: First and last frames, with intermediate images evenly spaced between.
Examples4 examples

Shorthand format: When you don't need to specify a frame position, you can pass a plain image input directly.

"frameImages": [
  "aac49721-1964-481a-ae78-8a4e29b91402"
]

Object format: When you need to specify a position, use an object with image and either frame or timestamp (model-dependent).

"frameImages": [
  {
    "image": "aac49721-1964-481a-ae78-8a4e29b91402",
    "frame": "first"
  }
]
First and last frames: With two images, they automatically become the first and last frames of the video sequence. You can mix shorthand and object formats.
"frameImages": [
  "aac49721-1964-481a-ae78-8a4e29b91402",
  {
    "image": "3ad204c3-a9de-4963-8a1a-c3911e3afafe",
    "frame": "last"
  }
]
Multiple frames: With three or more images, the first and last are anchored while intermediate frames are evenly distributed across the timeline.
"frameImages": [
  {
    "image": "aac49721-1964-481a-ae78-8a4e29b91402",
    "frame": "first"
  },
  "c00abf5f-6cdb-4642-a01d-1bfff7bc3cf7",
  {
    "image": "3ad204c3-a9de-4963-8a1a-c3911e3afafe",
    "frame": "last"
  }
]
Format 1: string[]
string

Image input (UUID, URL, Data URI, or Base64).

Format 2: object[]2 properties
inputs » frameImages » image

image

stringrequired

Image input (UUID, URL, Data URI, or Base64).

inputs » frameImages » frame

frame

string | integermin: -1

Target frame position for the image. Accepts a named position like first or last, or a zero-based frame index (-1 for the last frame).

Allowed values2 values
inputs » video

video

string6 limits

Video input (UUID or URL). Source video to extend or reframe. Without width and height it is extended: it needs at least 73 frames, and the output keeps the whole source and adds duration seconds to it, at 1080x1920 when the source is taller than it is wide and 1920x1080 otherwise. With width and height it is reframed: it takes at most 1800 frames, and the output keeps its length and shows it whole in the new frame, with the area around it generated.

inputs » audio

audio

string1 limit

Audio input (UUID or URL). Enables audio-to-video conditioning. The audio is merged with the generated video and trimmed to fit the video duration. Maximum duration 30 seconds.

Core Parameters

Primary parameters that define the task output.

model

stringrequiredvalue: lightricks:ltx@2.3

Send auto instead of an AIR identifier to have the model router choose the model for this task. The rest of the request is unchanged, every value you send is kept, and only the parameters you leave out are filled in. See Model Router.

Learn more3 resources

positivePrompt

stringrequired*min: 2max: 10000

Text prompt describing elements to include in the generated output.

Learn more1 resource

Prompt to guide what to exclude from generation. Ignored when guidance is disabled (CFGScale ≤ 1).

Learn more1 resource

width

integerrequired*min: 128max: 2048

Width of the generated media in pixels.

Learn more2 resources

height

integerrequired*min: 128max: 2048

Height of the generated media in pixels.

Learn more2 resources

duration

floatrequired*min: 1max: 20

Length of the generated video in seconds. The total number of frames produced is determined by duration multiplied by the model's frame rate (fps). With inputs.video, the seconds added to the source video.

fps

integermin: 1max: 120default: 25

Frames per second for video generation. Higher values create smoother motion but require more processing time.

seed

integermin: 0max: 9223372036854776000

Random seed for reproducible generation. When not provided, a random seed is generated in the unsigned 32-bit range.

Learn more1 resource

steps

integermin: 1max: 100default: 20

Total number of denoising steps. Higher values generally produce more detailed results but take longer.

Learn more1 resource

CFGScale

floatmin: 1max: 20step: 0.01default: 4

Guidance scale representing how closely the output will resemble the prompt. Higher values produce results more aligned with the prompt.

Learn more1 resource

lora

array of objectsmin items: 1

With LoRA (Low-Rank Adaptation), you can adapt a model to specific styles or features by emphasizing particular aspects of the data. This technique enhances the quality and relevance of generated content and can be especially useful when the output needs to adhere to a specific artistic style or follow particular guidelines.

Multiple LoRA models can be used simultaneously to achieve different adaptation goals.

Examples1 example
"lora": [
  {
    "model": "<lora-model-air>",
    "weight": 0.8
  }
]
Learn more1 resource
Properties3 properties
lora » model

model

stringrequired

LoRA model identifier.

lora » weight

weight

floatmin: -4max: 4step: 0.01default: 1

Strength of the LoRA influence. A value of 0 means no influence. Higher values increase the influence, and negative values can be used to steer away from the LoRA's style.

lora » transformer

transformer

stringdefault: both

Transformer stages to apply LoRA. Some video models use separate high-noise and low-noise processing stages, and LoRAs can be selectively applied to optimize their effectiveness.

Allowed values3 values
Apply LoRA only to the high-noise processing stage (coarse structure and early generation steps).
Apply LoRA only to the low-noise processing stage (fine details and later generation steps).
Apply LoRA to both stages for full coverage.

Settings

Technical parameters to fine-tune the inference process. These must be nested inside the settings object.

settings » enhancePrompt

enhancePrompt

booleandefault: true

Enable automatic prompt enhancement for cinematic results.

settings » extend

extend

object

Extension controls for the source video.

Properties2 properties
settings » extend » context

context

floatmin: 1max: 20

Seconds of the source video used as context for the new seconds. Must not exceed the source length, and context plus duration must not exceed 505 frames at the source frame rate (about 21 seconds at 24 fps).

settings » extend » mode

mode

stringdefault: end

Side of the source video that receives the new seconds.

Allowed values2 values
Adds the new seconds after the last frame of the source video.
Adds the new seconds before the first frame of the source video.
settings » reframe

reframe

object

Reframe controls for the source video.

Properties1 property
settings » reframe » placement

placement

object

Position of the source video in the output frame, given as an anchor or as a rectangle of x, y and at least one of width and height. Omitted, the video is centered at the largest size that fits. A rectangle side left out follows the video's aspect ratio, both sides together must match it within one pixel, and the placed video must be at least 1 pixel per side and at most 2x its original size.

Properties5 properties
settings » reframe » placement » width
width
floatmax: 1

Width of the video, as a fraction of the output width. x plus width must not exceed 1.

settings » reframe » placement » height
height
floatmax: 1

Height of the video, as a fraction of the output height. y plus height must not exceed 1.

settings » reframe » placement » anchor
anchor
string

Edge or corner of the output frame the video is placed against, at the largest size that fits. Anchors other than 'center' are rejected when that fit enlarges the video more than 2x.

Allowed values9 values
settings » reframe » placement » x
x
floatmin: 0

Left edge of the video, as a fraction of the output width.

settings » reframe » placement » y
y
floatmin: 0

Top edge of the video, as a fraction of the output height.