Skip to content

LTX-2.3 22B Video Trainer

Integrate

Model id ltx23-video-trainer
# Run the model; wait up to 20 s for the finished result in the same call
curl -X POST "https://api.doitong.com/v1/run/ltx23-video-trainer?wait=20" \
  -H "Authorization: Bearer $DOITONG_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "training_data_url": "https://example.com/your-file.zip"
  }'

# Still "queued" or "running"? Poll with the id from the response:
curl "https://api.doitong.com/v1/requests/REQUEST_ID?wait=20" \
  -H "Authorization: Bearer $DOITONG_API_KEY"

This request: $9.60 9,600 API credits Run it on this page

Get API key
Lightricks Training 1–60 s #ltx2.3-video#fine-tuning

Trains an LTX-2.3 22B LoRA for custom video styles and effects, with optional audio

Lightricks · File

Your first result goes here

Build a request below and run it with your API key. Outputs are copied to our storage, kept forever or 7 days for free.

Build a request

Controls are generated from the model schema. The code and the price update as you change them.

resolution default medium

Training resolution. Increasing the resolution raises memory requirements.

aspect_ratio default 1:1

Training aspect ratio.

•required

ZIP archive URL for a dataset containing exclusively images or exclusively videos; mixed media datasets are unsupported. Aim for 10 files or more, preferably a larger collection. Accepted extensions are .png, .jpg, .jpeg for images and .mp4, .mov, .avi, .mkv for videos. Optional caption text files may accompany the media, with each caption file named to match its associated media file.

default 2000

Total count of training steps.

Advanced validation_negative_prompt · rank · validation_resolution · validation_aspect_ratio · trigger_phrase · learning_rate · number_of_frames · frame_rate · split_input_duration_threshold · first_frame_conditioning_p · validation_number_of_frames · validation_frame_rate · stg_scale · auto_scale_input · split_input_into_scenes · debug_dataset · with_audio · audio_normalize · audio_preserve_pitch · generate_audio_in_validation · validation
default worst quality, incons...

Negative prompt applied during validation.

rank default 32

LoRA adaptation rank, trading increased memory consumption for greater capacity as the setting rises.

validation_resolution default high

Resolution used during validation.

validation_aspect_ratio default 1:1

Aspect ratio used during validation.

default

LoRA style activation phrase, inserted at the start of captions during training.

default 0.0002

Optimization learning rate, balancing a possible speedup in training against the risk of overfitting when increased.

default 89

Frame count for each training sample. Dividing the count by 8 must leave a remainder of 1; examples include 1, 9, 17, 25, 33, 41, 49, 57, 65, 73, 81, 89, 97.

default 25

Target video frame rate, measured in frames per second.

default 30

Scene-splitting trigger expressed as a duration in seconds: only videos longer than the threshold are split.

default 0.5

Improve image-to-video performance by increasing how often training uses first-frame conditioning; this value sets that probability.

default 89

Frame count for each validation video.

default 25

Target validation video frame rate, measured in frames per second.

default 1

Spatio-Temporal Guidance (STG) scale, with 1.0 recommended and 0.0 turning STG off.

default []

Training validation prompt list, whose inputs must either all include images or all omit them.

POST /run/ltx23-video-trainer?wait=20 quote → $9.60
# Run the model; wait up to 20 s for the finished result in the same call
curl -X POST "https://api.doitong.com/v1/run/ltx23-video-trainer?wait=20" \
  -H "Authorization: Bearer $DOITONG_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "training_data_url": "https://example.com/your-file.zip"
  }'

# Still "queued" or "running"? Poll with the id from the response:
curl "https://api.doitong.com/v1/requests/REQUEST_ID?wait=20" \
  -H "Authorization: Bearer $DOITONG_API_KEY"

Run this request

Your key stays in this browser: it is sent only to the Doitong API and saved (localStorage) only if you tick Remember. Get an API key

About LTX-2.3 22B Video Trainer

Trains a LoRA on the LTX-2.3 22B model for custom styles and effects from a zip of videos or images, ideally 10 or more files. `number_of_steps` ranges 100 to 6000 (default 2000), `frame_rate` defaults to 25, and `first_frame_conditioning_p` defaults to 0.5. `with_audio` forces or disables audio training, and `generate_audio_in_validation` controls audio in previews.

Parameters

