Skip to content

LTX2 video LoRA training

Train a Lightricks LTX video LoRA on a small set of source video clips using AI Toolkit. The output LoRA is usable in LTX2 video generation.

ecosystemBaseDefault priceNotes
ltx2Lightricks/LTX-2 (19B)2750 BuzzOriginal LTX2.
ltx23Lightricks/LTX-2.3 (22B)2750 BuzzNewer LTX 2.3.

The base checkpoint is fixed by ecosystem; there's no model field on the input.

Long-running step

Video training is the slowest training mode on the platform — video needs a longer run, so the LTX default is 3000 steps (vs 2000 for image ecosystems). Always use wait=0 and follow up via webhook or polling.

The request shape

json
{
  "$type": "training",
  "input": {
    "engine":    "ai-toolkit",
    "ecosystem": "ltx2"          // ltx2 | ltx23
  }
}

Prerequisites

  • A Civitai orchestration token (Quick start → Prerequisites)
  • A training-data zip containing source video clips
  • An accurate count of clips in the zip

LTX2

Original 19B-parameter LTX video model. resolution: 768 is the typical training resolution.

http
POST https://orchestration.civitai.com/v2/consumer/workflows?wait=0
Authorization: Bearer <your-token>
Content-Type: application/json

{
  "tags": ["training", "video"],
  "steps": [{
    "$type": "training",
    "priority": "normal",
    "retries": 2,
    "input": {
      "engine": "ai-toolkit",
      "ecosystem": "ltx2",
      "steps": 3000,
      "resolution": 768,
      "lr": 0.0002,
      "trainTextEncoder": false,
      "lrScheduler": "cosine",
      "optimizerType": "adamw8bit",
      "networkDim": 32,
      "networkAlpha": 32,
      "trainingData": {
        "type": "zip",
        "sourceUrl": "https://civitai-delivery-worker-prod.5ac0637cfd0766c97916cefa3764fbdf.r2.cloudflarestorage.com/training-images/4470934/2725414TrainingData.nuB3.zip",
        "count": 4
      },
      "samples": { "prompts": ["a video of TOK", "TOK moving in a garden"] }
    }
  }]
}
POST/v2/consumer/workflows
Set your Civitai API token via the Token button in the navbar to enable Try It.
Request body — edit to customize (e.g. swap the image URL or prompt)
Valid JSON

LTX 2.3

Newer 22B model. Same shape as LTX2; lr is typically lower. Both LTX ecosystems share the same rates and 3000-step default, so the default price matches (2750 Buzz).

http
POST https://orchestration.civitai.com/v2/consumer/workflows?wait=0
Authorization: Bearer <your-token>
Content-Type: application/json

{
  "tags": ["training", "video"],
  "steps": [{
    "$type": "training",
    "priority": "normal",
    "retries": 2,
    "input": {
      "engine": "ai-toolkit",
      "ecosystem": "ltx23",
      "steps": 3000,
      "lr": 0.0001,
      "trainTextEncoder": false,
      "lrScheduler": "cosine",
      "optimizerType": "adamw8bit",
      "networkDim": 32,
      "networkAlpha": 32,
      "trainingData": {
        "type": "zip",
        "sourceUrl": "https://civitai-delivery-worker-prod.5ac0637cfd0766c97916cefa3764fbdf.r2.cloudflarestorage.com/training-images/4470934/2725414TrainingData.nuB3.zip",
        "count": 4
      },
      "samples": { "prompts": ["a video of TOK", "TOK moving in a garden"] }
    }
  }]
}
POST/v2/consumer/workflows
Set your Civitai API token via the Token button in the navbar to enable Try It.
Request body — edit to customize (e.g. swap the image URL or prompt)
Valid JSON

Common parameters

Defaults shown are the post-ApplyDefaults values for both LTX ecosystems.

