From a9a39cb64bce7c6dd80076a0b8a3f01b5bf19e92 Mon Sep 17 00:00:00 2001 From: Vladimir Mandic Date: Wed, 24 Sep 2025 09:31:36 -0400 Subject: [PATCH] ltx model selector Signed-off-by: Vladimir Mandic --- CHANGELOG.md | 3 ++- modules/ltx/ltx_ui.py | 17 +++++++++++++++++ wiki | 2 +- 3 files changed, 20 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6104c9043..6a9831dfb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ # Change Log for SD.Next -## Update for 2025-09-23 +## Update for 2025-09-24 - **Models** - [WAN 2.2 14B VACE](https://huggingface.co/alibaba-pai/Wan2.2-VACE-Fun-A14B) @@ -42,6 +42,7 @@ accepts optional `page` parameter to search specific networks page - **reference models** additional example images, thanks @liutyi - **video** support for configurable multi-stage models such as WAN-2.2-14B + - **video** new LTX model selection - **Fixes** - framepack: add explicit hf-login before framepack load - benchmark: remove forced sampler from system info benchmark diff --git a/modules/ltx/ltx_ui.py b/modules/ltx/ltx_ui.py index 27b033af5..e0626bbe4 100644 --- a/modules/ltx/ltx_ui.py +++ b/modules/ltx/ltx_ui.py @@ -3,17 +3,34 @@ import gradio as gr from modules import shared, ui_sections, ui_symbols, ui_common from modules.ui_components import ToolButton from modules.video_models.video_utils import get_codecs +from modules.video_models.models_def import models from modules.ltx import ltx_process debug = shared.log.trace if os.environ.get('SD_VIDEO_DEBUG', None) is not None else lambda *args, **kwargs: None +def load_model(model_name): + if model_name is None or model_name == 'None': + shared.log.info('LTX model unload') + from modules import sd_models + sd_models.unload_model_weights() + return + else: + model_instance = [m for m in models['LTX Video'] if m.name == model_name][0] + from modules.video_models import video_load + video_load.load_model(model_instance) + + def create_ui(prompt, negative, styles, overrides): with gr.Row(): with gr.Column(variant='compact', elem_id="ltx_settings", elem_classes=['settings-column'], scale=1): with gr.Row(): generate = gr.Button('Generate', elem_id="ltx_generate_btn", variant='primary', visible=False) + with gr.Row(): + ltx_models = [m.name for m in models['LTX Video']] + model = gr.Dropdown(label='LTX model', choices=ltx_models, value=ltx_models[0]) + model.change(fn=load_model, inputs=[model], outputs=[], show_progress=True) with gr.Accordion(open=True, label="LTX size", elem_id='ltx_generate_accordion'): with gr.Row(): width, height = ui_sections.create_resolution_inputs('ltx', default_width=832, default_height=480) diff --git a/wiki b/wiki index d86043969..3df7dbfc9 160000 --- a/wiki +++ b/wiki @@ -1 +1 @@ -Subproject commit d86043969fb2ab19c68229a7227e0af8aa4f6c0d +Subproject commit 3df7dbfc9c3e2f39c825f8d76541e13d3c3f097d