NameType DefaultAllowed Description
training_data_urlrequired
Typestring
ZIP archive URL for a dataset containing exclusively images or exclusively videos; mixed media datasets are unsupported. Aim for 10 files or more, preferably a larger collection. Accepted extensions are .png, .jpg, .jpeg for images and .mp4, .mov, .avi, .mkv for videos. Optional caption text files may accompany the media, with each caption file named to match its associated media file.
rankoptional
Typeenum
Default32
8163264128
LoRA adaptation rank, trading increased memory consumption for greater capacity as the setting rises.
number_of_stepsoptional
Typeinteger
Default2000
100 – 6,000
Total count of training steps.
learning_rateoptional
Typenumber
Default0.0002
0.000001 – 1
Optimization learning rate, balancing a possible speedup in training against the risk of overfitting when increased.
number_of_framesoptional
Typeinteger
Default89
9 – 121
Frame count for each training sample. Dividing the count by 8 must leave a remainder of 1; examples include 1, 9, 17, 25, 33, 41, 49, 57, 65, 73, 81, 89, 97.
frame_rateoptional
Typeinteger
Default25
8 – 60
Target video frame rate, measured in frames per second.
resolutionoptional
Typeenum
Defaultmedium
lowmediumhigh
Training resolution. Increasing the resolution raises memory requirements.
aspect_ratiooptional
Typeenum
Default1:1
16:91:19:16
Training aspect ratio.
trigger_phraseoptional
Typestring
Default
LoRA style activation phrase, inserted at the start of captions during training.
auto_scale_inputoptional
Typeboolean
Defaultfalse
Automatic video adjustment to match the requested FPS and frame count when enabled; image datasets remain unchanged.
split_input_into_scenesoptional
Typeboolean
Defaulttrue
Scene splitting for videos exceeding a duration threshold, enabled when true.
split_input_duration_thresholdoptional
Typenumber
Default30
1 – 60
Scene-splitting trigger expressed as a duration in seconds: only videos longer than the threshold are split.
debug_datasetoptional
Typeboolean
Defaultfalse
Preprocessing inspection mode for checking videos, images, and captions before a full training run. Enabling it makes the trainer return the processed training dataset in a downloadable archive for manual review.
with_audiooptional
Typeboolean | null
Choose True to force audio training alongside video training, or False to exclude audio. Leaving the setting at its default, None, makes the choice automatic based on whether the supplied videos contain audio.
audio_normalizeoptional
Typeboolean
Defaulttrue
Peak-amplitude normalization, recommended to make audio levels consistent throughout the dataset by bringing peaks to a common level.
audio_preserve_pitchoptional
Typeboolean
Defaulttrue
Pitch preservation when audio and video lengths differ: enabled uses time stretching or compression; disabled uses trimming or silence padding instead.
first_frame_conditioning_poptional
Typenumber
Default0.5
0 – 1
Improve image-to-video performance by increasing how often training uses first-frame conditioning; this value sets that probability.
validationoptional
Typeobject[]
Default[]
≤ 2 items
Training validation prompt list, whose inputs must either all include images or all omit them.
validation[].promptrequired
Typestring
Prompt used during validation.
validation[].image_urloptional
Typeurl · image
Image for image-to-video validation, permitted only if every other validation input also includes an image.
validation_negative_promptoptional
Typestring
Defaultworst quality, inconsistent motion, blurry, jittery, distorted
Negative prompt applied during validation.
validation_number_of_framesoptional
Typeinteger
Default89
9 – 121
Frame count for each validation video.
validation_frame_rateoptional
Typeinteger
Default25
8 – 60
Target validation video frame rate, measured in frames per second.
validation_resolutionoptional
Typeenum
Defaulthigh
lowmediumhigh
Resolution used during validation.
validation_aspect_ratiooptional
Typeenum
Default1:1
16:91:19:16
Aspect ratio used during validation.
stg_scaleoptional
Typenumber
Default1
0 – 3
Spatio-Temporal Guidance (STG) scale, with 1.0 recommended and 0.0 turning STG off.
generate_audio_in_validationoptional
Typeboolean
Defaulttrue
Controls whether validation samples include generated audio.
required

Output

GET /requests/req_8k2m4q7x1z9c3v5b6n0p2r4t
{
  "id": "req_8k2m4q7x1z9c3v5b6n0p2r4t",
  "object": "request",
  "model": "ltx23-video-trainer",
  "status": "succeeded",
  "created_at": "2026-10-20T12:00:00Z",
  "started_at": "2026-10-20T12:00:02Z",
  "completed_at": "2026-10-20T12:00:09Z",
  "queue_position": null,
  "cost": {
    "credits": 9600,
    "usd": "9.60",
    "charged": 9600,
    "refunded": 0
  },
  "input": {
    "training_data_url": "https://example.com/your-file.zip"
  },
  "output": {
    "video": {
      "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.jpeg",
      "content_type": "image/jpeg",
      "file_name": "0-output.jpeg",
      "file_size": 1843200
    },
    "lora_file": {
      "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.jpeg",
      "content_type": "image/jpeg",
      "file_name": "0-output.jpeg",
      "file_size": 1843200
    },
    "config_file": {
      "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.jpeg",
      "content_type": "image/jpeg",
      "file_name": "0-output.jpeg",
      "file_size": 1843200
    },
    "debug_dataset": {
      "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.jpeg",
      "content_type": "image/jpeg",
      "file_name": "0-output.jpeg",
      "file_size": 1843200
    }
  },
  "outputs": [
    {
      "type": "file",
      "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.jpeg",
      "content_type": "image/jpeg",
      "file_size": 1843200,
      "stored": true
    }
  ],
  "error": null,
  "metrics": {
    "inference_seconds": 6.8
  },
  "urls": {
    "self": "https://api.doitong.com/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t",
    "cancel": "https://api.doitong.com/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t/cancel"
  }
}
Your files, your choiceEvery outputs[].url is a copy on our storage: kept forever (paid per GB-month) or 7 days for free, by your account setting or ?storage=.
Same shape on every modeltype, url, content_type, width, height and duration, for images, video and audio alike. output is the model’s own result object.
Fields of output
video
object {url, content_type, file_name, file_size} | nullURL for any available validation videos.
lora_file
object {url, content_type, file_name, file_size}URL for trained LoRA weights in .safetensors format.
config_file
object {url, content_type, file_name, file_size}Configuration for inference endpoint setup.
debug_dataset
object {url, content_type, file_name, file_size} | nullDownloadable debug archive returned only for inputs with `debug_dataset` enabled; it holds the preprocessed training dataset, including decoded audio and video.

For AI agents: this page as Markdown is at https://doitong.com/developers/models/ltx23-video-trainer.md. All models and guides: https://doitong.com/developers/llms.txt