FieldRequiredDefaultNotes
engineAlways ai-toolkit.
ecosystemltx2 or ltx23.
steps3000110000. Total training steps. Primary driver of training length and pricing. Video needs a longer run, hence the higher default.
epochs10120. Number of saved checkpoints delivered, each separately downloadable. Each adds 50 Buzz — LTX preview samples are videos and costly to compute.
batchSize1Fixed at 1 for this ecosystem.
continueFrom(none)A previously-trained urn:air:ltx2:lora:... / urn:air:ltx23:lora:... AIR to resume from (see Continue training). Must be a LoRA of the same ecosystem.
lr0.0001LTX2 examples often use 0.0002; LTX 2.3 typically 0.0001.
trainTextEncoderfalseLeave off — LTX text encoder is not retrained by AI Toolkit.
lrSchedulercosineconstant, constant_with_warmup, cosine, linear, step.
optimizerTypeadamw8bitSee SDXL/SD1 page for full enum.
networkDim321256.
networkAlphamatches networkDim1256.
noiseOffset001.
flipAugmentationfalseRandom horizontal flips.
shuffleTokens / keepTokensfalse / 0Caption-tag shuffling.
triggerWord(none)Activation token.
trainingData.{type, sourceUrl, count}type: "zip". Zip should contain video clips.
samples.prompts[][]Preview videos rendered at each saved checkpoint.
samples.negativePrompt(none)
samples.cfgScale(ecosystem default)Overrides the CFG / guidance scale used when rendering the preview samples.
samples.strength1.0Trained-LoRA weight applied in the preview samples.

Continue training / train further

To resume from an LTX LoRA you already trained instead of starting from the base checkpoint, set continueFrom to that LoRA's AIR. The new run starts from those weights and the new epochs build on top:

json
{
  "$type": "training",
  "input": {
    "engine": "ai-toolkit",
    "ecosystem": "ltx2",
    "continueFrom": "urn:air:ltx2:lora:civitai:<id>@<version>",
    "steps": 1500
  }
}

continueFrom must point at a LoRA of the same ecosystem as the model being trained (an ltx2 LoRA for ecosystem: "ltx2", an ltx23 LoRA for ecosystem: "ltx23") — a mismatched ecosystem is rejected.

Reading the result

Same envelope as the other training recipes — see SDXL/SD1 → Reading the result. Each saved checkpoint yields a video LoRA .safetensors blob plus any sample .mp4 files. Use the trained LoRA in LTX2 video generation by referencing it in the workflow's loras field.

Runtime

Wall time, default settings on a 4-clip dataset:

EcosystemPer 100 stepsTypical full run
ltx2~1–2 min30–60 min for 3000 steps
ltx23~2–3 min60–90 min for 3000 steps

Always use wait=0.

Cost

Training is billed per step plus a flat per-epoch storage surcharge, with a price floor. LTX defaults to 3000 steps (video needs a longer run):

price = steps × costPerStep + epochs × 50        (rounded)
costPerStep = 0.75   (ltx2 and ltx23)
floor: never less than 80% of the default-configuration price

epochs is the number of saved checkpoints delivered (default 10, range 120); each adds 50 Buzz — LTX preview samples are videos and costly to compute. The default run is 3000 steps / 10 epochs3000 × 0.75 + 10 × 50 = 2250 + 500 = 2750 Buzz. The floor is 80% of the default price (2200 Buzz).

ConfigurationBuzz (training only)
LTX2 / LTX 2.3, default (steps: 3000, epochs: 10)2750 + samples
LTX2 / LTX 2.3, steps: 3000, epochs: 203250 + samples (+500 for 10 more checkpoints)
LTX2 / LTX 2.3, steps: 2000, epochs: 102200 + samples (floor)

Sample-prompt rendering uses LTX2 video-generation rates and is billed separately. Run with whatif=true to see the exact pre-flight charge.

Troubleshooting

SymptomLikely causeFix
400 with "trainingData.sourceUrl not reachable"Signed URL expired, or zip behind authRegenerate the URL. R2 signed URLs default to 24h.
Step failed with VRAM-related errorResolution × clip length too highLower resolution (e.g. to 512), shorten clips.
Training cost surprises youVideo defaults to 3000 steps, so the floor is higher than image ecosystemsCheck whatif=true before submitting. Lowering steps/epochs saves at most 20% (the floor).
Trained LoRA produces no motionToo few steps / static reference clipsRaise steps, ensure clips show the motion you want learned.
Step failed, moderationStatus: "Rejected"Dataset failed content moderationReplace flagged clips.

Civitai Developer Documentation