mirror of
https://github.com/vladmandic/automatic
synced 2026-09-19 01:04:32 +02:00
update diffusers
This commit is contained in:
+1
-1
@@ -438,7 +438,7 @@ def check_python(supported_minors=[9, 10, 11, 12], reason=None):
|
||||
|
||||
# check diffusers version
|
||||
def check_diffusers():
|
||||
sha = '8cdcdd9e32925200ce5e1cf410fe14a774f3c3a6'
|
||||
sha = '5e1427a7da6e878b958fd5a2422c7763a94ff02b'
|
||||
pkg = pkg_resources.working_set.by_key.get('diffusers', None)
|
||||
minor = int(pkg.version.split('.')[1] if pkg is not None else 0)
|
||||
cur = opts.get('diffusers_version', '') if minor > 0 else ''
|
||||
|
||||
+2
-9
@@ -4,6 +4,7 @@ import torch
|
||||
import transformers
|
||||
from safetensors.torch import load_file
|
||||
from modules import shared, devices, files_cache
|
||||
from installer import install
|
||||
|
||||
|
||||
t5_dict = {}
|
||||
@@ -11,6 +12,7 @@ t5_dict = {}
|
||||
|
||||
def load_t5(t5=None, cache_dir=None):
|
||||
from modules import modelloader
|
||||
modelloader.hf_login()
|
||||
repo_id = 'stabilityai/stable-diffusion-3-medium-diffusers'
|
||||
fn = t5_dict.get(t5) if t5 in t5_dict else None
|
||||
if fn is not None:
|
||||
@@ -34,30 +36,21 @@ def load_t5(t5=None, cache_dir=None):
|
||||
shared.log.error(f"FLUX: Failed to cast text encoder to {devices.dtype}, set dtype to {t5.dtype}")
|
||||
raise
|
||||
elif 'fp16' in t5.lower():
|
||||
modelloader.hf_login()
|
||||
t5 = transformers.T5EncoderModel.from_pretrained(repo_id, subfolder='text_encoder_3', cache_dir=cache_dir, torch_dtype=devices.dtype)
|
||||
elif 'fp4' in t5.lower():
|
||||
modelloader.hf_login()
|
||||
from installer import install
|
||||
install('bitsandbytes', quiet=True)
|
||||
quantization_config = transformers.BitsAndBytesConfig(load_in_4bit=True)
|
||||
t5 = transformers.T5EncoderModel.from_pretrained(repo_id, subfolder='text_encoder_3', quantization_config=quantization_config, cache_dir=cache_dir, torch_dtype=devices.dtype)
|
||||
elif 'fp8' in t5.lower():
|
||||
modelloader.hf_login()
|
||||
from installer import install
|
||||
install('bitsandbytes', quiet=True)
|
||||
quantization_config = transformers.BitsAndBytesConfig(load_in_8bit=True)
|
||||
t5 = transformers.T5EncoderModel.from_pretrained(repo_id, subfolder='text_encoder_3', quantization_config=quantization_config, cache_dir=cache_dir, torch_dtype=devices.dtype)
|
||||
elif 'qint8' in t5.lower():
|
||||
modelloader.hf_login()
|
||||
from installer import install
|
||||
install('optimum-quanto', quiet=True)
|
||||
from modules.sd_models_compile import optimum_quanto_model
|
||||
t5 = transformers.T5EncoderModel.from_pretrained(repo_id, subfolder='text_encoder_3', cache_dir=cache_dir, torch_dtype=devices.dtype)
|
||||
t5 = optimum_quanto_model(t5, weights="qint8", activations="none")
|
||||
elif 'int8' in t5.lower():
|
||||
modelloader.hf_login()
|
||||
from installer import install
|
||||
install('nncf==2.7.0', quiet=True)
|
||||
from modules.sd_models_compile import nncf_compress_model
|
||||
from modules.sd_hijack import NNCF_T5DenseGatedActDense
|
||||
|
||||
@@ -682,7 +682,7 @@ def set_diffuser_options(sd_model, vae = None, op: str = 'model', offload=True):
|
||||
if hasattr(sd_model, "vae"):
|
||||
if vae is not None:
|
||||
sd_model.vae = vae
|
||||
shared.log.debug(f'Setting {op} VAE: name={sd_vae.loaded_vae_file}')
|
||||
shared.log.debug(f'Setting {op} VAE: name="{sd_vae.loaded_vae_file}"')
|
||||
if shared.opts.diffusers_vae_upcast != 'default':
|
||||
sd_model.vae.config.force_upcast = True if shared.opts.diffusers_vae_upcast == 'true' else False
|
||||
shared.log.debug(f'Setting {op} VAE: upcast={sd_model.vae.config.force_upcast}')
|
||||
@@ -1234,6 +1234,8 @@ def load_diffuser(checkpoint_info=None, already_loaded_state_dict=None, timer=No
|
||||
else:
|
||||
model_config = get_load_config(checkpoint_info.path, model_type, config_type='json')
|
||||
if model_config is not None:
|
||||
if debug_load:
|
||||
shared.log.debug(f'Model config: path="{model_config}"')
|
||||
diffusers_load_config['config_files'] = model_config
|
||||
if model_type.startswith('Stable Diffusion 3'):
|
||||
from modules.model_sd3 import load_sd3
|
||||
@@ -1257,6 +1259,8 @@ def load_diffuser(checkpoint_info=None, already_loaded_state_dict=None, timer=No
|
||||
else:
|
||||
shared.log.error(f'Diffusers {op} cannot load safetensor model: {checkpoint_info.path} {shared.opts.diffusers_pipeline}')
|
||||
return
|
||||
if shared.opts.diffusers_vae_upcast != 'default' and model_type in ['Stable Diffusion', 'Stable Diffusion XL']:
|
||||
diffusers_load_config['force_upcast'] = True if shared.opts.diffusers_vae_upcast == 'true' else False
|
||||
if debug_load:
|
||||
shared.log.debug(f'Model args: {diffusers_load_config}')
|
||||
if sd_model is not None:
|
||||
|
||||
Reference in New Issue
Block a user