How to use from the
Use from the
LTX-2 library
# Install the LTX-2 pipelines
git clone https://github.com/Lightricks/LTX-2.git
cd LTX-2
uv sync --extra natten
# Download the adapter weights from this repo
# (base components come from Lightricks/LTX-2.5 β€” see Files and versions)
hf download Lightricks/LTX-2.5-22b-LoRA-Slow-Motion-Control --local-dir models/LTX-2.5-22b-LoRA-Slow-Motion-Control
# Text/image-to-video with the LoRA on the distilled LTX-2.5 pipeline
uv run python -m ltx_pipelines.distilled \
    --transformer-path path/to/distilled-transformer.safetensors \
    --text-encoder-path path/to/gemma4-12b-with-proj-ltx-2.5-bf16.safetensors \
    --video-vae-path path/to/video-vae.safetensors \
    --audio-vae-path path/to/audio-vae.safetensors \
    --spatial-upsampler-path path/to/spatial-upsampler.safetensors \
    --lora models/LTX-2.5-22b-LoRA-Slow-Motion-Control/<weights>.safetensors 1.0 \
    --prompt "your prompt here" \
    --output-path output.mp4
# For image-to-video, add: --image path/to/image.jpg 0 0.8

LTX-2.5 22B LoRA Slow Motion Control

This is a Slow Motion Control LoRA trained on top of LTX-2.5-22B, which turns physical motion speed into a controllable knob β€” real-time through extreme slow-motion β€” while the output video stays at original fps.

It is based on the LTX-2.5 foundation model.

Prompt
A wide shot captures a busy urban street scene under bright daylight, featuring tall glass and stone buildings lining both sides, with a prominent vertical sign displaying "RADIO CITY" centered between structures; cars are completely stopped on a white crosswalk due to a visible red traffic light, and numerous pedestrians are actively crossing the street from left to right across the foreground; the camera remains static, presenting a front-facing viewpoint that encompasses the entire width of the roadway and sidewalk area, while the ambient soundscape includes the muted rumble of idling vehicles, the occasional distant city traffic noise, and the soft shuffling of many footsteps as people move across the asphalt; a medium shot frames several individuals walking purposefully across the crosswalk, their legs moving in synchronized steps toward the right edge of the frame, accompanied by a low, steady background musical score suggesting routine city activity, all rendered with crisp high-resolution detail and richly saturated film-grade color emphasizing the textures of the concrete, glass facades, and pedestrian clothing.

Model Files

ltx-2.5-22b-lora-slow-motion-control-1.0.safetensors

Model Details

  • Base Model: LTX-2.5-22B Video
  • Training Type: standard LoRA
  • Control Type: a speed conditioning value that decouples motion frame rate from playback frame rate
  • Modality: image-to-video
  • Pipeline details: no external models and no preprocessing at inference β€” one LoRA plus a pipeline that exposes the speed knob.

Intended Use & Out-of-Scope

Intended use: image-to-video generation where you want controllable slow-motion of physical action β€” splashes, punches, body shakes, spins, cloth and hair motion, falling liquids β€” at a fixed provided fps playback rate.

Out of scope: arbitrary video restyling, and any use without the speed / dual-fps wiring. With a generic loader that ignores the speed value you get a plain LoRA and none of the intended motion control.

How It Works

Unlike a normal LTX run, which uses a single frame rate for both the model and the output file, this LoRA needs two values:

Knob Meaning
Playback fps (frame_rate) Always 24 β€” the rate the mp4 plays at
Motion speed (speed) The slow-motion knob. The pipeline derives motion_fps = frame_rate / speed

Keeping frame_rate = 24:

speed Motion fps Effect
1.0 24 real-time
0.5 48 2Γ— slow
0.2 120 5Γ— slow
0.1 240 10Γ— slow
0.05 480 20Γ— slow
0.025 960 40Γ— slow

Without the LoRA, pushing motion fps high mostly produces smearing and ghosting. With it, you get genuine high-speed-camera-style slow-motion.

Prompting: write a normal image-to-video caption. There is no trigger word and no special phrasing β€” do not add "slow motion", "high fps", or any speed wording. The speed value alone drives the effect, and the same caption should be reused across every speed.

Usage

πŸ”Œ ComfyUI

  1. Copy ltx-2.5-22b-lora-slow-motion-control-1.0.safetensors into models/loras.
  2. Load LTX-2.5_I2V_Speed_Control_flow.json from this repo β€” it wires the LoRA and the speed knob for you, and lists the LTX-2.5 models it needs in its own note.
  3. Set the speed node (ships at 0.2) to taste and keep the frame rate at 24.

LTX-2 🐍 Python (CLI)

distilled_speed_demo.py in this repo is a minimal driver that adds the speed knob to the stock LTX-2.5 distilled two-stage pipeline.

Prerequisites

  1. A checkout of LTX-2 with its environment installed (uv sync --frozen from the repo root). Run the script with that environment's Python, so ltx_core and ltx_pipelines are importable.

  2. This LoRA: ltx-2.5-22b-lora-slow-motion-control-1.0.safetensors.

  3. The LTX-2.5 base components from Lightricks/LTX-2.5:

    Slot File
    Transformer diffusion_models/ltx-2.5-22b-distilled-transformer-bf16.safetensors
    Text encoder text_encoders/gemma4-12b-with-proj-ltx-2.5-bf16.safetensors
    Video VAE vae/ltx-2.5-video-vae-bf16.safetensors
    Audio VAE vae/ltx-2.5-audio-vae-bf16.safetensors
    Spatial upsampler latent_upscale_models/ltx-2.5-latent-spatial-upscaler-x2-bf16-1.0.safetensors

