File size: 3,249 Bytes
9ab8b5f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
import logging
from copy import deepcopy
from comfy.model_management import vram_state, VRAMState
from comfy.cli_args import args
from comfy import model_management

xformers_available = model_management.XFORMERS_IS_AVAILABLE
logger = logging.getLogger("smZNodes")
level = logging.INFO
logger.propagate = False
logger.setLevel(level)
stdoutHandler = logging.StreamHandler()
fmt = logging.Formatter("[%(name)s] | %(filename)s:%(lineno)s | %(message)s")
stdoutHandler.setFormatter(fmt)
logger.addHandler(stdoutHandler)

def join_args(*args):
    return ' '.join(map(str, args))

class SimpleNamespaceFast:
    def __repr__(self):
        keys = sorted(self.__dict__)
        items = ("{}={!r}".format(k, self.__dict__[k]) for k in keys)
        return "{}({})".format(type(self).__name__, ", ".join(items))

    def __eq__(self, other):
        return self.__dict__ == other.__dict__

class Options(SimpleNamespaceFast):
    KEY = 'smZ_opts'

    def clone(self):
        return deepcopy(self)

    def update(self, other):
        if isinstance(other, dict):
            self.__dict__ |= other
        else:
            self.__dict__ |= other.__dict__
        return self

opts = Options()
opts.prompt_attention = 'A1111 parser'
opts.prompt_mean_norm = True
opts.comma_padding_backtrack = 20
opts.CLIP_stop_at_last_layers = 1
opts.enable_emphasis = True
opts.use_old_emphasis_implementation = False
opts.disable_nan_check = True
opts.pad_cond_uncond = False
opts.s_min_uncond = 0.0
opts.s_min_uncond_all = False
opts.skip_early_cond = 0.0
opts.upcast_sampling = True
opts.upcast_attn = not getattr(args, 'dont_upcast_attention', False)
opts.textual_inversion_add_hashes_to_infotext  = False
opts.encode_count = 0
opts.max_chunk_count = 0
opts.return_batch_chunks = False
opts.noise = None
opts.start_step = None
opts.pad_with_repeats = True
opts.randn_source = "cpu"
opts.lora_functional = False
opts.use_old_scheduling = True
opts.eta_noise_seed_delta = 0
opts.multi_conditioning = False
opts.eta = 1.0
opts.s_churn = 0.0
opts.s_tmin = 0.0
opts.s_tmax = 0.0 or float('inf')
opts.s_noise = 1.0

opts.use_CFGDenoiser = False
opts.sgm_noise_multiplier = True
opts.debug= False

opts.sdxl_crop_top = 0
opts.sdxl_crop_left = 0
opts.sdxl_refiner_low_aesthetic_score = 2.5
opts.sdxl_refiner_high_aesthetic_score = 6.0

sd_model = Options()
sd_model.cond_stage_model = Options()

cmd_opts = Options()

opts.batch_cond_uncond = False
cmd_opts.lowvram = vram_state == VRAMState.LOW_VRAM
cmd_opts.medvram = vram_state == VRAMState.NORMAL_VRAM
should_batch_cond_uncond = lambda: opts.batch_cond_uncond or not (cmd_opts.lowvram or cmd_opts.medvram)
opts.batch_cond_uncond = True

opts_default = opts.clone()

cmd_opts.xformers = xformers_available
cmd_opts.force_enable_xformers = xformers_available

opts.cross_attention_optimization = "None"
cmd_opts.sub_quad_q_chunk_size = 512
cmd_opts.sub_quad_kv_chunk_size = 512
cmd_opts.sub_quad_chunk_threshold = 80
cmd_opts.token_merging_ratio = 0.0
cmd_opts.token_merging_ratio_img2img = 0.0
cmd_opts.token_merging_ratio_hr = 0.0
cmd_opts.sd_vae_sliced_encode = False
cmd_opts.disable_opt_split_attention = False