Instructions to use qwecja/ltx-ugc-bundle with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- LTX.io
How to use qwecja/ltx-ugc-bundle with LTX.io:
# Install the LTX-2 pipelines git clone https://github.com/Lightricks/LTX-2.git cd LTX-2 uv sync --frozen
# Download the weights from this repo, plus the Gemma text encoder hf download qwecja/ltx-ugc-bundle --local-dir models/ltx-ugc-bundle hf download google/gemma-3-12b-it-qat-q4_0-unquantized --local-dir models/gemma-3-12b
# Fast pipeline (distilled model, no distilled LoRA needed) uv run python -m ltx_pipelines.distilled \ --distilled-checkpoint-path models/ltx-ugc-bundle/<distilled-checkpoint>.safetensors \ --spatial-upsampler-path models/ltx-ugc-bundle/<spatial-upsampler>.safetensors \ --gemma-root models/gemma-3-12b \ --prompt "A beautiful sunset over the ocean" \ --output-path output.mp4 # For image-to-video, add: --image path/to/image.jpg 0 0.8# HQ pipeline (two-stage, higher quality) uv run python -m ltx_pipelines.ti2vid_two_stages_hq \ --checkpoint-path models/ltx-ugc-bundle/<checkpoint>.safetensors \ --distilled-lora models/ltx-ugc-bundle/<distilled-lora>.safetensors 0.8 \ --spatial-upsampler-path models/ltx-ugc-bundle/<spatial-upsampler>.safetensors \ --gemma-root models/gemma-3-12b \ --prompt "A beautiful sunset over the ocean" \ --output-path output.mp4 # For image-to-video, add: --image path/to/image.jpg 0 0.8 - Notebooks
- Google Colab
- Kaggle
| COLORS_FG = { | |
| 'BLACK': '\33[30m', | |
| 'RED': '\33[31m', | |
| 'GREEN': '\33[32m', | |
| 'YELLOW': '\33[33m', | |
| 'BLUE': '\33[34m', | |
| 'MAGENTA': '\33[35m', | |
| 'CYAN': '\33[36m', | |
| 'WHITE': '\33[37m', | |
| 'GREY': '\33[90m', | |
| 'BRIGHT_RED': '\33[91m', | |
| 'BRIGHT_GREEN': '\33[92m', | |
| 'BRIGHT_YELLOW': '\33[93m', | |
| 'BRIGHT_BLUE': '\33[94m', | |
| 'BRIGHT_MAGENTA': '\33[95m', | |
| 'BRIGHT_CYAN': '\33[96m', | |
| 'BRIGHT_WHITE': '\33[97m', | |
| } | |
| COLORS_STYLE = { | |
| 'RESET': '\33[0m', | |
| 'BOLD': '\33[1m', | |
| 'NORMAL': '\33[22m', | |
| 'ITALIC': '\33[3m', | |
| 'UNDERLINE': '\33[4m', | |
| 'BLINK': '\33[5m', | |
| 'BLINK2': '\33[6m', | |
| 'SELECTED': '\33[7m', | |
| } | |
| COLORS_BG = { | |
| 'BLACK': '\33[40m', | |
| 'RED': '\33[41m', | |
| 'GREEN': '\33[42m', | |
| 'YELLOW': '\33[43m', | |
| 'BLUE': '\33[44m', | |
| 'MAGENTA': '\33[45m', | |
| 'CYAN': '\33[46m', | |
| 'WHITE': '\33[47m', | |
| 'GREY': '\33[100m', | |
| 'BRIGHT_RED': '\33[101m', | |
| 'BRIGHT_GREEN': '\33[102m', | |
| 'BRIGHT_YELLOW': '\33[103m', | |
| 'BRIGHT_BLUE': '\33[104m', | |
| 'BRIGHT_MAGENTA': '\33[105m', | |
| 'BRIGHT_CYAN': '\33[106m', | |
| 'BRIGHT_WHITE': '\33[107m', | |
| } | |
| def log_node_success(node_name, message=None): | |
| """Logs a success message.""" | |
| _log_node(COLORS_FG["GREEN"], node_name, message) | |
| def log_node_info(node_name, message=None): | |
| """Logs an info message.""" | |
| _log_node(COLORS_FG["CYAN"], node_name, message) | |
| def log_node_warn(node_name, message=None): | |
| """Logs an warn message.""" | |
| _log_node(COLORS_FG["YELLOW"], node_name, message) | |
| def log_node_error(node_name, message=None): | |
| """Logs an warn message.""" | |
| _log_node(COLORS_FG["RED"], node_name, message) | |
| def log_node(node_name, message=None): | |
| """Logs a message.""" | |
| _log_node(COLORS_FG["CYAN"], node_name, message) | |
| def _log_node(color, node_name, message=None, prefix=''): | |
| print(_get_log_msg(color, node_name, message, prefix=prefix)) | |
| def _get_log_msg(color, node_name, message=None, prefix=''): | |
| msg = f'{COLORS_STYLE["BOLD"]}{color}{prefix}[EasyUse] {node_name.replace(" (EasyUse)", "")}' | |
| msg += f':{COLORS_STYLE["RESET"]} {message}' if message is not None else f'{COLORS_STYLE["RESET"]}' | |
| return msg | |