Run

python distilled_speed_demo.py \
  --transformer-path       path/to/ltx-2.5-22b-distilled-transformer-bf16.safetensors \
  --text-encoder-path      path/to/gemma4-12b-with-proj-ltx-2.5-bf16.safetensors \
  --video-vae-path         path/to/ltx-2.5-video-vae-bf16.safetensors \
  --audio-vae-path         path/to/ltx-2.5-audio-vae-bf16.safetensors \
  --spatial-upsampler-path path/to/ltx-2.5-latent-spatial-upscaler-x2-bf16-1.0.safetensors \
  --lora path/to/ltx-2.5-22b-lora-slow-motion-control-1.0.safetensors 1.0 \
  --prompt "A wide shot of a busy city crosswalk, pedestrians crossing left to right, static camera." \
  --image reference_image.png 0 1.0 \
  --speed 0.2 \
  --num-frames 121 --frame-rate 24 \
  --height 1088 --width 1920 --seed 42 \
  --output-path output.mp4

Constraints

  • --height / --width must both be divisible by 64 (this is a two-stage pipeline). 1088x1920 and 1920x1088 are the tested sizes.
  • --num-frames must satisfy (frames - 1) % 8 == 0 β€” e.g. 121.
  • --image PATH FRAME_IDX STRENGTH conditions the opening frame. The still is resized and center-cropped to the output aspect, so give it something close to the target ratio or expect to lose edges.

Notes

  • The distilled pipeline uses fixed sigmas (8 steps, then 3 at full resolution), so there is no guidance scale and no negative prompt β€” LoRA strength and --speed are the controls.
  • Audio is generated alongside the video, so describing the soundscape in the prompt has an effect.
  • Add --duration-head-path path/to/ltx-2.5-duration-head-bf16.safetensors if you want to omit --num-frames and let the clip length be predicted from the prompt.
  • Out of memory? Add --offload cpu, or generate at 544x960 and upscale afterwards.

Recommended Settings

  • LoRA strength / weight: 1.0
  • Resolution & frames: 1920Γ—1088, 121 frames, 24 fps playback
  • Frame count: must satisfy (frames - 1) % 8 == 0 (e.g. 121)
  • Playback frame rate: always 24
  • Speeds to try: 1.0, 0.5, 0.2, 0.1, 0.05, 0.025
  • Seed: 42 for the published examples
  • Prompting: regular captions only, identical across speeds, no trigger phrase

Dataset

Trained on real high-speed slow-motion footage from SloMo-44K (cut and speed-weighted), following the dual-fps idea from Seeing Fast and Slow.

The full cut is 85,389 clips. Each clip stores an effective training fps of src_fps / speed, which is the temporal-RoPE motion conditioner rather than the mp4 playback rate.

Source capture fps (container / camera fps of the originals):

Source fps Clips Share
30 41,541 48.6%
24 19,917 23.3%
25 11,696 13.7%
60 8,595 10.1%
50 2,363 2.8%
other ~1,277 ~1.5%

Effective motion fps seen in training (src_fps / speed) β€” what the LoRA conditions on:

Effective fps Clips Share
60–120 17,146 20.1%
120–240 34,440 40.3%
240–480 23,961 28.1%
480–1000 7,451 8.7%
1000+ 1,074 1.3%
<60 ~1,317 ~1.5%

Median effective fps β‰ˆ 195; p90 β‰ˆ 480. Dataset speed labels skew slow (median β‰ˆ 0.15): ~49% very slow (<0.15), ~40% mid (0.15–0.3), ~11% mid-fast (0.3–0.7), and under 1% near real-time.

Training

  • Technique: LoRA (rank 64, alpha 64) on the DiT transformer
  • Hyperparameters: bf16 mixed precision, learning rate 2e-4 (linear), batch size 8 (8Γ— H100)
  • Steps: full-80k recipe; shipped checkpoint is step 45,000
  • Infrastructure: LTX-2 Community Trainer

Tips & Troubleshooting

  • To adjust slow-motion change only speed and not frame_rate
  • Do not rewrite the prompt per speed β€” use the same caption at every speed; only speed changes.
  • Frame count must be 8k + 1 (e.g. 121); other values break the VAE temporal grid.
  • No slow-motion effect at all? The speed value almost certainly is not reaching the model β€” a plain LoRA loader applies the weights but not the conditioning. Check the speed knob is wired.
  • Motion looks smeared rather than slow? Lower speed in steps (0.5 β†’ 0.2 β†’ 0.1) rather than jumping straight to an extreme value, and confirm LoRA strength is 1.0.

References

License

See the LTX-2-community-license for full terms.

Acknowledgments

Downloads last month
4
Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support

Model tree for Lightricks/LTX-2.5-22b-LoRA-Slow-Motion-Control

Adapter
(25)
this model

Collection including Lightricks/LTX-2.5-22b-LoRA-Slow-Motion-Control