mirror of
https://github.com/lllyasviel/Fooocus.git
synced 2026-08-16 13:13:16 +02:00
feat: add performance hyper-sd based on 4step LoRA (#2812)
* feat: add performance hyper-sd based on 4step LoRA * feat: use LoRA weight 0.8, sampler dpmpp_sde_gpu and scheduler_name karras suggested in https://github.com/lllyasviel/Fooocus/discussions/2813#discussioncomment-9245251 results see https://github.com/lllyasviel/Fooocus/discussions/2813#discussioncomment-9275251 * feat: change ByteDance huggingface profile with mashb1t * wip: add hyper-sd 8 step cfg lora with negative prompt support * feat: remove hyper-sd8 performance still waiting for the release of hyper-sd 4step CFG LoRA, not yet satisfied with any of the CFG LoRAs compared to non-cfg ones. see https://huggingface.co/ByteDance/Hyper-SD
This commit is contained in:
@@ -275,6 +275,33 @@ def worker():
|
|||||||
adm_scaler_negative = 1.0
|
adm_scaler_negative = 1.0
|
||||||
adm_scaler_end = 0.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
|
||||||
|
|
||||||
|
elif performance_selection == Performance.HYPER_SD8:
|
||||||
|
print('Enter Hyper-SD8 mode.')
|
||||||
|
progressbar(async_task, 1, 'Downloading Hyper-SD components ...')
|
||||||
|
loras += [(modules.config.downloading_sdxl_hyper_sd_cfg_lora(), 0.3)]
|
||||||
|
|
||||||
|
sampler_name = 'dpmpp_sde_gpu'
|
||||||
|
scheduler_name = 'normal'
|
||||||
|
|
||||||
print(f'[Parameters] Adaptive CFG = {adaptive_cfg}')
|
print(f'[Parameters] Adaptive CFG = {adaptive_cfg}')
|
||||||
print(f'[Parameters] Sharpness = {sharpness}')
|
print(f'[Parameters] Sharpness = {sharpness}')
|
||||||
print(f'[Parameters] ControlNet Softness = {controlnet_softness}')
|
print(f'[Parameters] ControlNet Softness = {controlnet_softness}')
|
||||||
|
|||||||
+12
-2
@@ -553,7 +553,8 @@ wildcard_filenames = []
|
|||||||
|
|
||||||
sdxl_lcm_lora = 'sdxl_lcm_lora.safetensors'
|
sdxl_lcm_lora = 'sdxl_lcm_lora.safetensors'
|
||||||
sdxl_lightning_lora = 'sdxl_lightning_4step_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):
|
def get_model_filenames(folder_paths, extensions=None, name_filter=None):
|
||||||
@@ -627,13 +628,22 @@ def downloading_sdxl_lcm_lora():
|
|||||||
|
|
||||||
def downloading_sdxl_lightning_lora():
|
def downloading_sdxl_lightning_lora():
|
||||||
load_file_from_url(
|
load_file_from_url(
|
||||||
url='https://huggingface.co/ByteDance/SDXL-Lightning/resolve/main/sdxl_lightning_4step_lora.safetensors',
|
url='https://huggingface.co/mashb1t/misc/resolve/main/sdxl_lightning_4step_lora.safetensors',
|
||||||
model_dir=paths_loras[0],
|
model_dir=paths_loras[0],
|
||||||
file_name=sdxl_lightning_lora
|
file_name=sdxl_lightning_lora
|
||||||
)
|
)
|
||||||
return sdxl_lightning_lora
|
return sdxl_lightning_lora
|
||||||
|
|
||||||
|
|
||||||
|
def downloading_sdxl_hyper_sd_lora():
|
||||||
|
load_file_from_url(
|
||||||
|
url='https://huggingface.co/mashb1t/misc/resolve/main/sdxl_hyper_sd_4step_lora.safetensors',
|
||||||
|
model_dir=paths_loras[0],
|
||||||
|
file_name=sdxl_hyper_sd_lora
|
||||||
|
)
|
||||||
|
return sdxl_hyper_sd_lora
|
||||||
|
|
||||||
|
|
||||||
def downloading_controlnet_canny():
|
def downloading_controlnet_canny():
|
||||||
load_file_from_url(
|
load_file_from_url(
|
||||||
url='https://huggingface.co/lllyasviel/misc/resolve/main/control-lora-canny-rank128.safetensors',
|
url='https://huggingface.co/lllyasviel/misc/resolve/main/control-lora-canny-rank128.safetensors',
|
||||||
|
|||||||
+4
-1
@@ -110,6 +110,7 @@ class Steps(IntEnum):
|
|||||||
SPEED = 30
|
SPEED = 30
|
||||||
EXTREME_SPEED = 8
|
EXTREME_SPEED = 8
|
||||||
LIGHTNING = 4
|
LIGHTNING = 4
|
||||||
|
HYPER_SD = 4
|
||||||
|
|
||||||
|
|
||||||
class StepsUOV(IntEnum):
|
class StepsUOV(IntEnum):
|
||||||
@@ -117,6 +118,7 @@ class StepsUOV(IntEnum):
|
|||||||
SPEED = 18
|
SPEED = 18
|
||||||
EXTREME_SPEED = 8
|
EXTREME_SPEED = 8
|
||||||
LIGHTNING = 4
|
LIGHTNING = 4
|
||||||
|
HYPER_SD = 4
|
||||||
|
|
||||||
|
|
||||||
class Performance(Enum):
|
class Performance(Enum):
|
||||||
@@ -124,6 +126,7 @@ class Performance(Enum):
|
|||||||
SPEED = 'Speed'
|
SPEED = 'Speed'
|
||||||
EXTREME_SPEED = 'Extreme Speed'
|
EXTREME_SPEED = 'Extreme Speed'
|
||||||
LIGHTNING = 'Lightning'
|
LIGHTNING = 'Lightning'
|
||||||
|
HYPER_SD = 'Hyper-SD'
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def list(cls) -> list:
|
def list(cls) -> list:
|
||||||
@@ -133,7 +136,7 @@ class Performance(Enum):
|
|||||||
def has_restricted_features(cls, x) -> bool:
|
def has_restricted_features(cls, x) -> bool:
|
||||||
if isinstance(x, Performance):
|
if isinstance(x, Performance):
|
||||||
x = x.value
|
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:
|
def steps(self) -> int | None:
|
||||||
return Steps[self.name].value if Steps[self.name] else None
|
return Steps[self.name].value if Steps[self.name] else None
|
||||||
|
|||||||
Reference in New Issue
Block a user