diff --git a/modules/async_worker.py b/modules/async_worker.py index 5056bcbc..abc78d65 100644 --- a/modules/async_worker.py +++ b/modules/async_worker.py @@ -260,6 +260,25 @@ def worker(): adm_scaler_negative = 1.0 adm_scaler_end = 0.0 + elif performance_selection == Performance.LIGHTNING: + print('Enter Lightning mode.') + progressbar(async_task, 1, 'Downloading Lightning components ...') + loras += [(modules.config.downloading_sdxl_lightning_lora(), 1.0)] + + if refiner_model_name != 'None': + print(f'Refiner disabled in Lightning mode.') + + refiner_model_name = 'None' + sampler_name = 'euler' + scheduler_name = 'sgm_uniform' + sharpness = 0.0 + guidance_scale = 1.0 + adaptive_cfg = 1.0 + refiner_switch = 1.0 + adm_scaler_positive = 1.0 + adm_scaler_negative = 1.0 + adm_scaler_end = 0.0 + if translate_prompts: from modules.translator import translate2en prompt = translate2en(prompt, 'prompt') @@ -896,7 +915,11 @@ def worker(): img_paths.append(log(x, d, metadata_parser, output_format)) yield_result(async_task, img_paths, black_out_nsfw, False, - do_not_show_finished_images=len(tasks) == 1 or disable_intermediate_results or sampler_name == 'lcm') + do_not_show_finished_images=len(tasks) == 1 + or disable_intermediate_results + or performance_selection == Performance.EXTREME_SPEED + or performance_selection == Performance.LIGHTNING) + except ldm_patched.modules.model_management.InterruptProcessingException as e: if async_task.last_stop == 'skip': print('User skipped') diff --git a/modules/config.py b/modules/config.py index 71708555..9432c4ca 100644 --- a/modules/config.py +++ b/modules/config.py @@ -541,6 +541,7 @@ with open(config_example_path, "w", encoding="utf-8") as json_file: model_filenames = [] lora_filenames = [] sdxl_lcm_lora = 'sdxl_lcm_lora.safetensors' +sdxl_lightning_lora = 'sdxl_lightning_4step_lora.safetensors' def get_model_filenames(folder_paths, name_filter=None): @@ -604,6 +605,14 @@ def downloading_sdxl_lcm_lora(): ) return sdxl_lcm_lora +def downloading_sdxl_lightning_lora(): + load_file_from_url( + url='https://huggingface.co/ByteDance/SDXL-Lightning/resolve/main/sdxl_lightning_4step_lora.safetensors', + model_dir=paths_loras[0], + file_name=sdxl_lightning_lora + ) + return sdxl_lightning_lora + def downloading_controlnet_canny(): load_file_from_url( diff --git a/modules/flags.py b/modules/flags.py index aecd7f41..df11c8d7 100644 --- a/modules/flags.py +++ b/modules/flags.py @@ -100,18 +100,21 @@ class Steps(IntEnum): QUALITY = 60 SPEED = 30 EXTREME_SPEED = 8 + LIGHTNING = 4 class StepsUOV(IntEnum): QUALITY = 36 SPEED = 18 EXTREME_SPEED = 8 + LIGHTNING = 4 class Performance(Enum): QUALITY = 'Quality' SPEED = 'Speed' EXTREME_SPEED = 'Extreme Speed' + LIGHTNING = 'Lightning' @classmethod def list(cls) -> list: @@ -127,5 +130,6 @@ class Performance(Enum): performance_selections = [ (f'Quality \U00002223 {Steps.QUALITY.value} steps', Performance.QUALITY.value), (f'Speed \U00002223 {Steps.SPEED.value} steps', Performance.SPEED.value), - (f'Extreme Speed (LCM) \U00002223 {Steps.EXTREME_SPEED.value} steps, intermediate results disabled', Performance.EXTREME_SPEED.value) + (f'Extreme Speed (LCM) \U00002223 {Steps.EXTREME_SPEED.value} steps, intermediate results disabled', Performance.EXTREME_SPEED.value), + (f'Lightning \U00002223 {Steps.LIGHTNING.value} steps, intermediate results disabled', Performance.LIGHTNING.value) ] diff --git a/presets/lightning.json b/presets/lightning.json index 56881c42..72199cf4 100644 --- a/presets/lightning.json +++ b/presets/lightning.json @@ -1,5 +1,5 @@ { - "default_model": "sdxl_lightning_8step.safetensors", + "default_model": "juggernautXL_v8Rundiffusion.safetensors", "default_refiner": "None", "default_refiner_switch": 0.5, "default_loras": [ @@ -24,11 +24,11 @@ 1.0 ] ], - "default_cfg_scale": 1.0, + "default_cfg_scale": 4.0, "default_sample_sharpness": 2.0, "default_sampler": "euler", "default_scheduler": "sgm_uniform", - "default_performance": "Speed", + "default_performance": "Lightning", "default_prompt": "", "default_prompt_negative": "", "default_styles": [ @@ -37,11 +37,17 @@ "Fooocus Sharp" ], "default_aspect_ratio": "1152*896", - "default_overwrite_step": 8, + "default_overwrite_step": -1, "checkpoint_downloads": { - "sdxl_lightning_8step.safetensors": "https://huggingface.co/ByteDance/SDXL-Lightning/resolve/main/sdxl_lightning_8step.safetensors" + "juggernautXL_v8Rundiffusion.safetensors": "https://huggingface.co/lllyasviel/fav_models/resolve/main/fav/juggernautXL_v8Rundiffusion.safetensors" }, "embeddings_downloads": {}, "lora_downloads": {}, - "previous_default_models": [] + "previous_default_models": [ + "juggernautXL_version8Rundiffusion.safetensors", + "juggernautXL_version7Rundiffusion.safetensors", + "juggernautXL_v7Rundiffusion.safetensors", + "juggernautXL_version6Rundiffusion.safetensors", + "juggernautXL_v6Rundiffusion.safetensors" + ] } \ No newline at end of file