AUTOMATIC1111 / stable-diffusion-webui

Stable Diffusion web UI
GNU Affero General Public License v3.0
139.2k stars 26.42k forks source link

[Bug]: bad sampler name: DPM++ 2M Karras #15677

Open itsklimov opened 4 months ago

itsklimov commented 4 months ago

Checklist

What happened?

Seems like with Euler a works but with DPM samplers not.

any idea, what else does it check compare to Euler a?

Steps to reproduce the problem

select any DPM sampler and tap Generate

What should have happened?

Generate an images

What browsers do you use to access the UI ?

Mozilla Firefox

Sysinfo

sysinfo-2024-05-01-07-35.json

Console logs

print config: None

WARNING:deforum_helpers.opts_overrider:Error during batch execution: <class 'AssertionError'> - bad sampler name: DPM++ 2M Karras

START OF TRACEBACK
Traceback (most recent call last):
File "/home/its/stable-diffusion-webui/extensions/deforum/scripts/deforum_helpers/run_deforum.py", line 116, in run_deforum
render_animation(args, anim_args, video_args, parseq_args, loop_args, controlnet_args, root)
File "/home/its/stable-diffusion-webui/extensions/deforum/scripts/deforum_helpers/render.py", line 577, in render_animation
image = generate(args, keys, anim_args, loop_args, controlnet_args, root, parseq_adapter, frame_idx, sampler_name=scheduled_sampler_name)
File "/home/its/stable-diffusion-webui/extensions/deforum/scripts/deforum_helpers/generate.py", line 78, in generate
return generate_inner(args, keys, anim_args, loop_args, controlnet_args, root, parseq_adapter, frame, sampler_name)
File "/home/its/stable-diffusion-webui/extensions/deforum/scripts/deforum_helpers/generate.py", line 283, in generate_inner
processed = processing.process_images(p)
File "/home/its/stable-diffusion-webui/modules/processing.py", line 845, in process_images
res = process_images_inner(p)
File "/home/its/stable-diffusion-webui/extensions/sd-webui-controlnet/scripts/batch_hijack.py", line 59, in processing_process_images_hijack
return getattr(processing, '__controlnet_original_process_images_inner')(p, *args, **kwargs)
File "/home/its/stable-diffusion-webui/modules/processing.py", line 915, in process_images_inner
p.init(p.all_prompts, p.all_seeds, p.all_subseeds)
File "/home/its/stable-diffusion-webui/modules/processing.py", line 1582, in init
self.sampler = sd_samplers.create_sampler(self.sampler_name, self.sd_model)
File "/home/its/stable-diffusion-webui/modules/sd_samplers.py", line 37, in create_sampler
assert config is not None, f'bad sampler name: {name}'
AssertionError: bad sampler name: DPM++ 2M Karras
END OF TRACEBACK

User friendly error message:
Error: bad sampler name: DPM++ 2M Karras. Please, check your schedules/ init values.

Additional information

seems like some Samplers are not present in modules/sd_samplers_kdiffusion.py samplers_k_diffusion = [ ('DPM++ 2M', 'sample_dpmpp_2m', ['k_dpmpp_2m'], {'scheduler': 'karras'}), ('DPM++ SDE', 'sample_dpmpp_sde', ['k_dpmpp_sde'], {'scheduler': 'karras', "second_order": True, "brownian_noise": True}), ('DPM++ 2M SDE', 'sample_dpmpp_2m_sde', ['k_dpmpp_2m_sde'], {'scheduler': 'exponential', "brownian_noise": True}), ('DPM++ 2M SDE Heun', 'sample_dpmpp_2m_sde', ['k_dpmpp_2m_sde_heun'], {'scheduler': 'exponential', "brownian_noise": True, "solver_type": "heun"}), ('DPM++ 2S a', 'sample_dpmpp_2s_ancestral', ['k_dpmpp_2s_a'], {'scheduler': 'karras', "uses_ensd": True, "second_order": True}), ('DPM++ 3M SDE', 'sample_dpmpp_3m_sde', ['k_dpmpp_3m_sde'], {'scheduler': 'exponential', 'discard_next_to_last_sigma': True, "brownian_noise": True}), ('Euler a', 'sample_euler_ancestral', ['k_euler_a', 'k_euler_ancestral'], {"uses_ensd": True}), ('Euler', 'sample_euler', ['k_euler'], {}), ('LMS', 'sample_lms', ['k_lms'], {}), ('Heun', 'sample_heun', ['k_heun'], {"second_order": True}), ('DPM2', 'sample_dpm_2', ['k_dpm_2'], {'scheduler': 'karras', 'discard_next_to_last_sigma': True, "second_order": True}), ('DPM2 a', 'sample_dpm_2_ancestral', ['k_dpm_2_a'], {'scheduler': 'karras', 'discard_next_to_last_sigma': True, "uses_ensd": True, "second_order": True}), ('DPM fast', 'sample_dpm_fast', ['k_dpm_fast'], {"uses_ensd": True}), ('DPM adaptive', 'sample_dpm_adaptive', ['k_dpm_ad'], {"uses_ensd": True}), ('Restart', sd_samplers_extra.restart_sampler, ['restart'], {'scheduler': 'karras', "second_order": True}), ]

w-e-w commented 4 months ago

hopefully we can come over solution that will make the old syntax compatible globally

itsklimov commented 4 months ago

I just started using it and haven't seen the previous version. Thanks

w-e-w commented 4 months ago