fix handling of online model configs

This commit is contained in:
Vladimir Mandic
2024-09-01 23:19:38 -04:00
parent bdbfa95252
commit 7f2e30576d
3 changed files with 9 additions and 6 deletions
+1
View File
@@ -38,6 +38,7 @@ Other improvements:
improves quality of the flow-matching samplers
- t5 support manually downloaded models
applies to all models that use t5 transformer
- fix handling of model configs if offline config is not available
Work-in-progress:
- flux controlnet support: (*1)
+3 -3
View File
@@ -1213,10 +1213,10 @@ def load_diffuser(checkpoint_info=None, already_loaded_state_dict=None, timer=No
if model_type.startswith('Stable Diffusion'):
if shared.opts.diffusers_force_zeros:
diffusers_load_config['force_zeros_for_empty_prompt '] = shared.opts.diffusers_force_zeros
if diffusers_version < 28:
diffusers_load_config['original_config_file'] = get_load_config(checkpoint_info.path, model_type, config_type='yaml')
else:
diffusers_load_config['config'] = get_load_config(checkpoint_info.path, model_type, config_type='json')
model_config = get_load_config(checkpoint_info.path, model_type, config_type='json')
if model_config is not None:
diffusers_load_config['config_files'] = model_config
if model_type.startswith('Stable Diffusion 3'):
from modules.model_sd3 import load_sd3
sd_model = load_sd3(fn=checkpoint_info.path, cache_dir=shared.opts.diffusers_dir, config=diffusers_load_config.get('config', None))
+5 -3
View File
@@ -212,9 +212,11 @@ def load_vae_diffusers(model_file, vae_file=None, vae_source="unknown-source"):
import diffusers
if os.path.isfile(vae_file):
_pipeline, model_type = sd_models.detect_pipeline(model_file, 'vae')
diffusers_load_config = {
"config": os.path.join(sd_models.get_load_config(model_file, model_type, config_type='json'), 'vae'),
}
vae_config = sd_models.get_load_config(model_file, model_type, config_type='json')
if vae_config is not None:
diffusers_load_config = {
"config": os.path.join(vae_config, 'vae'),
}
if os.path.getsize(vae_file) > 1310944880: # 1.3GB
vae = diffusers.ConsistencyDecoderVAE.from_pretrained('openai/consistency-decoder', **diffusers_load_config) # consistency decoder does not have from single file, so we'll just download it once more
elif os.path.getsize(vae_file) < 10000000: # 10MB