LTX 2.3 LoRA Training Guide: Getting Started with the Right Checkpoint, Workflow, and Settings
If you want to start LTX 2.3 LoRA training but feel confused by the number of checkpoints, unclear documentation, and conflicting community advice, this page is for you.
LTX-2.3 is a 22B DiT-based audio-video model from Lightricks. It is a significant upgrade from LTX 2.0 (19B), but that upgrade also means your old LoRAs, old workflows, and old assumptions may not carry over cleanly.
This guide covers what you actually need to know before your first LTX 2.3 LoRA training run: which checkpoint to use, what the minimum viable workflow looks like, what common mistakes to avoid, and how to validate your first result.
By the end, you will know:
- which checkpoint to train against and why the naming is confusing
- what the minimum working setup looks like
- why older LTX LoRAs should not be treated as reliable baselines
- how to validate your first checkpoint
- what pitfalls in current official workflows to watch out for
If you are looking for IC-LoRA training (motion control or audio-to-video conditioning), see the LTX-2.3 IC-LoRA guide instead.
Table of contents
- 1. Which checkpoint to use for LTX 2.3 LoRA training
- 2. Why older LTX LoRAs break on 2.3
- 3. The minimum viable LTX 2.3 LoRA training workflow
- 4. Hardware requirements and training settings
- 5. How to validate your first checkpoint
- 6. Common pitfalls in current official workflows
- 7. When to use RunComfy Cloud for LTX 2.3 LoRA training
- 8. Bottom line
1. Which checkpoint to use for LTX 2.3 LoRA training
This is the single biggest source of confusion for new users. LTX 2.3 ships with several checkpoints, and the naming does not make the relationships obvious.
1.1 The checkpoint lineup
| Checkpoint | File | What it is |
|---|---|---|
| Dev | ltx-2.3-22b-dev.safetensors |
Full-quality base model. Use this for training. Needs more inference steps (~30-40). |
| Dev FP8 | ltx-2.3-22b-dev-fp8.safetensors |
FP8-quantized Dev. Lower VRAM. Also works for training. |
| Distilled | ltx-2.3-22b-distilled.safetensors |
Pre-distilled model for fast inference (8 steps, CFG=1.0). Not for training. |
| Distilled LoRA 384 | ltx-2.3-22b-distilled-lora-384.safetensors |
A LoRA adapter that distills the Dev model at inference time. For inference only. |
1.2 The confusing part
The official ComfyUI workflows labeled "distilled" actually use the Dev checkpoint + distilled-lora-384, not the standalone distilled model. Multiple community members have flagged this as misleading.
What this means for LTX 2.3 LoRA training:
- Train against the Dev checkpoint (full or FP8). This is the base model your LoRA adapts.
- The distilled-lora-384 is an inference speedup tool, not a training base.
- If you use the standalone distilled model for inference, disable the distilled LoRA, set steps to 8, and set CFG to 1.0.
- If you use Dev + distilled-lora-384 for inference, set the LoRA strength to 0.5–0.6. At 1.0 it will burn your output.
1.3 What you need to download
For a complete training setup, you need:
- The Dev checkpoint (full or FP8)
- The Gemma 3 12B text encoder (requires HuggingFace login with accepted terms)
- The spatial upscaler model (for two-stage inference)
- The distilled-lora-384 (for inference validation, not for training)
- Video VAE and Audio VAE models
All files are on HuggingFace under Lightricks/LTX-2.3. The trainer only accepts local paths — HuggingFace URLs will not work in config files.
2. Why older LTX LoRAs break on 2.3
If you trained LoRAs on LTX 2.0 or 2.1, do not assume they transfer cleanly.
The architecture changed from 19B parameters to 22B. Community experience is consistent on this point: users who continued using old LoRAs on the new model report that old LoRAs "completely ruined the results" compared to retraining on 2.3.
2.1 What actually happens with old LoRAs
- They technically load without crashing.
- Simple style or helper LoRAs at low weight (0.2–0.4) sometimes produce acceptable output.
- Character LoRAs trained on 2.0 produce significantly degraded results on 2.3.
- The degradation is not always obvious at first — it shows up as subtle quality loss, identity drift, or inconsistent motion.
2.2 The practical rule
If you have old LTX LoRAs and care about quality, retrain them on LTX 2.3. The model is different enough that adapting old weights is not a reliable shortcut.
This also applies to official LoRAs — Lightricks explicitly versions them. For example, LTX-2-19b-IC-LoRA-Detailer is for 2.0, while LTX-2.3-22b-IC-LoRA-Union-Control is for 2.3.
3. The minimum viable LTX 2.3 LoRA training workflow
Here is the end-to-end workflow with the fewest moving parts. This uses the official LTX Trainer from the Lightricks repo.
3.1 Environment setup
The LTX-2 monorepo uses uv as its package manager, not pip. All commands must be run with uv run.
git clone https://github.com/Lightricks/LTX-2.git
cd LTX-2
uv sync
A common early error: No module named 'ltx_trainer'. This happens when you skip uv sync or run Python directly instead of through uv run.
The trainer requires Linux because of the triton dependency. If you are on macOS or Windows, use a cloud GPU provider like RunPod.
3.2 Download required models
Before training, download everything to local paths:
- Dev checkpoint → e.g.,
/models/ltx-2.3-22b-dev.safetensors - Gemma 3 text encoder → e.g.,
/models/gemma-3-12b-pt/ - Spatial upscaler → e.g.,
/models/ltx-2.3-spatial-upscaler.safetensors
For the Gemma 3 encoder, you need an HF token with the model's license accepted. Restart your terminal after running huggingface-cli login — token caching can be unreliable otherwise.
3.3 Prepare your dataset
Place your video clips in a directory. Then caption them:
uv run python scripts/caption_videos.py /path/to/videos --output dataset.json
Then preprocess into latents and caption vectors:
uv run python scripts/process_dataset.py dataset.json \
--resolution-buckets "960x544x49" \
--model-path /models/ltx-2.3-22b-dev.safetensors \
--text-encoder-path /models/gemma-3-12b-pt
Frame count must satisfy frames % 8 == 1 (valid values: 1, 9, 17, 25, 33, 41, 49). Width and height must be multiples of 32. Dimension errors are one of the most common early failures.
3.4 Configure and train
Copy an existing config (e.g., configs/ltx2_av_lora.yaml) and update the paths. Then:
uv run python scripts/train.py configs/your_config.yaml
For the first run, keep it small: small dataset, conservative resolution, short training — your goal is confirming the pipeline works end-to-end.
3.5 Alternative: RunComfy Cloud AI Toolkit
If the local setup feels heavy, RunComfy Cloud AI Toolkit provides an Ostris AI Toolkit-based training environment where you can start LTX 2.3 LoRA training without managing uv sync, model downloads, or Linux dependencies. LTX 2.3 support is coming soon to the Cloud AI Toolkit.
4. Hardware requirements and training settings
4.1 Hardware tiers
| Tier | GPU | Notes |
|---|---|---|
| Comfortable | H100 (80GB) | Full quality, no quantization needed |
| Workable | RTX 6000 Pro (48GB) or A100 (40GB) | Standard community choice for cloud |
| Tight | RTX 5090 (32GB) | INT8 quantization, 8-bit optimizer, reduced rank |
| Experimental | RTX 4090 (24GB) | Heavy optimization required, not officially supported |
For cloud training, RTX 6000 Pro on RunPod at ~$0.80/hr is the commonly reported setup in the community.
4.2 Recommended starting settings
| Parameter | Value | Notes |
|---|---|---|
| LoRA rank | 32 | Start here. Increase to 64+ for multi-concept LoRAs. |
| LoRA alpha | Equal to rank | e.g., 32 |
| Learning rate | 1e-4 | Community advises lower rates to prevent aggressive training |
| Steps | 2000 | Adjust based on dataset size |
| Batch size | 1 | Use gradient accumulation for effective larger batches |
| Mixed precision | bf16 | Standard for modern GPUs |
| Gradient checkpointing | true | Always enable on GPUs with less than 80GB |
| Resolution buckets | 960x544x49 |
Standard. Use 512x512x49 for low VRAM. |
| Target modules | ["to_k", "to_q", "to_v", "to_out.0"] |
Short patterns match all branches |
4.3 Low VRAM config essentials
If you are on 32GB or less, these settings help:
quantization: "int8-quanto"— INT8 model quantizationoptimizer_type: "adamw8bit"— 8-bit optimizerload_text_encoder_in_8bit: trueenable_gradient_checkpointing: true- Reduce LoRA rank to 16
5. How to validate your first checkpoint
The goal of your first training run is not a production LoRA. It is confirming that the pipeline works and the LoRA learns something real.
5.1 Use consistent validation prompts
Pick 2–3 prompts and keep them fixed across checkpoints. Use the same seed, same inference settings, same reference image (if applicable). If you change everything between evaluations, you cannot tell whether the LoRA improved or the test changed.
5.2 Recommended inference settings for validation
| Parameter | Value |
|---|---|
| CFG | 4.0 |
| STG scale | 1.0 (with stg_blocks: [29]) |
| Inference steps | 30 (increase to 50 for final quality check) |
5.3 Watch for the noise problem
A known open issue (GitHub #165): when training with the FP8 Dev checkpoint, the first validation sample may output pure noise before any training has happened. This does not occur with LTX 2.0 checkpoints. If you see this, it does not necessarily mean your training is broken — check subsequent validation samples after actual training steps.
5.4 Check audio separately
If your LoRA includes audio, be aware that audio and video learn at different rates. Audio typically converges faster. Monitor audio quality separately from visual quality to avoid overcooking one while the other is still undercooked.
6. Common pitfalls in current official workflows
The community feedback on LTX 2.3's launch documentation is direct: the workflows and docs need work. Here are the specific pitfalls to avoid.
6.1 "Distilled" workflow naming
Official ComfyUI workflows labeled "distilled" use Dev + distilled-lora-384, not the standalone distilled checkpoint. If you load the actual distilled model and also apply the distilled LoRA, you will get bad results.
6.2 Model path confusion
The trainer only accepts local file paths. If you put a HuggingFace URL in the config YAML, it will fail silently or with an unhelpful error.
6.3 Node mixing in ComfyUI
Do not mix LTX nodes with Kijai (KJ) nodes in the same workflow. This causes AssertionError: Audio VAE config is required and similar errors. Use one node set consistently.
6.4 Missing dependencies after updates
After updating ComfyUI-LTXVideo, run pip install -r requirements.txt again. Missing node errors are almost always caused by skipping this step.
6.5 LoRA conversion for ComfyUI
If you train with a third-party trainer (e.g., community forks), the raw output may need conversion before it works in ComfyUI. Unconverted LoRAs will load without error but have zero effect — a silent failure that wastes debugging time.
7. When to use RunComfy Cloud for LTX 2.3 LoRA training
LTX 2.3 LoRA training has a higher setup barrier than image model training. The Linux requirement, the uv package manager, the Gemma 3 authentication, and the model download sizes all add friction before you can start a single training step.
Use RunComfy Cloud AI Toolkit when:
- you want to skip the local environment setup
- your local GPU is under 32GB VRAM
- you want to iterate on datasets quickly without managing model downloads
- you want to validate whether LTX 2.3 training is worth investing in before committing to a full local setup
For many users, the biggest cost is not the GPU time — it is the hours spent debugging environment issues that never result in a trained LoRA.
RunComfy is also adding LTX 2.3 LoRA training support to the Cloud AI Toolkit soon. Once available, you will be able to train standard, AV, and IC-LoRAs for LTX 2.3 directly in the cloud — without managing uv sync, Gemma 3 downloads, or Linux-only dependencies locally.
Open it here: RunComfy Cloud AI Toolkit
8. Bottom line
LTX 2.3 LoRA training is a real, working workflow — but the setup experience is rougher than older models.
The most important things to get right on your first run:
- Train against the Dev checkpoint (not distilled).
- Retrain your LoRAs instead of reusing old LTX 2.0 weights.
- Use
uv runfor all commands in the official trainer. - Keep the first run small — confirm the pipeline works before scaling up.
- Use consistent validation — same prompts, same seeds, same settings across checkpoints.
If the environment setup is blocking you, move to cloud. The point of LTX 2.3 LoRA training is a usable LoRA, not a local infrastructure project.
Ready to start training?
