From fd3f971b407eaa7247404fc25191d773e3bb5cb7 Mon Sep 17 00:00:00 2001 From: Vladimir Mandic Date: Thu, 9 Nov 2023 17:34:17 -0500 Subject: [PATCH] update steps --- html/reference.json | 7 ++++++- .../Reference/latent-consistency--lcm-sdxl.jpg | Bin 0 -> 63331 bytes modules/processing_diffusers.py | 15 ++++++++------- modules/sd_samplers_diffusers.py | 3 +++ requirements.txt | 2 +- 5 files changed, 18 insertions(+), 9 deletions(-) create mode 100644 models/Reference/latent-consistency--lcm-sdxl.jpg diff --git a/html/reference.json b/html/reference.json index 8c6d752d2..49f85b189 100644 --- a/html/reference.json +++ b/html/reference.json @@ -24,7 +24,12 @@ "desc": "Segmind's Tiny-SD offers a compact, efficient, and distilled version of Realistic Vision 4.0 and is up to 80% faster than SD1.5", "preview": "segmind--tiny-sd.jpg" }, - "LCM Dreamshaper 7": { + "LCM SD-XL": { + "path": "latent-consistency/lcm-sdxl", + "desc": "Latent Consistencey Models enable swift inference with minimal steps on any pre-trained LDMs, including Stable Diffusion. By distilling classifier-free guidance into the model's input, LCM can generate high-quality images in very short inference time. LCM can generate quality images in as few as 3-4 steps, making it blazingly fast.", + "preview": "latent-consistency--lcm-sdxl.jpg" + }, + "LCM SD-1.5 Dreamshaper 7": { "path": "SimianLuo/LCM_Dreamshaper_v7", "desc": "Latent Consistencey Models enable swift inference with minimal steps on any pre-trained LDMs, including Stable Diffusion. By distilling classifier-free guidance into the model's input, LCM can generate high-quality images in very short inference time. LCM can generate quality images in as few as 3-4 steps, making it blazingly fast.", "preview": "simianluo--lcm_dreamshaper_v7.jpg" diff --git a/models/Reference/latent-consistency--lcm-sdxl.jpg b/models/Reference/latent-consistency--lcm-sdxl.jpg new file mode 100644 index 0000000000000000000000000000000000000000..34e6b239476e4a9000e7ee756cc41dac251e9de2 GIT binary patch literal 63331 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≀uUIpSW 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 literal 0 HcmV?d00001 diff --git a/modules/processing_diffusers.py b/modules/processing_diffusers.py index a2d650ca7..bde6efdbc 100644 --- a/modules/processing_diffusers.py +++ b/modules/processing_diffusers.py @@ -387,22 +387,25 @@ def process_diffusers(p: StableDiffusionProcessing, seeds, prompts, negative_pro steps = (p.steps // (1.0 - p.refiner_start)) if shared.sd_model_type == 'sdxl' else p.steps if os.environ.get('SD_STEPS_DEBUG', None) is not None: shared.log.debug(f'Steps: type=base input={p.steps} output={steps} refiner={use_refiner_start}') - return int(steps) + return max(2, int(steps)) def calculate_hires_steps(): - steps = (p.hr_second_pass_steps * p.denoising_strength) if p.hr_second_pass_steps > 0 else (p.steps * p.denoising_strength) + # denoising strength is applied to steps by diffusers so this is no-op + # steps = (p.hr_second_pass_steps * p.denoising_strength) if p.hr_second_pass_steps > 0 else (p.steps * p.denoising_strength) + steps = p.hr_second_pass_steps if p.hr_second_pass_steps > 0 else p.steps if os.environ.get('SD_STEPS_DEBUG', None) is not None: shared.log.debug(f'Steps: type=hires input={p.hr_second_pass_steps} output={steps} denoise={p.denoising_strength}') - return int(steps) + return max(2, int(steps)) def calculate_refiner_steps(): + # diffusers apply additional math to refiner steps, but we leave numbers as-is without correction if p.refiner_start > 0 and p.refiner_start < 1: - steps = (p.refiner_steps // p.refiner_start) if p.refiner_steps > 0 else (p.steps // p.refiner_start) + steps = ((1 - p.refiner_start) * p.refiner_steps) if p.refiner_steps > 0 else ((1 - p.refiner_start) * p.steps) else: steps = (p.denoising_strength * p.refiner_steps) if p.refiner_steps > 0 else (p.denoising_strength * p.steps) if os.environ.get('SD_STEPS_DEBUG', None) is not None: shared.log.debug(f'Steps: type=refiner input={p.refiner_steps} output={steps} start={p.refiner_start} denoise={p.denoising_strength}') - return int(steps) + return max(2, int(steps)) # pipeline type is set earlier in processing, but check for sanity if sd_models.get_diffusers_task(shared.sd_model) != sd_models.DiffusersTaskType.TEXT_2_IMAGE and len(getattr(p, 'init_images' ,[])) == 0: # reset pipeline @@ -460,8 +463,6 @@ def process_diffusers(p: StableDiffusionProcessing, seeds, prompts, negative_pro shared.sd_model = sd_models.set_diffuser_pipe(shared.sd_model, sd_models.DiffusersTaskType.IMAGE_2_IMAGE) recompile_model(hires=True) update_sampler(shared.sd_model, second_pass=True) - if p.hr_second_pass_steps == 0: - p.hr_second_pass_steps = p.steps hires_args = set_pipeline_args( model=shared.sd_model, prompts=[p.refiner_prompt] if len(p.refiner_prompt) > 0 else prompts, diff --git a/modules/sd_samplers_diffusers.py b/modules/sd_samplers_diffusers.py index b613fca99..4891950df 100644 --- a/modules/sd_samplers_diffusers.py +++ b/modules/sd_samplers_diffusers.py @@ -17,6 +17,7 @@ try: UniPCMultistepScheduler, LMSDiscreteScheduler, KDPM2AncestralDiscreteScheduler, + LCMScheduler, ) except Exception as e: import diffusers @@ -40,6 +41,7 @@ config = { 'LMSD': { 'use_karras_sigmas': False, 'timestep_spacing': 'linspace', 'steps_offset': 0 }, 'PNDM': { 'skip_prk_steps': False, 'set_alpha_to_one': False, 'steps_offset': 0 }, 'UniPC': { 'solver_order': 2, 'thresholding': False, 'sample_max_value': 1.0, 'predict_x0': 'bh2', 'lower_order_final': True }, + 'LCM': { 'num_train_timesteps': 1000, 'beta_start': 0.00085, 'beta_end': 0.012, 'beta_schedule': "scaled_linear", 'set_alpha_to_one': True, 'rescale_betas_zero_snr': False }, } samplers_data_diffusers = [ @@ -58,6 +60,7 @@ samplers_data_diffusers = [ sd_samplers_common.SamplerData('Euler', lambda model: DiffusionSampler('Euler', EulerDiscreteScheduler, model), [], {}), sd_samplers_common.SamplerData('Euler a', lambda model: DiffusionSampler('Euler a', EulerAncestralDiscreteScheduler, model), [], {}), sd_samplers_common.SamplerData('Heun', lambda model: DiffusionSampler('Heun', HeunDiscreteScheduler, model), [], {}), + sd_samplers_common.SamplerData('LCM', lambda model: DiffusionSampler('Heun', LCMScheduler, model), [], {}), ] class DiffusionSampler: diff --git a/requirements.txt b/requirements.txt index f34360881..b62ebcb89 100644 --- a/requirements.txt +++ b/requirements.txt @@ -50,7 +50,7 @@ requests==2.31.0 tqdm==4.66.1 accelerate==0.20.3 opencv-python-headless==4.7.0.72 -diffusers==0.22.3 +diffusers==0.23.0 einops==0.4.1 gradio==3.43.2 huggingface_hub==0.18.0