diff --git a/modules/async_worker.py b/modules/async_worker.py index 1001b502..d91e349c 100644 --- a/modules/async_worker.py +++ b/modules/async_worker.py @@ -273,6 +273,25 @@ def worker(): adm_scaler_negative = 1.0 adm_scaler_end = 0.0 + elif performance_selection == Performance.HYPER_SD: + print('Enter Hyper-SD mode.') + progressbar(async_task, 1, 'Downloading Hyper-SD components ...') + loras += [(modules.config.downloading_sdxl_hyper_sd_lora(), 0.8)] + + if refiner_model_name != 'None': + print(f'Refiner disabled in Hyper-SD mode.') + + refiner_model_name = 'None' + sampler_name = 'dpmpp_sde_gpu' + scheduler_name = 'karras' + 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') diff --git a/modules/config.py b/modules/config.py index fdb6535e..441ec582 100644 --- a/modules/config.py +++ b/modules/config.py @@ -569,7 +569,8 @@ wildcard_filenames = [] sdxl_lcm_lora = 'sdxl_lcm_lora.safetensors' sdxl_lightning_lora = 'sdxl_lightning_4step_lora.safetensors' -loras_metadata_remove = [sdxl_lcm_lora, sdxl_lightning_lora] +sdxl_hyper_sd_lora = 'sdxl_hyper_sd_4step_lora.safetensors' +loras_metadata_remove = [sdxl_lcm_lora, sdxl_lightning_lora, sdxl_hyper_sd_lora] def get_model_filenames(folder_paths, extensions=None, name_filter=None): @@ -645,6 +646,15 @@ def downloading_sdxl_lightning_lora(): return sdxl_lightning_lora +def downloading_sdxl_hyper_sd_lora(): + load_file_from_url( + url='https://huggingface.co/ByteDance/Hyper-SD/resolve/main/Hyper-SDXL-4steps-lora.safetensors', + model_dir=paths_loras[0], + file_name=sdxl_hyper_sd_lora + ) + return sdxl_hyper_sd_lora + + def downloading_controlnet_canny(): load_file_from_url( url='https://huggingface.co/lllyasviel/misc/resolve/main/control-lora-canny-rank128.safetensors', diff --git a/modules/flags.py b/modules/flags.py index d3f558c5..a347ca7b 100644 --- a/modules/flags.py +++ b/modules/flags.py @@ -111,6 +111,7 @@ class Steps(IntEnum): SPEED = 30 EXTREME_SPEED = 8 LIGHTNING = 4 + HYPER_SD = 4 class StepsUOV(IntEnum): @@ -118,6 +119,7 @@ class StepsUOV(IntEnum): SPEED = 18 EXTREME_SPEED = 8 LIGHTNING = 4 + HYPER_SD = 4 class Performance(Enum): @@ -125,6 +127,7 @@ class Performance(Enum): SPEED = 'Speed' EXTREME_SPEED = 'Extreme Speed' LIGHTNING = 'Lightning' + HYPER_SD = 'Hyper-SD' @classmethod def list(cls) -> list: @@ -134,7 +137,7 @@ class Performance(Enum): def has_restricted_features(cls, x) -> bool: if isinstance(x, Performance): x = x.value - return x in [cls.EXTREME_SPEED.value, cls.LIGHTNING.value] + return x in [cls.EXTREME_SPEED.value, cls.LIGHTNING.value, cls.HYPER_SD.value] def steps(self) -> int | None: return Steps[self.name].value if Steps[self.name] else None @@ -147,5 +150,6 @@ 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'Lightning \U00002223 {Steps.LIGHTNING.value} steps, intermediate results disabled', Performance.LIGHTNING.value) + (f'Lightning \U00002223 {Steps.LIGHTNING.value} steps, intermediate results disabled', Performance.LIGHTNING.value), + (f'Hyper-SD \U00002223 {Steps.HYPER_SD.value} steps, intermediate results disabled', Performance.HYPER_SD.value) ] diff --git a/presets/hyper-sd.json b/presets/hyper-sd.json new file mode 100644 index 00000000..700b694d --- /dev/null +++ b/presets/hyper-sd.json @@ -0,0 +1,58 @@ +{ + "default_model": "juggernautXL_v8Rundiffusion.safetensors", + "default_refiner": "None", + "default_refiner_switch": 0.5, + "default_loras": [ + [ + true, + "None", + 1.0 + ], + [ + true, + "None", + 1.0 + ], + [ + true, + "None", + 1.0 + ], + [ + true, + "None", + 1.0 + ], + [ + true, + "None", + 1.0 + ] + ], + "default_cfg_scale": 4.0, + "default_sample_sharpness": 2.0, + "default_sampler": "dpmpp_sde_gpu", + "default_scheduler": "karras", + "default_performance": "Hyper-SD", + "default_prompt": "", + "default_prompt_negative": "", + "default_styles": [ + "Fooocus V2", + "Fooocus Enhance", + "Fooocus Sharp" + ], + "default_aspect_ratio": "1152*896", + "default_overwrite_step": -1, + "checkpoint_downloads": { + "juggernautXL_v8Rundiffusion.safetensors": "https://huggingface.co/lllyasviel/fav_models/resolve/main/fav/juggernautXL_v8Rundiffusion.safetensors" + }, + "embeddings_downloads": {}, + "lora_downloads": {}, + "previous_default_models": [ + "juggernautXL_version8Rundiffusion.safetensors", + "juggernautXL_version7Rundiffusion.safetensors", + "juggernautXL_v7Rundiffusion.safetensors", + "juggernautXL_version6Rundiffusion.safetensors", + "juggernautXL_v6Rundiffusion.safetensors" + ] +} \ No newline at end of file