fix loading models

This commit is contained in:
Vladimir Mandic
2024-06-02 11:51:42 -04:00
parent 7ea81450ba
commit 3cd12c51f5
4 changed files with 11 additions and 3 deletions
+1
View File
@@ -10,6 +10,7 @@
- fix negative prompt parsing from metadata
- fix stable cascade progress monitoring
- fix variation seed with hires pass
- fix loading models trained with onetrainer
- add variation seed info to metadata
- workaround for scale-by when using modernui
- lock torch-directml version
+2 -1
View File
@@ -216,7 +216,8 @@ def decode_first_stage(model, x, full_quality=True):
def get_fixed_seed(seed):
if seed is None or seed == '' or seed == -1:
return int(random.randrange(4294967294))
random.seed()
seed = int(random.randrange(4294967294))
return seed
+3 -1
View File
@@ -12,10 +12,11 @@ import os.path
from os import mkdir
from urllib import request
from enum import Enum
import diffusers
import diffusers.loaders.single_file_utils
from rich import progress # pylint: disable=redefined-builtin
import torch
import safetensors.torch
import diffusers
from omegaconf import OmegaConf
from transformers import logging as transformers_logging
from ldm.util import instantiate_from_config
@@ -1056,6 +1057,7 @@ def load_diffuser(checkpoint_info=None, already_loaded_state_dict=None, timer=No
else:
diffusers_load_config['config'] = get_load_config(checkpoint_info.path, model_type, config_type='json')
if hasattr(pipeline, 'from_single_file'):
diffusers.loaders.single_file_utils.CHECKPOINT_KEY_NAMES["clip"] = "cond_stage_model.transformer.text_model.embeddings.position_embedding.weight" # TODO patch for diffusers==0.28.0
diffusers_load_config['use_safetensors'] = True
diffusers_load_config['cache_dir'] = shared.opts.hfcache_dir # use hfcache instead of diffusers dir as this is for config only in case of single-file
if shared.opts.disable_accelerate:
+5 -1
View File
@@ -81,8 +81,10 @@ def apply_file_wildcards(prompt, replaced = [], not_found = [], recursion=0, see
def apply_wildcards_to_prompt(prompt, all_wildcards, seed=-1, silent=False):
if len(prompt) == 0:
return prompt
if seed > 0:
old_state = None
if seed > 0 and len(all_wildcards) > 0:
random.seed(seed)
old_state = random.getstate()
replaced = {}
t0 = time.time()
for style_wildcards in all_wildcards:
@@ -104,6 +106,8 @@ def apply_wildcards_to_prompt(prompt, all_wildcards, seed=-1, silent=False):
shared.log.debug(f'Wildcards applied: {replaced} path="{shared.opts.wildcards_dir}" type=style time={t1-t0:.2f}')
if (len(replaced_file) > 0 or len(not_found) > 0) and not silent:
shared.log.debug(f'Wildcards applied: {replaced_file} missing: {not_found} path="{shared.opts.wildcards_dir}" type=file time={t2-t2:.2f} ')
if old_state is not None:
random.setstate(old_state)
return prompt