Video / Lightricks

LTX 2.5

LTX 2.5 is an image-to-video generation model from Lightricks (repo Lightricks/LTX-2.5). It is distributed under the ltx-2.x-community-license-agreement. The model card indicates support for multilingual input (en, de, es, fr, ja, ko, zh, it, pt) and lists tags covering image-to-video, text-to-video, video-to-video, image-text-to-video, audio-to-video, text-to-audio, video-to-audio, audio-to-audio, text-to-audio-video, image-to-audio-video, and image-text-to-audio-video, along with ltx-video, lightricks, comfyui, diffusion-single-file, and ltx tags. It references arXiv paper 2601.03233, a demo at app.ltx.studio, and includes gated access terms requiring agreement to a privacy policy and consent to receive offers and updates including targeted and personalized advertisements. The model card also indicates self-hosting on your own infrastructure and links to homepage, docs, GitHub, research, API playground, and Discord. No performance, hardware, or compatibility details are provided in the supplied facts.

Verified sourceRepository opened Jul 23, 2026Source checked 9/24/2026Version: 5e6e7101
LOCALRENTED GPUOPEN WEIGHTS

At a glance

Architecture
unknown
License
ltx-2.x-community-license-agreement
Software
LTX Desktop
View the model source
MY HARDWARE

Will it run on your machine?

Save your machine to see a personalized rating and its reasoning.

Add my hardware

Best for

  • Generating video from an input image
  • Text-to-video generation
  • Video-to-video generation
  • Audio-to-video and video-to-audio conversion
  • Multi-modal audio-visual generation such as image-text-to-audio-video
MODEL-SPECIFIC SETUPS

Run it your way

Choose what you want to do with LTX 2.5. Each guide uses this model’s own files and runtime.

Tradeoffs

  • License is ltx-2.x-community-license-agreement, not a standard open-source license
  • Access is gated and requires agreement to privacy policy and consent to receive offers and updates including targeted and personalized advertisements
  • No performance, compatibility, or hardware requirement details are provided in the supplied facts
  • The supplied model facts do not include explicit limitations documented by the model authors
  • No testing, benchmarking, or validation information is provided in the supplied facts

Ways to run it

Diffusers · See official guide

Repository-specific command in publisher documentation; confirm dependencies and hardware in the source.

import torch from diffusers import LTX2ImageToVideoPipeline, LTX2LatentUpsamplePipeline from diffusers.pipelines.ltx2.latent_upsampler import LTX2LatentUpsamplerModel from diffusers.pipelines.ltx2.utils import ( DEFAULT_NEGATIVE_PROMPT, DISTILLED_SIGMA_VALUES, STAGE_2_DISTILLED_SIGMA_VALUES, ) from diffusers.utils import encode_video, load_image MODEL_ID = "Lightricks/LTX-2.5-Diffusers" # Stage 1 resolution; stage 2 runs at 2x this. HEIGHT, WIDTH, NUM_FRAMES, FRAME_RATE = 544, 960, 121, 24.0 pipe = LTX2ImageToVideoPipeline.from_pretrained(MODEL_ID, dtype=torch.bfloat16) pipe.enable_model_cpu_offload() pipe.vae.enable_tiling() # stage 2 decodes at 2x latent_upsampler = LTX2LatentUpsamplerModel.from_pretrained( MODEL_ID, subfolder="latent_upsampler", dtype=torch.bfloat16 ).to("cuda") upsample_pipe = LTX2LatentUpsamplePipeline(vae=pipe.vae, latent_upsampler=latent_upsampler) generator = torch.Generator("cuda").manual_seed(42) shared = dict( image=load_image("path/to/first_frame.jpg"), prompt="The camera slowly dollies out as wind moves through the grass", negative_prompt=DEFAULT_NEGATIVE_PROMPT, frame_rate=FRAME_RATE, guidance_scale=1.0, audio_guidance_scale=1.0, stg_scale=0.0, audio_stg_scale=0.0, modality_scale=1.0, audio_modality_scale=1.0, generator=generator, return_dict=False, ) stage_1_latents, audio_latents = pipe( height=HEIGHT, width=WIDTH, num_frames=NUM_FRAMES, sigmas=DISTILLED_SIGMA_VALUES, output_type="latent", **shared, ) upsampled_latents = upsample_pipe( latents=stage_1_latents, output_type="latent", return_dict=False )[0] # Stage 2 takes its size from the upsampled latents, so pass no height/width. video, audio = pipe( num_frames=NUM_FRAMES, sigmas=STAGE_2_DISTILLED_SIGMA_VALUES, latents=upsampled_latents, audio_latents=audio_latents, noise_scale=STAGE_2_DISTILLED_SIGMA_VALUES[0], output_type="np", **shared, ) encode_video( video[0], fps=int(FRAME_RATE), output_path="output_i2v_two_stage.mp4", audio=audio[0].float().cpu(), audio_sample_rate=pipe.vocoder.config.output_sampling_rate, )
Official instructions

Explore its uses

TEXT-TO-VIDEOIMAGE-TO-VIDEOLOCAL VIDEO

Keep exploring