---
title: LTX-2.5-22b-LoRA-Slow-Motion-Control
canonical_url: "https://www.modelscope.cn/models/Lightricks/LTX-2.5-22b-LoRA-Slow-Motion-Control"
md_url: "https://www.modelscope.cn/models/Lightricks/LTX-2.5-22b-LoRA-Slow-Motion-Control.md"
repository: Lightricks/LTX-2.5-22b-LoRA-Slow-Motion-Control
last_updated: 2026-09-18
license: other
pipeline_tag: image-to-video
tasks:
  - image-to-video
base_model:
  - Lightricks/LTX-2.5
base_model_relation: adapter
parameters: 327.2M
tensor_type:
  - BF16
library_name:
  - lora
  - safetensors
  - pytorch
frameworks:
  - pytorch
language:
  - en
downloads: 69
stars: 0
tags:
  - ltx-video
  - lora
  - ltx-2.5
  - image-to-video
  - slow-motion
  - speed-control
  - ltx
---

# LTX-2.5-22b-LoRA-Slow-Motion-Control

> LTX-2.5-22b-LoRA-Slow-Motion-Control - Lightricks 在 ModelScope 开源的模型。LTX-2.5 22B LoRA Slow Motion Control

Lightricks/LTX-2.5-22b-LoRA-Slow-Motion-Control 是 ModelScope 魔搭社区上的 327.2M 参数image-to-video模型，采用 other 许可，基于 Lightricks/LTX-2.5 构建。

- **Repository**: Lightricks/LTX-2.5-22b-LoRA-Slow-Motion-Control
- **License**: other
- **Tasks**: image-to-video
- **Parameters**: 327.2M
- **Base model**: Lightricks/LTX-2.5
- **Tags**: ltx-video, lora, ltx-2.5, image-to-video, slow-motion, speed-control, ltx
- **Downloads**: 69
- **Stars**: 0
- **Last updated**: 2026-09-18

Source: https://www.modelscope.cn/models/Lightricks/LTX-2.5-22b-LoRA-Slow-Motion-Control

---

# 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](https://huggingface.co/Lightricks/LTX-2.5) foundation model.

<Gallery />

## 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`](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`](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](https://github.com/Lightricks/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](https://huggingface.co/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**

```bash
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](https://huggingface.co/datasets/james020619/SloMo-44K) (cut and speed-weighted),
following the dual-fps idea from [Seeing Fast and Slow](https://seeing-fast-and-slow.github.io/).

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](https://github.com/Lightricks/LTX-2/tree/main/packages/ltx-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

- **Code:** [GitHub Repository](https://github.com/Lightricks/LTX-2)
- **ComfyUI:** [ComfyUI-LTXVideo](https://github.com/Lightricks/ComfyUI-LTXVideo/)

## License

See the **[LTX-2-community-license](https://github.com/Lightricks/LTX-2/blob/main/LICENSE-2_x)** for full terms.

## Acknowledgments

- Base model by **[Lightricks](https://ltx.io/)**
- Training infrastructure: **[LTX-2 Community Trainer](https://github.com/Lightricks/LTX-2/tree/main/packages/ltx-trainer)**
- Speed-conditioning concept inspired by **[Seeing Fast and Slow](https://seeing-fast-and-slow.github.io/)** / SloMo-44K
