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