rootonchair's picture
Update README.md
d67de19 verified
|
Raw
History Blame Contribute Delete
3.45 kB
---
license: other
license_name: ltx-video-2-open-source-license
license_link: https://huggingface.co/Lightricks/LTX-2.3/blob/main/LICENSE
base_model: Lightricks/LTX-2.3
tags:
- ltx2
- video
- audio
- diffusers
pipeline_tag: image-to-video
---
# LTX-2.3 Distilled v1.1 (Diffusers)
Diffusers-format weights for the **v1.1** distilled checkpoint of
[Lightricks/LTX-2.3](https://huggingface.co/Lightricks/LTX-2.3) — a DiT-based foundation
model that jointly generates synchronized video and audio. Runs in **8 steps with CFG = 1**.
This is an unofficial staging conversion. The existing
[`diffusers/LTX-2.3-Distilled-Diffusers`](https://huggingface.co/diffusers/LTX-2.3-Distilled-Diffusers)
repo was converted before the upstream v1.1 distilled checkpoint was published
(v1.0 dates to Mar 5, this repo's source `dg845/LTX-2.3-Distilled-Diffusers` conversion was
done Mar 14, and the v1.1 checkpoint was added upstream on Apr 13) — so that repo still ships
v1.0 weights. This repo swaps in the v1.1 `transformer/` weights on top of the same base
pipeline; every other component (VAE, audio VAE, text encoder, tokenizer, connectors, vocoder,
scheduler config) is unchanged from `diffusers/LTX-2.3-Distilled-Diffusers` and was not
re-converted, since only the DiT was updated upstream.
## Source checkpoint
- File: `ltx-2.3-22b-distilled-1.1.safetensors` from
[`Lightricks/LTX-2.3`](https://huggingface.co/Lightricks/LTX-2.3)
- Converted with `scripts/convert_ltx2_to_diffusers.py --version 2.3 --dit` from a
local `huggingface/diffusers` checkout (`0.40.0.dev0`).
- Architecture (`transformer/config.json`) is byte-for-byte identical to the v1.0 conversion in
`diffusers/LTX-2.3-Distilled-Diffusers` aside from the `_diffusers_version` metadata field —
only the weights changed upstream.
## Usage
Requires a recent build of `diffusers` with LTX-2 support:
```bash
pip install -U git+https://github.com/huggingface/diffusers
```
```python
import torch
from diffusers import LTX2Pipeline
from diffusers.pipelines.ltx2.export_utils import encode_video
from diffusers.pipelines.ltx2.utils import DEFAULT_NEGATIVE_PROMPT, DISTILLED_SIGMA_VALUES
pipe = LTX2Pipeline.from_pretrained(
"rootonchair/LTX-2.3-Distilled-v1.1-Diffusers", torch_dtype=torch.bfloat16
)
pipe.enable_model_cpu_offload()
prompt = "A flowing river in a forest at golden hour, gentle wind in the leaves."
frame_rate = 24.0
video, audio = pipe(
prompt=prompt,
negative_prompt=DEFAULT_NEGATIVE_PROMPT,
width=768,
height=512,
num_frames=121,
frame_rate=frame_rate,
num_inference_steps=8,
sigmas=DISTILLED_SIGMA_VALUES,
guidance_scale=1.0,
output_type="np",
return_dict=False,
)
encode_video(
video[0],
fps=frame_rate,
audio=audio[0].float().cpu(),
audio_sample_rate=pipe.vocoder.config.output_sampling_rate,
output_path="ltx2_distilled_v1_1_t2v.mp4",
)
```
## Notes
- `width`/`height` must be divisible by 32; `num_frames` must equal `8k + 1`.
- Always pass `sigmas=DISTILLED_SIGMA_VALUES`, `num_inference_steps=8`, `guidance_scale=1.0`
for this distilled checkpoint.
- See the [Diffusers LTX-2 docs](https://huggingface.co/docs/diffusers/main/en/api/pipelines/ltx2)
for multimodal guidance, prompt enhancement, and the upscaling/refinement pipeline.
## License
These weights are released under the
[LTX Video 2 Open Source License](https://huggingface.co/Lightricks/LTX-2.3/blob/main/LICENSE).