LTX 2.3 Motion Control: Camera LoRAs and IC-LoRA
Jul 31, 2026

LTX 2.3 Motion Control: Camera LoRAs and IC-LoRA

Three layers of motion and camera control in LTX 2.3: prompt language, dedicated camera-move LoRAs, and IC-LoRA guidance, plus the STG parameter.

"The camera doesn't do what I asked" is the most common complaint about every video model, and it usually gets answered with prompt tips. For LTX 2.3 that answer is incomplete, because motion control here has three layers, and the prompt is only the first.

Lightricks ships dedicated LoRAs for individual camera moves — one each for dolly in, dolly out, dolly left, dolly right, jib up, jib down, and static. They ship IC-LoRAs that transfer motion and structure from a reference clip. And there is a guidance parameter, STG, whose entire job is temporal coherence, which almost nobody outside the docs mentions.

This guide covers all three layers and when to escalate between them. Sourced from the LTX-2 repository, the multimodal guidance docs, and the official ComfyUI tutorial, checked July 2026.

Layer 1: prompt language the model was built to read

The official prompting structure includes an explicit slot: specify camera angles and movements, alongside the action, appearance, environment, lighting, and any changes — all in one flowing paragraph under 200 words.

Vague direction gets vague motion. Name the move, the height, and the distance:

  • "the camera tracks her from the front at chest height, pulling back to keep her centered"
  • not "cinematic camera movement"

The strongest evidence that named moves work is layer 2: Lightricks trained a separate LoRA for each of them. When a lab ships an adapter called Camera-Control-Dolly-In, the vocabulary "dolly in" is unambiguously meaningful to the model family.

Prompt-only control is the right level for most shots. It costs nothing, it composes freely, and it does not constrain your checkpoint choice.

Layer 2: camera-control LoRAs, when the prompt is not enough

Lightricks publishes one LoRA per move:

LoRAMove
LTX-2-19b-LoRA-Camera-Control-Dolly-InPush toward the subject
LTX-2-19b-LoRA-Camera-Control-Dolly-OutPull away
LTX-2-19b-LoRA-Camera-Control-Dolly-Left / -RightLateral tracking
LTX-2-19b-LoRA-Camera-Control-Jib-Up / -Jib-DownVertical crane
LTX-2-19b-LoRA-Camera-Control-StaticLocked-off camera

Note the 19b prefix: these are LTX-2 generation adapters, while Union Control, LipDub, and HDR are 22b LTX-2.3 era. Mixing generations is a known way to get output that is subtly wrong with no error message.

The Static LoRA deserves special attention. Suppressing camera movement is genuinely hard through prompting alone — "static camera" competes against a model whose training data is full of movement. A dedicated adapter for not moving is exactly the kind of tool that sounds unglamorous and solves a real problem, especially for product shots, interviews, and any composite work.

Apply on the CLI with the repeatable flag:

--lora path/to/ltx-2-19b-lora-camera-control-dolly-in.safetensors 0.8

Default strength is 1.0; Lightricks' own example command applies a LoRA at 0.8, which is a sensible starting point. Camera LoRAs generally compose with identity or style LoRAs, since they are asking for different things.

Testing how far prompt-level control gets you? Before downloading move-specific adapters, find out whether your phrasing is already doing the job. ltx23.app runs LTX 2.3 in the browser — a fast loop for comparing camera phrasings.

Layer 3: IC-LoRA, when you have a reference

When you need the motion from an existing clip — not a generic move — that is in-context control.

  • LTX-2.3-22b-IC-LoRA-Union-Control — structural guidance from depth, pose, or edges
  • LTX-2.3-22b-IC-LoRA-Motion-Track-Control — motion-track based control
  • LTX-2-19b-IC-LoRA-Pose-Control — pose-driven control (19B era)

Two operating rules:

  1. Distilled checkpoint only. The docs state ICLoraPipeline can only be used with a distilled model. ComfyUI's IC-LoRA Union Control template loads ltx-2.3-22b-distilled-fp8.safetensors for exactly this reason.
  2. Union Control needs a geometry estimator in ComfyUI: moge_2_vitl_normal_fp16.safetensors in models/geometry_estimation/. It converts your reference clip into depth and normal signals. Without it there is no control signal at all.

This is the layer to use when a client approved a specific camera move in a reference, or when you need several shots to share a motion path.

The parameter nobody mentions: STG

Here is the piece missing from essentially every LTX 2.3 tutorial.

The MultiModalGuiderParams documentation defines Spatio-Temporal Guidance:

ParameterWhat it doesTypical
stg_scalePerturbation-based guidance for improved temporal coherence0.5–1.5 (0.0 disables)
stg_blocksWhich transformer blocks to perturbe.g. [29]

