From 9389aa710abbc2518fafe2b87b6a070804e54e4d Mon Sep 17 00:00:00 2001 From: Vladimir Mandic Date: Fri, 17 Oct 2025 14:43:41 -0400 Subject: [PATCH] video implement sampler shift Signed-off-by: Vladimir Mandic --- CHANGELOG.md | 1 + modules/sd_samplers.py | 2 +- modules/video_models/video_run.py | 12 ++++++++++++ 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index fa8dd55d8..92cfe5063 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ Post-release fixes: - SDNQ-SVD fallback on incompatible layers - Huggingface model download - Remove unused UI settings +- Video implement dynamic and manual sampler shift ## Update for 2025-10-17 diff --git a/modules/sd_samplers.py b/modules/sd_samplers.py index c41eb91fb..9fec9d9e4 100644 --- a/modules/sd_samplers.py +++ b/modules/sd_samplers.py @@ -51,7 +51,7 @@ def find_sampler_config(name): def restore_default(model): if model is None: return None - if getattr(model, "default_scheduler", None) is not None: + if getattr(model, "default_scheduler", None) is not None and getattr(model, "scheduler") is not None: model.scheduler = copy.deepcopy(model.default_scheduler) if hasattr(model, "prior_pipe") and hasattr(model.prior_pipe, "scheduler"): model.prior_pipe.scheduler = copy.deepcopy(model.default_scheduler) diff --git a/modules/video_models/video_run.py b/modules/video_models/video_run.py index 40f7e154f..57d3fbc23 100644 --- a/modules/video_models/video_run.py +++ b/modules/video_models/video_run.py @@ -1,4 +1,5 @@ import os +import copy import time from modules import shared, errors, sd_models, processing, devices, images, ui_common from modules.video_models import models_def, video_utils, video_load, video_vae, video_overrides, video_save, video_prompt @@ -92,10 +93,21 @@ def generate(*args, **kwargs): p.task_args['height'] = p.height p.task_args['output_type'] = 'latent' if (p.vae_type == 'Remote') else 'pil' p.ops.append('video') + + # set scheduler params orig_dynamic_shift = shared.opts.schedulers_dynamic_shift orig_sampler_shift = shared.opts.schedulers_shift shared.opts.data['schedulers_dynamic_shift'] = dynamic_shift shared.opts.data['schedulers_shift'] = sampler_shift + if hasattr(shared.sd_model.scheduler, 'config') and hasattr(shared.sd_model.scheduler, 'register_to_config'): + if hasattr(shared.sd_model.scheduler.config, 'use_dynamic_shifting'): + shared.sd_model.scheduler.config.use_dynamic_shifting = dynamic_shift + shared.sd_model.scheduler.register_to_config(use_dynamic_shifting = dynamic_shift) + if hasattr(shared.sd_model.scheduler.config, 'flow_shift'): + shared.sd_model.scheduler.config.flow_shift = sampler_shift + shared.sd_model.scheduler.register_to_config(flow_shift = sampler_shift) + shared.sd_model.default_scheduler = copy.deepcopy(shared.sd_model.scheduler) + video_overrides.set_overrides(p, selected) debug(f'Video: task_args={p.task_args}')