mirror of
https://github.com/vladmandic/automatic
synced 2026-09-20 01:31:13 +02:00
@@ -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
@@ -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
@@ -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)}')
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user