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
last frame keep changing from the original inputted last frame
plz tell me how to fix this, my last frame always not accurate from the inputed frame
yeah same I had a someone holding a bottle of water for the last frame input and the words on the bottle were significantly different than the last frame that I input and I had a custom input audio and it would not lipsync not matter what I prompted
i think the problem is on upscale part i got the video i wanted by skipping the upscale part
What workflow?
What workflow?
I was using the FL2V Custom audio workflow and having trouble with the last frame having different fine details from the input last frame, but I never tested further to see if it was actually the spatial upscaler was causing it like Tyfani890 said.
2-pass (2 samplers) will generate more potential differences than 1-pass. So potentially the upscale part can create slight differences from input frame to output.
Its also a strength setting per input frame, you can try set it to 1.0 if its not already.
And I'll check that particular workflow. LTX has 2 ways of using reference frames... Either by a guider or an in-place* ... the guider, is as the name suggest a guide. And the model has freedom to not be a "slave" to the frame inputs (this usually gives a more natural looking video). The in-place is more strict frame injection, that can lead to more accurate re-representation of the input frames, but the video can end up looking a bit jerky or not as smooth, all depending .. .
Also the latent upscaler model had a last frame bug, so make sure you use the latent upscaler model v1.1