Instructions to use RuneXX/LTX-2.3-Workflows with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- LTX-2
How to use RuneXX/LTX-2.3-Workflows with LTX-2:
# Install the LTX-2 pipelines git clone https://github.com/Lightricks/LTX-2.git cd LTX-2 uv sync --extra natten
# Download weights from this repo # Substitute filenames from this repo's "Files and versions" if they differ hf download RuneXX/LTX-2.3-Workflows \ diffusion_models/<distilled-transformer>.safetensors \ text_encoders/gemma4-12b-with-proj-ltx-2.5-bf16.safetensors \ vae/<video-vae>.safetensors \ vae/<audio-vae>.safetensors \ latent_upscale_models/<spatial-upsampler>.safetensors \ latent_upscale_models/<temporal-upsampler>.safetensors \ --local-dir models/LTX-2.3-Workflows # DFR requires the detailing IC-LoRA (separate repo; strength is fixed at 0.5) hf download Lightricks/LTX-2.5-22b-IC-LoRA-Pixel-Spatial-Upscaler --local-dir models/LTX-2.5-22b-IC-LoRA-Pixel-Spatial-Upscaler# Distilled LTX-2.5 pipeline (fast) uv run python -m ltx_pipelines.distilled \ --transformer-path models/LTX-2.3-Workflows/diffusion_models/<distilled-transformer>.safetensors \ --text-encoder-path models/LTX-2.3-Workflows/text_encoders/gemma4-12b-with-proj-ltx-2.5-bf16.safetensors \ --video-vae-path models/LTX-2.3-Workflows/vae/<video-vae>.safetensors \ --audio-vae-path models/LTX-2.3-Workflows/vae/<audio-vae>.safetensors \ --spatial-upsampler-path models/LTX-2.3-Workflows/latent_upscale_models/<spatial-upsampler>.safetensors \ --num-frames 121 \ --prompt "A beautiful sunset over the ocean" \ --output-path output.mp4 # For image-to-video, add: --image path/to/image.jpg 0 0.8# DFR pipeline (higher detail fidelity; optional temporal 2x/4x) uv run python -m ltx_pipelines.dfr_pipeline \ --transformer-path models/LTX-2.3-Workflows/diffusion_models/<distilled-transformer>.safetensors \ --text-encoder-path models/LTX-2.3-Workflows/text_encoders/gemma4-12b-with-proj-ltx-2.5-bf16.safetensors \ --video-vae-path models/LTX-2.3-Workflows/vae/<video-vae>.safetensors \ --audio-vae-path models/LTX-2.3-Workflows/vae/<audio-vae>.safetensors \ --spatial-upsampler-path models/LTX-2.3-Workflows/latent_upscale_models/<spatial-upsampler>.safetensors \ --temporal-upsampler-path models/LTX-2.3-Workflows/latent_upscale_models/<temporal-upsampler>.safetensors \ --detailing-lora models/LTX-2.5-22b-IC-LoRA-Pixel-Spatial-Upscaler/ltx-2.5-22b-ic-lora-pixel-spatial-upscaler-x2-1.0.safetensors \ --spatial-upscalings 1 \ --temporal-upscalings 1 \ --height 1088 \ --width 1920 \ --num-frames 121 \ --prompt "A beautiful sunset over the ocean" \ --output-path output.mp4 # For 4K: --spatial-upscalings 2 --width 3840 --height 2176 # For image-to-video, add: --image path/to/image.jpg 0 0.8 - Notebooks
- Google Colab
- Kaggle
why do all the i2v workflows use hardcoded sizes
for ease of use you should (imo, at least) be using the source image resolution as it's not guaranteed that the default values you have set are within the same aspect ratio. it also means that the user has to manually change the resolution every time the input image is changed, which is insanity.
simply get the image res, scale down to 1mp then continue from there.
is there a benefit to having the width and height having to be set by the user like this?
both ways have its pro and cons.
If you have low ram you might want to generate at 832px - and want to keep same resolution that works for them
And if you have a square image, you might what to crop to a 16:9 etc etc
So thats why I opted for the resize node instead of the 1mb node. But that node also has its plus sides, such as those you mentioned
Could perhaps add both, and have a little toggle to choose. Will have in mind for sure ;-)