diff options
author | Robert Barron <rubberbaron@robustspread.com> | 2023-08-14 07:35:17 +0000 |
---|---|---|
committer | Robert Barron <rubberbaron@robustspread.com> | 2023-08-14 07:35:17 +0000 |
commit | d61e31bae620632c026c927cf6538180447c6918 (patch) | |
tree | 0397dcc8e741ed391164fb6b7e8e374a46f0f4ce /extensions-builtin/Lora/network_norm.py | |
parent | 54f926b11d29910df9f813e2e0ea6d35c6f4a50d (diff) | |
parent | f3b96d4998d8ca376d33efa7a4454e8c28e24255 (diff) | |
download | stable-diffusion-webui-gfx803-d61e31bae620632c026c927cf6538180447c6918.tar.gz stable-diffusion-webui-gfx803-d61e31bae620632c026c927cf6538180447c6918.tar.bz2 stable-diffusion-webui-gfx803-d61e31bae620632c026c927cf6538180447c6918.zip |
Merge remote-tracking branch 'auto1111/dev' into shared-hires-prompt-test
Diffstat (limited to 'extensions-builtin/Lora/network_norm.py')
-rw-r--r-- | extensions-builtin/Lora/network_norm.py | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/extensions-builtin/Lora/network_norm.py b/extensions-builtin/Lora/network_norm.py new file mode 100644 index 00000000..ce450158 --- /dev/null +++ b/extensions-builtin/Lora/network_norm.py @@ -0,0 +1,28 @@ +import network + + +class ModuleTypeNorm(network.ModuleType): + def create_module(self, net: network.Network, weights: network.NetworkWeights): + if all(x in weights.w for x in ["w_norm", "b_norm"]): + return NetworkModuleNorm(net, weights) + + return None + + +class NetworkModuleNorm(network.NetworkModule): + def __init__(self, net: network.Network, weights: network.NetworkWeights): + super().__init__(net, weights) + + self.w_norm = weights.w.get("w_norm") + self.b_norm = weights.w.get("b_norm") + + def calc_updown(self, orig_weight): + output_shape = self.w_norm.shape + updown = self.w_norm.to(orig_weight.device, dtype=orig_weight.dtype) + + if self.b_norm is not None: + ex_bias = self.b_norm.to(orig_weight.device, dtype=orig_weight.dtype) + else: + ex_bias = None + + return self.finalize_updown(updown, orig_weight, output_shape, ex_bias) |