forked from ashen-sensored/sd_webui_SAG
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathxyz_grid_support_sag.py
76 lines (43 loc) · 2.36 KB
/
xyz_grid_support_sag.py
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
import os
import os.path
import modules.scripts as scripts
xy_grid = None # XY Grid module
script_class = None # additional_networks scripts.Script class
def update_script_args(p, value, arg_idx):
global script_class
for s in scripts.scripts_txt2img.alwayson_scripts:
if isinstance(s, script_class):
args = list(p.script_args)
# print(f"Changed arg {arg_idx} from {args[s.args_from + arg_idx - 1]} to {value}")
args[s.args_from + arg_idx] = value
p.script_args = tuple(args)
break
def apply_module(p, x, xs, i):
update_script_args(p, True, 0) # set Enabled to True
update_script_args(p, x, 2 + 4 * i) # enabled, separate_weights, ({module}, model, weight_unet, weight_tenc), ...
def apply_weight(p, x, xs, i):
update_script_args(p, True, 0)
update_script_args(p, x, 4 + 4 * i ) # enabled, separate_weights, (module, model, {weight_unet, weight_tenc}), ...
update_script_args(p, x, 5 + 4 * i)
def apply_weight_unet(p, x, xs, i):
update_script_args(p, True, 0)
update_script_args(p, x, 4 + 4 * i) # enabled, separate_weights, (module, model, {weight_unet}, weight_tenc), ...
def apply_weight_tenc(p, x, xs, i):
update_script_args(p, True, 0)
update_script_args(p, x, 5 + 4 * i) # enabled, separate_weights, (module, model, weight_unet, {weight_tenc}), ...
def apply_sag_guidance_scale(p, x, xs):
update_script_args(p, x, 0)
update_script_args(p, x, 1)# sag_guidance_scale
def apply_sag_mask_threshold(p, x, xs):
update_script_args(p, x, 0)
update_script_args(p, x, 2)# sag_mask_threshold
def initialize(script):
global xy_grid, script_class
xy_grid = None
script_class = script
for scriptDataTuple in scripts.scripts_data:
if os.path.basename(scriptDataTuple.path) == "xy_grid.py" or os.path.basename(scriptDataTuple.path) == "xyz_grid.py":
xy_grid = scriptDataTuple.module
sag_guidance_scale = xy_grid.AxisOption("SAG Guidance Scale", float, lambda p, x, xs: apply_sag_guidance_scale(p,x,xs), xy_grid.format_value_add_label, None, cost=0.5)
sag_mask_threshold = xy_grid.AxisOption("SAG Mask Threshold", float, lambda p, x, xs: apply_sag_mask_threshold(p,x,xs), xy_grid.format_value_add_label, None, cost=0.5)
xy_grid.axis_options.extend([sag_guidance_scale, sag_mask_threshold])