mirror of https://github.com/vladmandic/automatic
Change the default SDXL sampler to Euler A + Linear and set Guidence scale value to 4
parent
2a348908f2
commit
181369b792
|
|
@ -1,18 +1,19 @@
|
|||
{
|
||||
"_class_name": "EulerDiscreteScheduler",
|
||||
"_diffusers_version": "0.19.0.dev0",
|
||||
"_class_name": "EulerAncestralDiscreteScheduler",
|
||||
"_diffusers_version": "0.35.1",
|
||||
"beta_end": 0.012,
|
||||
"beta_schedule": "scaled_linear",
|
||||
"beta_schedule": "linear",
|
||||
"beta_start": 0.00085,
|
||||
"clip_sample": false,
|
||||
"interpolation_type": "linear",
|
||||
"num_train_timesteps": 1000,
|
||||
"prediction_type": "epsilon",
|
||||
"rescale_betas_zero_snr": false,
|
||||
"sample_max_value": 1.0,
|
||||
"set_alpha_to_one": false,
|
||||
"skip_prk_steps": true,
|
||||
"steps_offset": 1,
|
||||
"timestep_spacing": "leading",
|
||||
"timestep_spacing": "trailing",
|
||||
"trained_betas": null,
|
||||
"use_karras_sigmas": false
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1287,7 +1287,7 @@ def install_optional():
|
|||
install('hf_xet', ignore=True, quiet=True)
|
||||
install('nvidia-ml-py', ignore=True, quiet=True)
|
||||
install('optimum-quanto==0.2.7', ignore=True, quiet=True)
|
||||
install('pillow-jxl-plugin==1.3.4', ignore=True, quiet=True)
|
||||
install('pillow-jxl-plugin==1.3.5', ignore=True, quiet=True)
|
||||
install('torchao==0.10.0', ignore=True, quiet=True)
|
||||
install('ultralytics==8.3.40', ignore=True, quiet=True)
|
||||
try:
|
||||
|
|
|
|||
|
|
@ -567,18 +567,30 @@ def load_sdnq_model(checkpoint_info, pipeline, diffusers_load_config, op):
|
|||
return sd_model
|
||||
|
||||
|
||||
def set_overrides(sd_model, checkpoint_info):
|
||||
def set_overrides(sd_model, checkpoint_info, model_type):
|
||||
checkpoint_info_name = checkpoint_info.name.lower()
|
||||
if "Kandinsky" in sd_model.__class__.__name__:
|
||||
sd_model.scheduler.name = 'DDIM'
|
||||
elif (
|
||||
checkpoint_info.path.lower().endswith('.safetensors')
|
||||
and model_type.startswith("Stable Diffusion") and model_type != "Stable Diffusion 3"
|
||||
): # SDXL and SD 1.5
|
||||
scheduler_config = sd_model.scheduler.config
|
||||
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['use_flow_sigmas'] = True
|
||||
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')
|
||||
|
|
@ -590,6 +602,7 @@ def set_overrides(sd_model, checkpoint_info):
|
|||
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)
|
||||
|
|
@ -713,12 +726,9 @@ def load_diffuser(checkpoint_info=None, op='model', revision=None): # pylint: di
|
|||
shared.log.error(f'Load {op}: name="{checkpoint_info.name if checkpoint_info is not None else None}" not loaded')
|
||||
return
|
||||
|
||||
set_overrides(sd_model, checkpoint_info)
|
||||
set_overrides(sd_model, checkpoint_info, model_type)
|
||||
set_defaults(sd_model, checkpoint_info)
|
||||
|
||||
if "Kandinsky" in sd_model.__class__.__name__: # need a special case
|
||||
sd_model.scheduler.name = 'DDIM'
|
||||
|
||||
if hasattr(sd_model, "unet") and model_type not in ['Stable Cascade']: # others calls load_diffuser again
|
||||
sd_unet.load_unet(sd_model, checkpoint_info.path)
|
||||
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ def create_guidance_inputs(tab):
|
|||
guidance_btn = ui_components.ToolButton(value=ui_symbols.book, elem_id=f"{tab}_guider_docs")
|
||||
guidance_btn.click(fn=None, _js='getGuidanceDocs', inputs=[guidance_name], outputs=[])
|
||||
with gr.Row(visible=shared.opts.model_modular_enable):
|
||||
guidance_scale = gr.Slider(minimum=1.0, maximum=30.0, step=0.1, label='_Guidance scale', value=6.0, elem_id=f"{tab}_guidance_scale")
|
||||
guidance_scale = gr.Slider(minimum=1.0, maximum=30.0, step=0.1, label='_Guidance scale', value=4.0, elem_id=f"{tab}_guidance_scale")
|
||||
guidance_rescale = gr.Slider(minimum=0.0, maximum=1.0, step=0.05, label='_Guidance rescale', value=0.0, elem_id=f"{tab}_guidance_rescale")
|
||||
with gr.Row(visible=shared.opts.model_modular_enable):
|
||||
guidance_start = gr.Slider(minimum=0.0, maximum=1.0, step=0.05, label='_Guidance start', value=0.0, elem_id=f"{tab}_guidance_start")
|
||||
|
|
|
|||
Loading…
Reference in New Issue