From e224bf48c995e48617fc19ade38cbd554a185ad4 Mon Sep 17 00:00:00 2001 From: Vladimir Mandic Date: Fri, 28 Mar 2025 09:09:20 -0400 Subject: [PATCH] xyz restore settings on done Signed-off-by: Vladimir Mandic --- TODO.md | 2 +- extensions-builtin/sdnext-modernui | 2 +- javascript/sdnext.css | 1 + scripts/xyz_grid_classes.py | 68 ++++++++++++++++++++++++------ 4 files changed, 58 insertions(+), 15 deletions(-) diff --git a/TODO.md b/TODO.md index 1bf6102a6..dcfeb76a9 100644 --- a/TODO.md +++ b/TODO.md @@ -9,7 +9,7 @@ Main ToDo list can be found at [GitHub projects](https://github.com/users/vladma - Video: Hunyuan Video I2V: requires `transformers==4.47.1` - Video: Latte 1 T2V: dtype mismatch - Video: WAN 2.1 14B I2V 480p/720p: broken offload -- Video: WAN 2.1 14B I2V 480p/720p: custom number of frames +- Video: WAN 2.1 14B I2V 480p/720p: broken custom number of frames - Video: CogVideoX 1.5 5B T2V/I2V: all-gray output - Video: Allegro T2V: all-gray output diff --git a/extensions-builtin/sdnext-modernui b/extensions-builtin/sdnext-modernui index baee2e439..d41350e07 160000 --- a/extensions-builtin/sdnext-modernui +++ b/extensions-builtin/sdnext-modernui @@ -1 +1 @@ -Subproject commit baee2e4397537554e6db67e7e2496258f024880f +Subproject commit d41350e07f0c94e733c5ffbda8d64b07e313eea3 diff --git a/javascript/sdnext.css b/javascript/sdnext.css index 3e841346d..e1425271d 100644 --- a/javascript/sdnext.css +++ b/javascript/sdnext.css @@ -115,6 +115,7 @@ button.custom-button { border-radius: var(--button-large-radius); padding: var(- #txt2img_actions_column, #img2img_actions_column, #control_actions, #video_actions { flex-flow: wrap; justify-content: space-between; } #txt2img_seed, #img2img_seed, #control_seed, #video_seed { min-width: 90px !important } #video_generate_box>button { max-width: unset; } +#interrogate_output_prompt>textarea { resize: vertical; } .interrogate { position: absolute; right: 2.8em; top: 0.2em; max-width: fit-content; background: none !important; z-index: 50; font-size: 1.5em !important; } .interrogate:hover { background: var(--button-primary-background-fill-hover) !important; } diff --git a/scripts/xyz_grid_classes.py b/scripts/xyz_grid_classes.py index abcc1d9dd..7c7cd1b48 100644 --- a/scripts/xyz_grid_classes.py +++ b/scripts/xyz_grid_classes.py @@ -25,26 +25,56 @@ class AxisOptionTxt2Img(AxisOption): class SharedSettingsStackHelper(object): - vae = None - schedulers_solver_order = None - tome_ratio = None - todo_ratio = None sd_model_checkpoint = None sd_model_refiner = None sd_model_dict = None sd_vae = None sd_unet = None sd_text_encoder = None + prompt_attention = None + freeu_b1 = None + freeu_b2 = None + freeu_s1 = None + freeu_s2 = None + schedulers_sigma_adjust = None + schedulers_beta_schedule = None + schedulers_beta_start = None + schedulers_beta_end = None + schedulers_shift = None + schedulers_sigma = None + schedulers_timestep_spacing = None + schedulers_timesteps_range = None + schedulers_beta_schedule = None + schedulers_beta_start = None + schedulers_beta_end = None + schedulers_shift = None + scheduler_eta = None + schedulers_solver_order = None + eta_noise_seed_delta = None + tome_ratio = None + todo_ratio = None extra_networks_default_multiplier = None disable_weights_auto_swap = None - prompt_attention = None def __enter__(self): - #Save overridden settings so they can be restored later. - self.vae = shared.opts.sd_vae + # Save overridden settings so they can be restored later + self.prompt_attention = shared.opts.prompt_attention + self.schedulers_sigma_adjust = shared.opts.schedulers_sigma_adjust + self.schedulers_timestep_spacing = shared.opts.schedulers_timestep_spacing + self.schedulers_timesteps_range = shared.opts.schedulers_timesteps_range self.schedulers_solver_order = shared.opts.schedulers_solver_order + self.schedulers_beta_schedule = shared.opts.schedulers_beta_schedule + self.schedulers_beta_start = shared.opts.schedulers_beta_start + self.schedulers_beta_end = shared.opts.schedulers_beta_end + self.schedulers_shift = shared.opts.schedulers_shift + self.scheduler_eta = shared.opts.scheduler_eta + self.eta_noise_seed_delta = shared.opts.eta_noise_seed_delta self.tome_ratio = shared.opts.tome_ratio self.todo_ratio = shared.opts.todo_ratio + self.freeu_b1 = shared.opts.freeu_b1 + self.freeu_b2 = shared.opts.freeu_b2 + self.freeu_s1 = shared.opts.freeu_s1 + self.freeu_s2 = shared.opts.freeu_s2 self.sd_model_checkpoint = shared.opts.sd_model_checkpoint self.sd_model_refiner = shared.opts.sd_model_refiner self.sd_model_dict = shared.opts.sd_model_dict @@ -53,18 +83,30 @@ class SharedSettingsStackHelper(object): self.sd_text_encoder = shared.opts.sd_text_encoder self.extra_networks_default_multiplier = shared.opts.extra_networks_default_multiplier self.disable_weights_auto_swap = shared.opts.disable_weights_auto_swap - self.prompt_attention = shared.opts.prompt_attention shared.opts.data["disable_weights_auto_swap"] = False def __exit__(self, exc_type, exc_value, tb): - #Restore overriden settings after plot generation. + # Restore overriden settings after plot generation shared.opts.data["disable_weights_auto_swap"] = self.disable_weights_auto_swap - shared.opts.data["sd_vae"] = self.vae - shared.opts.data["schedulers_solver_order"] = self.schedulers_solver_order - shared.opts.data["tome_ratio"] = self.tome_ratio - shared.opts.data["todo_ratio"] = self.todo_ratio shared.opts.data["extra_networks_default_multiplier"] = self.extra_networks_default_multiplier shared.opts.data["prompt_attention"] = self.prompt_attention + shared.opts.data["schedulers_solver_order"] = self.schedulers_solver_order + shared.opts.data["schedulers_sigma_adjust"] = self.schedulers_sigma_adjust + shared.opts.data["schedulers_timestep_spacing"] = self.schedulers_timestep_spacing + shared.opts.data["schedulers_timesteps_range"] = self.schedulers_timesteps_range + shared.opts.data["schedulers_beta_schedule"] = self.schedulers_beta_schedule + shared.opts.data["schedulers_beta_start"] = self.schedulers_beta_start + shared.opts.data["schedulers_beta_end"] = self.schedulers_beta_end + shared.opts.data["schedulers_shift"] = self.schedulers_shift + shared.opts.data["scheduler_eta"] = self.scheduler_eta + shared.opts.data["eta_noise_seed_delta"] = self.eta_noise_seed_delta + shared.opts.data["freeu_b1"] = self.freeu_b1 + shared.opts.data["freeu_b2"] = self.freeu_b2 + shared.opts.data["freeu_s1"] = self.freeu_s1 + shared.opts.data["freeu_s2"] = self.freeu_s2 + shared.opts.data["tome_ratio"] = self.tome_ratio + shared.opts.data["todo_ratio"] = self.todo_ratio + if self.sd_model_checkpoint != shared.opts.sd_model_checkpoint: shared.opts.data["sd_model_checkpoint"] = self.sd_model_checkpoint sd_models.reload_model_weights(op='model')