From f92b3c8349c43c687b001a57b37331bc1f68d2c7 Mon Sep 17 00:00:00 2001 From: Disty0 Date: Fri, 24 Oct 2025 20:04:50 +0300 Subject: [PATCH] Don't override HF models --- modules/sd_models.py | 59 ++++++++++++++++++++++---------------------- 1 file changed, 29 insertions(+), 30 deletions(-) diff --git a/modules/sd_models.py b/modules/sd_models.py index e1844f495..06e1d2b8e 100644 --- a/modules/sd_models.py +++ b/modules/sd_models.py @@ -579,36 +579,35 @@ def set_overrides(sd_model, checkpoint_info, model_type): scheduler_config['beta_schedule'] = 'linear' scheduler_config['timestep_spacing'] = 'trailing' sd_model.scheduler = diffusers.EulerAncestralDiscreteScheduler.from_config(scheduler_config) - - if 'bigaspv25' in checkpoint_info_name or ('flow' in checkpoint_info_name and 'flower' not in checkpoint_info_name): - scheduler_config = sd_model.scheduler.config - scheduler_config['prediction_type'] = 'flow_prediction' - scheduler_config['beta_schedule'] = 'linear' - scheduler_config['use_flow_sigmas'] = True - sd_model.scheduler = diffusers.UniPCMultistepScheduler.from_config(scheduler_config) - shared.log.info(f'Setting override: model="{checkpoint_info.name}" component=scheduler prediction="flow-prediction"') - elif 'vpred' in checkpoint_info_name or 'v-pred' in checkpoint_info_name or 'v_pred' in checkpoint_info_name: - scheduler_config = sd_model.scheduler.config - scheduler_config['prediction_type'] = 'v_prediction' - scheduler_config['beta_schedule'] = 'scaled_linear' - scheduler_config['rescale_betas_zero_snr'] = True - sd_model.scheduler = diffusers.EulerDiscreteScheduler.from_config(scheduler_config) - shared.log.info(f'Setting override: model="{checkpoint_info.name}" component=scheduler prediction="v-prediction" rescale=True') - elif checkpoint_info.path.lower().endswith('.safetensors'): - try: - from safetensors import safe_open - with safe_open(checkpoint_info.path, framework='pt') as f: - keys = f.keys() - if 'v_pred' in keys: # NoobAI VPred models added empty v_pred and ztsnr keys - scheduler_config = sd_model.scheduler.config - scheduler_config['prediction_type'] = 'v_prediction' - scheduler_config['beta_schedule'] = 'scaled_linear' - if 'ztsnr' in keys: - scheduler_config['rescale_betas_zero_snr'] = True - sd_model.scheduler = diffusers.EulerDiscreteScheduler.from_config(scheduler_config) - shared.log.info(f'Setting override: model="{checkpoint_info.name}" component=scheduler prediction="v-prediction" rescale={scheduler_config.get("rescale_betas_zero_snr", False)}') - except Exception as e: - shared.log.debug(f'Setting override from keys failed: {e}') + if 'bigaspv25' in checkpoint_info_name or ('flow' in checkpoint_info_name and 'flower' not in checkpoint_info_name): + scheduler_config = sd_model.scheduler.config + scheduler_config['prediction_type'] = 'flow_prediction' + scheduler_config['beta_schedule'] = 'linear' + scheduler_config['use_flow_sigmas'] = True + sd_model.scheduler = diffusers.UniPCMultistepScheduler.from_config(scheduler_config) + shared.log.info(f'Setting override: model="{checkpoint_info.name}" component=scheduler prediction="flow-prediction"') + elif 'vpred' in checkpoint_info_name or 'v-pred' in checkpoint_info_name or 'v_pred' in checkpoint_info_name: + scheduler_config = sd_model.scheduler.config + scheduler_config['prediction_type'] = 'v_prediction' + scheduler_config['beta_schedule'] = 'scaled_linear' + scheduler_config['rescale_betas_zero_snr'] = True + sd_model.scheduler = diffusers.EulerDiscreteScheduler.from_config(scheduler_config) + shared.log.info(f'Setting override: model="{checkpoint_info.name}" component=scheduler prediction="v-prediction" rescale=True') + else: + try: + from safetensors import safe_open + with safe_open(checkpoint_info.path, framework='pt') as f: + keys = f.keys() + if 'v_pred' in keys: # NoobAI VPred models added empty v_pred and ztsnr keys + scheduler_config = sd_model.scheduler.config + scheduler_config['prediction_type'] = 'v_prediction' + scheduler_config['beta_schedule'] = 'scaled_linear' + if 'ztsnr' in keys: + scheduler_config['rescale_betas_zero_snr'] = True + sd_model.scheduler = diffusers.EulerDiscreteScheduler.from_config(scheduler_config) + shared.log.info(f'Setting override: model="{checkpoint_info.name}" component=scheduler prediction="v-prediction" rescale={scheduler_config.get("rescale_betas_zero_snr", False)}') + except Exception as e: + shared.log.debug(f'Setting override from keys failed: {e}') def set_defaults(sd_model, checkpoint_info):