--- 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).