fix latte1-t2v

Signed-off-by: Vladimir Mandic <mandic00@live.com>
This commit is contained in:
Vladimir Mandic
2025-03-29 13:43:53 -04:00
parent 68d440af5e
commit 1137297e3a
4 changed files with 17 additions and 9 deletions
+1 -1
View File
@@ -7,9 +7,9 @@ Main ToDo list can be found at [GitHub projects](https://github.com/users/vladma
### Issues/Limitations
- Video: Hunyuan Video I2V: requires `transformers==4.47.1` <https://github.com/huggingface/diffusers/issues/11118>
- Video: Latte 1 T2V: dtype mismatch <https://github.com/huggingface/diffusers/issues/11137>
- Video: CogVideoX 1.5 5B T2V/I2V: all-gray output
- Video: Allegro T2V: all-gray output
- Video: Latte1 T2V: garbage output
## Future Candidates
+1 -1
View File
@@ -538,7 +538,7 @@ def check_diffusers():
t_start = time.time()
if args.skip_all or args.skip_git or args.experimental:
return
sha = '617c208bb4cc68fe4518164fee7cbdf5aa44ff78' # diffusers commit hash
sha = '75d7e5cc459f66a53652445d5b281054b297680d' # diffusers commit hash
pkg = pkg_resources.working_set.by_key.get('diffusers', None)
minor = int(pkg.version.split('.')[1] if pkg is not None else 0)
cur = opts.get('diffusers_version', '') if minor > 0 else ''
+10 -4
View File
@@ -14,6 +14,14 @@ def engine_change(engine):
return gr.update(choices=found, value=found[0] if len(found) > 0 else None)
def get_selected(engine, model):
found = [model.name for model in models_def.models.get(engine, [])]
if len(models_def.models[engine]) > 0 and len(found) > 0:
selected = [m for m in models_def.models[engine] if m.name == model][0]
return selected
return None
def model_change(engine, model):
debug(f'Video change: engine="{engine}" model="{model}"')
found = [model.name for model in models_def.models.get(engine, [])]
@@ -23,8 +31,7 @@ def model_change(engine, model):
def model_load(engine, model):
debug(f'Video load: engine="{engine}" model="{model}"')
found = [model.name for model in models_def.models.get(engine, [])]
selected = [m for m in models_def.models[engine] if m.name == model][0] if len(found) > 0 else None
selected = get_selected(engine, model)
yield f'Video model loading: {selected.name}'
if selected:
if 'None' in selected.name:
@@ -43,8 +50,7 @@ def model_load(engine, model):
def run_video(*args):
engine, model = args[2], args[3]
debug(f'Video run: engine="{engine}" model="{model}"')
found = [model.name for model in models_def.models.get(engine, [])]
selected = [m for m in models_def.models[engine] if m.name == model][0] if len(found) > 0 else None
selected = get_selected(engine, model)
if not selected or engine is None or model is None or engine == 'None' or model == 'None':
return video_utils.queue_err('model not selected')
debug(f'Video run: {str(selected)}')
+5 -3
View File
@@ -27,17 +27,19 @@ def set_overrides(p: processing.StableDiffusionProcessingVideo, selected: Model)
shared.sd_model.vae.enable_tiling()
# Latte
if selected.name == 'Latte 1 T2V':
p.task_args['enable_temporal_attentions'] = False
p.task_args['video_length'] = p.frames
p.task_args['enable_temporal_attentions'] = True
p.task_args['video_length'] = 16 * (max(p.frames // 16, 1))
# LTX
if cls == 'LTXImageToVideoPipeline' or cls == 'LTXConditionPipeline':
p.task_args['generator'] = None
if cls == 'LTXConditionPipeline':
p.task_args['strength'] = p.denoising_strength
# WAN
if 'Wan' in cls:
p.task_args['width'] = 16 * (p.width // 16)
p.task_args['height'] = 16 * (p.height // 16)
p.frames = 4 * (p.frames // 4) + 1
p.frames = 4 * (max(p.frames // 4, 1)) + 1
# LTX
if 'LTX' in cls:
p.task_args['width'] = 32 * (p.width // 32)
p.task_args['height'] = 32 * (p.height // 32)