fix ltx model selection

Signed-off-by: Vladimir Mandic <mandic00@live.com>
This commit is contained in:
Vladimir Mandic
2025-10-05 11:59:58 -04:00
parent 23f2deaa58
commit 50c3385cf9
5 changed files with 18 additions and 19 deletions
+4 -3
View File
@@ -108,9 +108,10 @@
- reference: fix download for sd15/sdxl reference models
- fix checks in init/mask image decode
- fix hf token with extra chars
- **FramePack** job state tracking
- **LTXVideo** with offloading
- **WAN** with offloading
- **FramePack** add job state tracking
- **LTXVideo** fix model selection in ltx tab
- **LTXVideo** fix run with offloading
- **WAN** fix run with offloading
## Update for 2025-09-15
+3 -1
View File
@@ -13,7 +13,7 @@ from modules.ltx.ltx_util import get_bucket, get_frames, load_model, load_upsamp
debug = shared.log.trace if os.environ.get('SD_VIDEO_DEBUG', None) is not None else lambda *args, **kwargs: None
engine, model = 'LTX Video', 'LTXVideo 0.9.7 13B'
# engine, model = 'LTX Video', 'LTXVideo 0.9.7 13B'
upsample_repo_id = "a-r-r-o-w/LTX-Video-0.9.7-Latent-Spatial-Upsampler-diffusers"
upsample_pipe = None
queue_lock = threading.Lock()
@@ -21,6 +21,7 @@ queue_lock = threading.Lock()
def run_ltx(task_id,
_ui_state,
model:str,
prompt:str,
negative:str,
styles:list[str],
@@ -73,6 +74,7 @@ def run_ltx(task_id,
memstats.reset_stats()
timer.process.reset()
yield None, 'LTX: Loading...'
engine = 'LTX Video'
load_model(engine, model)
shared.state.begin('Video', task_id=task_id)
+1 -13
View File
@@ -10,18 +10,6 @@ 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):
@@ -30,7 +18,6 @@ def create_ui(prompt, negative, styles, overrides):
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)
@@ -90,6 +77,7 @@ def create_ui(prompt, negative, styles, overrides):
state_inputs = [task_id, ui_state]
video_inputs = [
model,
prompt, negative, styles,
width, height, frames,
steps, sampler_index, seed,
+8 -1
View File
@@ -4,6 +4,9 @@ from PIL import Image
from modules import devices, shared, sd_models, timer, extra_networks
loaded_model: str = None
def get_bucket(size: int):
return int(size) - (int(size) % shared.sd_model.vae_temporal_compression_ratio)
@@ -13,11 +16,15 @@ def get_frames(frames: int):
def load_model(engine: str, model: str):
global loaded_model # pylint: disable=global-statement
if loaded_model == model:
return
t0 = time.time()
from modules.video_models import models_def, video_load
selected: models_def.Model = [m for m in models_def.models[engine] if m.name == model][0]
shared.log.info(f'Video load: cls={selected.repo_cls.__name__} repo="{selected.repo}"')
shared.log.info(f'Video load: engine="{engine}" selected="{model}" {selected}')
video_load.load_model(selected)
loaded_model = model
t1 = time.time()
shared.sd_model = sd_models.apply_balanced_offload(shared.sd_model)
t2 = time.time()
+2 -1
View File
@@ -1,6 +1,6 @@
import os
import gradio as gr
from modules import shared, sd_models, ui_common, ui_sections, ui_symbols, call_queue
from modules import shared, sd_models, ui_common, ui_sections, ui_symbols, ui_video_vlm, call_queue
from modules.ui_components import ToolButton
from modules.video_models import models_def, video_utils
from modules.video_models import video_run
@@ -112,6 +112,7 @@ def create_ui(prompt, negative, styles, overrides):
init_image = gr.Image(elem_id="video_image", show_label=False, type="pil", image_mode="RGB", width=256, height=256)
gr.HTML("<br>&nbsp Last image")
last_image = gr.Image(elem_id="video_last", show_label=False, type="pil", image_mode="RGB", width=256, height=256)
vlm_enhance, vlm_model, vlm_system_prompt = ui_video_vlm.create_ui(prompt_element=prompt, image_element=init_image)
with gr.Accordion(open=False, label="Output", elem_id='video_output_accordion'):
with gr.Row():
save_frames = gr.Checkbox(label='Save image frames', value=False, elem_id="video_save_frames")