The mechanism: STG improves structural coherence by perturbing specific transformer blocks and steering away from the perturbed prediction. In other words it is guidance whose reference point is a deliberately degraded version of the model — pushing output toward coherence rather than toward the prompt.

Why this matters for motion: temporal coherence is the difference between movement and flicker. If your problem is that motion looks unstable rather than wrong, CFG will not fix it — CFG steers prompt adherence. STG is the parameter aimed at your actual symptom.

The trade is stated in the docs: higher stg_scale means better temporal coherence but slower inference, because it requires extra forward passes.

Two related parameters worth knowing while you are in there:

  • rescale_scale (typical 0.5–0.7) rescales the guided prediction toward the conditional variance, which limits over-saturation — the plastic look that shows up when guidance is pushed hard.
  • skip_step skips guidance every N steps, speeding inference with minimal quality loss.

A diagnostic ladder

Match the fix to the symptom instead of turning every knob:

SymptomFix
Camera does something genericName the move, height, and distance in the prompt
Camera ignores a specific moveLoad the matching camera-control LoRA
Motion looks jittery or incoherentRaise stg_scale (0.5–1.5)
Output looks over-saturated / plasticLower CFG, set rescale_scale around 0.5–0.7
Need motion from a reference clipIC-LoRA Motion Track or Union Control, distilled checkpoint
Subject moves but scene is staticRewrite the prompt chronologically — describe what changes
Everything drifts over a long clipGenerate shorter and extend, or repair with a region retake

Composition and camera work at scale

For anyone doing more than one-off shots:

  • Standardize a camera vocabulary across a project. Same phrasing, same move, same expectation — this is what makes a batch look like it came from one shoot.
  • Two-stage matters for motion. Stage 1 decides framing, motion, and timing; stage 2 refines detail. Judge motion at stage 1 and stop paying for full renders of shots that were never going to work.
  • Fix regions, don't reroll. RetakePipeline regenerates a [start_time, end_time] window and preserves the rest — the right tool when the camera does something odd for one second.

FAQ

Does LTX 2.3 have camera control? Yes, at three levels: prompt language, dedicated camera-move LoRAs (dolly, jib, static), and IC-LoRA structural or motion-track control from a reference.

Why doesn't my prompt's camera move happen? Usually under-specification. Name the move, the height, and the distance. If it still misses, load the matching camera LoRA.

What is STG in LTX 2.3? Spatio-Temporal Guidance — perturbation-based guidance for temporal coherence, typically 0.5–1.5, at the cost of extra forward passes.

Can I stack a camera LoRA with a style or identity LoRA? Generally yes; they target different things. Start below full strength — Lightricks' own example uses 0.8.

Why does my IC-LoRA control run fail? Most often the checkpoint: IC-LoRA requires a distilled model. In ComfyUI, also confirm the geometry estimator is installed.

How do I keep the camera perfectly still? The Static camera-control LoRA is built for it, and it works better than fighting the model with prompt wording.

Bottom line

Motion control in LTX 2.3 is a ladder, not a slider: prompt language first, camera LoRAs when a specific move must land, IC-LoRA when motion comes from a reference — and STG when the problem is coherence rather than direction.

Most people never get past layer one and conclude the model cannot hold a camera. It can; the tools just live in three different places. Test your phrasing quickly at ltx23.app, then escalate only where it actually breaks.

Sources

Verified July 2026 against primary documentation:

  1. Lightricks/LTX-2 — official GitHub repository — camera-control LoRA catalog, prompting structure, --lora usage
  2. LTX-2 multimodal guidance documentation — STG mechanism, stg_scale, stg_blocks, rescale_scale, skip_step
  3. LTX-2 available pipelines documentation — IC-LoRA distilled-only rule, retake regions
  4. ComfyUI official LTX-2.3 tutorial — IC-LoRA template, distilled FP8 checkpoint, geometry estimator
  5. LTX-2.3-22b-IC-LoRA-Union-Control — depth/pose/edge control
  6. LTX-2.3-22b-IC-LoRA-Motion-Track-Control — motion-track control
  7. LTX-2-19b-LoRA-Camera-Control-Dolly-In — camera-move adapter
  8. LTX-2-19b-LoRA-Camera-Control-Static — static-camera adapter
  9. LTX-2 conditioning documentation — reference-video conditioning mechanism
  10. LTX-2 installation & CLI flags — LoRA flag and default strength
  11. ltx-core package documentation — guiders and transformer block structure

Guidance ranges are those published in Lightricks' documentation; optimal values vary by prompt, resolution, and checkpoint.

LTX 2.3で無料AI動画生成を始めよう

LTX 2.3モデルが最初のAI動画を無料で生成します。