├── .gitignore ├── LICENSE ├── PermSpec_Base.py ├── README.md ├── SD_rebasin_merge.py ├── docs ├── CLIP_G.txt ├── CLIP_L.txt ├── UNEY_XL.txt ├── perm_sd15_sl.json ├── perm_sdxl_size.json ├── perm_sdxl_sl.json ├── xyz_grid-0841-740330577-8064-1623-3-48-20240428123657.jpg └── xyz_grid-0842-740330577-8064-1623-3-48-20240428125432.jpg ├── merge_PermSpec_ResNet.py ├── merge_PermSpec_SD1UNet.py ├── merge_PermSpec_SD2.py ├── merge_PermSpec_SDXL.py ├── prune.py └── weight_matching.py /.gitignore: -------------------------------------------------------------------------------- 1 | __pycache__ 2 | 3 | *.safetensors 4 | *.log -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2023 ogkalu2 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /PermSpec_Base.py: -------------------------------------------------------------------------------- 1 | from typing import NamedTuple 2 | from collections import defaultdict 3 | from re import L 4 | 5 | class PermutationSpec(NamedTuple): 6 | perm_to_axes: dict 7 | axes_to_perm: dict 8 | 9 | def permutation_spec_from_axes_to_perm(axes_to_perm: dict) -> PermutationSpec: 10 | perm_to_axes = defaultdict(list) 11 | for wk, axis_perms in axes_to_perm.items(): 12 | for axis, perm in enumerate(axis_perms): 13 | if perm is not None: 14 | perm_to_axes[perm].append((wk, axis)) 15 | return PermutationSpec(perm_to_axes=dict(perm_to_axes), axes_to_perm=axes_to_perm) 16 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Merge-Stable-Diffusion-models-without-distortion 2 | I wrote the permutation spec for Stable Diffusion necessary to merge with the git-re-basin method outlined here - https://github.com/samuela/git-re-basin. 3 | This is based on a 3rd-party pytorch implementation of that here - https://github.com/themrzmaster/git-re-basin-pytorch. 4 | 5 | To merge, you may need to install pytorch 1.11.0 or lower (at some point, 1.12.0 did not work but the latest versions of pytorch may have resolved the issue). 6 | 7 | Download the code folder, open cmd in the directory, transfer the desired models to the same folder and run 8 | "python SD_rebasin_merge.py --model_a nameofmodela.ckpt --model_b nameofmodelb.ckpt" 9 | 10 | If not in the same directory then 11 | pathofmodela.ckpt and pathofmodelb.ckpt instead 12 | 13 | ### Notes for SDXL by DammK ### 14 | - Tested in A1111 WebUI 1.9.3 and [sd-mecha](https://github.com/ljleb/sd-mecha) 15 | - [The SDXL code only permutates a few layers.](https://github.com/vladmandic/automatic/blob/dev/modules/merging/merge_rebasin.py) 16 | - [However the full permutation spec is present.](https://github.com/ogkalu2/Merge-Stable-Diffusion-models-without-distortion/issues/44). [OK, it turns out being entirely different.](https://www.diffchecker.com/WZKq6YiP/) I have posted a [text file](./docs/CLIP_G.txt) describing the **tensor size** of each layer. This implementation requires matching of tensor size. 17 | - **No pruning even it may not crash.** WebUI extensions / nodes will break. 18 | - **No CLIP fix has been revised.** Use other tools instead. 19 | - **Will detect SD1.5 / SD2.1 / SDXL in auto.** 20 | - SD2.1 will be in partial support: **Both model structure must be identical.** [See this comparasion for differnce (SD2.1 vs WD1.4).](https://github.com/6DammK9/nai-anime-pure-negative-prompt/blob/main/ch03/v1/json/sd2_sd20_wd14.json) Use [toolkit](https://github.com/silveroxides/stable-diffusion-webui-model-toolkit-revisited) to inject the layers 21 | - Then I'll try my best to analysis the effect. Will post to [this article about the algorithm](https://github.com/6DammK9/nai-anime-pure-negative-prompt/blob/main/ch01/rebasin.md) and [my mega mix which is 70+ in 1](https://github.com/6DammK9/nai-anime-pure-negative-prompt/blob/main/ch05/README_XL.MD) 22 | - **~~Bonus task (probably impossible): Implement Algorithm 3 MERGEMANY~~** Probably infeasible, even with [sd-mecha](https://github.com/ljleb/sd-mecha/tree/main)'s well structured codebase. This implementation requires its own layer loading structre for iterlation. 23 | 24 | ```sh 25 | python SD_rebasin_merge.py --model_a _211-Replicant-V3.0_fp16.safetensors --model_b _220-realgarV20V21V21Yuri_v21.safetensors 26 | ``` 27 | 28 | - **SDXL will takes hours to merge! 6 minutes per permutation!** Default model name will be `merged.safetensors`. 29 | ```log 30 | weight_matching in fp32: 33%|██████████████████▎ | 1/3 [12:07<24:15, 727.52s/it] 31 | Applying weighted_sum to special_keys: 100%|████████████████████████████████████████| 6/6 [00:00<00:00, 6009.03it/s] 32 | Main loop: 100%|████████████████████████████████████████████████████████████████| 10/10 [3:47:06<00:00, 1362.64s/it] 33 | 34 | Saving... 35 | Done! 36 | ``` 37 | 38 | - The final result (actually you can derive from paper) is *based from averaging* i.e. $(A\*0.5+B\*0.5)$. However similar to TIES and AutoMBW, it looks better from the plain averaging. 39 | 40 | - Both comparasion are "avg / TIES-SOUP / avg(avg+TIES-SOUP) / rebasin(avg+TIES-SOUP)" 41 | 42 | ![xyz_grid-0841-740330577-8064-1623-3-48-20240428123657.jpg](docs/xyz_grid-0841-740330577-8064-1623-3-48-20240428123657.jpg) 43 | ![xyz_grid-0842-740330577-8064-1623-3-48-20240428125432.jpg](docs/xyz_grid-0842-740330577-8064-1623-3-48-20240428125432.jpg) 44 | 45 | -------------------------------------------------------------------------------- /SD_rebasin_merge.py: -------------------------------------------------------------------------------- 1 | import argparse 2 | import torch 3 | import os 4 | from tqdm import tqdm 5 | from pathlib import Path 6 | from safetensors.torch import load_file, save_file 7 | 8 | from weight_matching import weight_matching, apply_permutation 9 | from merge_PermSpec_SDXL import sdxl_permutation_spec 10 | from merge_PermSpec_SD2 import sd2_permutation_spec 11 | from merge_PermSpec_SD1UNet import sdunet_permutation_spec 12 | #from merge_PermSpec_ResNet import vgg16_permutation_spec, resnet50_permutation_spec, resnet20_permutation_spec, cnn_permutation_spec, mlp_permutation_spec 13 | 14 | parser = argparse.ArgumentParser(description= "Merge two stable diffusion models with git re-basin") 15 | parser.add_argument("--model_a", type=str, help="Path to model a") 16 | parser.add_argument("--model_b", type=str, help="Path to model b") 17 | parser.add_argument("--device", type=str, help="Device to use, defaults to cpu", default="cpu", required=False) 18 | parser.add_argument("--output", type=str, help="Output file name, without extension", default="merged", required=False) 19 | parser.add_argument("--usefp16", help="Whether to use half precision", action="store_true", required=False) 20 | parser.add_argument("--usefp32", dest="usefp16", help="Whether to use full precision", action="store_false", required=False) 21 | parser.add_argument("--alpha", type=str, help="Ratio of model A to B", default="0.5", required=False) 22 | parser.add_argument("--iterations", type=str, help="Number of steps to take before reaching alpha", default="10", required=False) 23 | parser.add_argument("--safetensors", action='store_true', help="Save as safetensors", default=True, required=False) 24 | parser.add_argument("--ckpt", dest="safetensors", action='store_false', help="Save as ckpt", required=False) 25 | parser.add_argument("--prune", help="Pruning before merge", action='store_true', default=False, required=False) 26 | parser.add_argument("--fixclip", help="Force to fix clip to int64", action='store_true', default=False, required=False) 27 | parser.set_defaults(usefp16=True) 28 | args = parser.parse_args() 29 | device = args.device 30 | usefp16 = args.usefp16 31 | 32 | if device == "cpu": 33 | usefp16 = False 34 | 35 | def load_model(path, device): 36 | if path.suffix == ".safetensors": 37 | return load_file(path, device=device) 38 | else: 39 | ckpt = torch.load(path, map_location=device) 40 | return ckpt["state_dict"] if "state_dict" in ckpt else ckpt 41 | 42 | def prune(model): 43 | keys = list(model.keys()) 44 | for k in tqdm(keys, desc="pruning model", position=0): 45 | if "diffusion_model." not in k and "first_stage_model." not in k and "cond_stage_model." not in k: 46 | model.pop(k, None) 47 | return model 48 | 49 | def detect_model_type(model): 50 | if "conditioner.embedders.1.model.transformer.resblocks.0.attn.in_proj_bias" in model: 51 | return "sdxl" 52 | elif "cond_stage_model.model.transformer.resblocks.1.mlp.c_fc.bias" in model: 53 | return "sd2" 54 | else: 55 | return "sd1" 56 | 57 | if args.model_a is None or args.model_b is None: 58 | parser.print_help() 59 | exit(-1) 60 | model_a = load_model(Path(args.model_a), device) 61 | model_b = load_model(Path(args.model_b), device) 62 | 63 | if args.prune: 64 | model_a = prune(model_a) 65 | model_b = prune(model_b) 66 | 67 | theta_0 = model_a 68 | theta_1 = model_b 69 | 70 | alpha = float(args.alpha) 71 | iterations = int(args.iterations) 72 | step = alpha/iterations 73 | 74 | modeltype_a = detect_model_type(model_a) 75 | modeltype_b = detect_model_type(model_b) 76 | 77 | print("Detected model type: " + modeltype_a) 78 | if modeltype_a != modeltype_b: 79 | raise Exception("Model type mismatch!") 80 | 81 | permutation_spec_mapping = { 82 | "sdxl": sdxl_permutation_spec(), 83 | "sd2": sd2_permutation_spec(), 84 | "sd1": sdunet_permutation_spec() 85 | } 86 | 87 | permutation_spec = permutation_spec_mapping[modeltype_a] 88 | 89 | special_keys = [ 90 | "first_stage_model.decoder.norm_out.weight", 91 | "first_stage_model.decoder.norm_out.bias", 92 | "first_stage_model.encoder.norm_out.weight", 93 | "first_stage_model.encoder.norm_out.bias", 94 | "model.diffusion_model.out.0.weight", 95 | "model.diffusion_model.out.0.bias" 96 | ] 97 | 98 | if args.usefp16: 99 | print("Using half precision") 100 | else: 101 | print("Using full precision") 102 | 103 | checkpoint_dict_skip_on_merge = ["cond_stage_model.transformer.text_model.embeddings.position_ids"] 104 | 105 | for x in tqdm(range(iterations), desc="Main loop", position=0): 106 | #print(f""" 107 | #--------------------- 108 | # ITERATION {x+1} 109 | #--------------------- 110 | #""") 111 | 112 | # In order to reach a certain alpha value with a given number of steps, 113 | # You have to calculate an alpha for each individual iteration 114 | if x > 0: 115 | new_alpha = 1 - (1 - step*(1+x)) / (1 - step*(x)) 116 | else: 117 | new_alpha = step 118 | #print(f"new alpha = {new_alpha}\n") 119 | 120 | # Add the models together in specific ratio to reach final ratio 121 | for key in tqdm(theta_0.keys(), desc="Applying weighted_sum to theta", position=1): 122 | # It does not fully describe SDXL 123 | if "model_" in key: 124 | continue 125 | if "conditioner.embedders.1.model" in key: 126 | continue 127 | if key in checkpoint_dict_skip_on_merge: 128 | continue 129 | if "model" in key and key in theta_1: 130 | theta_0[key] = (1 - new_alpha) * theta_0[key] + new_alpha * theta_1[key] 131 | 132 | if x == 0: 133 | for key in tqdm(theta_1.keys(), desc="Applying theta_1 to theta_0", position=1): 134 | if "model" in key and key not in theta_0: 135 | theta_0[key] = theta_1[key] 136 | 137 | #print("FINDING PERMUTATIONS") 138 | 139 | # Replace theta_0 with a permutated version using model A and B 140 | first_permutation, y = weight_matching(permutation_spec, model_a, theta_0, usefp16=usefp16, device=device) 141 | theta_0 = apply_permutation(permutation_spec, first_permutation, theta_0) 142 | second_permutation, z = weight_matching(permutation_spec, model_b, theta_0, usefp16=usefp16, device=device) 143 | theta_3= apply_permutation(permutation_spec, second_permutation, theta_0) 144 | 145 | new_alpha = torch.nn.functional.normalize(torch.sigmoid(torch.Tensor([y, z])), p=1, dim=0).tolist()[0] 146 | 147 | # Weighted sum of the permutations 148 | 149 | for key in tqdm(special_keys, desc="Applying weighted_sum to special_keys", position=1): 150 | theta_0[key] = (1 - new_alpha) * (theta_0[key]) + (new_alpha) * (theta_3[key]) 151 | 152 | # fix/check bad clip 153 | position_id_key = 'cond_stage_model.transformer.text_model.embeddings.position_ids' 154 | if position_id_key in theta_0: 155 | correct = torch.tensor([list(range(77))], dtype=torch.int64, device="cpu") 156 | current = theta_0[position_id_key].to(torch.int64) 157 | broken = correct.ne(current) 158 | broken = [i for i in range(77) if broken[0][i]] 159 | if len(broken) != 0: 160 | if args.fixclip: 161 | theta_0[position_id_key] = correct 162 | print(f"Fixed broken clip\n{broken}") 163 | else: 164 | print(f"Broken clip!\n{broken}") 165 | else: 166 | print("Clip is fine") 167 | 168 | ext = "ckpt" if not args.safetensors else "safetensors" 169 | output_file = f'{args.output}.{ext}' 170 | 171 | # check if output file already exists, ask to overwrite 172 | if os.path.isfile(output_file): 173 | print("Output file already exists. Overwrite? (y/n)") 174 | while True: 175 | overwrite = input() 176 | if overwrite == "y": 177 | break 178 | elif overwrite == "n": 179 | print("Exiting...") 180 | exit() 181 | else: 182 | print("Please enter y or n") 183 | 184 | print("\nSaving...") 185 | 186 | try: 187 | if ext == "safetensors": 188 | save_file(theta_0, output_file, metadata={"format":"pt"}) 189 | else: 190 | torch.save({"state_dict": theta_0}, output_file) 191 | print("Done!") 192 | except Exception as e: 193 | print(f"ERROR: Couldn't save {output_file} - {e}") 194 | -------------------------------------------------------------------------------- /docs/CLIP_G.txt: -------------------------------------------------------------------------------- 1 | ln_final.bias [1280] 2 | ln_final.weight [1280] 3 | logit_scale [] 4 | positional_embedding [77,1280] 5 | text_projection [1280,1280] 6 | token_embedding.weight [49408,1280] 7 | transformer.resblocks.0.attn.in_proj_bias [3840] 8 | transformer.resblocks.0.attn.in_proj_weight [3840,1280] 9 | transformer.resblocks.0.attn.out_proj.bias [1280] 10 | transformer.resblocks.0.attn.out_proj.weight [1280,1280] 11 | transformer.resblocks.0.ln_1.bias [1280] 12 | transformer.resblocks.0.ln_1.weight [1280] 13 | transformer.resblocks.0.ln_2.bias [1280] 14 | transformer.resblocks.0.ln_2.weight [1280] 15 | transformer.resblocks.0.mlp.c_fc.bias [5120] 16 | transformer.resblocks.0.mlp.c_fc.weight [5120,1280] 17 | transformer.resblocks.0.mlp.c_proj.bias [1280] 18 | transformer.resblocks.0.mlp.c_proj.weight [1280,5120] 19 | transformer.resblocks.1.attn.in_proj_bias [3840] 20 | transformer.resblocks.1.attn.in_proj_weight [3840,1280] 21 | transformer.resblocks.1.attn.out_proj.bias [1280] 22 | transformer.resblocks.1.attn.out_proj.weight [1280,1280] 23 | transformer.resblocks.1.ln_1.bias [1280] 24 | transformer.resblocks.1.ln_1.weight [1280] 25 | transformer.resblocks.1.ln_2.bias [1280] 26 | transformer.resblocks.1.ln_2.weight [1280] 27 | transformer.resblocks.1.mlp.c_fc.bias [5120] 28 | transformer.resblocks.1.mlp.c_fc.weight [5120,1280] 29 | transformer.resblocks.1.mlp.c_proj.bias [1280] 30 | transformer.resblocks.1.mlp.c_proj.weight [1280,5120] 31 | transformer.resblocks.10.attn.in_proj_bias [3840] 32 | transformer.resblocks.10.attn.in_proj_weight [3840,1280] 33 | transformer.resblocks.10.attn.out_proj.bias [1280] 34 | transformer.resblocks.10.attn.out_proj.weight [1280,1280] 35 | transformer.resblocks.10.ln_1.bias [1280] 36 | transformer.resblocks.10.ln_1.weight [1280] 37 | transformer.resblocks.10.ln_2.bias [1280] 38 | transformer.resblocks.10.ln_2.weight [1280] 39 | transformer.resblocks.10.mlp.c_fc.bias [5120] 40 | transformer.resblocks.10.mlp.c_fc.weight [5120,1280] 41 | transformer.resblocks.10.mlp.c_proj.bias [1280] 42 | transformer.resblocks.10.mlp.c_proj.weight [1280,5120] 43 | transformer.resblocks.11.attn.in_proj_bias [3840] 44 | transformer.resblocks.11.attn.in_proj_weight [3840,1280] 45 | transformer.resblocks.11.attn.out_proj.bias [1280] 46 | transformer.resblocks.11.attn.out_proj.weight [1280,1280] 47 | transformer.resblocks.11.ln_1.bias [1280] 48 | transformer.resblocks.11.ln_1.weight [1280] 49 | transformer.resblocks.11.ln_2.bias [1280] 50 | transformer.resblocks.11.ln_2.weight [1280] 51 | transformer.resblocks.11.mlp.c_fc.bias [5120] 52 | transformer.resblocks.11.mlp.c_fc.weight [5120,1280] 53 | transformer.resblocks.11.mlp.c_proj.bias [1280] 54 | transformer.resblocks.11.mlp.c_proj.weight [1280,5120] 55 | transformer.resblocks.12.attn.in_proj_bias [3840] 56 | transformer.resblocks.12.attn.in_proj_weight [3840,1280] 57 | transformer.resblocks.12.attn.out_proj.bias [1280] 58 | transformer.resblocks.12.attn.out_proj.weight [1280,1280] 59 | transformer.resblocks.12.ln_1.bias [1280] 60 | transformer.resblocks.12.ln_1.weight [1280] 61 | transformer.resblocks.12.ln_2.bias [1280] 62 | transformer.resblocks.12.ln_2.weight [1280] 63 | transformer.resblocks.12.mlp.c_fc.bias [5120] 64 | transformer.resblocks.12.mlp.c_fc.weight [5120,1280] 65 | transformer.resblocks.12.mlp.c_proj.bias [1280] 66 | transformer.resblocks.12.mlp.c_proj.weight [1280,5120] 67 | transformer.resblocks.13.attn.in_proj_bias [3840] 68 | transformer.resblocks.13.attn.in_proj_weight [3840,1280] 69 | transformer.resblocks.13.attn.out_proj.bias [1280] 70 | transformer.resblocks.13.attn.out_proj.weight [1280,1280] 71 | transformer.resblocks.13.ln_1.bias [1280] 72 | transformer.resblocks.13.ln_1.weight [1280] 73 | transformer.resblocks.13.ln_2.bias [1280] 74 | transformer.resblocks.13.ln_2.weight [1280] 75 | transformer.resblocks.13.mlp.c_fc.bias [5120] 76 | transformer.resblocks.13.mlp.c_fc.weight [5120,1280] 77 | transformer.resblocks.13.mlp.c_proj.bias [1280] 78 | transformer.resblocks.13.mlp.c_proj.weight [1280,5120] 79 | transformer.resblocks.14.attn.in_proj_bias [3840] 80 | transformer.resblocks.14.attn.in_proj_weight [3840,1280] 81 | transformer.resblocks.14.attn.out_proj.bias [1280] 82 | transformer.resblocks.14.attn.out_proj.weight [1280,1280] 83 | transformer.resblocks.14.ln_1.bias [1280] 84 | transformer.resblocks.14.ln_1.weight [1280] 85 | transformer.resblocks.14.ln_2.bias [1280] 86 | transformer.resblocks.14.ln_2.weight [1280] 87 | transformer.resblocks.14.mlp.c_fc.bias [5120] 88 | transformer.resblocks.14.mlp.c_fc.weight [5120,1280] 89 | transformer.resblocks.14.mlp.c_proj.bias [1280] 90 | transformer.resblocks.14.mlp.c_proj.weight [1280,5120] 91 | transformer.resblocks.15.attn.in_proj_bias [3840] 92 | transformer.resblocks.15.attn.in_proj_weight [3840,1280] 93 | transformer.resblocks.15.attn.out_proj.bias [1280] 94 | transformer.resblocks.15.attn.out_proj.weight [1280,1280] 95 | transformer.resblocks.15.ln_1.bias [1280] 96 | transformer.resblocks.15.ln_1.weight [1280] 97 | transformer.resblocks.15.ln_2.bias [1280] 98 | transformer.resblocks.15.ln_2.weight [1280] 99 | transformer.resblocks.15.mlp.c_fc.bias [5120] 100 | transformer.resblocks.15.mlp.c_fc.weight [5120,1280] 101 | transformer.resblocks.15.mlp.c_proj.bias [1280] 102 | transformer.resblocks.15.mlp.c_proj.weight [1280,5120] 103 | transformer.resblocks.16.attn.in_proj_bias [3840] 104 | transformer.resblocks.16.attn.in_proj_weight [3840,1280] 105 | transformer.resblocks.16.attn.out_proj.bias [1280] 106 | transformer.resblocks.16.attn.out_proj.weight [1280,1280] 107 | transformer.resblocks.16.ln_1.bias [1280] 108 | transformer.resblocks.16.ln_1.weight [1280] 109 | transformer.resblocks.16.ln_2.bias [1280] 110 | transformer.resblocks.16.ln_2.weight [1280] 111 | transformer.resblocks.16.mlp.c_fc.bias [5120] 112 | transformer.resblocks.16.mlp.c_fc.weight [5120,1280] 113 | transformer.resblocks.16.mlp.c_proj.bias [1280] 114 | transformer.resblocks.16.mlp.c_proj.weight [1280,5120] 115 | transformer.resblocks.17.attn.in_proj_bias [3840] 116 | transformer.resblocks.17.attn.in_proj_weight [3840,1280] 117 | transformer.resblocks.17.attn.out_proj.bias [1280] 118 | transformer.resblocks.17.attn.out_proj.weight [1280,1280] 119 | transformer.resblocks.17.ln_1.bias [1280] 120 | transformer.resblocks.17.ln_1.weight [1280] 121 | transformer.resblocks.17.ln_2.bias [1280] 122 | transformer.resblocks.17.ln_2.weight [1280] 123 | transformer.resblocks.17.mlp.c_fc.bias [5120] 124 | transformer.resblocks.17.mlp.c_fc.weight [5120,1280] 125 | transformer.resblocks.17.mlp.c_proj.bias [1280] 126 | transformer.resblocks.17.mlp.c_proj.weight [1280,5120] 127 | transformer.resblocks.18.attn.in_proj_bias [3840] 128 | transformer.resblocks.18.attn.in_proj_weight [3840,1280] 129 | transformer.resblocks.18.attn.out_proj.bias [1280] 130 | transformer.resblocks.18.attn.out_proj.weight [1280,1280] 131 | transformer.resblocks.18.ln_1.bias [1280] 132 | transformer.resblocks.18.ln_1.weight [1280] 133 | transformer.resblocks.18.ln_2.bias [1280] 134 | transformer.resblocks.18.ln_2.weight [1280] 135 | transformer.resblocks.18.mlp.c_fc.bias [5120] 136 | transformer.resblocks.18.mlp.c_fc.weight [5120,1280] 137 | transformer.resblocks.18.mlp.c_proj.bias [1280] 138 | transformer.resblocks.18.mlp.c_proj.weight [1280,5120] 139 | transformer.resblocks.19.attn.in_proj_bias [3840] 140 | transformer.resblocks.19.attn.in_proj_weight [3840,1280] 141 | transformer.resblocks.19.attn.out_proj.bias [1280] 142 | transformer.resblocks.19.attn.out_proj.weight [1280,1280] 143 | transformer.resblocks.19.ln_1.bias [1280] 144 | transformer.resblocks.19.ln_1.weight [1280] 145 | transformer.resblocks.19.ln_2.bias [1280] 146 | transformer.resblocks.19.ln_2.weight [1280] 147 | transformer.resblocks.19.mlp.c_fc.bias [5120] 148 | transformer.resblocks.19.mlp.c_fc.weight [5120,1280] 149 | transformer.resblocks.19.mlp.c_proj.bias [1280] 150 | transformer.resblocks.19.mlp.c_proj.weight [1280,5120] 151 | transformer.resblocks.2.attn.in_proj_bias [3840] 152 | transformer.resblocks.2.attn.in_proj_weight [3840,1280] 153 | transformer.resblocks.2.attn.out_proj.bias [1280] 154 | transformer.resblocks.2.attn.out_proj.weight [1280,1280] 155 | transformer.resblocks.2.ln_1.bias [1280] 156 | transformer.resblocks.2.ln_1.weight [1280] 157 | transformer.resblocks.2.ln_2.bias [1280] 158 | transformer.resblocks.2.ln_2.weight [1280] 159 | transformer.resblocks.2.mlp.c_fc.bias [5120] 160 | transformer.resblocks.2.mlp.c_fc.weight [5120,1280] 161 | transformer.resblocks.2.mlp.c_proj.bias [1280] 162 | transformer.resblocks.2.mlp.c_proj.weight [1280,5120] 163 | transformer.resblocks.20.attn.in_proj_bias [3840] 164 | transformer.resblocks.20.attn.in_proj_weight [3840,1280] 165 | transformer.resblocks.20.attn.out_proj.bias [1280] 166 | transformer.resblocks.20.attn.out_proj.weight [1280,1280] 167 | transformer.resblocks.20.ln_1.bias [1280] 168 | transformer.resblocks.20.ln_1.weight [1280] 169 | transformer.resblocks.20.ln_2.bias [1280] 170 | transformer.resblocks.20.ln_2.weight [1280] 171 | transformer.resblocks.20.mlp.c_fc.bias [5120] 172 | transformer.resblocks.20.mlp.c_fc.weight [5120,1280] 173 | transformer.resblocks.20.mlp.c_proj.bias [1280] 174 | transformer.resblocks.20.mlp.c_proj.weight [1280,5120] 175 | transformer.resblocks.21.attn.in_proj_bias [3840] 176 | transformer.resblocks.21.attn.in_proj_weight [3840,1280] 177 | transformer.resblocks.21.attn.out_proj.bias [1280] 178 | transformer.resblocks.21.attn.out_proj.weight [1280,1280] 179 | transformer.resblocks.21.ln_1.bias [1280] 180 | transformer.resblocks.21.ln_1.weight [1280] 181 | transformer.resblocks.21.ln_2.bias [1280] 182 | transformer.resblocks.21.ln_2.weight [1280] 183 | transformer.resblocks.21.mlp.c_fc.bias [5120] 184 | transformer.resblocks.21.mlp.c_fc.weight [5120,1280] 185 | transformer.resblocks.21.mlp.c_proj.bias [1280] 186 | transformer.resblocks.21.mlp.c_proj.weight [1280,5120] 187 | transformer.resblocks.22.attn.in_proj_bias [3840] 188 | transformer.resblocks.22.attn.in_proj_weight [3840,1280] 189 | transformer.resblocks.22.attn.out_proj.bias [1280] 190 | transformer.resblocks.22.attn.out_proj.weight [1280,1280] 191 | transformer.resblocks.22.ln_1.bias [1280] 192 | transformer.resblocks.22.ln_1.weight [1280] 193 | transformer.resblocks.22.ln_2.bias [1280] 194 | transformer.resblocks.22.ln_2.weight [1280] 195 | transformer.resblocks.22.mlp.c_fc.bias [5120] 196 | transformer.resblocks.22.mlp.c_fc.weight [5120,1280] 197 | transformer.resblocks.22.mlp.c_proj.bias [1280] 198 | transformer.resblocks.22.mlp.c_proj.weight [1280,5120] 199 | transformer.resblocks.23.attn.in_proj_bias [3840] 200 | transformer.resblocks.23.attn.in_proj_weight [3840,1280] 201 | transformer.resblocks.23.attn.out_proj.bias [1280] 202 | transformer.resblocks.23.attn.out_proj.weight [1280,1280] 203 | transformer.resblocks.23.ln_1.bias [1280] 204 | transformer.resblocks.23.ln_1.weight [1280] 205 | transformer.resblocks.23.ln_2.bias [1280] 206 | transformer.resblocks.23.ln_2.weight [1280] 207 | transformer.resblocks.23.mlp.c_fc.bias [5120] 208 | transformer.resblocks.23.mlp.c_fc.weight [5120,1280] 209 | transformer.resblocks.23.mlp.c_proj.bias [1280] 210 | transformer.resblocks.23.mlp.c_proj.weight [1280,5120] 211 | transformer.resblocks.24.attn.in_proj_bias [3840] 212 | transformer.resblocks.24.attn.in_proj_weight [3840,1280] 213 | transformer.resblocks.24.attn.out_proj.bias [1280] 214 | transformer.resblocks.24.attn.out_proj.weight [1280,1280] 215 | transformer.resblocks.24.ln_1.bias [1280] 216 | transformer.resblocks.24.ln_1.weight [1280] 217 | transformer.resblocks.24.ln_2.bias [1280] 218 | transformer.resblocks.24.ln_2.weight [1280] 219 | transformer.resblocks.24.mlp.c_fc.bias [5120] 220 | transformer.resblocks.24.mlp.c_fc.weight [5120,1280] 221 | transformer.resblocks.24.mlp.c_proj.bias [1280] 222 | transformer.resblocks.24.mlp.c_proj.weight [1280,5120] 223 | transformer.resblocks.25.attn.in_proj_bias [3840] 224 | transformer.resblocks.25.attn.in_proj_weight [3840,1280] 225 | transformer.resblocks.25.attn.out_proj.bias [1280] 226 | transformer.resblocks.25.attn.out_proj.weight [1280,1280] 227 | transformer.resblocks.25.ln_1.bias [1280] 228 | transformer.resblocks.25.ln_1.weight [1280] 229 | transformer.resblocks.25.ln_2.bias [1280] 230 | transformer.resblocks.25.ln_2.weight [1280] 231 | transformer.resblocks.25.mlp.c_fc.bias [5120] 232 | transformer.resblocks.25.mlp.c_fc.weight [5120,1280] 233 | transformer.resblocks.25.mlp.c_proj.bias [1280] 234 | transformer.resblocks.25.mlp.c_proj.weight [1280,5120] 235 | transformer.resblocks.26.attn.in_proj_bias [3840] 236 | transformer.resblocks.26.attn.in_proj_weight [3840,1280] 237 | transformer.resblocks.26.attn.out_proj.bias [1280] 238 | transformer.resblocks.26.attn.out_proj.weight [1280,1280] 239 | transformer.resblocks.26.ln_1.bias [1280] 240 | transformer.resblocks.26.ln_1.weight [1280] 241 | transformer.resblocks.26.ln_2.bias [1280] 242 | transformer.resblocks.26.ln_2.weight [1280] 243 | transformer.resblocks.26.mlp.c_fc.bias [5120] 244 | transformer.resblocks.26.mlp.c_fc.weight [5120,1280] 245 | transformer.resblocks.26.mlp.c_proj.bias [1280] 246 | transformer.resblocks.26.mlp.c_proj.weight [1280,5120] 247 | transformer.resblocks.27.attn.in_proj_bias [3840] 248 | transformer.resblocks.27.attn.in_proj_weight [3840,1280] 249 | transformer.resblocks.27.attn.out_proj.bias [1280] 250 | transformer.resblocks.27.attn.out_proj.weight [1280,1280] 251 | transformer.resblocks.27.ln_1.bias [1280] 252 | transformer.resblocks.27.ln_1.weight [1280] 253 | transformer.resblocks.27.ln_2.bias [1280] 254 | transformer.resblocks.27.ln_2.weight [1280] 255 | transformer.resblocks.27.mlp.c_fc.bias [5120] 256 | transformer.resblocks.27.mlp.c_fc.weight [5120,1280] 257 | transformer.resblocks.27.mlp.c_proj.bias [1280] 258 | transformer.resblocks.27.mlp.c_proj.weight [1280,5120] 259 | transformer.resblocks.28.attn.in_proj_bias [3840] 260 | transformer.resblocks.28.attn.in_proj_weight [3840,1280] 261 | transformer.resblocks.28.attn.out_proj.bias [1280] 262 | transformer.resblocks.28.attn.out_proj.weight [1280,1280] 263 | transformer.resblocks.28.ln_1.bias [1280] 264 | transformer.resblocks.28.ln_1.weight [1280] 265 | transformer.resblocks.28.ln_2.bias [1280] 266 | transformer.resblocks.28.ln_2.weight [1280] 267 | transformer.resblocks.28.mlp.c_fc.bias [5120] 268 | transformer.resblocks.28.mlp.c_fc.weight [5120,1280] 269 | transformer.resblocks.28.mlp.c_proj.bias [1280] 270 | transformer.resblocks.28.mlp.c_proj.weight [1280,5120] 271 | transformer.resblocks.29.attn.in_proj_bias [3840] 272 | transformer.resblocks.29.attn.in_proj_weight [3840,1280] 273 | transformer.resblocks.29.attn.out_proj.bias [1280] 274 | transformer.resblocks.29.attn.out_proj.weight [1280,1280] 275 | transformer.resblocks.29.ln_1.bias [1280] 276 | transformer.resblocks.29.ln_1.weight [1280] 277 | transformer.resblocks.29.ln_2.bias [1280] 278 | transformer.resblocks.29.ln_2.weight [1280] 279 | transformer.resblocks.29.mlp.c_fc.bias [5120] 280 | transformer.resblocks.29.mlp.c_fc.weight [5120,1280] 281 | transformer.resblocks.29.mlp.c_proj.bias [1280] 282 | transformer.resblocks.29.mlp.c_proj.weight [1280,5120] 283 | transformer.resblocks.3.attn.in_proj_bias [3840] 284 | transformer.resblocks.3.attn.in_proj_weight [3840,1280] 285 | transformer.resblocks.3.attn.out_proj.bias [1280] 286 | transformer.resblocks.3.attn.out_proj.weight [1280,1280] 287 | transformer.resblocks.3.ln_1.bias [1280] 288 | transformer.resblocks.3.ln_1.weight [1280] 289 | transformer.resblocks.3.ln_2.bias [1280] 290 | transformer.resblocks.3.ln_2.weight [1280] 291 | transformer.resblocks.3.mlp.c_fc.bias [5120] 292 | transformer.resblocks.3.mlp.c_fc.weight [5120,1280] 293 | transformer.resblocks.3.mlp.c_proj.bias [1280] 294 | transformer.resblocks.3.mlp.c_proj.weight [1280,5120] 295 | transformer.resblocks.30.attn.in_proj_bias [3840] 296 | transformer.resblocks.30.attn.in_proj_weight [3840,1280] 297 | transformer.resblocks.30.attn.out_proj.bias [1280] 298 | transformer.resblocks.30.attn.out_proj.weight [1280,1280] 299 | transformer.resblocks.30.ln_1.bias [1280] 300 | transformer.resblocks.30.ln_1.weight [1280] 301 | transformer.resblocks.30.ln_2.bias [1280] 302 | transformer.resblocks.30.ln_2.weight [1280] 303 | transformer.resblocks.30.mlp.c_fc.bias [5120] 304 | transformer.resblocks.30.mlp.c_fc.weight [5120,1280] 305 | transformer.resblocks.30.mlp.c_proj.bias [1280] 306 | transformer.resblocks.30.mlp.c_proj.weight [1280,5120] 307 | transformer.resblocks.31.attn.in_proj_bias [3840] 308 | transformer.resblocks.31.attn.in_proj_weight [3840,1280] 309 | transformer.resblocks.31.attn.out_proj.bias [1280] 310 | transformer.resblocks.31.attn.out_proj.weight [1280,1280] 311 | transformer.resblocks.31.ln_1.bias [1280] 312 | transformer.resblocks.31.ln_1.weight [1280] 313 | transformer.resblocks.31.ln_2.bias [1280] 314 | transformer.resblocks.31.ln_2.weight [1280] 315 | transformer.resblocks.31.mlp.c_fc.bias [5120] 316 | transformer.resblocks.31.mlp.c_fc.weight [5120,1280] 317 | transformer.resblocks.31.mlp.c_proj.bias [1280] 318 | transformer.resblocks.31.mlp.c_proj.weight [1280,5120] 319 | transformer.resblocks.4.attn.in_proj_bias [3840] 320 | transformer.resblocks.4.attn.in_proj_weight [3840,1280] 321 | transformer.resblocks.4.attn.out_proj.bias [1280] 322 | transformer.resblocks.4.attn.out_proj.weight [1280,1280] 323 | transformer.resblocks.4.ln_1.bias [1280] 324 | transformer.resblocks.4.ln_1.weight [1280] 325 | transformer.resblocks.4.ln_2.bias [1280] 326 | transformer.resblocks.4.ln_2.weight [1280] 327 | transformer.resblocks.4.mlp.c_fc.bias [5120] 328 | transformer.resblocks.4.mlp.c_fc.weight [5120,1280] 329 | transformer.resblocks.4.mlp.c_proj.bias [1280] 330 | transformer.resblocks.4.mlp.c_proj.weight [1280,5120] 331 | transformer.resblocks.5.attn.in_proj_bias [3840] 332 | transformer.resblocks.5.attn.in_proj_weight [3840,1280] 333 | transformer.resblocks.5.attn.out_proj.bias [1280] 334 | transformer.resblocks.5.attn.out_proj.weight [1280,1280] 335 | transformer.resblocks.5.ln_1.bias [1280] 336 | transformer.resblocks.5.ln_1.weight [1280] 337 | transformer.resblocks.5.ln_2.bias [1280] 338 | transformer.resblocks.5.ln_2.weight [1280] 339 | transformer.resblocks.5.mlp.c_fc.bias [5120] 340 | transformer.resblocks.5.mlp.c_fc.weight [5120,1280] 341 | transformer.resblocks.5.mlp.c_proj.bias [1280] 342 | transformer.resblocks.5.mlp.c_proj.weight [1280,5120] 343 | transformer.resblocks.6.attn.in_proj_bias [3840] 344 | transformer.resblocks.6.attn.in_proj_weight [3840,1280] 345 | transformer.resblocks.6.attn.out_proj.bias [1280] 346 | transformer.resblocks.6.attn.out_proj.weight [1280,1280] 347 | transformer.resblocks.6.ln_1.bias [1280] 348 | transformer.resblocks.6.ln_1.weight [1280] 349 | transformer.resblocks.6.ln_2.bias [1280] 350 | transformer.resblocks.6.ln_2.weight [1280] 351 | transformer.resblocks.6.mlp.c_fc.bias [5120] 352 | transformer.resblocks.6.mlp.c_fc.weight [5120,1280] 353 | transformer.resblocks.6.mlp.c_proj.bias [1280] 354 | transformer.resblocks.6.mlp.c_proj.weight [1280,5120] 355 | transformer.resblocks.7.attn.in_proj_bias [3840] 356 | transformer.resblocks.7.attn.in_proj_weight [3840,1280] 357 | transformer.resblocks.7.attn.out_proj.bias [1280] 358 | transformer.resblocks.7.attn.out_proj.weight [1280,1280] 359 | transformer.resblocks.7.ln_1.bias [1280] 360 | transformer.resblocks.7.ln_1.weight [1280] 361 | transformer.resblocks.7.ln_2.bias [1280] 362 | transformer.resblocks.7.ln_2.weight [1280] 363 | transformer.resblocks.7.mlp.c_fc.bias [5120] 364 | transformer.resblocks.7.mlp.c_fc.weight [5120,1280] 365 | transformer.resblocks.7.mlp.c_proj.bias [1280] 366 | transformer.resblocks.7.mlp.c_proj.weight [1280,5120] 367 | transformer.resblocks.8.attn.in_proj_bias [3840] 368 | transformer.resblocks.8.attn.in_proj_weight [3840,1280] 369 | transformer.resblocks.8.attn.out_proj.bias [1280] 370 | transformer.resblocks.8.attn.out_proj.weight [1280,1280] 371 | transformer.resblocks.8.ln_1.bias [1280] 372 | transformer.resblocks.8.ln_1.weight [1280] 373 | transformer.resblocks.8.ln_2.bias [1280] 374 | transformer.resblocks.8.ln_2.weight [1280] 375 | transformer.resblocks.8.mlp.c_fc.bias [5120] 376 | transformer.resblocks.8.mlp.c_fc.weight [5120,1280] 377 | transformer.resblocks.8.mlp.c_proj.bias [1280] 378 | transformer.resblocks.8.mlp.c_proj.weight [1280,5120] 379 | transformer.resblocks.9.attn.in_proj_bias [3840] 380 | transformer.resblocks.9.attn.in_proj_weight [3840,1280] 381 | transformer.resblocks.9.attn.out_proj.bias [1280] 382 | transformer.resblocks.9.attn.out_proj.weight [1280,1280] 383 | transformer.resblocks.9.ln_1.bias [1280] 384 | transformer.resblocks.9.ln_1.weight [1280] 385 | transformer.resblocks.9.ln_2.bias [1280] 386 | transformer.resblocks.9.ln_2.weight [1280] 387 | transformer.resblocks.9.mlp.c_fc.bias [5120] 388 | transformer.resblocks.9.mlp.c_fc.weight [5120,1280] 389 | transformer.resblocks.9.mlp.c_proj.bias [1280] 390 | transformer.resblocks.9.mlp.c_proj.weight [1280,5120] -------------------------------------------------------------------------------- /docs/CLIP_L.txt: -------------------------------------------------------------------------------- 1 | embeddings.position_embedding.weight [77,768] 2 | embeddings.position_ids [1,77] 3 | embeddings.token_embedding.weight [49408,768] 4 | encoder.layers.0.layer_norm1.bias [768] 5 | encoder.layers.0.layer_norm1.weight [768] 6 | encoder.layers.0.layer_norm2.bias [768] 7 | encoder.layers.0.layer_norm2.weight [768] 8 | encoder.layers.0.mlp.fc1.bias [3072] 9 | encoder.layers.0.mlp.fc1.weight [3072,768] 10 | encoder.layers.0.mlp.fc2.bias [768] 11 | encoder.layers.0.mlp.fc2.weight [768,3072] 12 | encoder.layers.0.self_attn.k_proj.bias [768] 13 | encoder.layers.0.self_attn.k_proj.weight [768,768] 14 | encoder.layers.0.self_attn.out_proj.bias [768] 15 | encoder.layers.0.self_attn.out_proj.weight [768,768] 16 | encoder.layers.0.self_attn.q_proj.bias [768] 17 | encoder.layers.0.self_attn.q_proj.weight [768,768] 18 | encoder.layers.0.self_attn.v_proj.bias [768] 19 | encoder.layers.0.self_attn.v_proj.weight [768,768] 20 | encoder.layers.1.layer_norm1.bias [768] 21 | encoder.layers.1.layer_norm1.weight [768] 22 | encoder.layers.1.layer_norm2.bias [768] 23 | encoder.layers.1.layer_norm2.weight [768] 24 | encoder.layers.1.mlp.fc1.bias [3072] 25 | encoder.layers.1.mlp.fc1.weight [3072,768] 26 | encoder.layers.1.mlp.fc2.bias [768] 27 | encoder.layers.1.mlp.fc2.weight [768,3072] 28 | encoder.layers.1.self_attn.k_proj.bias [768] 29 | encoder.layers.1.self_attn.k_proj.weight [768,768] 30 | encoder.layers.1.self_attn.out_proj.bias [768] 31 | encoder.layers.1.self_attn.out_proj.weight [768,768] 32 | encoder.layers.1.self_attn.q_proj.bias [768] 33 | encoder.layers.1.self_attn.q_proj.weight [768,768] 34 | encoder.layers.1.self_attn.v_proj.bias [768] 35 | encoder.layers.1.self_attn.v_proj.weight [768,768] 36 | encoder.layers.10.layer_norm1.bias [768] 37 | encoder.layers.10.layer_norm1.weight [768] 38 | encoder.layers.10.layer_norm2.bias [768] 39 | encoder.layers.10.layer_norm2.weight [768] 40 | encoder.layers.10.mlp.fc1.bias [3072] 41 | encoder.layers.10.mlp.fc1.weight [3072,768] 42 | encoder.layers.10.mlp.fc2.bias [768] 43 | encoder.layers.10.mlp.fc2.weight [768,3072] 44 | encoder.layers.10.self_attn.k_proj.bias [768] 45 | encoder.layers.10.self_attn.k_proj.weight [768,768] 46 | encoder.layers.10.self_attn.out_proj.bias [768] 47 | encoder.layers.10.self_attn.out_proj.weight [768,768] 48 | encoder.layers.10.self_attn.q_proj.bias [768] 49 | encoder.layers.10.self_attn.q_proj.weight [768,768] 50 | encoder.layers.10.self_attn.v_proj.bias [768] 51 | encoder.layers.10.self_attn.v_proj.weight [768,768] 52 | encoder.layers.11.layer_norm1.bias [768] 53 | encoder.layers.11.layer_norm1.weight [768] 54 | encoder.layers.11.layer_norm2.bias [768] 55 | encoder.layers.11.layer_norm2.weight [768] 56 | encoder.layers.11.mlp.fc1.bias [3072] 57 | encoder.layers.11.mlp.fc1.weight [3072,768] 58 | encoder.layers.11.mlp.fc2.bias [768] 59 | encoder.layers.11.mlp.fc2.weight [768,3072] 60 | encoder.layers.11.self_attn.k_proj.bias [768] 61 | encoder.layers.11.self_attn.k_proj.weight [768,768] 62 | encoder.layers.11.self_attn.out_proj.bias [768] 63 | encoder.layers.11.self_attn.out_proj.weight [768,768] 64 | encoder.layers.11.self_attn.q_proj.bias [768] 65 | encoder.layers.11.self_attn.q_proj.weight [768,768] 66 | encoder.layers.11.self_attn.v_proj.bias [768] 67 | encoder.layers.11.self_attn.v_proj.weight [768,768] 68 | encoder.layers.2.layer_norm1.bias [768] 69 | encoder.layers.2.layer_norm1.weight [768] 70 | encoder.layers.2.layer_norm2.bias [768] 71 | encoder.layers.2.layer_norm2.weight [768] 72 | encoder.layers.2.mlp.fc1.bias [3072] 73 | encoder.layers.2.mlp.fc1.weight [3072,768] 74 | encoder.layers.2.mlp.fc2.bias [768] 75 | encoder.layers.2.mlp.fc2.weight [768,3072] 76 | encoder.layers.2.self_attn.k_proj.bias [768] 77 | encoder.layers.2.self_attn.k_proj.weight [768,768] 78 | encoder.layers.2.self_attn.out_proj.bias [768] 79 | encoder.layers.2.self_attn.out_proj.weight [768,768] 80 | encoder.layers.2.self_attn.q_proj.bias [768] 81 | encoder.layers.2.self_attn.q_proj.weight [768,768] 82 | encoder.layers.2.self_attn.v_proj.bias [768] 83 | encoder.layers.2.self_attn.v_proj.weight [768,768] 84 | encoder.layers.3.layer_norm1.bias [768] 85 | encoder.layers.3.layer_norm1.weight [768] 86 | encoder.layers.3.layer_norm2.bias [768] 87 | encoder.layers.3.layer_norm2.weight [768] 88 | encoder.layers.3.mlp.fc1.bias [3072] 89 | encoder.layers.3.mlp.fc1.weight [3072,768] 90 | encoder.layers.3.mlp.fc2.bias [768] 91 | encoder.layers.3.mlp.fc2.weight [768,3072] 92 | encoder.layers.3.self_attn.k_proj.bias [768] 93 | encoder.layers.3.self_attn.k_proj.weight [768,768] 94 | encoder.layers.3.self_attn.out_proj.bias [768] 95 | encoder.layers.3.self_attn.out_proj.weight [768,768] 96 | encoder.layers.3.self_attn.q_proj.bias [768] 97 | encoder.layers.3.self_attn.q_proj.weight [768,768] 98 | encoder.layers.3.self_attn.v_proj.bias [768] 99 | encoder.layers.3.self_attn.v_proj.weight [768,768] 100 | encoder.layers.4.layer_norm1.bias [768] 101 | encoder.layers.4.layer_norm1.weight [768] 102 | encoder.layers.4.layer_norm2.bias [768] 103 | encoder.layers.4.layer_norm2.weight [768] 104 | encoder.layers.4.mlp.fc1.bias [3072] 105 | encoder.layers.4.mlp.fc1.weight [3072,768] 106 | encoder.layers.4.mlp.fc2.bias [768] 107 | encoder.layers.4.mlp.fc2.weight [768,3072] 108 | encoder.layers.4.self_attn.k_proj.bias [768] 109 | encoder.layers.4.self_attn.k_proj.weight [768,768] 110 | encoder.layers.4.self_attn.out_proj.bias [768] 111 | encoder.layers.4.self_attn.out_proj.weight [768,768] 112 | encoder.layers.4.self_attn.q_proj.bias [768] 113 | encoder.layers.4.self_attn.q_proj.weight [768,768] 114 | encoder.layers.4.self_attn.v_proj.bias [768] 115 | encoder.layers.4.self_attn.v_proj.weight [768,768] 116 | encoder.layers.5.layer_norm1.bias [768] 117 | encoder.layers.5.layer_norm1.weight [768] 118 | encoder.layers.5.layer_norm2.bias [768] 119 | encoder.layers.5.layer_norm2.weight [768] 120 | encoder.layers.5.mlp.fc1.bias [3072] 121 | encoder.layers.5.mlp.fc1.weight [3072,768] 122 | encoder.layers.5.mlp.fc2.bias [768] 123 | encoder.layers.5.mlp.fc2.weight [768,3072] 124 | encoder.layers.5.self_attn.k_proj.bias [768] 125 | encoder.layers.5.self_attn.k_proj.weight [768,768] 126 | encoder.layers.5.self_attn.out_proj.bias [768] 127 | encoder.layers.5.self_attn.out_proj.weight [768,768] 128 | encoder.layers.5.self_attn.q_proj.bias [768] 129 | encoder.layers.5.self_attn.q_proj.weight [768,768] 130 | encoder.layers.5.self_attn.v_proj.bias [768] 131 | encoder.layers.5.self_attn.v_proj.weight [768,768] 132 | encoder.layers.6.layer_norm1.bias [768] 133 | encoder.layers.6.layer_norm1.weight [768] 134 | encoder.layers.6.layer_norm2.bias [768] 135 | encoder.layers.6.layer_norm2.weight [768] 136 | encoder.layers.6.mlp.fc1.bias [3072] 137 | encoder.layers.6.mlp.fc1.weight [3072,768] 138 | encoder.layers.6.mlp.fc2.bias [768] 139 | encoder.layers.6.mlp.fc2.weight [768,3072] 140 | encoder.layers.6.self_attn.k_proj.bias [768] 141 | encoder.layers.6.self_attn.k_proj.weight [768,768] 142 | encoder.layers.6.self_attn.out_proj.bias [768] 143 | encoder.layers.6.self_attn.out_proj.weight [768,768] 144 | encoder.layers.6.self_attn.q_proj.bias [768] 145 | encoder.layers.6.self_attn.q_proj.weight [768,768] 146 | encoder.layers.6.self_attn.v_proj.bias [768] 147 | encoder.layers.6.self_attn.v_proj.weight [768,768] 148 | encoder.layers.7.layer_norm1.bias [768] 149 | encoder.layers.7.layer_norm1.weight [768] 150 | encoder.layers.7.layer_norm2.bias [768] 151 | encoder.layers.7.layer_norm2.weight [768] 152 | encoder.layers.7.mlp.fc1.bias [3072] 153 | encoder.layers.7.mlp.fc1.weight [3072,768] 154 | encoder.layers.7.mlp.fc2.bias [768] 155 | encoder.layers.7.mlp.fc2.weight [768,3072] 156 | encoder.layers.7.self_attn.k_proj.bias [768] 157 | encoder.layers.7.self_attn.k_proj.weight [768,768] 158 | encoder.layers.7.self_attn.out_proj.bias [768] 159 | encoder.layers.7.self_attn.out_proj.weight [768,768] 160 | encoder.layers.7.self_attn.q_proj.bias [768] 161 | encoder.layers.7.self_attn.q_proj.weight [768,768] 162 | encoder.layers.7.self_attn.v_proj.bias [768] 163 | encoder.layers.7.self_attn.v_proj.weight [768,768] 164 | encoder.layers.8.layer_norm1.bias [768] 165 | encoder.layers.8.layer_norm1.weight [768] 166 | encoder.layers.8.layer_norm2.bias [768] 167 | encoder.layers.8.layer_norm2.weight [768] 168 | encoder.layers.8.mlp.fc1.bias [3072] 169 | encoder.layers.8.mlp.fc1.weight [3072,768] 170 | encoder.layers.8.mlp.fc2.bias [768] 171 | encoder.layers.8.mlp.fc2.weight [768,3072] 172 | encoder.layers.8.self_attn.k_proj.bias [768] 173 | encoder.layers.8.self_attn.k_proj.weight [768,768] 174 | encoder.layers.8.self_attn.out_proj.bias [768] 175 | encoder.layers.8.self_attn.out_proj.weight [768,768] 176 | encoder.layers.8.self_attn.q_proj.bias [768] 177 | encoder.layers.8.self_attn.q_proj.weight [768,768] 178 | encoder.layers.8.self_attn.v_proj.bias [768] 179 | encoder.layers.8.self_attn.v_proj.weight [768,768] 180 | encoder.layers.9.layer_norm1.bias [768] 181 | encoder.layers.9.layer_norm1.weight [768] 182 | encoder.layers.9.layer_norm2.bias [768] 183 | encoder.layers.9.layer_norm2.weight [768] 184 | encoder.layers.9.mlp.fc1.bias [3072] 185 | encoder.layers.9.mlp.fc1.weight [3072,768] 186 | encoder.layers.9.mlp.fc2.bias [768] 187 | encoder.layers.9.mlp.fc2.weight [768,3072] 188 | encoder.layers.9.self_attn.k_proj.bias [768] 189 | encoder.layers.9.self_attn.k_proj.weight [768,768] 190 | encoder.layers.9.self_attn.out_proj.bias [768] 191 | encoder.layers.9.self_attn.out_proj.weight [768,768] 192 | encoder.layers.9.self_attn.q_proj.bias [768] 193 | encoder.layers.9.self_attn.q_proj.weight [768,768] 194 | encoder.layers.9.self_attn.v_proj.bias [768] 195 | encoder.layers.9.self_attn.v_proj.weight [768,768] 196 | final_layer_norm.bias [768] 197 | final_layer_norm.weight [768] -------------------------------------------------------------------------------- /docs/perm_sd15_sl.json: -------------------------------------------------------------------------------- 1 | { 2 | "P_bg0": 1280, 3 | "P_bg1": 1280, 4 | "P_bg3": 320, 5 | "P_bg2": 4, 6 | "P_bg4": 320, 7 | "P_model.diffusion_model.input_blocks.1.0_inner": 320, 8 | "P_model.diffusion_model.input_blocks.1.0_inner3": 320, 9 | "P_model.diffusion_model.input_blocks.1.0_inner2": 1280, 10 | "P_model.diffusion_model.input_blocks.1.0_inner4": 320, 11 | "P_bg5": 320, 12 | "P_bg6": 320, 13 | "P_bg7": 320, 14 | "P_bg9": 320, 15 | "P_bg8": 320, 16 | "P_bg11": 2560, 17 | "P_bg10": 320, 18 | "P_bg13": 320, 19 | "P_bg12": 1280, 20 | "P_bg15": 320, 21 | "P_bg14": 320, 22 | "P_bg17": 320, 23 | "P_bg16": 768, 24 | "P_bg19": 320, 25 | "P_bg18": 320, 26 | "P_bg20": 320, 27 | "P_bg21": 320, 28 | "P_model.diffusion_model.input_blocks.2.0_inner": 320, 29 | "P_model.diffusion_model.input_blocks.2.0_inner3": 320, 30 | "P_model.diffusion_model.input_blocks.2.0_inner2": 1280, 31 | "P_model.diffusion_model.input_blocks.2.0_inner4": 320, 32 | "P_bg22": 320, 33 | "P_bg23": 320, 34 | "P_bg24": 320, 35 | "P_bg26": 320, 36 | "P_bg25": 320, 37 | "P_bg28": 2560, 38 | "P_bg27": 320, 39 | "P_bg30": 320, 40 | "P_bg29": 1280, 41 | "P_bg32": 320, 42 | "P_bg31": 320, 43 | "P_bg34": 320, 44 | "P_bg33": 768, 45 | "P_bg36": 320, 46 | "P_bg35": 320, 47 | "P_bg37": 320, 48 | "P_bg39": 320, 49 | "P_bg38": 320, 50 | "P_bg40": 320, 51 | "P_model.diffusion_model.input_blocks.4.0_inner": 640, 52 | "P_model.diffusion_model.input_blocks.4.0_inner3": 640, 53 | "P_model.diffusion_model.input_blocks.4.0_inner2": 1280, 54 | "P_model.diffusion_model.input_blocks.4.0_inner4": 640, 55 | "P_bg41": 640, 56 | "P_bg43": 640, 57 | "P_bg42": 320, 58 | "P_bg44": 640, 59 | "P_bg45": 640, 60 | "P_bg47": 640, 61 | "P_bg46": 640, 62 | "P_bg49": 5120, 63 | "P_bg48": 640, 64 | "P_bg51": 640, 65 | "P_bg50": 2560, 66 | "P_bg53": 640, 67 | "P_bg52": 640, 68 | "P_bg55": 640, 69 | "P_bg54": 768, 70 | "P_bg57": 640, 71 | "P_bg56": 640, 72 | "P_bg58": 640, 73 | "P_bg59": 640, 74 | "P_model.diffusion_model.input_blocks.5.0_inner": 640, 75 | "P_model.diffusion_model.input_blocks.5.0_inner3": 640, 76 | "P_model.diffusion_model.input_blocks.5.0_inner2": 1280, 77 | "P_model.diffusion_model.input_blocks.5.0_inner4": 640, 78 | "P_bg60": 640, 79 | "P_bg61": 640, 80 | "P_bg62": 640, 81 | "P_bg64": 640, 82 | "P_bg63": 640, 83 | "P_bg66": 5120, 84 | "P_bg65": 640, 85 | "P_bg68": 640, 86 | "P_bg67": 2560, 87 | "P_bg70": 640, 88 | "P_bg69": 640, 89 | "P_bg72": 640, 90 | "P_bg71": 768, 91 | "P_bg74": 640, 92 | "P_bg73": 640, 93 | "P_bg75": 640, 94 | "P_bg77": 640, 95 | "P_bg76": 640, 96 | "P_bg78": 640, 97 | "P_model.diffusion_model.input_blocks.7.0_inner": 1280, 98 | "P_model.diffusion_model.input_blocks.7.0_inner3": 1280, 99 | "P_model.diffusion_model.input_blocks.7.0_inner2": 1280, 100 | "P_model.diffusion_model.input_blocks.7.0_inner4": 1280, 101 | "P_bg79": 1280, 102 | "P_bg81": 1280, 103 | "P_bg80": 640, 104 | "P_bg82": 1280, 105 | "P_bg83": 1280, 106 | "P_bg85": 1280, 107 | "P_bg84": 1280, 108 | "P_bg87": 10240, 109 | "P_bg86": 1280, 110 | "P_bg89": 1280, 111 | "P_bg88": 5120, 112 | "P_bg91": 1280, 113 | "P_bg90": 1280, 114 | "P_bg93": 1280, 115 | "P_bg92": 768, 116 | "P_bg95": 1280, 117 | "P_bg94": 1280, 118 | "P_bg96": 1280, 119 | "P_bg97": 1280, 120 | "P_model.diffusion_model.input_blocks.8.0_inner": 1280, 121 | "P_model.diffusion_model.input_blocks.8.0_inner3": 1280, 122 | "P_model.diffusion_model.input_blocks.8.0_inner2": 1280, 123 | "P_model.diffusion_model.input_blocks.8.0_inner4": 1280, 124 | "P_bg98": 1280, 125 | "P_bg99": 1280, 126 | "P_bg100": 1280, 127 | "P_bg102": 1280, 128 | "P_bg101": 1280, 129 | "P_bg104": 10240, 130 | "P_bg103": 1280, 131 | "P_bg106": 1280, 132 | "P_bg105": 5120, 133 | "P_bg108": 1280, 134 | "P_bg107": 1280, 135 | "P_bg110": 1280, 136 | "P_bg109": 768, 137 | "P_bg112": 1280, 138 | "P_bg111": 1280, 139 | "P_bg113": 1280, 140 | "P_bg115": 1280, 141 | "P_bg114": 1280, 142 | "P_model.diffusion_model.input_blocks.10.0_inner": 1280, 143 | "P_model.diffusion_model.input_blocks.10.0_inner3": 1280, 144 | "P_model.diffusion_model.input_blocks.10.0_inner2": 1280, 145 | "P_model.diffusion_model.input_blocks.10.0_inner4": 1280, 146 | "P_bg116": 1280, 147 | "P_model.diffusion_model.input_blocks.11.0_inner": 1280, 148 | "P_model.diffusion_model.input_blocks.11.0_inner3": 1280, 149 | "P_model.diffusion_model.input_blocks.11.0_inner2": 1280, 150 | "P_model.diffusion_model.input_blocks.11.0_inner4": 1280, 151 | "P_bg117": 1280, 152 | "P_model.diffusion_model.middle_block.0_inner": 1280, 153 | "P_model.diffusion_model.middle_block.0_inner3": 1280, 154 | "P_model.diffusion_model.middle_block.0_inner2": 1280, 155 | "P_model.diffusion_model.middle_block.0_inner4": 1280, 156 | "P_bg118": 1280, 157 | "P_bg119": 1280, 158 | "P_bg120": 1280, 159 | "P_bg122": 1280, 160 | "P_bg121": 1280, 161 | "P_bg124": 10240, 162 | "P_bg123": 1280, 163 | "P_bg126": 1280, 164 | "P_bg125": 5120, 165 | "P_bg128": 1280, 166 | "P_bg127": 1280, 167 | "P_bg130": 1280, 168 | "P_bg129": 768, 169 | "P_bg132": 1280, 170 | "P_bg131": 1280, 171 | "P_bg133": 1280, 172 | "P_bg134": 1280, 173 | "P_model.diffusion_model.middle_block.2_inner": 1280, 174 | "P_model.diffusion_model.middle_block.2_inner3": 1280, 175 | "P_model.diffusion_model.middle_block.2_inner2": 1280, 176 | "P_model.diffusion_model.middle_block.2_inner4": 1280, 177 | "P_bg135": 1280, 178 | "P_bg136": 2560, 179 | "P_model.diffusion_model.output_blocks.0.0_inner": 1280, 180 | "P_model.diffusion_model.output_blocks.0.0_inner3": 1280, 181 | "P_model.diffusion_model.output_blocks.0.0_inner2": 1280, 182 | "P_model.diffusion_model.output_blocks.0.0_inner4": 1280, 183 | "P_bg137": 1280, 184 | "P_bg139": 1280, 185 | "P_bg138": 2560, 186 | "P_bg140": 2560, 187 | "P_model.diffusion_model.output_blocks.1.0_inner": 1280, 188 | "P_model.diffusion_model.output_blocks.1.0_inner3": 1280, 189 | "P_model.diffusion_model.output_blocks.1.0_inner2": 1280, 190 | "P_model.diffusion_model.output_blocks.1.0_inner4": 1280, 191 | "P_bg141": 1280, 192 | "P_bg143": 1280, 193 | "P_bg142": 2560, 194 | "P_bg144": 2560, 195 | "P_model.diffusion_model.output_blocks.2.0_inner": 1280, 196 | "P_model.diffusion_model.output_blocks.2.0_inner3": 1280, 197 | "P_model.diffusion_model.output_blocks.2.0_inner2": 1280, 198 | "P_model.diffusion_model.output_blocks.2.0_inner4": 1280, 199 | "P_bg145": 1280, 200 | "P_bg147": 1280, 201 | "P_bg146": 2560, 202 | "P_bg149": 1280, 203 | "P_bg148": 1280, 204 | "P_bg150": 2560, 205 | "P_model.diffusion_model.output_blocks.3.0_inner": 1280, 206 | "P_model.diffusion_model.output_blocks.3.0_inner3": 1280, 207 | "P_model.diffusion_model.output_blocks.3.0_inner2": 1280, 208 | "P_model.diffusion_model.output_blocks.3.0_inner4": 1280, 209 | "P_bg151": 1280, 210 | "P_bg153": 1280, 211 | "P_bg152": 2560, 212 | "P_bg154": 1280, 213 | "P_bg155": 1280, 214 | "P_bg157": 1280, 215 | "P_bg156": 1280, 216 | "P_bg159": 10240, 217 | "P_bg158": 1280, 218 | "P_bg161": 1280, 219 | "P_bg160": 5120, 220 | "P_bg163": 1280, 221 | "P_bg162": 1280, 222 | "P_bg165": 1280, 223 | "P_bg164": 768, 224 | "P_bg167": 1280, 225 | "P_bg166": 1280, 226 | "P_bg168": 1280, 227 | "P_bg169": 2560, 228 | "P_model.diffusion_model.output_blocks.4.0_inner": 1280, 229 | "P_model.diffusion_model.output_blocks.4.0_inner3": 1280, 230 | "P_model.diffusion_model.output_blocks.4.0_inner2": 1280, 231 | "P_model.diffusion_model.output_blocks.4.0_inner4": 1280, 232 | "P_bg170": 1280, 233 | "P_bg172": 1280, 234 | "P_bg171": 2560, 235 | "P_bg173": 1280, 236 | "P_bg174": 1280, 237 | "P_bg176": 1280, 238 | "P_bg175": 1280, 239 | "P_bg178": 10240, 240 | "P_bg177": 1280, 241 | "P_bg180": 1280, 242 | "P_bg179": 5120, 243 | "P_bg182": 1280, 244 | "P_bg181": 1280, 245 | "P_bg184": 1280, 246 | "P_bg183": 768, 247 | "P_bg186": 1280, 248 | "P_bg185": 1280, 249 | "P_bg187": 1280, 250 | "P_bg188": 1920, 251 | "P_model.diffusion_model.output_blocks.5.0_inner": 1280, 252 | "P_model.diffusion_model.output_blocks.5.0_inner3": 1280, 253 | "P_model.diffusion_model.output_blocks.5.0_inner2": 1280, 254 | "P_model.diffusion_model.output_blocks.5.0_inner4": 1280, 255 | "P_bg189": 1280, 256 | "P_bg191": 1280, 257 | "P_bg190": 1920, 258 | "P_bg192": 1280, 259 | "P_bg193": 1280, 260 | "P_bg195": 1280, 261 | "P_bg194": 1280, 262 | "P_bg197": 10240, 263 | "P_bg196": 1280, 264 | "P_bg199": 1280, 265 | "P_bg198": 5120, 266 | "P_bg201": 1280, 267 | "P_bg200": 1280, 268 | "P_bg203": 1280, 269 | "P_bg202": 768, 270 | "P_bg205": 1280, 271 | "P_bg204": 1280, 272 | "P_bg206": 1280, 273 | "P_bg207": 1280, 274 | "P_bg208": 1920, 275 | "P_model.diffusion_model.output_blocks.6.0_inner": 640, 276 | "P_model.diffusion_model.output_blocks.6.0_inner3": 640, 277 | "P_model.diffusion_model.output_blocks.6.0_inner2": 1280, 278 | "P_model.diffusion_model.output_blocks.6.0_inner4": 640, 279 | "P_bg209": 640, 280 | "P_bg211": 640, 281 | "P_bg210": 1920, 282 | "P_bg212": 640, 283 | "P_bg213": 640, 284 | "P_bg215": 640, 285 | "P_bg214": 640, 286 | "P_bg217": 5120, 287 | "P_bg216": 640, 288 | "P_bg219": 640, 289 | "P_bg218": 2560, 290 | "P_bg221": 640, 291 | "P_bg220": 640, 292 | "P_bg223": 640, 293 | "P_bg222": 768, 294 | "P_bg225": 640, 295 | "P_bg224": 640, 296 | "P_bg226": 640, 297 | "P_bg227": 1280, 298 | "P_model.diffusion_model.output_blocks.7.0_inner": 640, 299 | "P_model.diffusion_model.output_blocks.7.0_inner3": 640, 300 | "P_model.diffusion_model.output_blocks.7.0_inner2": 1280, 301 | "P_model.diffusion_model.output_blocks.7.0_inner4": 640, 302 | "P_bg228": 640, 303 | "P_bg230": 640, 304 | "P_bg229": 1280, 305 | "P_bg231": 640, 306 | "P_bg232": 640, 307 | "P_bg234": 640, 308 | "P_bg233": 640, 309 | "P_bg236": 5120, 310 | "P_bg235": 640, 311 | "P_bg238": 640, 312 | "P_bg237": 2560, 313 | "P_bg240": 640, 314 | "P_bg239": 640, 315 | "P_bg242": 640, 316 | "P_bg241": 768, 317 | "P_bg244": 640, 318 | "P_bg243": 640, 319 | "P_bg245": 640, 320 | "P_bg246": 960, 321 | "P_model.diffusion_model.output_blocks.8.0_inner": 640, 322 | "P_model.diffusion_model.output_blocks.8.0_inner3": 640, 323 | "P_model.diffusion_model.output_blocks.8.0_inner2": 1280, 324 | "P_model.diffusion_model.output_blocks.8.0_inner4": 640, 325 | "P_bg247": 640, 326 | "P_bg249": 640, 327 | "P_bg248": 960, 328 | "P_bg250": 640, 329 | "P_bg251": 640, 330 | "P_bg253": 640, 331 | "P_bg252": 640, 332 | "P_bg255": 5120, 333 | "P_bg254": 640, 334 | "P_bg257": 640, 335 | "P_bg256": 2560, 336 | "P_bg259": 640, 337 | "P_bg258": 640, 338 | "P_bg261": 640, 339 | "P_bg260": 768, 340 | "P_bg263": 640, 341 | "P_bg262": 640, 342 | "P_bg264": 640, 343 | "P_bg266": 640, 344 | "P_bg265": 640, 345 | "P_bg267": 960, 346 | "P_model.diffusion_model.output_blocks.9.0_inner": 320, 347 | "P_model.diffusion_model.output_blocks.9.0_inner3": 320, 348 | "P_model.diffusion_model.output_blocks.9.0_inner2": 1280, 349 | "P_model.diffusion_model.output_blocks.9.0_inner4": 320, 350 | "P_bg268": 320, 351 | "P_bg270": 320, 352 | "P_bg269": 960, 353 | "P_bg271": 320, 354 | "P_bg272": 320, 355 | "P_bg274": 320, 356 | "P_bg273": 320, 357 | "P_bg276": 2560, 358 | "P_bg275": 320, 359 | "P_bg278": 320, 360 | "P_bg277": 1280, 361 | "P_bg280": 320, 362 | "P_bg279": 320, 363 | "P_bg282": 320, 364 | "P_bg281": 768, 365 | "P_bg284": 320, 366 | "P_bg283": 320, 367 | "P_bg285": 320, 368 | "P_bg286": 640, 369 | "P_model.diffusion_model.output_blocks.10.0_inner": 320, 370 | "P_model.diffusion_model.output_blocks.10.0_inner3": 320, 371 | "P_model.diffusion_model.output_blocks.10.0_inner2": 1280, 372 | "P_model.diffusion_model.output_blocks.10.0_inner4": 320, 373 | "P_bg287": 320, 374 | "P_bg289": 320, 375 | "P_bg288": 640, 376 | "P_bg290": 320, 377 | "P_bg291": 320, 378 | "P_bg293": 320, 379 | "P_bg292": 320, 380 | "P_bg295": 2560, 381 | "P_bg294": 320, 382 | "P_bg297": 320, 383 | "P_bg296": 1280, 384 | "P_bg299": 320, 385 | "P_bg298": 320, 386 | "P_bg301": 320, 387 | "P_bg300": 768, 388 | "P_bg303": 320, 389 | "P_bg302": 320, 390 | "P_bg304": 320, 391 | "P_bg305": 640, 392 | "P_model.diffusion_model.output_blocks.11.0_inner": 320, 393 | "P_model.diffusion_model.output_blocks.11.0_inner3": 320, 394 | "P_model.diffusion_model.output_blocks.11.0_inner2": 1280, 395 | "P_model.diffusion_model.output_blocks.11.0_inner4": 320, 396 | "P_bg306": 320, 397 | "P_bg308": 320, 398 | "P_bg307": 640, 399 | "P_bg309": 320, 400 | "P_bg310": 320, 401 | "P_bg312": 320, 402 | "P_bg311": 320, 403 | "P_bg314": 2560, 404 | "P_bg313": 320, 405 | "P_bg316": 320, 406 | "P_bg315": 1280, 407 | "P_bg318": 320, 408 | "P_bg317": 320, 409 | "P_bg320": 320, 410 | "P_bg319": 768, 411 | "P_bg322": 320, 412 | "P_bg321": 320, 413 | "P_bg323": 320, 414 | "P_bg324": 320, 415 | "P_bg326": 4, 416 | "P_bg325": 320, 417 | "P_bg328": 128, 418 | "P_bg327": 3, 419 | "P_first_stage_model.encoder.down.0.block.0_inner": 128, 420 | "P_first_stage_model.encoder.down.0.block.1_inner": 128, 421 | "P_bg329": 128, 422 | "P_bg330": 128, 423 | "P_first_stage_model.encoder.down.1.block.0_inner": 256, 424 | "P_bg331": 256, 425 | "P_first_stage_model.encoder.down.1.block.1_inner": 256, 426 | "P_bg332": 256, 427 | "P_first_stage_model.encoder.down.2.block.0_inner": 512, 428 | "P_bg333": 512, 429 | "P_first_stage_model.encoder.down.2.block.1_inner": 512, 430 | "P_bg334": 512, 431 | "P_first_stage_model.encoder.down.3.block.0_inner": 512, 432 | "P_first_stage_model.encoder.down.3.block.1_inner": 512, 433 | "P_first_stage_model.encoder.mid.block_1_inner": 512, 434 | "P_bg335": 512, 435 | "P_bg336": 512, 436 | "P_first_stage_model.encoder.mid.block_2_inner": 512, 437 | "P_bg337": 512, 438 | "P_bg339": 8, 439 | "P_bg338": 512, 440 | "P_bg341": 512, 441 | "P_bg340": 4, 442 | "P_bg342": 512, 443 | "P_first_stage_model.decoder.mid.block_1_inner": 512, 444 | "P_bg343": 512, 445 | "P_bg344": 512, 446 | "P_bg345": 512, 447 | "P_first_stage_model.decoder.mid.block_2_inner": 512, 448 | "P_bg346": 256, 449 | "P_first_stage_model.decoder.up.0.block.0_inner": 128, 450 | "P_bg347": 128, 451 | "P_bg348": 128, 452 | "P_first_stage_model.decoder.up.0.block.1_inner": 128, 453 | "P_bg349": 128, 454 | "P_first_stage_model.decoder.up.0.block.2_inner": 128, 455 | "P_bg350": 512, 456 | "P_first_stage_model.decoder.up.1.block.0_inner": 256, 457 | "P_bg351": 256, 458 | "P_bg352": 256, 459 | "P_first_stage_model.decoder.up.1.block.1_inner": 256, 460 | "P_bg353": 256, 461 | "P_first_stage_model.decoder.up.1.block.2_inner": 256, 462 | "P_bg354": 256, 463 | "P_bg355": 512, 464 | "P_first_stage_model.decoder.up.2.block.0_inner": 512, 465 | "P_first_stage_model.decoder.up.2.block.1_inner": 512, 466 | "P_first_stage_model.decoder.up.2.block.2_inner": 512, 467 | "P_bg356": 512, 468 | "P_first_stage_model.decoder.up.3.block.0_inner": 512, 469 | "P_first_stage_model.decoder.up.3.block.1_inner": 512, 470 | "P_first_stage_model.decoder.up.3.block.2_inner": 512, 471 | "P_bg357": 512, 472 | "P_bg358": 128, 473 | "P_bg360": 3, 474 | "P_bg359": 128, 475 | "P_bg362": 8, 476 | "P_bg361": 8, 477 | "P_bg364": 4, 478 | "P_bg363": 4, 479 | "P_bg368": 77, 480 | "P_bg367": 768, 481 | "P_bg370": 768, 482 | "P_bg369": 768, 483 | "P_bg371": 3072, 484 | "P_bg372": 768, 485 | "P_bg373": 768, 486 | "P_bg374": 3072, 487 | "P_bg375": 768, 488 | "P_bg376": 768, 489 | "P_bg377": 3072, 490 | "P_bg378": 768, 491 | "P_bg379": 768, 492 | "P_bg380": 3072, 493 | "P_b381": 768, 494 | "P_bg381": 768, 495 | "P_bg382": 768, 496 | "P_bg383": 3072, 497 | "P_bg384": 768, 498 | "P_bg385": 768, 499 | "P_bg386": 3072, 500 | "P_bg387": 768, 501 | "P_bg388": 768, 502 | "P_bg389": 768, 503 | "P_bg390": 3072, 504 | "P_bg391": 768, 505 | "P_bg392": 768, 506 | "P_bg393": 3072, 507 | "P_bg394": 768, 508 | "P_bg395": 768, 509 | "P_bg396": 3072, 510 | "P_bg397": 768, 511 | "P_bg398": 768, 512 | "P_bg399": 3072, 513 | "P_bg401": 768, 514 | "P_bg400": 3072, 515 | "P_bg402": 768, 516 | "P_bg403": 3072, 517 | "P_bg404": 768, 518 | "P_bg405": 768, 519 | "P_bg406": 3072, 520 | "P_bg407": 768 521 | } 522 | 523 | 524 | [ 525 | "P_b381", 526 | "P_bg0", 527 | "P_bg1", 528 | "P_bg10", 529 | "P_bg100", 530 | "P_bg101", 531 | "P_bg102", 532 | "P_bg103", 533 | "P_bg104", 534 | "P_bg105", 535 | "P_bg106", 536 | "P_bg107", 537 | "P_bg108", 538 | "P_bg109", 539 | "P_bg11", 540 | "P_bg110", 541 | "P_bg111", 542 | "P_bg112", 543 | "P_bg113", 544 | "P_bg114", 545 | "P_bg115", 546 | "P_bg116", 547 | "P_bg117", 548 | "P_bg118", 549 | "P_bg119", 550 | "P_bg12", 551 | "P_bg120", 552 | "P_bg121", 553 | "P_bg122", 554 | "P_bg123", 555 | "P_bg124", 556 | "P_bg125", 557 | "P_bg126", 558 | "P_bg127", 559 | "P_bg128", 560 | "P_bg129", 561 | "P_bg13", 562 | "P_bg130", 563 | "P_bg131", 564 | "P_bg132", 565 | "P_bg133", 566 | "P_bg134", 567 | "P_bg135", 568 | "P_bg136", 569 | "P_bg137", 570 | "P_bg138", 571 | "P_bg139", 572 | "P_bg14", 573 | "P_bg140", 574 | "P_bg141", 575 | "P_bg142", 576 | "P_bg143", 577 | "P_bg144", 578 | "P_bg145", 579 | "P_bg146", 580 | "P_bg147", 581 | "P_bg148", 582 | "P_bg149", 583 | "P_bg15", 584 | "P_bg150", 585 | "P_bg151", 586 | "P_bg152", 587 | "P_bg153", 588 | "P_bg154", 589 | "P_bg155", 590 | "P_bg156", 591 | "P_bg157", 592 | "P_bg158", 593 | "P_bg159", 594 | "P_bg16", 595 | "P_bg160", 596 | "P_bg161", 597 | "P_bg162", 598 | "P_bg163", 599 | "P_bg164", 600 | "P_bg165", 601 | "P_bg166", 602 | "P_bg167", 603 | "P_bg168", 604 | "P_bg169", 605 | "P_bg17", 606 | "P_bg170", 607 | "P_bg171", 608 | "P_bg172", 609 | "P_bg173", 610 | "P_bg174", 611 | "P_bg175", 612 | "P_bg176", 613 | "P_bg177", 614 | "P_bg178", 615 | "P_bg179", 616 | "P_bg18", 617 | "P_bg180", 618 | "P_bg181", 619 | "P_bg182", 620 | "P_bg183", 621 | "P_bg184", 622 | "P_bg185", 623 | "P_bg186", 624 | "P_bg187", 625 | "P_bg188", 626 | "P_bg189", 627 | "P_bg19", 628 | "P_bg190", 629 | "P_bg191", 630 | "P_bg192", 631 | "P_bg193", 632 | "P_bg194", 633 | "P_bg195", 634 | "P_bg196", 635 | "P_bg197", 636 | "P_bg198", 637 | "P_bg199", 638 | "P_bg2", 639 | "P_bg20", 640 | "P_bg200", 641 | "P_bg201", 642 | "P_bg202", 643 | "P_bg203", 644 | "P_bg204", 645 | "P_bg205", 646 | "P_bg206", 647 | "P_bg207", 648 | "P_bg208", 649 | "P_bg209", 650 | "P_bg21", 651 | "P_bg210", 652 | "P_bg211", 653 | "P_bg212", 654 | "P_bg213", 655 | "P_bg214", 656 | "P_bg215", 657 | "P_bg216", 658 | "P_bg217", 659 | "P_bg218", 660 | "P_bg219", 661 | "P_bg22", 662 | "P_bg220", 663 | "P_bg221", 664 | "P_bg222", 665 | "P_bg223", 666 | "P_bg224", 667 | "P_bg225", 668 | "P_bg226", 669 | "P_bg227", 670 | "P_bg228", 671 | "P_bg229", 672 | "P_bg23", 673 | "P_bg230", 674 | "P_bg231", 675 | "P_bg232", 676 | "P_bg233", 677 | "P_bg234", 678 | "P_bg235", 679 | "P_bg236", 680 | "P_bg237", 681 | "P_bg238", 682 | "P_bg239", 683 | "P_bg24", 684 | "P_bg240", 685 | "P_bg241", 686 | "P_bg242", 687 | "P_bg243", 688 | "P_bg244", 689 | "P_bg245", 690 | "P_bg246", 691 | "P_bg247", 692 | "P_bg248", 693 | "P_bg249", 694 | "P_bg25", 695 | "P_bg250", 696 | "P_bg251", 697 | "P_bg252", 698 | "P_bg253", 699 | "P_bg254", 700 | "P_bg255", 701 | "P_bg256", 702 | "P_bg257", 703 | "P_bg258", 704 | "P_bg259", 705 | "P_bg26", 706 | "P_bg260", 707 | "P_bg261", 708 | "P_bg262", 709 | "P_bg263", 710 | "P_bg264", 711 | "P_bg265", 712 | "P_bg266", 713 | "P_bg267", 714 | "P_bg268", 715 | "P_bg269", 716 | "P_bg27", 717 | "P_bg270", 718 | "P_bg271", 719 | "P_bg272", 720 | "P_bg273", 721 | "P_bg274", 722 | "P_bg275", 723 | "P_bg276", 724 | "P_bg277", 725 | "P_bg278", 726 | "P_bg279", 727 | "P_bg28", 728 | "P_bg280", 729 | "P_bg281", 730 | "P_bg282", 731 | "P_bg283", 732 | "P_bg284", 733 | "P_bg285", 734 | "P_bg286", 735 | "P_bg287", 736 | "P_bg288", 737 | "P_bg289", 738 | "P_bg29", 739 | "P_bg290", 740 | "P_bg291", 741 | "P_bg292", 742 | "P_bg293", 743 | "P_bg294", 744 | "P_bg295", 745 | "P_bg296", 746 | "P_bg297", 747 | "P_bg298", 748 | "P_bg299", 749 | "P_bg3", 750 | "P_bg30", 751 | "P_bg300", 752 | "P_bg301", 753 | "P_bg302", 754 | "P_bg303", 755 | "P_bg304", 756 | "P_bg305", 757 | "P_bg306", 758 | "P_bg307", 759 | "P_bg308", 760 | "P_bg309", 761 | "P_bg31", 762 | "P_bg310", 763 | "P_bg311", 764 | "P_bg312", 765 | "P_bg313", 766 | "P_bg314", 767 | "P_bg315", 768 | "P_bg316", 769 | "P_bg317", 770 | "P_bg318", 771 | "P_bg319", 772 | "P_bg32", 773 | "P_bg320", 774 | "P_bg321", 775 | "P_bg322", 776 | "P_bg323", 777 | "P_bg324", 778 | "P_bg325", 779 | "P_bg326", 780 | "P_bg327", 781 | "P_bg328", 782 | "P_bg329", 783 | "P_bg33", 784 | "P_bg330", 785 | "P_bg331", 786 | "P_bg332", 787 | "P_bg333", 788 | "P_bg334", 789 | "P_bg335", 790 | "P_bg336", 791 | "P_bg337", 792 | "P_bg338", 793 | "P_bg339", 794 | "P_bg34", 795 | "P_bg340", 796 | "P_bg341", 797 | "P_bg342", 798 | "P_bg343", 799 | "P_bg344", 800 | "P_bg345", 801 | "P_bg346", 802 | "P_bg347", 803 | "P_bg348", 804 | "P_bg349", 805 | "P_bg35", 806 | "P_bg350", 807 | "P_bg351", 808 | "P_bg352", 809 | "P_bg353", 810 | "P_bg354", 811 | "P_bg355", 812 | "P_bg356", 813 | "P_bg357", 814 | "P_bg358", 815 | "P_bg359", 816 | "P_bg36", 817 | "P_bg360", 818 | "P_bg361", 819 | "P_bg362", 820 | "P_bg363", 821 | "P_bg364", 822 | "P_bg367", 823 | "P_bg368", 824 | "P_bg369", 825 | "P_bg37", 826 | "P_bg370", 827 | "P_bg371", 828 | "P_bg372", 829 | "P_bg373", 830 | "P_bg374", 831 | "P_bg375", 832 | "P_bg376", 833 | "P_bg377", 834 | "P_bg378", 835 | "P_bg379", 836 | "P_bg38", 837 | "P_bg380", 838 | "P_bg381", 839 | "P_bg382", 840 | "P_bg383", 841 | "P_bg384", 842 | "P_bg385", 843 | "P_bg386", 844 | "P_bg387", 845 | "P_bg388", 846 | "P_bg389", 847 | "P_bg39", 848 | "P_bg390", 849 | "P_bg391", 850 | "P_bg392", 851 | "P_bg393", 852 | "P_bg394", 853 | "P_bg395", 854 | "P_bg396", 855 | "P_bg397", 856 | "P_bg398", 857 | "P_bg399", 858 | "P_bg4", 859 | "P_bg40", 860 | "P_bg400", 861 | "P_bg401", 862 | "P_bg402", 863 | "P_bg403", 864 | "P_bg404", 865 | "P_bg405", 866 | "P_bg406", 867 | "P_bg407", 868 | "P_bg41", 869 | "P_bg42", 870 | "P_bg43", 871 | "P_bg44", 872 | "P_bg45", 873 | "P_bg46", 874 | "P_bg47", 875 | "P_bg48", 876 | "P_bg49", 877 | "P_bg5", 878 | "P_bg50", 879 | "P_bg51", 880 | "P_bg52", 881 | "P_bg53", 882 | "P_bg54", 883 | "P_bg55", 884 | "P_bg56", 885 | "P_bg57", 886 | "P_bg58", 887 | "P_bg59", 888 | "P_bg6", 889 | "P_bg60", 890 | "P_bg61", 891 | "P_bg62", 892 | "P_bg63", 893 | "P_bg64", 894 | "P_bg65", 895 | "P_bg66", 896 | "P_bg67", 897 | "P_bg68", 898 | "P_bg69", 899 | "P_bg7", 900 | "P_bg70", 901 | "P_bg71", 902 | "P_bg72", 903 | "P_bg73", 904 | "P_bg74", 905 | "P_bg75", 906 | "P_bg76", 907 | "P_bg77", 908 | "P_bg78", 909 | "P_bg79", 910 | "P_bg8", 911 | "P_bg80", 912 | "P_bg81", 913 | "P_bg82", 914 | "P_bg83", 915 | "P_bg84", 916 | "P_bg85", 917 | "P_bg86", 918 | "P_bg87", 919 | "P_bg88", 920 | "P_bg89", 921 | "P_bg9", 922 | "P_bg90", 923 | "P_bg91", 924 | "P_bg92", 925 | "P_bg93", 926 | "P_bg94", 927 | "P_bg95", 928 | "P_bg96", 929 | "P_bg97", 930 | "P_bg98", 931 | "P_bg99", 932 | "P_first_stage_model.decoder.mid.block_1_inner", 933 | "P_first_stage_model.decoder.mid.block_2_inner", 934 | "P_first_stage_model.decoder.up.0.block.0_inner", 935 | "P_first_stage_model.decoder.up.0.block.1_inner", 936 | "P_first_stage_model.decoder.up.0.block.2_inner", 937 | "P_first_stage_model.decoder.up.1.block.0_inner", 938 | "P_first_stage_model.decoder.up.1.block.1_inner", 939 | "P_first_stage_model.decoder.up.1.block.2_inner", 940 | "P_first_stage_model.decoder.up.2.block.0_inner", 941 | "P_first_stage_model.decoder.up.2.block.1_inner", 942 | "P_first_stage_model.decoder.up.2.block.2_inner", 943 | "P_first_stage_model.decoder.up.3.block.0_inner", 944 | "P_first_stage_model.decoder.up.3.block.1_inner", 945 | "P_first_stage_model.decoder.up.3.block.2_inner", 946 | "P_first_stage_model.encoder.down.0.block.0_inner", 947 | "P_first_stage_model.encoder.down.0.block.1_inner", 948 | "P_first_stage_model.encoder.down.1.block.0_inner", 949 | "P_first_stage_model.encoder.down.1.block.1_inner", 950 | "P_first_stage_model.encoder.down.2.block.0_inner", 951 | "P_first_stage_model.encoder.down.2.block.1_inner", 952 | "P_first_stage_model.encoder.down.3.block.0_inner", 953 | "P_first_stage_model.encoder.down.3.block.1_inner", 954 | "P_first_stage_model.encoder.mid.block_1_inner", 955 | "P_first_stage_model.encoder.mid.block_2_inner", 956 | "P_model.diffusion_model.input_blocks.1.0_inner", 957 | "P_model.diffusion_model.input_blocks.1.0_inner2", 958 | "P_model.diffusion_model.input_blocks.1.0_inner3", 959 | "P_model.diffusion_model.input_blocks.1.0_inner4", 960 | "P_model.diffusion_model.input_blocks.10.0_inner", 961 | "P_model.diffusion_model.input_blocks.10.0_inner2", 962 | "P_model.diffusion_model.input_blocks.10.0_inner3", 963 | "P_model.diffusion_model.input_blocks.10.0_inner4", 964 | "P_model.diffusion_model.input_blocks.11.0_inner", 965 | "P_model.diffusion_model.input_blocks.11.0_inner2", 966 | "P_model.diffusion_model.input_blocks.11.0_inner3", 967 | "P_model.diffusion_model.input_blocks.11.0_inner4", 968 | "P_model.diffusion_model.input_blocks.2.0_inner", 969 | "P_model.diffusion_model.input_blocks.2.0_inner2", 970 | "P_model.diffusion_model.input_blocks.2.0_inner3", 971 | "P_model.diffusion_model.input_blocks.2.0_inner4", 972 | "P_model.diffusion_model.input_blocks.4.0_inner", 973 | "P_model.diffusion_model.input_blocks.4.0_inner2", 974 | "P_model.diffusion_model.input_blocks.4.0_inner3", 975 | "P_model.diffusion_model.input_blocks.4.0_inner4", 976 | "P_model.diffusion_model.input_blocks.5.0_inner", 977 | "P_model.diffusion_model.input_blocks.5.0_inner2", 978 | "P_model.diffusion_model.input_blocks.5.0_inner3", 979 | "P_model.diffusion_model.input_blocks.5.0_inner4", 980 | "P_model.diffusion_model.input_blocks.7.0_inner", 981 | "P_model.diffusion_model.input_blocks.7.0_inner2", 982 | "P_model.diffusion_model.input_blocks.7.0_inner3", 983 | "P_model.diffusion_model.input_blocks.7.0_inner4", 984 | "P_model.diffusion_model.input_blocks.8.0_inner", 985 | "P_model.diffusion_model.input_blocks.8.0_inner2", 986 | "P_model.diffusion_model.input_blocks.8.0_inner3", 987 | "P_model.diffusion_model.input_blocks.8.0_inner4", 988 | "P_model.diffusion_model.middle_block.0_inner", 989 | "P_model.diffusion_model.middle_block.0_inner2", 990 | "P_model.diffusion_model.middle_block.0_inner3", 991 | "P_model.diffusion_model.middle_block.0_inner4", 992 | "P_model.diffusion_model.middle_block.2_inner", 993 | "P_model.diffusion_model.middle_block.2_inner2", 994 | "P_model.diffusion_model.middle_block.2_inner3", 995 | "P_model.diffusion_model.middle_block.2_inner4", 996 | "P_model.diffusion_model.output_blocks.0.0_inner", 997 | "P_model.diffusion_model.output_blocks.0.0_inner2", 998 | "P_model.diffusion_model.output_blocks.0.0_inner3", 999 | "P_model.diffusion_model.output_blocks.0.0_inner4", 1000 | "P_model.diffusion_model.output_blocks.1.0_inner", 1001 | "P_model.diffusion_model.output_blocks.1.0_inner2", 1002 | "P_model.diffusion_model.output_blocks.1.0_inner3", 1003 | "P_model.diffusion_model.output_blocks.1.0_inner4", 1004 | "P_model.diffusion_model.output_blocks.10.0_inner", 1005 | "P_model.diffusion_model.output_blocks.10.0_inner2", 1006 | "P_model.diffusion_model.output_blocks.10.0_inner3", 1007 | "P_model.diffusion_model.output_blocks.10.0_inner4", 1008 | "P_model.diffusion_model.output_blocks.11.0_inner", 1009 | "P_model.diffusion_model.output_blocks.11.0_inner2", 1010 | "P_model.diffusion_model.output_blocks.11.0_inner3", 1011 | "P_model.diffusion_model.output_blocks.11.0_inner4", 1012 | "P_model.diffusion_model.output_blocks.2.0_inner", 1013 | "P_model.diffusion_model.output_blocks.2.0_inner2", 1014 | "P_model.diffusion_model.output_blocks.2.0_inner3", 1015 | "P_model.diffusion_model.output_blocks.2.0_inner4", 1016 | "P_model.diffusion_model.output_blocks.3.0_inner", 1017 | "P_model.diffusion_model.output_blocks.3.0_inner2", 1018 | "P_model.diffusion_model.output_blocks.3.0_inner3", 1019 | "P_model.diffusion_model.output_blocks.3.0_inner4", 1020 | "P_model.diffusion_model.output_blocks.4.0_inner", 1021 | "P_model.diffusion_model.output_blocks.4.0_inner2", 1022 | "P_model.diffusion_model.output_blocks.4.0_inner3", 1023 | "P_model.diffusion_model.output_blocks.4.0_inner4", 1024 | "P_model.diffusion_model.output_blocks.5.0_inner", 1025 | "P_model.diffusion_model.output_blocks.5.0_inner2", 1026 | "P_model.diffusion_model.output_blocks.5.0_inner3", 1027 | "P_model.diffusion_model.output_blocks.5.0_inner4", 1028 | "P_model.diffusion_model.output_blocks.6.0_inner", 1029 | "P_model.diffusion_model.output_blocks.6.0_inner2", 1030 | "P_model.diffusion_model.output_blocks.6.0_inner3", 1031 | "P_model.diffusion_model.output_blocks.6.0_inner4", 1032 | "P_model.diffusion_model.output_blocks.7.0_inner", 1033 | "P_model.diffusion_model.output_blocks.7.0_inner2", 1034 | "P_model.diffusion_model.output_blocks.7.0_inner3", 1035 | "P_model.diffusion_model.output_blocks.7.0_inner4", 1036 | "P_model.diffusion_model.output_blocks.8.0_inner", 1037 | "P_model.diffusion_model.output_blocks.8.0_inner2", 1038 | "P_model.diffusion_model.output_blocks.8.0_inner3", 1039 | "P_model.diffusion_model.output_blocks.8.0_inner4", 1040 | "P_model.diffusion_model.output_blocks.9.0_inner", 1041 | "P_model.diffusion_model.output_blocks.9.0_inner2", 1042 | "P_model.diffusion_model.output_blocks.9.0_inner3", 1043 | "P_model.diffusion_model.output_blocks.9.0_inner4" 1044 | ] -------------------------------------------------------------------------------- /docs/perm_sdxl_size.json: -------------------------------------------------------------------------------- 1 | { 2 | "P_bg1": 320, 3 | "P_bg0": 4, 4 | "P_bg2": 320, 5 | "P_model.diffusion_model.input_blocks.1.0_inner": 320, 6 | "P_model.diffusion_model.input_blocks.1.0_inner3": 320, 7 | "P_model.diffusion_model.input_blocks.1.0_inner2": 1280, 8 | "P_model.diffusion_model.input_blocks.1.0_inner4": 320, 9 | "P_bg3": 320, 10 | "P_bg4": 320, 11 | "P_model.diffusion_model.input_blocks.2.0_inner": 320, 12 | "P_model.diffusion_model.input_blocks.2.0_inner3": 320, 13 | "P_model.diffusion_model.input_blocks.2.0_inner2": 1280, 14 | "P_model.diffusion_model.input_blocks.2.0_inner4": 320, 15 | "P_bg5": 320, 16 | "P_bg7": 320, 17 | "P_bg6": 320, 18 | "P_bg8": 320, 19 | "P_model.diffusion_model.input_blocks.4.0_inner": 640, 20 | "P_model.diffusion_model.input_blocks.4.0_inner3": 640, 21 | "P_model.diffusion_model.input_blocks.4.0_inner2": 1280, 22 | "P_model.diffusion_model.input_blocks.4.0_inner4": 640, 23 | "P_bg9": 640, 24 | "P_bg11": 640, 25 | "P_bg10": 320, 26 | "P_bg12": 640, 27 | "P_bg13": 640, 28 | "P_bg15": 640, 29 | "P_bg14": 640, 30 | "P_bg17": 640, 31 | "P_bg16": 640, 32 | "P_bg19": 640, 33 | "P_bg18": 2048, 34 | "P_bg21": 640, 35 | "P_bg20": 640, 36 | "P_bg23": 5120, 37 | "P_bg22": 640, 38 | "P_bg25": 640, 39 | "P_bg24": 2560, 40 | "P_bg26": 640, 41 | "P_bg28": 640, 42 | "P_bg27": 640, 43 | "P_bg30": 640, 44 | "P_bg29": 2048, 45 | "P_bg32": 640, 46 | "P_bg31": 640, 47 | "P_bg34": 640, 48 | "P_bg33": 2048, 49 | "P_bg36": 5120, 50 | "P_bg35": 640, 51 | "P_bg38": 640, 52 | "P_bg37": 2560, 53 | "P_bg39": 640, 54 | "P_bg40": 640, 55 | "P_model.diffusion_model.input_blocks.5.0_inner": 640, 56 | "P_model.diffusion_model.input_blocks.5.0_inner3": 640, 57 | "P_model.diffusion_model.input_blocks.5.0_inner2": 1280, 58 | "P_model.diffusion_model.input_blocks.5.0_inner4": 640, 59 | "P_bg41": 640, 60 | "P_bg42": 640, 61 | "P_bg44": 640, 62 | "P_bg43": 640, 63 | "P_bg46": 640, 64 | "P_bg45": 640, 65 | "P_bg48": 640, 66 | "P_bg47": 640, 67 | "P_bg50": 640, 68 | "P_bg49": 2048, 69 | "P_bg52": 640, 70 | "P_bg51": 640, 71 | "P_bg54": 640, 72 | "P_bg53": 640, 73 | "P_bg56": 640, 74 | "P_bg55": 2048, 75 | "P_bg58": 5120, 76 | "P_bg57": 640, 77 | "P_bg60": 640, 78 | "P_bg59": 2560, 79 | "P_bg61": 640, 80 | "P_bg63": 640, 81 | "P_bg62": 640, 82 | "P_bg65": 640, 83 | "P_bg64": 2048, 84 | "P_bg67": 640, 85 | "P_bg66": 640, 86 | "P_bg69": 640, 87 | "P_bg68": 640, 88 | "P_bg71": 640, 89 | "P_bg70": 2048, 90 | "P_bg73": 5120, 91 | "P_bg72": 640, 92 | "P_bg75": 640, 93 | "P_bg74": 2560, 94 | "P_bg76": 640, 95 | "P_bg78": 640, 96 | "P_bg77": 640, 97 | "P_model.diffusion_model.input_blocks.7.0_inner": 1280, 98 | "P_model.diffusion_model.input_blocks.7.0_inner3": 1280, 99 | "P_model.diffusion_model.input_blocks.7.0_inner2": 1280, 100 | "P_model.diffusion_model.input_blocks.7.0_inner4": 1280, 101 | "P_bg79": 1280, 102 | "P_bg81": 1280, 103 | "P_bg80": 640, 104 | "P_bg82": 1280, 105 | "P_bg83": 1280, 106 | "P_bg85": 1280, 107 | "P_bg84": 1280, 108 | "P_bg87": 1280, 109 | "P_bg86": 1280, 110 | "P_bg89": 1280, 111 | "P_bg88": 2048, 112 | "P_bg91": 1280, 113 | "P_bg90": 1280, 114 | "P_bg93": 1280, 115 | "P_bg92": 1280, 116 | "P_bg95": 1280, 117 | "P_bg94": 2048, 118 | "P_bg97": 10240, 119 | "P_bg96": 1280, 120 | "P_bg99": 1280, 121 | "P_bg98": 5120, 122 | "P_bg100": 1280, 123 | "P_bg102": 1280, 124 | "P_bg101": 1280, 125 | "P_bg104": 1280, 126 | "P_bg103": 2048, 127 | "P_bg106": 1280, 128 | "P_bg105": 1280, 129 | "P_bg108": 1280, 130 | "P_bg107": 1280, 131 | "P_bg110": 1280, 132 | "P_bg109": 2048, 133 | "P_bg112": 10240, 134 | "P_bg111": 1280, 135 | "P_bg114": 1280, 136 | "P_bg113": 5120, 137 | "P_bg115": 1280, 138 | "P_bg117": 1280, 139 | "P_bg116": 1280, 140 | "P_bg119": 1280, 141 | "P_bg118": 2048, 142 | "P_bg121": 1280, 143 | "P_bg120": 1280, 144 | "P_bg123": 1280, 145 | "P_bg122": 1280, 146 | "P_bg125": 1280, 147 | "P_bg124": 2048, 148 | "P_bg127": 10240, 149 | "P_bg126": 1280, 150 | "P_bg129": 1280, 151 | "P_bg128": 5120, 152 | "P_bg130": 1280, 153 | "P_bg132": 1280, 154 | "P_bg131": 1280, 155 | "P_bg134": 1280, 156 | "P_bg133": 2048, 157 | "P_bg136": 1280, 158 | "P_bg135": 1280, 159 | "P_bg138": 1280, 160 | "P_bg137": 1280, 161 | "P_bg140": 1280, 162 | "P_bg139": 2048, 163 | "P_bg142": 10240, 164 | "P_bg141": 1280, 165 | "P_bg144": 1280, 166 | "P_bg143": 5120, 167 | "P_bg145": 1280, 168 | "P_bg147": 1280, 169 | "P_bg146": 1280, 170 | "P_bg149": 1280, 171 | "P_bg148": 2048, 172 | "P_bg151": 1280, 173 | "P_bg150": 1280, 174 | "P_bg153": 1280, 175 | "P_bg152": 1280, 176 | "P_bg155": 1280, 177 | "P_bg154": 2048, 178 | "P_bg157": 10240, 179 | "P_bg156": 1280, 180 | "P_bg159": 1280, 181 | "P_bg158": 5120, 182 | "P_bg160": 1280, 183 | "P_bg162": 1280, 184 | "P_bg161": 1280, 185 | "P_bg164": 1280, 186 | "P_bg163": 2048, 187 | "P_bg166": 1280, 188 | "P_bg165": 1280, 189 | "P_bg168": 1280, 190 | "P_bg167": 1280, 191 | "P_bg170": 1280, 192 | "P_bg169": 2048, 193 | "P_bg172": 10240, 194 | "P_bg171": 1280, 195 | "P_bg174": 1280, 196 | "P_bg173": 5120, 197 | "P_bg175": 1280, 198 | "P_bg177": 1280, 199 | "P_bg176": 1280, 200 | "P_bg179": 1280, 201 | "P_bg178": 2048, 202 | "P_bg181": 1280, 203 | "P_bg180": 1280, 204 | "P_bg183": 1280, 205 | "P_bg182": 1280, 206 | "P_bg185": 1280, 207 | "P_bg184": 2048, 208 | "P_bg187": 10240, 209 | "P_bg186": 1280, 210 | "P_bg189": 1280, 211 | "P_bg188": 5120, 212 | "P_bg190": 1280, 213 | "P_bg192": 1280, 214 | "P_bg191": 1280, 215 | "P_bg194": 1280, 216 | "P_bg193": 1280, 217 | "P_bg196": 1280, 218 | "P_bg195": 1280, 219 | "P_bg198": 1280, 220 | "P_bg197": 1280, 221 | "P_bg200": 1280, 222 | "P_bg199": 2048, 223 | "P_bg202": 1280, 224 | "P_bg201": 1280, 225 | "P_bg204": 1280, 226 | "P_bg203": 1280, 227 | "P_bg206": 1280, 228 | "P_bg205": 2048, 229 | "P_bg208": 10240, 230 | "P_bg207": 1280, 231 | "P_bg210": 1280, 232 | "P_bg209": 5120, 233 | "P_bg211": 1280, 234 | "P_bg213": 1280, 235 | "P_bg212": 1280, 236 | "P_bg215": 1280, 237 | "P_bg214": 2048, 238 | "P_bg217": 1280, 239 | "P_bg216": 1280, 240 | "P_bg219": 1280, 241 | "P_bg218": 1280, 242 | "P_bg221": 1280, 243 | "P_bg220": 2048, 244 | "P_bg223": 10240, 245 | "P_bg222": 1280, 246 | "P_bg225": 1280, 247 | "P_bg224": 5120, 248 | "P_bg226": 1280, 249 | "P_bg228": 1280, 250 | "P_bg227": 1280, 251 | "P_bg230": 1280, 252 | "P_bg229": 2048, 253 | "P_bg232": 1280, 254 | "P_bg231": 1280, 255 | "P_bg234": 1280, 256 | "P_bg233": 1280, 257 | "P_bg236": 1280, 258 | "P_bg235": 2048, 259 | "P_bg238": 10240, 260 | "P_bg237": 1280, 261 | "P_bg240": 1280, 262 | "P_bg239": 5120, 263 | "P_bg241": 1280, 264 | "P_bg242": 1280, 265 | "P_model.diffusion_model.input_blocks.8.0_inner": 1280, 266 | "P_model.diffusion_model.input_blocks.8.0_inner3": 1280, 267 | "P_model.diffusion_model.input_blocks.8.0_inner2": 1280, 268 | "P_model.diffusion_model.input_blocks.8.0_inner4": 1280, 269 | "P_bg243": 1280, 270 | "P_bg244": 1280, 271 | "P_bg245": 1280, 272 | "P_bg247": 1280, 273 | "P_bg246": 1280, 274 | "P_bg249": 1280, 275 | "P_bg248": 1280, 276 | "P_bg251": 1280, 277 | "P_bg250": 2048, 278 | "P_bg253": 1280, 279 | "P_bg252": 1280, 280 | "P_bg255": 1280, 281 | "P_bg254": 1280, 282 | "P_bg257": 1280, 283 | "P_bg256": 2048, 284 | "P_bg259": 10240, 285 | "P_bg258": 1280, 286 | "P_bg261": 1280, 287 | "P_bg260": 5120, 288 | "P_bg262": 1280, 289 | "P_bg264": 1280, 290 | "P_bg263": 1280, 291 | "P_bg266": 1280, 292 | "P_bg265": 2048, 293 | "P_bg268": 1280, 294 | "P_bg267": 1280, 295 | "P_bg270": 1280, 296 | "P_bg269": 1280, 297 | "P_bg272": 1280, 298 | "P_bg271": 2048, 299 | "P_bg274": 10240, 300 | "P_bg273": 1280, 301 | "P_bg276": 1280, 302 | "P_bg275": 5120, 303 | "P_bg277": 1280, 304 | "P_bg279": 1280, 305 | "P_bg278": 1280, 306 | "P_bg281": 1280, 307 | "P_bg280": 2048, 308 | "P_bg283": 1280, 309 | "P_bg282": 1280, 310 | "P_bg285": 1280, 311 | "P_bg284": 1280, 312 | "P_bg287": 1280, 313 | "P_bg286": 2048, 314 | "P_bg289": 10240, 315 | "P_bg288": 1280, 316 | "P_bg291": 1280, 317 | "P_bg290": 5120, 318 | "P_bg292": 1280, 319 | "P_bg294": 1280, 320 | "P_bg293": 1280, 321 | "P_bg296": 1280, 322 | "P_bg295": 2048, 323 | "P_bg298": 1280, 324 | "P_bg297": 1280, 325 | "P_bg300": 1280, 326 | "P_bg299": 1280, 327 | "P_bg302": 1280, 328 | "P_bg301": 2048, 329 | "P_bg304": 10240, 330 | "P_bg303": 1280, 331 | "P_bg306": 1280, 332 | "P_bg305": 5120, 333 | "P_bg307": 1280, 334 | "P_bg309": 1280, 335 | "P_bg308": 1280, 336 | "P_bg311": 1280, 337 | "P_bg310": 2048, 338 | "P_bg313": 1280, 339 | "P_bg312": 1280, 340 | "P_bg315": 1280, 341 | "P_bg314": 1280, 342 | "P_bg317": 1280, 343 | "P_bg316": 2048, 344 | "P_bg319": 10240, 345 | "P_bg318": 1280, 346 | "P_bg321": 1280, 347 | "P_bg320": 5120, 348 | "P_bg322": 1280, 349 | "P_bg323": 1280, 350 | "P_bg325": 1280, 351 | "P_bg324": 2048, 352 | "P_bg327": 1280, 353 | "P_bg326": 1280, 354 | "P_bg329": 1280, 355 | "P_bg328": 1280, 356 | "P_bg331": 1280, 357 | "P_bg330": 2048, 358 | "P_bg333": 10240, 359 | "P_bg332": 1280, 360 | "P_bg335": 1280, 361 | "P_bg334": 5120, 362 | "P_bg336": 1280, 363 | "P_bg338": 1280, 364 | "P_bg337": 1280, 365 | "P_bg340": 1280, 366 | "P_bg339": 2048, 367 | "P_bg342": 1280, 368 | "P_bg341": 1280, 369 | "P_bg344": 1280, 370 | "P_bg343": 1280, 371 | "P_bg346": 1280, 372 | "P_bg345": 2048, 373 | "P_bg348": 10240, 374 | "P_bg347": 1280, 375 | "P_bg350": 1280, 376 | "P_bg349": 5120, 377 | "P_bg351": 1280, 378 | "P_bg353": 1280, 379 | "P_bg352": 1280, 380 | "P_bg355": 1280, 381 | "P_bg354": 2048, 382 | "P_bg357": 1280, 383 | "P_bg356": 1280, 384 | "P_bg359": 1280, 385 | "P_bg358": 1280, 386 | "P_bg361": 1280, 387 | "P_bg360": 2048, 388 | "P_bg363": 10240, 389 | "P_bg362": 1280, 390 | "P_bg365": 1280, 391 | "P_bg364": 5120, 392 | "P_bg366": 1280, 393 | "P_bg368": 1280, 394 | "P_bg367": 1280, 395 | "P_bg370": 1280, 396 | "P_bg369": 2048, 397 | "P_bg372": 1280, 398 | "P_bg371": 1280, 399 | "P_bg374": 1280, 400 | "P_bg373": 1280, 401 | "P_bg376": 1280, 402 | "P_bg375": 2048, 403 | "P_bg378": 10240, 404 | "P_bg377": 1280, 405 | "P_bg380": 1280, 406 | "P_bg379": 5120, 407 | "P_bg381": 1280, 408 | "P_bg383": 1280, 409 | "P_bg382": 1280, 410 | "P_bg385": 1280, 411 | "P_bg384": 2048, 412 | "P_bg387": 1280, 413 | "P_bg386": 1280, 414 | "P_bg389": 1280, 415 | "P_bg388": 1280, 416 | "P_bg391": 1280, 417 | "P_bg390": 2048, 418 | "P_bg393": 10240, 419 | "P_bg392": 1280, 420 | "P_bg395": 1280, 421 | "P_bg394": 5120, 422 | "P_bg396": 1280, 423 | "P_bg398": 1280, 424 | "P_bg397": 2816, 425 | "P_bg400": 1280, 426 | "P_bg399": 1280, 427 | "P_bg401": 1280, 428 | "P_model.diffusion_model.middle_block.0_inner": 1280, 429 | "P_model.diffusion_model.middle_block.0_inner3": 1280, 430 | "P_model.diffusion_model.middle_block.0_inner2": 1280, 431 | "P_model.diffusion_model.middle_block.0_inner4": 1280, 432 | "P_bg402": 1280, 433 | "P_bg403": 1280, 434 | "P_bg404": 1280, 435 | "P_bg406": 1280, 436 | "P_bg405": 1280, 437 | "P_bg408": 1280, 438 | "P_bg407": 1280, 439 | "P_bg410": 1280, 440 | "P_bg409": 2048, 441 | "P_bg412": 1280, 442 | "P_bg411": 1280, 443 | "P_bg414": 1280, 444 | "P_bg413": 1280, 445 | "P_bg416": 1280, 446 | "P_bg415": 2048, 447 | "P_bg418": 10240, 448 | "P_bg417": 1280, 449 | "P_bg420": 1280, 450 | "P_bg419": 5120, 451 | "P_bg421": 1280, 452 | "P_bg423": 1280, 453 | "P_bg422": 1280, 454 | "P_bg425": 1280, 455 | "P_bg424": 2048, 456 | "P_bg427": 1280, 457 | "P_bg426": 1280, 458 | "P_bg429": 1280, 459 | "P_bg428": 1280, 460 | "P_bg431": 1280, 461 | "P_bg430": 2048, 462 | "P_bg433": 10240, 463 | "P_bg432": 1280, 464 | "P_bg435": 1280, 465 | "P_bg434": 5120, 466 | "P_bg436": 1280, 467 | "P_bg438": 1280, 468 | "P_bg437": 1280, 469 | "P_bg440": 1280, 470 | "P_bg439": 2048, 471 | "P_bg442": 1280, 472 | "P_bg441": 1280, 473 | "P_bg444": 1280, 474 | "P_bg443": 1280, 475 | "P_bg446": 1280, 476 | "P_bg445": 2048, 477 | "P_bg448": 10240, 478 | "P_bg447": 1280, 479 | "P_bg450": 1280, 480 | "P_bg449": 5120, 481 | "P_bg451": 1280, 482 | "P_bg453": 1280, 483 | "P_bg452": 1280, 484 | "P_bg455": 1280, 485 | "P_bg454": 2048, 486 | "P_bg457": 1280, 487 | "P_bg456": 1280, 488 | "P_bg459": 1280, 489 | "P_bg458": 1280, 490 | "P_bg461": 1280, 491 | "P_bg460": 2048, 492 | "P_bg463": 10240, 493 | "P_bg462": 1280, 494 | "P_bg465": 1280, 495 | "P_bg464": 5120, 496 | "P_bg466": 1280, 497 | "P_bg468": 1280, 498 | "P_bg467": 1280, 499 | "P_bg470": 1280, 500 | "P_bg469": 2048, 501 | "P_bg472": 1280, 502 | "P_bg471": 1280, 503 | "P_bg474": 1280, 504 | "P_bg473": 1280, 505 | "P_bg476": 1280, 506 | "P_bg475": 2048, 507 | "P_bg478": 10240, 508 | "P_bg477": 1280, 509 | "P_bg480": 1280, 510 | "P_bg479": 5120, 511 | "P_bg481": 1280, 512 | "P_bg483": 1280, 513 | "P_bg482": 1280, 514 | "P_bg485": 1280, 515 | "P_bg484": 2048, 516 | "P_bg487": 1280, 517 | "P_bg486": 1280, 518 | "P_bg489": 1280, 519 | "P_bg488": 1280, 520 | "P_bg491": 1280, 521 | "P_bg490": 2048, 522 | "P_bg493": 10240, 523 | "P_bg492": 1280, 524 | "P_bg495": 1280, 525 | "P_bg494": 5120, 526 | "P_bg496": 1280, 527 | "P_bg498": 1280, 528 | "P_bg497": 1280, 529 | "P_bg500": 1280, 530 | "P_bg499": 2048, 531 | "P_bg502": 1280, 532 | "P_bg501": 1280, 533 | "P_bg504": 1280, 534 | "P_bg503": 1280, 535 | "P_bg506": 1280, 536 | "P_bg505": 2048, 537 | "P_bg508": 10240, 538 | "P_bg507": 1280, 539 | "P_bg510": 1280, 540 | "P_bg509": 5120, 541 | "P_bg511": 1280, 542 | "P_bg513": 1280, 543 | "P_bg512": 1280, 544 | "P_bg515": 1280, 545 | "P_bg514": 2048, 546 | "P_bg517": 1280, 547 | "P_bg516": 1280, 548 | "P_bg519": 1280, 549 | "P_bg518": 1280, 550 | "P_bg521": 1280, 551 | "P_bg520": 2048, 552 | "P_bg523": 10240, 553 | "P_bg522": 1280, 554 | "P_bg525": 1280, 555 | "P_bg524": 5120, 556 | "P_bg526": 1280, 557 | "P_bg528": 1280, 558 | "P_bg527": 1280, 559 | "P_bg530": 1280, 560 | "P_bg529": 2048, 561 | "P_bg532": 1280, 562 | "P_bg531": 1280, 563 | "P_bg534": 1280, 564 | "P_bg533": 1280, 565 | "P_bg536": 1280, 566 | "P_bg535": 2048, 567 | "P_bg538": 10240, 568 | "P_bg537": 1280, 569 | "P_bg540": 1280, 570 | "P_bg539": 5120, 571 | "P_bg541": 1280, 572 | "P_bg543": 1280, 573 | "P_bg542": 1280, 574 | "P_bg545": 1280, 575 | "P_bg544": 2048, 576 | "P_bg547": 1280, 577 | "P_bg546": 1280, 578 | "P_bg549": 1280, 579 | "P_bg548": 1280, 580 | "P_bg551": 1280, 581 | "P_bg550": 2048, 582 | "P_bg553": 10240, 583 | "P_bg552": 1280, 584 | "P_bg555": 1280, 585 | "P_bg554": 5120, 586 | "P_bg556": 1280, 587 | "P_bg557": 1280, 588 | "P_model.diffusion_model.middle_block.2_inner": 1280, 589 | "P_model.diffusion_model.middle_block.2_inner3": 1280, 590 | "P_model.diffusion_model.middle_block.2_inner2": 1280, 591 | "P_model.diffusion_model.middle_block.2_inner4": 1280, 592 | "P_bg558": 1280, 593 | "P_bg559": 320, 594 | "P_bg561": 4, 595 | "P_bg560": 320, 596 | "P_bg562": 2560, 597 | "P_model.diffusion_model.output_blocks.0.0_inner": 1280, 598 | "P_model.diffusion_model.output_blocks.0.0_inner3": 1280, 599 | "P_model.diffusion_model.output_blocks.0.0_inner2": 1280, 600 | "P_model.diffusion_model.output_blocks.0.0_inner4": 1280, 601 | "P_bg563": 1280, 602 | "P_bg565": 1280, 603 | "P_bg564": 2560, 604 | "P_bg566": 1280, 605 | "P_bg567": 1280, 606 | "P_bg569": 1280, 607 | "P_bg568": 1280, 608 | "P_bg571": 1280, 609 | "P_bg570": 1280, 610 | "P_bg573": 1280, 611 | "P_bg572": 2048, 612 | "P_bg575": 1280, 613 | "P_bg574": 1280, 614 | "P_bg577": 1280, 615 | "P_bg576": 1280, 616 | "P_bg579": 1280, 617 | "P_bg578": 2048, 618 | "P_bg581": 10240, 619 | "P_bg580": 1280, 620 | "P_bg583": 1280, 621 | "P_bg582": 5120, 622 | "P_bg584": 1280, 623 | "P_bg586": 1280, 624 | "P_bg585": 1280, 625 | "P_bg588": 1280, 626 | "P_bg587": 2048, 627 | "P_bg590": 1280, 628 | "P_bg589": 1280, 629 | "P_bg592": 1280, 630 | "P_bg591": 1280, 631 | "P_bg594": 1280, 632 | "P_bg593": 2048, 633 | "P_bg596": 10240, 634 | "P_bg595": 1280, 635 | "P_bg598": 1280, 636 | "P_bg597": 5120, 637 | "P_bg599": 1280, 638 | "P_bg601": 1280, 639 | "P_bg600": 1280, 640 | "P_bg603": 1280, 641 | "P_bg602": 2048, 642 | "P_bg605": 1280, 643 | "P_bg604": 1280, 644 | "P_bg607": 1280, 645 | "P_bg606": 1280, 646 | "P_bg609": 1280, 647 | "P_bg608": 2048, 648 | "P_bg611": 10240, 649 | "P_bg610": 1280, 650 | "P_bg613": 1280, 651 | "P_bg612": 5120, 652 | "P_bg614": 1280, 653 | "P_bg616": 1280, 654 | "P_bg615": 1280, 655 | "P_bg618": 1280, 656 | "P_bg617": 2048, 657 | "P_bg620": 1280, 658 | "P_bg619": 1280, 659 | "P_bg622": 1280, 660 | "P_bg621": 1280, 661 | "P_bg624": 1280, 662 | "P_bg623": 2048, 663 | "P_bg626": 10240, 664 | "P_bg625": 1280, 665 | "P_bg628": 1280, 666 | "P_bg627": 5120, 667 | "P_bg629": 1280, 668 | "P_bg631": 1280, 669 | "P_bg630": 1280, 670 | "P_bg633": 1280, 671 | "P_bg632": 2048, 672 | "P_bg635": 1280, 673 | "P_bg634": 1280, 674 | "P_bg637": 1280, 675 | "P_bg636": 1280, 676 | "P_bg639": 1280, 677 | "P_bg638": 2048, 678 | "P_bg641": 10240, 679 | "P_bg640": 1280, 680 | "P_bg643": 1280, 681 | "P_bg642": 5120, 682 | "P_bg644": 1280, 683 | "P_bg646": 1280, 684 | "P_bg645": 1280, 685 | "P_bg648": 1280, 686 | "P_bg647": 2048, 687 | "P_bg650": 1280, 688 | "P_bg649": 1280, 689 | "P_bg652": 1280, 690 | "P_bg651": 1280, 691 | "P_bg654": 1280, 692 | "P_bg653": 2048, 693 | "P_bg656": 10240, 694 | "P_bg655": 1280, 695 | "P_bg658": 1280, 696 | "P_bg657": 5120, 697 | "P_bg659": 1280, 698 | "P_bg661": 1280, 699 | "P_bg660": 1280, 700 | "P_bg663": 1280, 701 | "P_bg662": 2048, 702 | "P_bg665": 1280, 703 | "P_bg664": 1280, 704 | "P_bg667": 1280, 705 | "P_bg666": 1280, 706 | "P_bg669": 1280, 707 | "P_bg668": 2048, 708 | "P_bg671": 10240, 709 | "P_bg670": 1280, 710 | "P_bg673": 1280, 711 | "P_bg672": 5120, 712 | "P_bg674": 1280, 713 | "P_bg676": 1280, 714 | "P_bg675": 1280, 715 | "P_bg678": 1280, 716 | "P_bg677": 2048, 717 | "P_bg680": 1280, 718 | "P_bg679": 1280, 719 | "P_bg682": 1280, 720 | "P_bg681": 1280, 721 | "P_bg684": 1280, 722 | "P_bg683": 2048, 723 | "P_bg686": 10240, 724 | "P_bg685": 1280, 725 | "P_bg688": 1280, 726 | "P_bg687": 5120, 727 | "P_bg689": 1280, 728 | "P_bg691": 1280, 729 | "P_bg690": 1280, 730 | "P_bg693": 1280, 731 | "P_bg692": 2048, 732 | "P_bg695": 1280, 733 | "P_bg694": 1280, 734 | "P_bg697": 1280, 735 | "P_bg696": 1280, 736 | "P_bg699": 1280, 737 | "P_bg698": 2048, 738 | "P_bg701": 10240, 739 | "P_bg700": 1280, 740 | "P_bg703": 1280, 741 | "P_bg702": 5120, 742 | "P_bg704": 1280, 743 | "P_bg706": 1280, 744 | "P_bg705": 1280, 745 | "P_bg708": 1280, 746 | "P_bg707": 2048, 747 | "P_bg710": 1280, 748 | "P_bg709": 1280, 749 | "P_bg712": 1280, 750 | "P_bg711": 1280, 751 | "P_bg714": 1280, 752 | "P_bg713": 2048, 753 | "P_bg716": 10240, 754 | "P_bg715": 1280, 755 | "P_bg718": 1280, 756 | "P_bg717": 5120, 757 | "P_bg719": 1280, 758 | "P_bg720": 2560, 759 | "P_model.diffusion_model.output_blocks.1.0_inner": 1280, 760 | "P_model.diffusion_model.output_blocks.1.0_inner3": 1280, 761 | "P_model.diffusion_model.output_blocks.1.0_inner2": 1280, 762 | "P_model.diffusion_model.output_blocks.1.0_inner4": 1280, 763 | "P_bg721": 1280, 764 | "P_bg723": 1280, 765 | "P_bg722": 2560, 766 | "P_bg724": 1280, 767 | "P_bg725": 1280, 768 | "P_bg727": 1280, 769 | "P_bg726": 1280, 770 | "P_bg729": 1280, 771 | "P_bg728": 1280, 772 | "P_bg731": 1280, 773 | "P_bg730": 2048, 774 | "P_bg733": 1280, 775 | "P_bg732": 1280, 776 | "P_bg735": 1280, 777 | "P_bg734": 1280, 778 | "P_bg737": 1280, 779 | "P_bg736": 2048, 780 | "P_bg739": 10240, 781 | "P_bg738": 1280, 782 | "P_bg741": 1280, 783 | "P_bg740": 5120, 784 | "P_bg742": 1280, 785 | "P_bg744": 1280, 786 | "P_bg743": 1280, 787 | "P_bg746": 1280, 788 | "P_bg745": 2048, 789 | "P_bg748": 1280, 790 | "P_bg747": 1280, 791 | "P_bg750": 1280, 792 | "P_bg749": 1280, 793 | "P_bg752": 1280, 794 | "P_bg751": 2048, 795 | "P_bg754": 10240, 796 | "P_bg753": 1280, 797 | "P_bg756": 1280, 798 | "P_bg755": 5120, 799 | "P_bg757": 1280, 800 | "P_bg759": 1280, 801 | "P_bg758": 1280, 802 | "P_bg761": 1280, 803 | "P_bg760": 2048, 804 | "P_bg763": 1280, 805 | "P_bg762": 1280, 806 | "P_bg765": 1280, 807 | "P_bg764": 1280, 808 | "P_bg767": 1280, 809 | "P_bg766": 2048, 810 | "P_bg769": 10240, 811 | "P_bg768": 1280, 812 | "P_bg771": 1280, 813 | "P_bg770": 5120, 814 | "P_bg772": 1280, 815 | "P_bg774": 1280, 816 | "P_bg773": 1280, 817 | "P_bg776": 1280, 818 | "P_bg775": 2048, 819 | "P_bg778": 1280, 820 | "P_bg777": 1280, 821 | "P_bg780": 1280, 822 | "P_bg779": 1280, 823 | "P_bg782": 1280, 824 | "P_bg781": 2048, 825 | "P_bg784": 10240, 826 | "P_bg783": 1280, 827 | "P_bg786": 1280, 828 | "P_bg785": 5120, 829 | "P_bg787": 1280, 830 | "P_bg789": 1280, 831 | "P_bg788": 1280, 832 | "P_bg791": 1280, 833 | "P_bg790": 2048, 834 | "P_bg793": 1280, 835 | "P_bg792": 1280, 836 | "P_bg795": 1280, 837 | "P_bg794": 1280, 838 | "P_bg797": 1280, 839 | "P_bg796": 2048, 840 | "P_bg799": 10240, 841 | "P_bg798": 1280, 842 | "P_bg801": 1280, 843 | "P_bg800": 5120, 844 | "P_bg802": 1280, 845 | "P_bg804": 1280, 846 | "P_bg803": 1280, 847 | "P_bg806": 1280, 848 | "P_bg805": 2048, 849 | "P_bg808": 1280, 850 | "P_bg807": 1280, 851 | "P_bg810": 1280, 852 | "P_bg809": 1280, 853 | "P_bg812": 1280, 854 | "P_bg811": 2048, 855 | "P_bg814": 10240, 856 | "P_bg813": 1280, 857 | "P_bg816": 1280, 858 | "P_bg815": 5120, 859 | "P_bg817": 1280, 860 | "P_bg819": 1280, 861 | "P_bg818": 1280, 862 | "P_bg821": 1280, 863 | "P_bg820": 2048, 864 | "P_bg823": 1280, 865 | "P_bg822": 1280, 866 | "P_bg825": 1280, 867 | "P_bg824": 1280, 868 | "P_bg827": 1280, 869 | "P_bg826": 2048, 870 | "P_bg829": 10240, 871 | "P_bg828": 1280, 872 | "P_bg831": 1280, 873 | "P_bg830": 5120, 874 | "P_bg832": 1280, 875 | "P_bg834": 1280, 876 | "P_bg833": 1280, 877 | "P_bg836": 1280, 878 | "P_bg835": 2048, 879 | "P_bg838": 1280, 880 | "P_bg837": 1280, 881 | "P_bg840": 1280, 882 | "P_bg839": 1280, 883 | "P_bg842": 1280, 884 | "P_bg841": 2048, 885 | "P_bg844": 10240, 886 | "P_bg843": 1280, 887 | "P_bg846": 1280, 888 | "P_bg845": 5120, 889 | "P_bg847": 1280, 890 | "P_bg849": 1280, 891 | "P_bg848": 1280, 892 | "P_bg851": 1280, 893 | "P_bg850": 2048, 894 | "P_bg853": 1280, 895 | "P_bg852": 1280, 896 | "P_bg855": 1280, 897 | "P_bg854": 1280, 898 | "P_bg857": 1280, 899 | "P_bg856": 2048, 900 | "P_bg859": 10240, 901 | "P_bg858": 1280, 902 | "P_bg861": 1280, 903 | "P_bg860": 5120, 904 | "P_bg862": 1280, 905 | "P_bg864": 1280, 906 | "P_bg863": 1280, 907 | "P_bg866": 1280, 908 | "P_bg865": 2048, 909 | "P_bg868": 1280, 910 | "P_bg867": 1280, 911 | "P_bg870": 1280, 912 | "P_bg869": 1280, 913 | "P_bg872": 1280, 914 | "P_bg871": 2048, 915 | "P_bg874": 10240, 916 | "P_bg873": 1280, 917 | "P_bg876": 1280, 918 | "P_bg875": 5120, 919 | "P_bg877": 1280, 920 | "P_bg878": 1920, 921 | "P_model.diffusion_model.output_blocks.2.0_inner": 1280, 922 | "P_model.diffusion_model.output_blocks.2.0_inner3": 1280, 923 | "P_model.diffusion_model.output_blocks.2.0_inner2": 1280, 924 | "P_model.diffusion_model.output_blocks.2.0_inner4": 1280, 925 | "P_bg879": 1280, 926 | "P_bg881": 1280, 927 | "P_bg880": 1920, 928 | "P_bg882": 1280, 929 | "P_bg883": 1280, 930 | "P_bg885": 1280, 931 | "P_bg884": 1280, 932 | "P_bg887": 1280, 933 | "P_bg886": 1280, 934 | "P_bg889": 1280, 935 | "P_bg888": 2048, 936 | "P_bg891": 1280, 937 | "P_bg890": 1280, 938 | "P_bg893": 1280, 939 | "P_bg892": 1280, 940 | "P_bg895": 1280, 941 | "P_bg894": 2048, 942 | "P_bg897": 10240, 943 | "P_bg896": 1280, 944 | "P_bg899": 1280, 945 | "P_bg898": 5120, 946 | "P_bg900": 1280, 947 | "P_bg902": 1280, 948 | "P_bg901": 1280, 949 | "P_bg904": 1280, 950 | "P_bg903": 2048, 951 | "P_bg906": 1280, 952 | "P_bg905": 1280, 953 | "P_bg908": 1280, 954 | "P_bg907": 1280, 955 | "P_bg910": 1280, 956 | "P_bg909": 2048, 957 | "P_bg912": 10240, 958 | "P_bg911": 1280, 959 | "P_bg914": 1280, 960 | "P_bg913": 5120, 961 | "P_bg915": 1280, 962 | "P_bg917": 1280, 963 | "P_bg916": 1280, 964 | "P_bg919": 1280, 965 | "P_bg918": 2048, 966 | "P_bg921": 1280, 967 | "P_bg920": 1280, 968 | "P_bg923": 1280, 969 | "P_bg922": 1280, 970 | "P_bg925": 1280, 971 | "P_bg924": 2048, 972 | "P_bg927": 10240, 973 | "P_bg926": 1280, 974 | "P_bg929": 1280, 975 | "P_bg928": 5120, 976 | "P_bg930": 1280, 977 | "P_bg932": 1280, 978 | "P_bg931": 1280, 979 | "P_bg934": 1280, 980 | "P_bg933": 2048, 981 | "P_bg936": 1280, 982 | "P_bg935": 1280, 983 | "P_bg938": 1280, 984 | "P_bg937": 1280, 985 | "P_bg940": 1280, 986 | "P_bg939": 2048, 987 | "P_bg942": 10240, 988 | "P_bg941": 1280, 989 | "P_bg944": 1280, 990 | "P_bg943": 5120, 991 | "P_bg945": 1280, 992 | "P_bg947": 1280, 993 | "P_bg946": 1280, 994 | "P_bg949": 1280, 995 | "P_bg948": 2048, 996 | "P_bg951": 1280, 997 | "P_bg950": 1280, 998 | "P_bg953": 1280, 999 | "P_bg952": 1280, 1000 | "P_bg955": 1280, 1001 | "P_bg954": 2048, 1002 | "P_bg957": 10240, 1003 | "P_bg956": 1280, 1004 | "P_bg959": 1280, 1005 | "P_bg958": 5120, 1006 | "P_bg960": 1280, 1007 | "P_bg962": 1280, 1008 | "P_bg961": 1280, 1009 | "P_bg964": 1280, 1010 | "P_bg963": 2048, 1011 | "P_bg966": 1280, 1012 | "P_bg965": 1280, 1013 | "P_bg968": 1280, 1014 | "P_bg967": 1280, 1015 | "P_bg970": 1280, 1016 | "P_bg969": 2048, 1017 | "P_bg972": 10240, 1018 | "P_bg971": 1280, 1019 | "P_bg974": 1280, 1020 | "P_bg973": 5120, 1021 | "P_bg975": 1280, 1022 | "P_bg977": 1280, 1023 | "P_bg976": 1280, 1024 | "P_bg979": 1280, 1025 | "P_bg978": 2048, 1026 | "P_bg981": 1280, 1027 | "P_bg980": 1280, 1028 | "P_bg983": 1280, 1029 | "P_bg982": 1280, 1030 | "P_bg985": 1280, 1031 | "P_bg984": 2048, 1032 | "P_bg987": 10240, 1033 | "P_bg986": 1280, 1034 | "P_bg989": 1280, 1035 | "P_bg988": 5120, 1036 | "P_bg990": 1280, 1037 | "P_bg992": 1280, 1038 | "P_bg991": 1280, 1039 | "P_bg994": 1280, 1040 | "P_bg993": 2048, 1041 | "P_bg996": 1280, 1042 | "P_bg995": 1280, 1043 | "P_bg998": 1280, 1044 | "P_bg997": 1280, 1045 | "P_bg1000": 1280, 1046 | "P_bg999": 2048, 1047 | "P_bg1002": 10240, 1048 | "P_bg1001": 1280, 1049 | "P_bg1004": 1280, 1050 | "P_bg1003": 5120, 1051 | "P_bg1005": 1280, 1052 | "P_bg1007": 1280, 1053 | "P_bg1006": 1280, 1054 | "P_bg1009": 1280, 1055 | "P_bg1008": 2048, 1056 | "P_bg1011": 1280, 1057 | "P_bg1010": 1280, 1058 | "P_bg1013": 1280, 1059 | "P_bg1012": 1280, 1060 | "P_bg1015": 1280, 1061 | "P_bg1014": 2048, 1062 | "P_bg1017": 10240, 1063 | "P_bg1016": 1280, 1064 | "P_bg1019": 1280, 1065 | "P_bg1018": 5120, 1066 | "P_bg1020": 1280, 1067 | "P_bg1022": 1280, 1068 | "P_bg1021": 1280, 1069 | "P_bg1024": 1280, 1070 | "P_bg1023": 2048, 1071 | "P_bg1026": 1280, 1072 | "P_bg1025": 1280, 1073 | "P_bg1028": 1280, 1074 | "P_bg1027": 1280, 1075 | "P_bg1030": 1280, 1076 | "P_bg1029": 2048, 1077 | "P_bg1032": 10240, 1078 | "P_bg1031": 1280, 1079 | "P_bg1034": 1280, 1080 | "P_bg1033": 5120, 1081 | "P_bg1035": 1280, 1082 | "P_bg1037": 1280, 1083 | "P_bg1036": 1280, 1084 | "P_bg1038": 1920, 1085 | "P_model.diffusion_model.output_blocks.3.0_inner": 640, 1086 | "P_model.diffusion_model.output_blocks.3.0_inner3": 640, 1087 | "P_model.diffusion_model.output_blocks.3.0_inner2": 1280, 1088 | "P_model.diffusion_model.output_blocks.3.0_inner4": 640, 1089 | "P_bg1039": 640, 1090 | "P_bg1041": 640, 1091 | "P_bg1040": 1920, 1092 | "P_bg1042": 640, 1093 | "P_bg1043": 640, 1094 | "P_bg1045": 640, 1095 | "P_bg1044": 640, 1096 | "P_bg1047": 640, 1097 | "P_bg1046": 640, 1098 | "P_bg1049": 640, 1099 | "P_bg1048": 2048, 1100 | "P_bg1051": 640, 1101 | "P_bg1050": 640, 1102 | "P_bg1053": 640, 1103 | "P_bg1052": 640, 1104 | "P_bg1055": 640, 1105 | "P_bg1054": 2048, 1106 | "P_bg1057": 5120, 1107 | "P_bg1056": 640, 1108 | "P_bg1059": 640, 1109 | "P_bg1058": 2560, 1110 | "P_bg1060": 640, 1111 | "P_bg1062": 640, 1112 | "P_bg1061": 640, 1113 | "P_bg1064": 640, 1114 | "P_bg1063": 2048, 1115 | "P_bg1066": 640, 1116 | "P_bg1065": 640, 1117 | "P_bg1068": 640, 1118 | "P_bg1067": 640, 1119 | "P_bg1070": 640, 1120 | "P_bg1069": 2048, 1121 | "P_bg1072": 5120, 1122 | "P_bg1071": 640, 1123 | "P_bg1074": 640, 1124 | "P_bg1073": 2560, 1125 | "P_bg1075": 640, 1126 | "P_bg1076": 1280, 1127 | "P_model.diffusion_model.output_blocks.4.0_inner": 640, 1128 | "P_model.diffusion_model.output_blocks.4.0_inner3": 640, 1129 | "P_model.diffusion_model.output_blocks.4.0_inner2": 1280, 1130 | "P_model.diffusion_model.output_blocks.4.0_inner4": 640, 1131 | "P_bg1077": 640, 1132 | "P_bg1079": 640, 1133 | "P_bg1078": 1280, 1134 | "P_bg1080": 640, 1135 | "P_bg1081": 640, 1136 | "P_bg1083": 640, 1137 | "P_bg1082": 640, 1138 | "P_bg1085": 640, 1139 | "P_bg1084": 640, 1140 | "P_bg1087": 640, 1141 | "P_bg1086": 2048, 1142 | "P_bg1089": 640, 1143 | "P_bg1088": 640, 1144 | "P_bg1091": 640, 1145 | "P_bg1090": 640, 1146 | "P_bg1093": 640, 1147 | "P_bg1092": 2048, 1148 | "P_bg1095": 5120, 1149 | "P_bg1094": 640, 1150 | "P_bg1097": 640, 1151 | "P_bg1096": 2560, 1152 | "P_bg1098": 640, 1153 | "P_bg1100": 640, 1154 | "P_bg1099": 640, 1155 | "P_bg1102": 640, 1156 | "P_bg1101": 2048, 1157 | "P_bg1104": 640, 1158 | "P_bg1103": 640, 1159 | "P_bg1106": 640, 1160 | "P_bg1105": 640, 1161 | "P_bg1108": 640, 1162 | "P_bg1107": 2048, 1163 | "P_bg1110": 5120, 1164 | "P_bg1109": 640, 1165 | "P_bg1112": 640, 1166 | "P_bg1111": 2560, 1167 | "P_bg1113": 640, 1168 | "P_bg1114": 960, 1169 | "P_model.diffusion_model.output_blocks.5.0_inner": 640, 1170 | "P_model.diffusion_model.output_blocks.5.0_inner3": 640, 1171 | "P_model.diffusion_model.output_blocks.5.0_inner2": 1280, 1172 | "P_model.diffusion_model.output_blocks.5.0_inner4": 640, 1173 | "P_bg1115": 640, 1174 | "P_bg1117": 640, 1175 | "P_bg1116": 960, 1176 | "P_bg1118": 640, 1177 | "P_bg1119": 640, 1178 | "P_bg1121": 640, 1179 | "P_bg1120": 640, 1180 | "P_bg1123": 640, 1181 | "P_bg1122": 640, 1182 | "P_bg1125": 640, 1183 | "P_bg1124": 2048, 1184 | "P_bg1127": 640, 1185 | "P_bg1126": 640, 1186 | "P_bg1129": 640, 1187 | "P_bg1128": 640, 1188 | "P_bg1131": 640, 1189 | "P_bg1130": 2048, 1190 | "P_bg1133": 5120, 1191 | "P_bg1132": 640, 1192 | "P_bg1135": 640, 1193 | "P_bg1134": 2560, 1194 | "P_bg1136": 640, 1195 | "P_bg1138": 640, 1196 | "P_bg1137": 640, 1197 | "P_bg1140": 640, 1198 | "P_bg1139": 2048, 1199 | "P_bg1142": 640, 1200 | "P_bg1141": 640, 1201 | "P_bg1144": 640, 1202 | "P_bg1143": 640, 1203 | "P_bg1146": 640, 1204 | "P_bg1145": 2048, 1205 | "P_bg1148": 5120, 1206 | "P_bg1147": 640, 1207 | "P_bg1150": 640, 1208 | "P_bg1149": 2560, 1209 | "P_bg1151": 640, 1210 | "P_bg1153": 640, 1211 | "P_bg1152": 640, 1212 | "P_bg1154": 960, 1213 | "P_model.diffusion_model.output_blocks.6.0_inner": 320, 1214 | "P_model.diffusion_model.output_blocks.6.0_inner3": 320, 1215 | "P_model.diffusion_model.output_blocks.6.0_inner2": 1280, 1216 | "P_model.diffusion_model.output_blocks.6.0_inner4": 320, 1217 | "P_bg1155": 320, 1218 | "P_bg1157": 320, 1219 | "P_bg1156": 960, 1220 | "P_bg1158": 640, 1221 | "P_model.diffusion_model.output_blocks.7.0_inner": 320, 1222 | "P_model.diffusion_model.output_blocks.7.0_inner3": 320, 1223 | "P_model.diffusion_model.output_blocks.7.0_inner2": 1280, 1224 | "P_model.diffusion_model.output_blocks.7.0_inner4": 320, 1225 | "P_bg1159": 320, 1226 | "P_bg1161": 320, 1227 | "P_bg1160": 640, 1228 | "P_bg1162": 640, 1229 | "P_model.diffusion_model.output_blocks.8.0_inner": 320, 1230 | "P_model.diffusion_model.output_blocks.8.0_inner3": 320, 1231 | "P_model.diffusion_model.output_blocks.8.0_inner2": 1280, 1232 | "P_model.diffusion_model.output_blocks.8.0_inner4": 320, 1233 | "P_bg1163": 320, 1234 | "P_bg1165": 320, 1235 | "P_bg1164": 640, 1236 | "P_bg1167": 1280, 1237 | "P_bg1166": 320, 1238 | "P_bg1169": 1280, 1239 | "P_bg1168": 1280, 1240 | "P_bg1171": 77, 1241 | "P_bg1170": 768, 1242 | "P_bg1181": 768, 1243 | "P_bg1180": 768, 1244 | "P_bg1177": 3072, 1245 | "P_bg1179": 768, 1246 | "P_bg1189": 768, 1247 | "P_bg1185": 3072, 1248 | "P_bg1187": 768, 1249 | "P_bg1213": 768, 1250 | "P_bg1209": 3072, 1251 | "P_bg1211": 768, 1252 | "P_bg1221": 768, 1253 | "P_bg1217": 3072, 1254 | "P_bg1219": 768, 1255 | "P_bg1229": 768, 1256 | "P_bg1225": 3072, 1257 | "P_bg1227": 768, 1258 | "P_bg1237": 768, 1259 | "P_bg1233": 3072, 1260 | "P_bg1235": 768, 1261 | "P_bg1245": 768, 1262 | "P_bg1241": 3072, 1263 | "P_bg1243": 768, 1264 | "P_bg1253": 768, 1265 | "P_bg1249": 3072, 1266 | "P_bg1251": 768, 1267 | "P_bg1261": 768, 1268 | "P_bg1257": 3072, 1269 | "P_bg1259": 768, 1270 | "P_bg1269": 768, 1271 | "P_bg1265": 3072, 1272 | "P_bg1267": 768, 1273 | "P_bg1197": 768, 1274 | "P_bg1193": 3072, 1275 | "P_bg1195": 768, 1276 | "P_bg1205": 768, 1277 | "P_bg1201": 3072, 1278 | "P_bg1203": 768, 1279 | "P_bg1430": 1280, 1280 | "P_bg1275": 3840, 1281 | "P_bg1274": 1280, 1282 | "P_bg1279": 5120, 1283 | "P_bg1280": 1280, 1284 | "P_bg1281": 3840, 1285 | "P_bg1285": 5120, 1286 | "P_bg1287": 1280, 1287 | "P_bg1347": 3840, 1288 | "P_bg1351": 5120, 1289 | "P_bg1348": 1280, 1290 | "P_bg1353": 1280, 1291 | "P_bg1413": 3840, 1292 | "P_bg1417": 5120, 1293 | "P_bg1419": 1280, 1294 | "P_bg1431": 3840, 1295 | "P_bg1435": 5120, 1296 | "P_bg1436": 1280, 1297 | "P_bg1437": 3840, 1298 | "P_bg1441": 5120, 1299 | "P_bg1442": 1280, 1300 | "P_bg1443": 3840, 1301 | "P_bg1447": 5120, 1302 | "P_bg1448": 1280, 1303 | "P_bg1449": 3840, 1304 | "P_bg1453": 5120, 1305 | "P_bg1454": 1280, 1306 | "P_bg1455": 3840, 1307 | "P_bg1459": 5120, 1308 | "P_bg1460": 1280, 1309 | "P_bg1461": 3840, 1310 | "P_bg1465": 5120, 1311 | "P_bg1286": 1280, 1312 | "P_bg1291": 5120, 1313 | "P_bg1292": 1280, 1314 | "P_bg1293": 3840, 1315 | "P_bg1297": 5120, 1316 | "P_bg1298": 1280, 1317 | "P_bg1299": 3840, 1318 | "P_bg1303": 5120, 1319 | "P_bg1304": 1280, 1320 | "P_bg1305": 3840, 1321 | "P_bg1309": 5120, 1322 | "P_bg1310": 1280, 1323 | "P_bg1311": 3840, 1324 | "P_bg1315": 5120, 1325 | "P_bg1316": 1280, 1326 | "P_bg1317": 3840, 1327 | "P_bg1321": 5120, 1328 | "P_bg1325": 1280, 1329 | "P_bg1322": 1280, 1330 | "P_bg1323": 3840, 1331 | "P_bg1327": 5120, 1332 | "P_bg1328": 1280, 1333 | "P_bg1329": 3840, 1334 | "P_bg1333": 5120, 1335 | "P_bg1334": 1280, 1336 | "P_bg1335": 3840, 1337 | "P_bg1339": 5120, 1338 | "P_bg1340": 1280, 1339 | "P_bg1341": 3840, 1340 | "P_bg1345": 5120, 1341 | "P_bg1352": 1280, 1342 | "P_bg1357": 5120, 1343 | "P_bg1358": 1280, 1344 | "P_bg1359": 3840, 1345 | "P_bg1363": 5120, 1346 | "P_bg1364": 1280, 1347 | "P_bg1365": 3840, 1348 | "P_bg1369": 5120, 1349 | "P_bg1370": 1280, 1350 | "P_bg1371": 3840, 1351 | "P_bg1375": 5120, 1352 | "P_bg1376": 1280, 1353 | "P_bg1377": 3840, 1354 | "P_bg1381": 5120, 1355 | "P_bg1382": 1280, 1356 | "P_bg1383": 3840, 1357 | "P_bg1387": 5120, 1358 | "P_bg1388": 1280, 1359 | "P_bg1389": 3840, 1360 | "P_bg1393": 5120, 1361 | "P_bg1394": 1280, 1362 | "P_bg1395": 3840, 1363 | "P_bg1399": 5120, 1364 | "P_bg1400": 1280, 1365 | "P_bg1401": 3840, 1366 | "P_bg1405": 5120, 1367 | "P_bg1406": 1280, 1368 | "P_bg1407": 3840, 1369 | "P_bg1411": 5120, 1370 | "P_bg1418": 1280, 1371 | "P_bg1423": 5120, 1372 | "P_bg1424": 1280, 1373 | "P_bg1425": 3840, 1374 | "P_bg1429": 5120 1375 | } -------------------------------------------------------------------------------- /docs/perm_sdxl_sl.json: -------------------------------------------------------------------------------- 1 | [ 2 | "P_bg0", 3 | "P_bg1", 4 | "P_bg10", 5 | "P_bg100", 6 | "P_bg1000", 7 | "P_bg1001", 8 | "P_bg1002", 9 | "P_bg1003", 10 | "P_bg1004", 11 | "P_bg1005", 12 | "P_bg1006", 13 | "P_bg1007", 14 | "P_bg1008", 15 | "P_bg1009", 16 | "P_bg101", 17 | "P_bg1010", 18 | "P_bg1011", 19 | "P_bg1012", 20 | "P_bg1013", 21 | "P_bg1014", 22 | "P_bg1015", 23 | "P_bg1016", 24 | "P_bg1017", 25 | "P_bg1018", 26 | "P_bg1019", 27 | "P_bg102", 28 | "P_bg1020", 29 | "P_bg1021", 30 | "P_bg1022", 31 | "P_bg1023", 32 | "P_bg1024", 33 | "P_bg1025", 34 | "P_bg1026", 35 | "P_bg1027", 36 | "P_bg1028", 37 | "P_bg1029", 38 | "P_bg103", 39 | "P_bg1030", 40 | "P_bg1031", 41 | "P_bg1032", 42 | "P_bg1033", 43 | "P_bg1034", 44 | "P_bg1035", 45 | "P_bg1036", 46 | "P_bg1037", 47 | "P_bg1038", 48 | "P_bg1039", 49 | "P_bg104", 50 | "P_bg1040", 51 | "P_bg1041", 52 | "P_bg1042", 53 | "P_bg1043", 54 | "P_bg1044", 55 | "P_bg1045", 56 | "P_bg1046", 57 | "P_bg1047", 58 | "P_bg1048", 59 | "P_bg1049", 60 | "P_bg105", 61 | "P_bg1050", 62 | "P_bg1051", 63 | "P_bg1052", 64 | "P_bg1053", 65 | "P_bg1054", 66 | "P_bg1055", 67 | "P_bg1056", 68 | "P_bg1057", 69 | "P_bg1058", 70 | "P_bg1059", 71 | "P_bg106", 72 | "P_bg1060", 73 | "P_bg1061", 74 | "P_bg1062", 75 | "P_bg1063", 76 | "P_bg1064", 77 | "P_bg1065", 78 | "P_bg1066", 79 | "P_bg1067", 80 | "P_bg1068", 81 | "P_bg1069", 82 | "P_bg107", 83 | "P_bg1070", 84 | "P_bg1071", 85 | "P_bg1072", 86 | "P_bg1073", 87 | "P_bg1074", 88 | "P_bg1075", 89 | "P_bg1076", 90 | "P_bg1077", 91 | "P_bg1078", 92 | "P_bg1079", 93 | "P_bg108", 94 | "P_bg1080", 95 | "P_bg1081", 96 | "P_bg1082", 97 | "P_bg1083", 98 | "P_bg1084", 99 | "P_bg1085", 100 | "P_bg1086", 101 | "P_bg1087", 102 | "P_bg1088", 103 | "P_bg1089", 104 | "P_bg109", 105 | "P_bg1090", 106 | "P_bg1091", 107 | "P_bg1092", 108 | "P_bg1093", 109 | "P_bg1094", 110 | "P_bg1095", 111 | "P_bg1096", 112 | "P_bg1097", 113 | "P_bg1098", 114 | "P_bg1099", 115 | "P_bg11", 116 | "P_bg110", 117 | "P_bg1100", 118 | "P_bg1101", 119 | "P_bg1102", 120 | "P_bg1103", 121 | "P_bg1104", 122 | "P_bg1105", 123 | "P_bg1106", 124 | "P_bg1107", 125 | "P_bg1108", 126 | "P_bg1109", 127 | "P_bg111", 128 | "P_bg1110", 129 | "P_bg1111", 130 | "P_bg1112", 131 | "P_bg1113", 132 | "P_bg1114", 133 | "P_bg1115", 134 | "P_bg1116", 135 | "P_bg1117", 136 | "P_bg1118", 137 | "P_bg1119", 138 | "P_bg112", 139 | "P_bg1120", 140 | "P_bg1121", 141 | "P_bg1122", 142 | "P_bg1123", 143 | "P_bg1124", 144 | "P_bg1125", 145 | "P_bg1126", 146 | "P_bg1127", 147 | "P_bg1128", 148 | "P_bg1129", 149 | "P_bg113", 150 | "P_bg1130", 151 | "P_bg1131", 152 | "P_bg1132", 153 | "P_bg1133", 154 | "P_bg1134", 155 | "P_bg1135", 156 | "P_bg1136", 157 | "P_bg1137", 158 | "P_bg1138", 159 | "P_bg1139", 160 | "P_bg114", 161 | "P_bg1140", 162 | "P_bg1141", 163 | "P_bg1142", 164 | "P_bg1143", 165 | "P_bg1144", 166 | "P_bg1145", 167 | "P_bg1146", 168 | "P_bg1147", 169 | "P_bg1148", 170 | "P_bg1149", 171 | "P_bg115", 172 | "P_bg1150", 173 | "P_bg1151", 174 | "P_bg1152", 175 | "P_bg1153", 176 | "P_bg1154", 177 | "P_bg1155", 178 | "P_bg1156", 179 | "P_bg1157", 180 | "P_bg1158", 181 | "P_bg1159", 182 | "P_bg116", 183 | "P_bg1160", 184 | "P_bg1161", 185 | "P_bg1162", 186 | "P_bg1163", 187 | "P_bg1164", 188 | "P_bg1165", 189 | "P_bg1166", 190 | "P_bg1167", 191 | "P_bg1168", 192 | "P_bg1169", 193 | "P_bg117", 194 | "P_bg1170", 195 | "P_bg1171", 196 | "P_bg1177", 197 | "P_bg1179", 198 | "P_bg118", 199 | "P_bg1180", 200 | "P_bg1181", 201 | "P_bg1185", 202 | "P_bg1187", 203 | "P_bg1189", 204 | "P_bg119", 205 | "P_bg1193", 206 | "P_bg1195", 207 | "P_bg1197", 208 | "P_bg12", 209 | "P_bg120", 210 | "P_bg1201", 211 | "P_bg1203", 212 | "P_bg1205", 213 | "P_bg1209", 214 | "P_bg121", 215 | "P_bg1211", 216 | "P_bg1213", 217 | "P_bg1217", 218 | "P_bg1219", 219 | "P_bg122", 220 | "P_bg1221", 221 | "P_bg1225", 222 | "P_bg1227", 223 | "P_bg1229", 224 | "P_bg123", 225 | "P_bg1233", 226 | "P_bg1235", 227 | "P_bg1237", 228 | "P_bg124", 229 | "P_bg1241", 230 | "P_bg1243", 231 | "P_bg1245", 232 | "P_bg1249", 233 | "P_bg125", 234 | "P_bg1251", 235 | "P_bg1253", 236 | "P_bg1257", 237 | "P_bg1259", 238 | "P_bg126", 239 | "P_bg1261", 240 | "P_bg1265", 241 | "P_bg1267", 242 | "P_bg1269", 243 | "P_bg127", 244 | "P_bg1274", 245 | "P_bg1275", 246 | "P_bg1279", 247 | "P_bg128", 248 | "P_bg1280", 249 | "P_bg1281", 250 | "P_bg1285", 251 | "P_bg1286", 252 | "P_bg1287", 253 | "P_bg129", 254 | "P_bg1291", 255 | "P_bg1292", 256 | "P_bg1293", 257 | "P_bg1297", 258 | "P_bg1298", 259 | "P_bg1299", 260 | "P_bg13", 261 | "P_bg130", 262 | "P_bg1303", 263 | "P_bg1304", 264 | "P_bg1305", 265 | "P_bg1309", 266 | "P_bg131", 267 | "P_bg1310", 268 | "P_bg1311", 269 | "P_bg1315", 270 | "P_bg1316", 271 | "P_bg1317", 272 | "P_bg132", 273 | "P_bg1321", 274 | "P_bg1322", 275 | "P_bg1323", 276 | "P_bg1325", 277 | "P_bg1327", 278 | "P_bg1328", 279 | "P_bg1329", 280 | "P_bg133", 281 | "P_bg1333", 282 | "P_bg1334", 283 | "P_bg1335", 284 | "P_bg1339", 285 | "P_bg134", 286 | "P_bg1340", 287 | "P_bg1341", 288 | "P_bg1345", 289 | "P_bg1347", 290 | "P_bg1348", 291 | "P_bg135", 292 | "P_bg1351", 293 | "P_bg1352", 294 | "P_bg1353", 295 | "P_bg1357", 296 | "P_bg1358", 297 | "P_bg1359", 298 | "P_bg136", 299 | "P_bg1363", 300 | "P_bg1364", 301 | "P_bg1365", 302 | "P_bg1369", 303 | "P_bg137", 304 | "P_bg1370", 305 | "P_bg1371", 306 | "P_bg1375", 307 | "P_bg1376", 308 | "P_bg1377", 309 | "P_bg138", 310 | "P_bg1381", 311 | "P_bg1382", 312 | "P_bg1383", 313 | "P_bg1387", 314 | "P_bg1388", 315 | "P_bg1389", 316 | "P_bg139", 317 | "P_bg1393", 318 | "P_bg1394", 319 | "P_bg1395", 320 | "P_bg1399", 321 | "P_bg14", 322 | "P_bg140", 323 | "P_bg1400", 324 | "P_bg1401", 325 | "P_bg1405", 326 | "P_bg1406", 327 | "P_bg1407", 328 | "P_bg141", 329 | "P_bg1411", 330 | "P_bg1413", 331 | "P_bg1417", 332 | "P_bg1418", 333 | "P_bg1419", 334 | "P_bg142", 335 | "P_bg1423", 336 | "P_bg1424", 337 | "P_bg1425", 338 | "P_bg1429", 339 | "P_bg143", 340 | "P_bg1430", 341 | "P_bg1431", 342 | "P_bg1435", 343 | "P_bg1436", 344 | "P_bg1437", 345 | "P_bg144", 346 | "P_bg1441", 347 | "P_bg1442", 348 | "P_bg1443", 349 | "P_bg1447", 350 | "P_bg1448", 351 | "P_bg1449", 352 | "P_bg145", 353 | "P_bg1453", 354 | "P_bg1454", 355 | "P_bg1455", 356 | "P_bg1459", 357 | "P_bg146", 358 | "P_bg1460", 359 | "P_bg1461", 360 | "P_bg1465", 361 | "P_bg147", 362 | "P_bg148", 363 | "P_bg149", 364 | "P_bg15", 365 | "P_bg150", 366 | "P_bg151", 367 | "P_bg152", 368 | "P_bg153", 369 | "P_bg154", 370 | "P_bg155", 371 | "P_bg156", 372 | "P_bg157", 373 | "P_bg158", 374 | "P_bg159", 375 | "P_bg16", 376 | "P_bg160", 377 | "P_bg161", 378 | "P_bg162", 379 | "P_bg163", 380 | "P_bg164", 381 | "P_bg165", 382 | "P_bg166", 383 | "P_bg167", 384 | "P_bg168", 385 | "P_bg169", 386 | "P_bg17", 387 | "P_bg170", 388 | "P_bg171", 389 | "P_bg172", 390 | "P_bg173", 391 | "P_bg174", 392 | "P_bg175", 393 | "P_bg176", 394 | "P_bg177", 395 | "P_bg178", 396 | "P_bg179", 397 | "P_bg18", 398 | "P_bg180", 399 | "P_bg181", 400 | "P_bg182", 401 | "P_bg183", 402 | "P_bg184", 403 | "P_bg185", 404 | "P_bg186", 405 | "P_bg187", 406 | "P_bg188", 407 | "P_bg189", 408 | "P_bg19", 409 | "P_bg190", 410 | "P_bg191", 411 | "P_bg192", 412 | "P_bg193", 413 | "P_bg194", 414 | "P_bg195", 415 | "P_bg196", 416 | "P_bg197", 417 | "P_bg198", 418 | "P_bg199", 419 | "P_bg2", 420 | "P_bg20", 421 | "P_bg200", 422 | "P_bg201", 423 | "P_bg202", 424 | "P_bg203", 425 | "P_bg204", 426 | "P_bg205", 427 | "P_bg206", 428 | "P_bg207", 429 | "P_bg208", 430 | "P_bg209", 431 | "P_bg21", 432 | "P_bg210", 433 | "P_bg211", 434 | "P_bg212", 435 | "P_bg213", 436 | "P_bg214", 437 | "P_bg215", 438 | "P_bg216", 439 | "P_bg217", 440 | "P_bg218", 441 | "P_bg219", 442 | "P_bg22", 443 | "P_bg220", 444 | "P_bg221", 445 | "P_bg222", 446 | "P_bg223", 447 | "P_bg224", 448 | "P_bg225", 449 | "P_bg226", 450 | "P_bg227", 451 | "P_bg228", 452 | "P_bg229", 453 | "P_bg23", 454 | "P_bg230", 455 | "P_bg231", 456 | "P_bg232", 457 | "P_bg233", 458 | "P_bg234", 459 | "P_bg235", 460 | "P_bg236", 461 | "P_bg237", 462 | "P_bg238", 463 | "P_bg239", 464 | "P_bg24", 465 | "P_bg240", 466 | "P_bg241", 467 | "P_bg242", 468 | "P_bg243", 469 | "P_bg244", 470 | "P_bg245", 471 | "P_bg246", 472 | "P_bg247", 473 | "P_bg248", 474 | "P_bg249", 475 | "P_bg25", 476 | "P_bg250", 477 | "P_bg251", 478 | "P_bg252", 479 | "P_bg253", 480 | "P_bg254", 481 | "P_bg255", 482 | "P_bg256", 483 | "P_bg257", 484 | "P_bg258", 485 | "P_bg259", 486 | "P_bg26", 487 | "P_bg260", 488 | "P_bg261", 489 | "P_bg262", 490 | "P_bg263", 491 | "P_bg264", 492 | "P_bg265", 493 | "P_bg266", 494 | "P_bg267", 495 | "P_bg268", 496 | "P_bg269", 497 | "P_bg27", 498 | "P_bg270", 499 | "P_bg271", 500 | "P_bg272", 501 | "P_bg273", 502 | "P_bg274", 503 | "P_bg275", 504 | "P_bg276", 505 | "P_bg277", 506 | "P_bg278", 507 | "P_bg279", 508 | "P_bg28", 509 | "P_bg280", 510 | "P_bg281", 511 | "P_bg282", 512 | "P_bg283", 513 | "P_bg284", 514 | "P_bg285", 515 | "P_bg286", 516 | "P_bg287", 517 | "P_bg288", 518 | "P_bg289", 519 | "P_bg29", 520 | "P_bg290", 521 | "P_bg291", 522 | "P_bg292", 523 | "P_bg293", 524 | "P_bg294", 525 | "P_bg295", 526 | "P_bg296", 527 | "P_bg297", 528 | "P_bg298", 529 | "P_bg299", 530 | "P_bg3", 531 | "P_bg30", 532 | "P_bg300", 533 | "P_bg301", 534 | "P_bg302", 535 | "P_bg303", 536 | "P_bg304", 537 | "P_bg305", 538 | "P_bg306", 539 | "P_bg307", 540 | "P_bg308", 541 | "P_bg309", 542 | "P_bg31", 543 | "P_bg310", 544 | "P_bg311", 545 | "P_bg312", 546 | "P_bg313", 547 | "P_bg314", 548 | "P_bg315", 549 | "P_bg316", 550 | "P_bg317", 551 | "P_bg318", 552 | "P_bg319", 553 | "P_bg32", 554 | "P_bg320", 555 | "P_bg321", 556 | "P_bg322", 557 | "P_bg323", 558 | "P_bg324", 559 | "P_bg325", 560 | "P_bg326", 561 | "P_bg327", 562 | "P_bg328", 563 | "P_bg329", 564 | "P_bg33", 565 | "P_bg330", 566 | "P_bg331", 567 | "P_bg332", 568 | "P_bg333", 569 | "P_bg334", 570 | "P_bg335", 571 | "P_bg336", 572 | "P_bg337", 573 | "P_bg338", 574 | "P_bg339", 575 | "P_bg34", 576 | "P_bg340", 577 | "P_bg341", 578 | "P_bg342", 579 | "P_bg343", 580 | "P_bg344", 581 | "P_bg345", 582 | "P_bg346", 583 | "P_bg347", 584 | "P_bg348", 585 | "P_bg349", 586 | "P_bg35", 587 | "P_bg350", 588 | "P_bg351", 589 | "P_bg352", 590 | "P_bg353", 591 | "P_bg354", 592 | "P_bg355", 593 | "P_bg356", 594 | "P_bg357", 595 | "P_bg358", 596 | "P_bg359", 597 | "P_bg36", 598 | "P_bg360", 599 | "P_bg361", 600 | "P_bg362", 601 | "P_bg363", 602 | "P_bg364", 603 | "P_bg365", 604 | "P_bg366", 605 | "P_bg367", 606 | "P_bg368", 607 | "P_bg369", 608 | "P_bg37", 609 | "P_bg370", 610 | "P_bg371", 611 | "P_bg372", 612 | "P_bg373", 613 | "P_bg374", 614 | "P_bg375", 615 | "P_bg376", 616 | "P_bg377", 617 | "P_bg378", 618 | "P_bg379", 619 | "P_bg38", 620 | "P_bg380", 621 | "P_bg381", 622 | "P_bg382", 623 | "P_bg383", 624 | "P_bg384", 625 | "P_bg385", 626 | "P_bg386", 627 | "P_bg387", 628 | "P_bg388", 629 | "P_bg389", 630 | "P_bg39", 631 | "P_bg390", 632 | "P_bg391", 633 | "P_bg392", 634 | "P_bg393", 635 | "P_bg394", 636 | "P_bg395", 637 | "P_bg396", 638 | "P_bg397", 639 | "P_bg398", 640 | "P_bg399", 641 | "P_bg4", 642 | "P_bg40", 643 | "P_bg400", 644 | "P_bg401", 645 | "P_bg402", 646 | "P_bg403", 647 | "P_bg404", 648 | "P_bg405", 649 | "P_bg406", 650 | "P_bg407", 651 | "P_bg408", 652 | "P_bg409", 653 | "P_bg41", 654 | "P_bg410", 655 | "P_bg411", 656 | "P_bg412", 657 | "P_bg413", 658 | "P_bg414", 659 | "P_bg415", 660 | "P_bg416", 661 | "P_bg417", 662 | "P_bg418", 663 | "P_bg419", 664 | "P_bg42", 665 | "P_bg420", 666 | "P_bg421", 667 | "P_bg422", 668 | "P_bg423", 669 | "P_bg424", 670 | "P_bg425", 671 | "P_bg426", 672 | "P_bg427", 673 | "P_bg428", 674 | "P_bg429", 675 | "P_bg43", 676 | "P_bg430", 677 | "P_bg431", 678 | "P_bg432", 679 | "P_bg433", 680 | "P_bg434", 681 | "P_bg435", 682 | "P_bg436", 683 | "P_bg437", 684 | "P_bg438", 685 | "P_bg439", 686 | "P_bg44", 687 | "P_bg440", 688 | "P_bg441", 689 | "P_bg442", 690 | "P_bg443", 691 | "P_bg444", 692 | "P_bg445", 693 | "P_bg446", 694 | "P_bg447", 695 | "P_bg448", 696 | "P_bg449", 697 | "P_bg45", 698 | "P_bg450", 699 | "P_bg451", 700 | "P_bg452", 701 | "P_bg453", 702 | "P_bg454", 703 | "P_bg455", 704 | "P_bg456", 705 | "P_bg457", 706 | "P_bg458", 707 | "P_bg459", 708 | "P_bg46", 709 | "P_bg460", 710 | "P_bg461", 711 | "P_bg462", 712 | "P_bg463", 713 | "P_bg464", 714 | "P_bg465", 715 | "P_bg466", 716 | "P_bg467", 717 | "P_bg468", 718 | "P_bg469", 719 | "P_bg47", 720 | "P_bg470", 721 | "P_bg471", 722 | "P_bg472", 723 | "P_bg473", 724 | "P_bg474", 725 | "P_bg475", 726 | "P_bg476", 727 | "P_bg477", 728 | "P_bg478", 729 | "P_bg479", 730 | "P_bg48", 731 | "P_bg480", 732 | "P_bg481", 733 | "P_bg482", 734 | "P_bg483", 735 | "P_bg484", 736 | "P_bg485", 737 | "P_bg486", 738 | "P_bg487", 739 | "P_bg488", 740 | "P_bg489", 741 | "P_bg49", 742 | "P_bg490", 743 | "P_bg491", 744 | "P_bg492", 745 | "P_bg493", 746 | "P_bg494", 747 | "P_bg495", 748 | "P_bg496", 749 | "P_bg497", 750 | "P_bg498", 751 | "P_bg499", 752 | "P_bg5", 753 | "P_bg50", 754 | "P_bg500", 755 | "P_bg501", 756 | "P_bg502", 757 | "P_bg503", 758 | "P_bg504", 759 | "P_bg505", 760 | "P_bg506", 761 | "P_bg507", 762 | "P_bg508", 763 | "P_bg509", 764 | "P_bg51", 765 | "P_bg510", 766 | "P_bg511", 767 | "P_bg512", 768 | "P_bg513", 769 | "P_bg514", 770 | "P_bg515", 771 | "P_bg516", 772 | "P_bg517", 773 | "P_bg518", 774 | "P_bg519", 775 | "P_bg52", 776 | "P_bg520", 777 | "P_bg521", 778 | "P_bg522", 779 | "P_bg523", 780 | "P_bg524", 781 | "P_bg525", 782 | "P_bg526", 783 | "P_bg527", 784 | "P_bg528", 785 | "P_bg529", 786 | "P_bg53", 787 | "P_bg530", 788 | "P_bg531", 789 | "P_bg532", 790 | "P_bg533", 791 | "P_bg534", 792 | "P_bg535", 793 | "P_bg536", 794 | "P_bg537", 795 | "P_bg538", 796 | "P_bg539", 797 | "P_bg54", 798 | "P_bg540", 799 | "P_bg541", 800 | "P_bg542", 801 | "P_bg543", 802 | "P_bg544", 803 | "P_bg545", 804 | "P_bg546", 805 | "P_bg547", 806 | "P_bg548", 807 | "P_bg549", 808 | "P_bg55", 809 | "P_bg550", 810 | "P_bg551", 811 | "P_bg552", 812 | "P_bg553", 813 | "P_bg554", 814 | "P_bg555", 815 | "P_bg556", 816 | "P_bg557", 817 | "P_bg558", 818 | "P_bg559", 819 | "P_bg56", 820 | "P_bg560", 821 | "P_bg561", 822 | "P_bg562", 823 | "P_bg563", 824 | "P_bg564", 825 | "P_bg565", 826 | "P_bg566", 827 | "P_bg567", 828 | "P_bg568", 829 | "P_bg569", 830 | "P_bg57", 831 | "P_bg570", 832 | "P_bg571", 833 | "P_bg572", 834 | "P_bg573", 835 | "P_bg574", 836 | "P_bg575", 837 | "P_bg576", 838 | "P_bg577", 839 | "P_bg578", 840 | "P_bg579", 841 | "P_bg58", 842 | "P_bg580", 843 | "P_bg581", 844 | "P_bg582", 845 | "P_bg583", 846 | "P_bg584", 847 | "P_bg585", 848 | "P_bg586", 849 | "P_bg587", 850 | "P_bg588", 851 | "P_bg589", 852 | "P_bg59", 853 | "P_bg590", 854 | "P_bg591", 855 | "P_bg592", 856 | "P_bg593", 857 | "P_bg594", 858 | "P_bg595", 859 | "P_bg596", 860 | "P_bg597", 861 | "P_bg598", 862 | "P_bg599", 863 | "P_bg6", 864 | "P_bg60", 865 | "P_bg600", 866 | "P_bg601", 867 | "P_bg602", 868 | "P_bg603", 869 | "P_bg604", 870 | "P_bg605", 871 | "P_bg606", 872 | "P_bg607", 873 | "P_bg608", 874 | "P_bg609", 875 | "P_bg61", 876 | "P_bg610", 877 | "P_bg611", 878 | "P_bg612", 879 | "P_bg613", 880 | "P_bg614", 881 | "P_bg615", 882 | "P_bg616", 883 | "P_bg617", 884 | "P_bg618", 885 | "P_bg619", 886 | "P_bg62", 887 | "P_bg620", 888 | "P_bg621", 889 | "P_bg622", 890 | "P_bg623", 891 | "P_bg624", 892 | "P_bg625", 893 | "P_bg626", 894 | "P_bg627", 895 | "P_bg628", 896 | "P_bg629", 897 | "P_bg63", 898 | "P_bg630", 899 | "P_bg631", 900 | "P_bg632", 901 | "P_bg633", 902 | "P_bg634", 903 | "P_bg635", 904 | "P_bg636", 905 | "P_bg637", 906 | "P_bg638", 907 | "P_bg639", 908 | "P_bg64", 909 | "P_bg640", 910 | "P_bg641", 911 | "P_bg642", 912 | "P_bg643", 913 | "P_bg644", 914 | "P_bg645", 915 | "P_bg646", 916 | "P_bg647", 917 | "P_bg648", 918 | "P_bg649", 919 | "P_bg65", 920 | "P_bg650", 921 | "P_bg651", 922 | "P_bg652", 923 | "P_bg653", 924 | "P_bg654", 925 | "P_bg655", 926 | "P_bg656", 927 | "P_bg657", 928 | "P_bg658", 929 | "P_bg659", 930 | "P_bg66", 931 | "P_bg660", 932 | "P_bg661", 933 | "P_bg662", 934 | "P_bg663", 935 | "P_bg664", 936 | "P_bg665", 937 | "P_bg666", 938 | "P_bg667", 939 | "P_bg668", 940 | "P_bg669", 941 | "P_bg67", 942 | "P_bg670", 943 | "P_bg671", 944 | "P_bg672", 945 | "P_bg673", 946 | "P_bg674", 947 | "P_bg675", 948 | "P_bg676", 949 | "P_bg677", 950 | "P_bg678", 951 | "P_bg679", 952 | "P_bg68", 953 | "P_bg680", 954 | "P_bg681", 955 | "P_bg682", 956 | "P_bg683", 957 | "P_bg684", 958 | "P_bg685", 959 | "P_bg686", 960 | "P_bg687", 961 | "P_bg688", 962 | "P_bg689", 963 | "P_bg69", 964 | "P_bg690", 965 | "P_bg691", 966 | "P_bg692", 967 | "P_bg693", 968 | "P_bg694", 969 | "P_bg695", 970 | "P_bg696", 971 | "P_bg697", 972 | "P_bg698", 973 | "P_bg699", 974 | "P_bg7", 975 | "P_bg70", 976 | "P_bg700", 977 | "P_bg701", 978 | "P_bg702", 979 | "P_bg703", 980 | "P_bg704", 981 | "P_bg705", 982 | "P_bg706", 983 | "P_bg707", 984 | "P_bg708", 985 | "P_bg709", 986 | "P_bg71", 987 | "P_bg710", 988 | "P_bg711", 989 | "P_bg712", 990 | "P_bg713", 991 | "P_bg714", 992 | "P_bg715", 993 | "P_bg716", 994 | "P_bg717", 995 | "P_bg718", 996 | "P_bg719", 997 | "P_bg72", 998 | "P_bg720", 999 | "P_bg721", 1000 | "P_bg722", 1001 | "P_bg723", 1002 | "P_bg724", 1003 | "P_bg725", 1004 | "P_bg726", 1005 | "P_bg727", 1006 | "P_bg728", 1007 | "P_bg729", 1008 | "P_bg73", 1009 | "P_bg730", 1010 | "P_bg731", 1011 | "P_bg732", 1012 | "P_bg733", 1013 | "P_bg734", 1014 | "P_bg735", 1015 | "P_bg736", 1016 | "P_bg737", 1017 | "P_bg738", 1018 | "P_bg739", 1019 | "P_bg74", 1020 | "P_bg740", 1021 | "P_bg741", 1022 | "P_bg742", 1023 | "P_bg743", 1024 | "P_bg744", 1025 | "P_bg745", 1026 | "P_bg746", 1027 | "P_bg747", 1028 | "P_bg748", 1029 | "P_bg749", 1030 | "P_bg75", 1031 | "P_bg750", 1032 | "P_bg751", 1033 | "P_bg752", 1034 | "P_bg753", 1035 | "P_bg754", 1036 | "P_bg755", 1037 | "P_bg756", 1038 | "P_bg757", 1039 | "P_bg758", 1040 | "P_bg759", 1041 | "P_bg76", 1042 | "P_bg760", 1043 | "P_bg761", 1044 | "P_bg762", 1045 | "P_bg763", 1046 | "P_bg764", 1047 | "P_bg765", 1048 | "P_bg766", 1049 | "P_bg767", 1050 | "P_bg768", 1051 | "P_bg769", 1052 | "P_bg77", 1053 | "P_bg770", 1054 | "P_bg771", 1055 | "P_bg772", 1056 | "P_bg773", 1057 | "P_bg774", 1058 | "P_bg775", 1059 | "P_bg776", 1060 | "P_bg777", 1061 | "P_bg778", 1062 | "P_bg779", 1063 | "P_bg78", 1064 | "P_bg780", 1065 | "P_bg781", 1066 | "P_bg782", 1067 | "P_bg783", 1068 | "P_bg784", 1069 | "P_bg785", 1070 | "P_bg786", 1071 | "P_bg787", 1072 | "P_bg788", 1073 | "P_bg789", 1074 | "P_bg79", 1075 | "P_bg790", 1076 | "P_bg791", 1077 | "P_bg792", 1078 | "P_bg793", 1079 | "P_bg794", 1080 | "P_bg795", 1081 | "P_bg796", 1082 | "P_bg797", 1083 | "P_bg798", 1084 | "P_bg799", 1085 | "P_bg8", 1086 | "P_bg80", 1087 | "P_bg800", 1088 | "P_bg801", 1089 | "P_bg802", 1090 | "P_bg803", 1091 | "P_bg804", 1092 | "P_bg805", 1093 | "P_bg806", 1094 | "P_bg807", 1095 | "P_bg808", 1096 | "P_bg809", 1097 | "P_bg81", 1098 | "P_bg810", 1099 | "P_bg811", 1100 | "P_bg812", 1101 | "P_bg813", 1102 | "P_bg814", 1103 | "P_bg815", 1104 | "P_bg816", 1105 | "P_bg817", 1106 | "P_bg818", 1107 | "P_bg819", 1108 | "P_bg82", 1109 | "P_bg820", 1110 | "P_bg821", 1111 | "P_bg822", 1112 | "P_bg823", 1113 | "P_bg824", 1114 | "P_bg825", 1115 | "P_bg826", 1116 | "P_bg827", 1117 | "P_bg828", 1118 | "P_bg829", 1119 | "P_bg83", 1120 | "P_bg830", 1121 | "P_bg831", 1122 | "P_bg832", 1123 | "P_bg833", 1124 | "P_bg834", 1125 | "P_bg835", 1126 | "P_bg836", 1127 | "P_bg837", 1128 | "P_bg838", 1129 | "P_bg839", 1130 | "P_bg84", 1131 | "P_bg840", 1132 | "P_bg841", 1133 | "P_bg842", 1134 | "P_bg843", 1135 | "P_bg844", 1136 | "P_bg845", 1137 | "P_bg846", 1138 | "P_bg847", 1139 | "P_bg848", 1140 | "P_bg849", 1141 | "P_bg85", 1142 | "P_bg850", 1143 | "P_bg851", 1144 | "P_bg852", 1145 | "P_bg853", 1146 | "P_bg854", 1147 | "P_bg855", 1148 | "P_bg856", 1149 | "P_bg857", 1150 | "P_bg858", 1151 | "P_bg859", 1152 | "P_bg86", 1153 | "P_bg860", 1154 | "P_bg861", 1155 | "P_bg862", 1156 | "P_bg863", 1157 | "P_bg864", 1158 | "P_bg865", 1159 | "P_bg866", 1160 | "P_bg867", 1161 | "P_bg868", 1162 | "P_bg869", 1163 | "P_bg87", 1164 | "P_bg870", 1165 | "P_bg871", 1166 | "P_bg872", 1167 | "P_bg873", 1168 | "P_bg874", 1169 | "P_bg875", 1170 | "P_bg876", 1171 | "P_bg877", 1172 | "P_bg878", 1173 | "P_bg879", 1174 | "P_bg88", 1175 | "P_bg880", 1176 | "P_bg881", 1177 | "P_bg882", 1178 | "P_bg883", 1179 | "P_bg884", 1180 | "P_bg885", 1181 | "P_bg886", 1182 | "P_bg887", 1183 | "P_bg888", 1184 | "P_bg889", 1185 | "P_bg89", 1186 | "P_bg890", 1187 | "P_bg891", 1188 | "P_bg892", 1189 | "P_bg893", 1190 | "P_bg894", 1191 | "P_bg895", 1192 | "P_bg896", 1193 | "P_bg897", 1194 | "P_bg898", 1195 | "P_bg899", 1196 | "P_bg9", 1197 | "P_bg90", 1198 | "P_bg900", 1199 | "P_bg901", 1200 | "P_bg902", 1201 | "P_bg903", 1202 | "P_bg904", 1203 | "P_bg905", 1204 | "P_bg906", 1205 | "P_bg907", 1206 | "P_bg908", 1207 | "P_bg909", 1208 | "P_bg91", 1209 | "P_bg910", 1210 | "P_bg911", 1211 | "P_bg912", 1212 | "P_bg913", 1213 | "P_bg914", 1214 | "P_bg915", 1215 | "P_bg916", 1216 | "P_bg917", 1217 | "P_bg918", 1218 | "P_bg919", 1219 | "P_bg92", 1220 | "P_bg920", 1221 | "P_bg921", 1222 | "P_bg922", 1223 | "P_bg923", 1224 | "P_bg924", 1225 | "P_bg925", 1226 | "P_bg926", 1227 | "P_bg927", 1228 | "P_bg928", 1229 | "P_bg929", 1230 | "P_bg93", 1231 | "P_bg930", 1232 | "P_bg931", 1233 | "P_bg932", 1234 | "P_bg933", 1235 | "P_bg934", 1236 | "P_bg935", 1237 | "P_bg936", 1238 | "P_bg937", 1239 | "P_bg938", 1240 | "P_bg939", 1241 | "P_bg94", 1242 | "P_bg940", 1243 | "P_bg941", 1244 | "P_bg942", 1245 | "P_bg943", 1246 | "P_bg944", 1247 | "P_bg945", 1248 | "P_bg946", 1249 | "P_bg947", 1250 | "P_bg948", 1251 | "P_bg949", 1252 | "P_bg95", 1253 | "P_bg950", 1254 | "P_bg951", 1255 | "P_bg952", 1256 | "P_bg953", 1257 | "P_bg954", 1258 | "P_bg955", 1259 | "P_bg956", 1260 | "P_bg957", 1261 | "P_bg958", 1262 | "P_bg959", 1263 | "P_bg96", 1264 | "P_bg960", 1265 | "P_bg961", 1266 | "P_bg962", 1267 | "P_bg963", 1268 | "P_bg964", 1269 | "P_bg965", 1270 | "P_bg966", 1271 | "P_bg967", 1272 | "P_bg968", 1273 | "P_bg969", 1274 | "P_bg97", 1275 | "P_bg970", 1276 | "P_bg971", 1277 | "P_bg972", 1278 | "P_bg973", 1279 | "P_bg974", 1280 | "P_bg975", 1281 | "P_bg976", 1282 | "P_bg977", 1283 | "P_bg978", 1284 | "P_bg979", 1285 | "P_bg98", 1286 | "P_bg980", 1287 | "P_bg981", 1288 | "P_bg982", 1289 | "P_bg983", 1290 | "P_bg984", 1291 | "P_bg985", 1292 | "P_bg986", 1293 | "P_bg987", 1294 | "P_bg988", 1295 | "P_bg989", 1296 | "P_bg99", 1297 | "P_bg990", 1298 | "P_bg991", 1299 | "P_bg992", 1300 | "P_bg993", 1301 | "P_bg994", 1302 | "P_bg995", 1303 | "P_bg996", 1304 | "P_bg997", 1305 | "P_bg998", 1306 | "P_bg999", 1307 | "P_model.diffusion_model.input_blocks.1.0_inner", 1308 | "P_model.diffusion_model.input_blocks.1.0_inner2", 1309 | "P_model.diffusion_model.input_blocks.1.0_inner3", 1310 | "P_model.diffusion_model.input_blocks.1.0_inner4", 1311 | "P_model.diffusion_model.input_blocks.2.0_inner", 1312 | "P_model.diffusion_model.input_blocks.2.0_inner2", 1313 | "P_model.diffusion_model.input_blocks.2.0_inner3", 1314 | "P_model.diffusion_model.input_blocks.2.0_inner4", 1315 | "P_model.diffusion_model.input_blocks.4.0_inner", 1316 | "P_model.diffusion_model.input_blocks.4.0_inner2", 1317 | "P_model.diffusion_model.input_blocks.4.0_inner3", 1318 | "P_model.diffusion_model.input_blocks.4.0_inner4", 1319 | "P_model.diffusion_model.input_blocks.5.0_inner", 1320 | "P_model.diffusion_model.input_blocks.5.0_inner2", 1321 | "P_model.diffusion_model.input_blocks.5.0_inner3", 1322 | "P_model.diffusion_model.input_blocks.5.0_inner4", 1323 | "P_model.diffusion_model.input_blocks.7.0_inner", 1324 | "P_model.diffusion_model.input_blocks.7.0_inner2", 1325 | "P_model.diffusion_model.input_blocks.7.0_inner3", 1326 | "P_model.diffusion_model.input_blocks.7.0_inner4", 1327 | "P_model.diffusion_model.input_blocks.8.0_inner", 1328 | "P_model.diffusion_model.input_blocks.8.0_inner2", 1329 | "P_model.diffusion_model.input_blocks.8.0_inner3", 1330 | "P_model.diffusion_model.input_blocks.8.0_inner4", 1331 | "P_model.diffusion_model.middle_block.0_inner", 1332 | "P_model.diffusion_model.middle_block.0_inner2", 1333 | "P_model.diffusion_model.middle_block.0_inner3", 1334 | "P_model.diffusion_model.middle_block.0_inner4", 1335 | "P_model.diffusion_model.middle_block.2_inner", 1336 | "P_model.diffusion_model.middle_block.2_inner2", 1337 | "P_model.diffusion_model.middle_block.2_inner3", 1338 | "P_model.diffusion_model.middle_block.2_inner4", 1339 | "P_model.diffusion_model.output_blocks.0.0_inner", 1340 | "P_model.diffusion_model.output_blocks.0.0_inner2", 1341 | "P_model.diffusion_model.output_blocks.0.0_inner3", 1342 | "P_model.diffusion_model.output_blocks.0.0_inner4", 1343 | "P_model.diffusion_model.output_blocks.1.0_inner", 1344 | "P_model.diffusion_model.output_blocks.1.0_inner2", 1345 | "P_model.diffusion_model.output_blocks.1.0_inner3", 1346 | "P_model.diffusion_model.output_blocks.1.0_inner4", 1347 | "P_model.diffusion_model.output_blocks.2.0_inner", 1348 | "P_model.diffusion_model.output_blocks.2.0_inner2", 1349 | "P_model.diffusion_model.output_blocks.2.0_inner3", 1350 | "P_model.diffusion_model.output_blocks.2.0_inner4", 1351 | "P_model.diffusion_model.output_blocks.3.0_inner", 1352 | "P_model.diffusion_model.output_blocks.3.0_inner2", 1353 | "P_model.diffusion_model.output_blocks.3.0_inner3", 1354 | "P_model.diffusion_model.output_blocks.3.0_inner4", 1355 | "P_model.diffusion_model.output_blocks.4.0_inner", 1356 | "P_model.diffusion_model.output_blocks.4.0_inner2", 1357 | "P_model.diffusion_model.output_blocks.4.0_inner3", 1358 | "P_model.diffusion_model.output_blocks.4.0_inner4", 1359 | "P_model.diffusion_model.output_blocks.5.0_inner", 1360 | "P_model.diffusion_model.output_blocks.5.0_inner2", 1361 | "P_model.diffusion_model.output_blocks.5.0_inner3", 1362 | "P_model.diffusion_model.output_blocks.5.0_inner4", 1363 | "P_model.diffusion_model.output_blocks.6.0_inner", 1364 | "P_model.diffusion_model.output_blocks.6.0_inner2", 1365 | "P_model.diffusion_model.output_blocks.6.0_inner3", 1366 | "P_model.diffusion_model.output_blocks.6.0_inner4", 1367 | "P_model.diffusion_model.output_blocks.7.0_inner", 1368 | "P_model.diffusion_model.output_blocks.7.0_inner2", 1369 | "P_model.diffusion_model.output_blocks.7.0_inner3", 1370 | "P_model.diffusion_model.output_blocks.7.0_inner4", 1371 | "P_model.diffusion_model.output_blocks.8.0_inner", 1372 | "P_model.diffusion_model.output_blocks.8.0_inner2", 1373 | "P_model.diffusion_model.output_blocks.8.0_inner3", 1374 | "P_model.diffusion_model.output_blocks.8.0_inner4" 1375 | ] -------------------------------------------------------------------------------- /docs/xyz_grid-0841-740330577-8064-1623-3-48-20240428123657.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ogkalu2/Merge-Stable-Diffusion-models-without-distortion/a109cd9578debe5be0de9325583dda8b0d534096/docs/xyz_grid-0841-740330577-8064-1623-3-48-20240428123657.jpg -------------------------------------------------------------------------------- /docs/xyz_grid-0842-740330577-8064-1623-3-48-20240428125432.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ogkalu2/Merge-Stable-Diffusion-models-without-distortion/a109cd9578debe5be0de9325583dda8b0d534096/docs/xyz_grid-0842-740330577-8064-1623-3-48-20240428125432.jpg -------------------------------------------------------------------------------- /merge_PermSpec_ResNet.py: -------------------------------------------------------------------------------- 1 | from PermSpec_Base import PermutationSpec, permutation_spec_from_axes_to_perm 2 | 3 | def mlp_permutation_spec(num_hidden_layers: int) -> PermutationSpec: 4 | """We assume that one permutation cannot appear in two axes of the same weight array.""" 5 | assert num_hidden_layers >= 1 6 | return permutation_spec_from_axes_to_perm({ 7 | "layer0.weight": ("P_0", None), 8 | **{f"layer{i}.weight": ( f"P_{i}", f"P_{i-1}") 9 | for i in range(1, num_hidden_layers)}, 10 | **{f"layer{i}.bias": (f"P_{i}", ) 11 | for i in range(num_hidden_layers)}, 12 | f"layer{num_hidden_layers}.weight": (None, f"P_{num_hidden_layers-1}"), 13 | f"layer{num_hidden_layers}.bias": (None, ), 14 | }) 15 | 16 | def cnn_permutation_spec() -> PermutationSpec: 17 | conv = lambda name, p_in, p_out: {f"{name}.weight": (p_out, p_in, None, None, )} 18 | dense = lambda name, p_in, p_out, bias=True: {f"{name}.weight": (p_out, p_in), f"{name}.bias": (p_out, )} if bias else {f"{name}.weight": (p_out, p_in)} 19 | 20 | return permutation_spec_from_axes_to_perm({ 21 | **conv("conv1", None, "P_bg0"), 22 | **conv("conv2", "P_bg0", "P_bg1"), 23 | **dense("fc1", "P_bg1", "P_bg2"), 24 | **dense("fc2", "P_bg2", None, False), 25 | }) 26 | 27 | def resnet20_permutation_spec() -> PermutationSpec: 28 | conv = lambda name, p_in, p_out: {f"{name}.weight": (p_out, p_in, None, None, )} 29 | norm = lambda name, p: {f"{name}.weight": (p, ), f"{name}.bias": (p, )} 30 | dense = lambda name, p_in, p_out: {f"{name}.weight": (p_out, p_in), f"{name}.bias": (p_out, )} 31 | 32 | # This is for easy blocks that use a residual connection, without any change in the number of channels. 33 | easyblock = lambda name, p: { 34 | **norm(f"{name}.bn1", p), 35 | **conv(f"{name}.conv1", p, f"P_{name}_inner"), 36 | **norm(f"{name}.bn2", f"P_{name}_inner"), 37 | **conv(f"{name}.conv2", f"P_{name}_inner", p), 38 | } 39 | 40 | # This is for blocks that use a residual connection, but change the number of channels via a Conv. 41 | shortcutblock = lambda name, p_in, p_out: { 42 | **norm(f"{name}.bn1", p_in), 43 | **conv(f"{name}.conv1", p_in, f"P_{name}_inner"), 44 | **norm(f"{name}.bn2", f"P_{name}_inner"), 45 | **conv(f"{name}.conv2", f"P_{name}_inner", p_out), 46 | **conv(f"{name}.shortcut.0", p_in, p_out), 47 | **norm(f"{name}.shortcut.1", p_out), 48 | } 49 | 50 | return permutation_spec_from_axes_to_perm({ 51 | **conv("conv1", None, "P_bg0"), 52 | # 53 | **shortcutblock("layer1.0", "P_bg0", "P_bg1"), 54 | **easyblock("layer1.1", "P_bg1",), 55 | **easyblock("layer1.2", "P_bg1"), 56 | #**easyblock("layer1.3", "P_bg1"), 57 | 58 | **shortcutblock("layer2.0", "P_bg1", "P_bg2"), 59 | **easyblock("layer2.1", "P_bg2",), 60 | **easyblock("layer2.2", "P_bg2"), 61 | #**easyblock("layer2.3", "P_bg2"), 62 | 63 | **shortcutblock("layer3.0", "P_bg2", "P_bg3"), 64 | **easyblock("layer3.1", "P_bg3",), 65 | **easyblock("layer3.2", "P_bg3"), 66 | # **easyblock("layer3.3", "P_bg3"), 67 | 68 | **norm("bn1", "P_bg3"), 69 | 70 | **dense("linear", "P_bg3", None), 71 | 72 | }) 73 | 74 | # should be easy to generalize it to any depth 75 | def resnet50_permutation_spec() -> PermutationSpec: 76 | conv = lambda name, p_in, p_out: {f"{name}.weight": (p_out, p_in, None, None, )} 77 | norm = lambda name, p: {f"{name}.weight": (p, ), f"{name}.bias": (p, )} 78 | dense = lambda name, p_in, p_out: {f"{name}.weight": (p_out, p_in), f"{name}.bias": (p_out, )} 79 | 80 | # This is for easy blocks that use a residual connection, without any change in the number of channels. 81 | easyblock = lambda name, p: { 82 | **norm(f"{name}.bn1", p), 83 | **conv(f"{name}.conv1", p, f"P_{name}_inner"), 84 | **norm(f"{name}.bn2", f"P_{name}_inner"), 85 | **conv(f"{name}.conv2", f"P_{name}_inner", p), 86 | } 87 | 88 | # This is for blocks that use a residual connection, but change the number of channels via a Conv. 89 | shortcutblock = lambda name, p_in, p_out: { 90 | **norm(f"{name}.bn1", p_in), 91 | **conv(f"{name}.conv1", p_in, f"P_{name}_inner"), 92 | **norm(f"{name}.bn2", f"P_{name}_inner"), 93 | **conv(f"{name}.conv2", f"P_{name}_inner", p_out), 94 | **conv(f"{name}.shortcut.0", p_in, p_out), 95 | **norm(f"{name}.shortcut.1", p_out), 96 | } 97 | 98 | return permutation_spec_from_axes_to_perm({ 99 | **conv("conv1", None, "P_bg0"), 100 | # 101 | **shortcutblock("layer1.0", "P_bg0", "P_bg1"), 102 | **easyblock("layer1.1", "P_bg1",), 103 | **easyblock("layer1.2", "P_bg1"), 104 | **easyblock("layer1.3", "P_bg1"), 105 | **easyblock("layer1.4", "P_bg1"), 106 | **easyblock("layer1.5", "P_bg1"), 107 | **easyblock("layer1.6", "P_bg1"), 108 | **easyblock("layer1.7", "P_bg1"), 109 | 110 | #**easyblock("layer1.3", "P_bg1"), 111 | 112 | **shortcutblock("layer2.0", "P_bg1", "P_bg2"), 113 | **easyblock("layer2.1", "P_bg2",), 114 | **easyblock("layer2.2", "P_bg2"), 115 | **easyblock("layer2.3", "P_bg2"), 116 | **easyblock("layer2.4", "P_bg2"), 117 | **easyblock("layer2.5", "P_bg2"), 118 | **easyblock("layer2.6", "P_bg2"), 119 | **easyblock("layer2.7", "P_bg2"), 120 | 121 | **shortcutblock("layer3.0", "P_bg2", "P_bg3"), 122 | **easyblock("layer3.1", "P_bg3",), 123 | **easyblock("layer3.2", "P_bg3"), 124 | **easyblock("layer3.3", "P_bg3"), 125 | **easyblock("layer3.4", "P_bg3"), 126 | **easyblock("layer3.5", "P_bg3"), 127 | **easyblock("layer3.6", "P_bg3"), 128 | **easyblock("layer3.7", "P_bg3"), 129 | 130 | **norm("bn1", "P_bg3"), 131 | 132 | **dense("linear", "P_bg3", None), 133 | 134 | }) 135 | 136 | 137 | 138 | def vgg16_permutation_spec() -> PermutationSpec: 139 | layers_with_conv = [3,7,10,14,17,20,24,27,30,34,37,40] 140 | layers_with_conv_b4 = [0,3,7,10,14,17,20,24,27,30,34,37] 141 | layers_with_bn = [4,8,11,15,18,21,25,28,31,35,38,41] 142 | dense = lambda name, p_in, p_out, bias = True: {f"{name}.weight": (p_out, p_in), f"{name}.bias": (p_out, )} 143 | return permutation_spec_from_axes_to_perm({ 144 | # first features 145 | "features.0.weight": ( "P_Conv_0",None, None, None), 146 | "features.1.weight": ( "P_Conv_0", None), 147 | "features.1.bias": ( "P_Conv_0", None), 148 | "features.1.running_mean": ( "P_Conv_0", None), 149 | "features.1.running_var": ( "P_Conv_0", None), 150 | "features.1.num_batches_tracked": (), 151 | 152 | **{f"features.{layers_with_conv[i]}.weight": ( f"P_Conv_{layers_with_conv[i]}", f"P_Conv_{layers_with_conv_b4[i]}", None, None, ) 153 | for i in range(len(layers_with_conv))}, 154 | **{f"features.{i}.bias": (f"P_Conv_{i}", ) 155 | for i in layers_with_conv + [0]}, 156 | # bn 157 | **{f"features.{layers_with_bn[i]}.weight": ( f"P_Conv_{layers_with_conv[i]}", None) 158 | for i in range(len(layers_with_bn))}, 159 | **{f"features.{layers_with_bn[i]}.bias": ( f"P_Conv_{layers_with_conv[i]}", None) 160 | for i in range(len(layers_with_bn))}, 161 | **{f"features.{layers_with_bn[i]}.running_mean": ( f"P_Conv_{layers_with_conv[i]}", None) 162 | for i in range(len(layers_with_bn))}, 163 | **{f"features.{layers_with_bn[i]}.running_var": ( f"P_Conv_{layers_with_conv[i]}", None) 164 | for i in range(len(layers_with_bn))}, 165 | **{f"features.{layers_with_bn[i]}.num_batches_tracked": () 166 | for i in range(len(layers_with_bn))}, 167 | 168 | **dense("classifier", "P_Conv_40", "P_Dense_0", False), 169 | }) 170 | -------------------------------------------------------------------------------- /merge_PermSpec_SD1UNet.py: -------------------------------------------------------------------------------- 1 | from PermSpec_Base import PermutationSpec, permutation_spec_from_axes_to_perm 2 | 3 | # Comment from DammK: This is the complete spec. It is not the UNET only! CLIP / VAE / UNET all are requried! 4 | 5 | def sdunet_permutation_spec() -> PermutationSpec: 6 | conv = lambda name, p_in, p_out: {f"{name}.weight": (p_out, p_in,), f"{name}.bias": (p_out,) } 7 | norm = lambda name, p: {f"{name}.weight": (p, ), f"{name}.bias": (p, )} 8 | dense = lambda name, p_in, p_out, bias=True: {f"{name}.weight": (p_out, p_in), f"{name}.bias": (p_out, )} if bias else {f"{name}.weight": (p_out, p_in)} 9 | skip = lambda name, p_in, p_out: {f"{name}": (p_out, p_in, None, None, )} 10 | 11 | # Unet Res blocks 12 | easyblock = lambda name, p_in, p_out: { 13 | **norm(f"{name}.in_layers.0", p_in), 14 | **conv(f"{name}.in_layers.2", p_in, f"P_{name}_inner"), 15 | **dense(f"{name}.emb_layers.1", f"P_{name}_inner2", f"P_{name}_inner3", bias=True), 16 | **norm(f"{name}.out_layers.0", f"P_{name}_inner4"), 17 | **conv(f"{name}.out_layers.3", f"P_{name}_inner4", p_out), 18 | } 19 | 20 | # Text Encoder blocks 21 | easyblock2 = lambda name, p: { 22 | **norm(f"{name}.norm1", p), 23 | **conv(f"{name}.conv1", p, f"P_{name}_inner"), 24 | **norm(f"{name}.norm2", f"P_{name}_inner"), 25 | **conv(f"{name}.conv2", f"P_{name}_inner", p), 26 | } 27 | 28 | # This is for blocks that use a residual connection, but change the number of channels via a Conv. 29 | shortcutblock = lambda name, p_in, p_out: { 30 | **norm(f"{name}.norm1", p_in), 31 | **conv(f"{name}.conv1", p_in, f"P_{name}_inner"), 32 | **norm(f"{name}.norm2", f"P_{name}_inner"), 33 | **conv(f"{name}.conv2", f"P_{name}_inner", p_out), 34 | **conv(f"{name}.nin_shortcut", p_in, p_out), 35 | **norm(f"{name}.nin_shortcut", p_out), 36 | } 37 | 38 | 39 | return permutation_spec_from_axes_to_perm({ 40 | #Skipped Layers 41 | **skip("betas", None, None), 42 | **skip("alphas_cumprod", None, None), 43 | **skip("alphas_cumprod_prev", None, None), 44 | **skip("sqrt_alphas_cumprod", None, None), 45 | **skip("sqrt_one_minus_alphas_cumprod", None, None), 46 | **skip("log_one_minus_alphas_cumprods", None, None), 47 | **skip("sqrt_recip_alphas_cumprod", None, None), 48 | **skip("sqrt_recipm1_alphas_cumprod", None, None), 49 | **skip("posterior_variance", None, None), 50 | **skip("posterior_log_variance_clipped", None, None), 51 | **skip("posterior_mean_coef1", None, None), 52 | **skip("posterior_mean_coef2", None, None), 53 | **skip("log_one_minus_alphas_cumprod", None, None), 54 | **skip("model_ema.decay", None, None), 55 | **skip("model_ema.num_updates", None, None), 56 | 57 | #initial 58 | **dense("model.diffusion_model.time_embed.0", None, "P_bg0", bias=True), 59 | **dense("model.diffusion_model.time_embed.2","P_bg0", "P_bg1", bias=True), 60 | **conv("model.diffusion_model.input_blocks.0.0", "P_bg2", "P_bg3"), 61 | 62 | #input blocks 63 | **easyblock("model.diffusion_model.input_blocks.1.0","P_bg4", "P_bg5"), 64 | **norm("model.diffusion_model.input_blocks.1.1.norm", "P_bg6"), 65 | **conv("model.diffusion_model.input_blocks.1.1.proj_in", "P_bg6", "P_bg7"), 66 | **dense("model.diffusion_model.input_blocks.1.1.transformer_blocks.0.attn1.to_q", "P_bg8", "P_bg9", bias=False), 67 | **dense("model.diffusion_model.input_blocks.1.1.transformer_blocks.0.attn1.to_k", "P_bg8", "P_bg9", bias=False), 68 | **dense("model.diffusion_model.input_blocks.1.1.transformer_blocks.0.attn1.to_v", "P_bg8", "P_bg9", bias=False), 69 | **dense("model.diffusion_model.input_blocks.1.1.transformer_blocks.0.attn1.to_out.0", "P_bg8", "P_bg9", bias=True), 70 | **dense("model.diffusion_model.input_blocks.1.1.transformer_blocks.0.ff.net.0.proj", "P_bg10", "P_bg11", bias=True), 71 | **dense("model.diffusion_model.input_blocks.1.1.transformer_blocks.0.ff.net.2", "P_bg12", "P_bg13", bias=True), 72 | **dense("model.diffusion_model.input_blocks.1.1.transformer_blocks.0.attn2.to_q", "P_bg14", "P_bg15", bias=False), 73 | **dense("model.diffusion_model.input_blocks.1.1.transformer_blocks.0.attn2.to_k", "P_bg16", "P_bg17", bias=False), 74 | **dense("model.diffusion_model.input_blocks.1.1.transformer_blocks.0.attn2.to_v", "P_bg16", "P_bg17", bias=False), 75 | **dense("model.diffusion_model.input_blocks.1.1.transformer_blocks.0.attn2.to_out.0", "P_bg18", "P_bg19", bias=True), 76 | **norm("model.diffusion_model.input_blocks.1.1.transformer_blocks.0.norm1", "P_bg19" ), 77 | **norm("model.diffusion_model.input_blocks.1.1.transformer_blocks.0.norm2", "P_bg19"), 78 | **norm("model.diffusion_model.input_blocks.1.1.transformer_blocks.0.norm3", "P_bg19"), 79 | **conv("model.diffusion_model.input_blocks.1.1.proj_out", "P_bg19", "P_bg20"), 80 | 81 | **easyblock("model.diffusion_model.input_blocks.2.0", "P_bg21","P_bg22"), 82 | **norm("model.diffusion_model.input_blocks.2.1.norm", "P_bg23"), 83 | **conv("model.diffusion_model.input_blocks.2.1.proj_in", "P_bg23", "P_bg24"), 84 | **dense("model.diffusion_model.input_blocks.2.1.transformer_blocks.0.attn1.to_q", "P_bg25", "P_bg26", bias=False), 85 | **dense("model.diffusion_model.input_blocks.2.1.transformer_blocks.0.attn1.to_k", "P_bg25", "P_bg26", bias=False), 86 | **dense("model.diffusion_model.input_blocks.2.1.transformer_blocks.0.attn1.to_v", "P_bg25", "P_bg26", bias=False), 87 | **dense("model.diffusion_model.input_blocks.2.1.transformer_blocks.0.attn1.to_out.0", "P_bg25","P_bg26", bias=True), 88 | **dense("model.diffusion_model.input_blocks.2.1.transformer_blocks.0.ff.net.0.proj", "P_bg27","P_bg28", bias=True), 89 | **dense("model.diffusion_model.input_blocks.2.1.transformer_blocks.0.ff.net.2", "P_bg29","P_bg30", bias=True), 90 | **dense("model.diffusion_model.input_blocks.2.1.transformer_blocks.0.attn2.to_q", "P_bg31", "P_bg32", bias=False), 91 | **dense("model.diffusion_model.input_blocks.2.1.transformer_blocks.0.attn2.to_k", "P_bg33", "P_bg34", bias=False), 92 | **dense("model.diffusion_model.input_blocks.2.1.transformer_blocks.0.attn2.to_v", "P_bg33", "P_bg34", bias=False), 93 | **dense("model.diffusion_model.input_blocks.2.1.transformer_blocks.0.attn2.to_out.0", "P_bg35","P_bg36", bias=True), 94 | **norm("model.diffusion_model.input_blocks.2.1.transformer_blocks.0.norm1", "P_bg36"), 95 | **norm("model.diffusion_model.input_blocks.2.1.transformer_blocks.0.norm2", "P_bg36"), 96 | **norm("model.diffusion_model.input_blocks.2.1.transformer_blocks.0.norm3", "P_bg36"), 97 | **conv("model.diffusion_model.input_blocks.2.1.proj_out", "P_bg36", "P_bg37"), 98 | 99 | **conv("model.diffusion_model.input_blocks.3.0.op", "P_bg38", "P_bg39"), 100 | **easyblock("model.diffusion_model.input_blocks.4.0", "P_bg40","P_bg41"), 101 | **conv("model.diffusion_model.input_blocks.4.0.skip_connection", "P_bg42","P_bg43"), 102 | **norm("model.diffusion_model.input_blocks.4.1.norm", "P_bg44"), 103 | **conv("model.diffusion_model.input_blocks.4.1.proj_in", "P_bg44", "P_bg45"), 104 | **dense("model.diffusion_model.input_blocks.4.1.transformer_blocks.0.attn1.to_q", "P_bg46", "P_bg47", bias=False), 105 | **dense("model.diffusion_model.input_blocks.4.1.transformer_blocks.0.attn1.to_k", "P_bg46", "P_bg47", bias=False), 106 | **dense("model.diffusion_model.input_blocks.4.1.transformer_blocks.0.attn1.to_v", "P_bg46", "P_bg47", bias=False), 107 | **dense("model.diffusion_model.input_blocks.4.1.transformer_blocks.0.attn1.to_out.0", "P_bg46","P_bg47", bias=True), 108 | **dense("model.diffusion_model.input_blocks.4.1.transformer_blocks.0.ff.net.0.proj", "P_bg48","P_bg49", bias=True), 109 | **dense("model.diffusion_model.input_blocks.4.1.transformer_blocks.0.ff.net.2", "P_bg50","P_bg51", bias=True), 110 | **dense("model.diffusion_model.input_blocks.4.1.transformer_blocks.0.attn2.to_q", "P_bg52", "P_bg53", bias=False), 111 | **dense("model.diffusion_model.input_blocks.4.1.transformer_blocks.0.attn2.to_k", "P_bg54", "P_bg55", bias=False), 112 | **dense("model.diffusion_model.input_blocks.4.1.transformer_blocks.0.attn2.to_v", "P_bg54", "P_bg55", bias=False), 113 | **dense("model.diffusion_model.input_blocks.4.1.transformer_blocks.0.attn2.to_out.0", "P_bg56","P_bg57", bias=True), 114 | **norm("model.diffusion_model.input_blocks.4.1.transformer_blocks.0.norm1", "P_bg57"), 115 | **norm("model.diffusion_model.input_blocks.4.1.transformer_blocks.0.norm2", "P_bg57"), 116 | **norm("model.diffusion_model.input_blocks.4.1.transformer_blocks.0.norm3", "P_bg57"), 117 | **conv("model.diffusion_model.input_blocks.4.1.proj_out", "P_bg57", "P_bg58"), 118 | 119 | **easyblock("model.diffusion_model.input_blocks.5.0", "P_bg59", "P_bg60"), 120 | **norm("model.diffusion_model.input_blocks.5.1.norm", "P_bg61"), 121 | **conv("model.diffusion_model.input_blocks.5.1.proj_in", "P_bg61", "P_bg62"), 122 | **dense("model.diffusion_model.input_blocks.5.1.transformer_blocks.0.attn1.to_q", "P_bg63", "P_bg64", bias=False), 123 | **dense("model.diffusion_model.input_blocks.5.1.transformer_blocks.0.attn1.to_k", "P_bg63", "P_bg64", bias=False), 124 | **dense("model.diffusion_model.input_blocks.5.1.transformer_blocks.0.attn1.to_v", "P_bg63", "P_bg64", bias=False), 125 | **dense("model.diffusion_model.input_blocks.5.1.transformer_blocks.0.attn1.to_out.0", "P_bg63","P_bg64", bias=True), 126 | **dense("model.diffusion_model.input_blocks.5.1.transformer_blocks.0.ff.net.0.proj", "P_bg65","P_bg66", bias=True), 127 | **dense("model.diffusion_model.input_blocks.5.1.transformer_blocks.0.ff.net.2", "P_bg67","P_bg68", bias=True), 128 | **dense("model.diffusion_model.input_blocks.5.1.transformer_blocks.0.attn2.to_q", "P_bg69", "P_bg70", bias=False), 129 | **dense("model.diffusion_model.input_blocks.5.1.transformer_blocks.0.attn2.to_k", "P_bg71", "P_bg72", bias=False), 130 | **dense("model.diffusion_model.input_blocks.5.1.transformer_blocks.0.attn2.to_v", "P_bg71", "P_bg72", bias=False), 131 | **dense("model.diffusion_model.input_blocks.5.1.transformer_blocks.0.attn2.to_out.0", "P_bg73","P_bg74", bias=True), 132 | **norm("model.diffusion_model.input_blocks.5.1.transformer_blocks.0.norm1", "P_bg74"), 133 | **norm("model.diffusion_model.input_blocks.5.1.transformer_blocks.0.norm2", "P_bg74"), 134 | **norm("model.diffusion_model.input_blocks.5.1.transformer_blocks.0.norm3", "P_bg74"), 135 | **conv("model.diffusion_model.input_blocks.5.1.proj_out", "P_bg74", "P_bg75"), 136 | 137 | **conv("model.diffusion_model.input_blocks.6.0.op", "P_bg76", "P_bg77"), 138 | **easyblock("model.diffusion_model.input_blocks.7.0", "P_bg78","P_bg79"), 139 | **conv("model.diffusion_model.input_blocks.7.0.skip_connection", "P_bg80","P_bg81"), 140 | **norm("model.diffusion_model.input_blocks.7.1.norm", "P_bg82"), 141 | **conv("model.diffusion_model.input_blocks.7.1.proj_in", "P_bg82", "P_bg83"), 142 | **dense("model.diffusion_model.input_blocks.7.1.transformer_blocks.0.attn1.to_q", "P_bg84", "P_bg85", bias=False), 143 | **dense("model.diffusion_model.input_blocks.7.1.transformer_blocks.0.attn1.to_k", "P_bg84", "P_bg85", bias=False), 144 | **dense("model.diffusion_model.input_blocks.7.1.transformer_blocks.0.attn1.to_v", "P_bg84", "P_bg85", bias=False), 145 | **dense("model.diffusion_model.input_blocks.7.1.transformer_blocks.0.attn1.to_out.0", "P_bg84","P_bg85", bias=True), 146 | **dense("model.diffusion_model.input_blocks.7.1.transformer_blocks.0.ff.net.0.proj", "P_bg86","P_bg87", bias=True), 147 | **dense("model.diffusion_model.input_blocks.7.1.transformer_blocks.0.ff.net.2", "P_bg88","P_bg89", bias=True), 148 | **dense("model.diffusion_model.input_blocks.7.1.transformer_blocks.0.attn2.to_q", "P_bg90", "P_bg91", bias=False), 149 | **dense("model.diffusion_model.input_blocks.7.1.transformer_blocks.0.attn2.to_k", "P_bg92", "P_bg93", bias=False), 150 | **dense("model.diffusion_model.input_blocks.7.1.transformer_blocks.0.attn2.to_v", "P_bg92", "P_bg93", bias=False), 151 | **dense("model.diffusion_model.input_blocks.7.1.transformer_blocks.0.attn2.to_out.0", "P_bg94","P_bg95", bias=True), 152 | **norm("model.diffusion_model.input_blocks.7.1.transformer_blocks.0.norm1", "P_bg95"), 153 | **norm("model.diffusion_model.input_blocks.7.1.transformer_blocks.0.norm2", "P_bg95"), 154 | **norm("model.diffusion_model.input_blocks.7.1.transformer_blocks.0.norm3", "P_bg95"), 155 | **conv("model.diffusion_model.input_blocks.7.1.proj_out", "P_bg95", "P_bg96"), 156 | 157 | **easyblock("model.diffusion_model.input_blocks.8.0", "P_bg97","P_bg98"), 158 | **norm("model.diffusion_model.input_blocks.8.1.norm", "P_bg99"), 159 | **conv("model.diffusion_model.input_blocks.8.1.proj_in", "P_bg99", "P_bg100"), 160 | **dense("model.diffusion_model.input_blocks.8.1.transformer_blocks.0.attn1.to_q", "P_bg101", "P_bg102", bias=False), 161 | **dense("model.diffusion_model.input_blocks.8.1.transformer_blocks.0.attn1.to_k", "P_bg101", "P_bg102", bias=False), 162 | **dense("model.diffusion_model.input_blocks.8.1.transformer_blocks.0.attn1.to_v", "P_bg101", "P_bg102", bias=False), 163 | **dense("model.diffusion_model.input_blocks.8.1.transformer_blocks.0.attn1.to_out.0", "P_bg101","P_bg102", bias=True), 164 | **dense("model.diffusion_model.input_blocks.8.1.transformer_blocks.0.ff.net.0.proj", "P_bg103","P_bg104", bias=True), 165 | **dense("model.diffusion_model.input_blocks.8.1.transformer_blocks.0.ff.net.2", "P_bg105","P_bg106", bias=True), 166 | **dense("model.diffusion_model.input_blocks.8.1.transformer_blocks.0.attn2.to_q", "P_bg107", "P_bg108", bias=False), 167 | **dense("model.diffusion_model.input_blocks.8.1.transformer_blocks.0.attn2.to_k", "P_bg109", "P_bg110", bias=False), 168 | **dense("model.diffusion_model.input_blocks.8.1.transformer_blocks.0.attn2.to_v", "P_bg109", "P_bg110", bias=False), 169 | **dense("model.diffusion_model.input_blocks.8.1.transformer_blocks.0.attn2.to_out.0", "P_bg111","P_bg112", bias=True), 170 | **norm("model.diffusion_model.input_blocks.8.1.transformer_blocks.0.norm1", "P_bg112"), 171 | **norm("model.diffusion_model.input_blocks.8.1.transformer_blocks.0.norm2", "P_bg112"), 172 | **norm("model.diffusion_model.input_blocks.8.1.transformer_blocks.0.norm3", "P_bg112"), 173 | **conv("model.diffusion_model.input_blocks.8.1.proj_out", "P_bg112", "P_bg113"), 174 | 175 | **conv("model.diffusion_model.input_blocks.9.0.op", "P_bg114", "P_bg115"), 176 | **easyblock("model.diffusion_model.input_blocks.10.0", "P_bg115", "P_bg116"), 177 | **easyblock("model.diffusion_model.input_blocks.11.0", "P_bg116", "P_bg117"), 178 | 179 | #middle blocks 180 | **easyblock("model.diffusion_model.middle_block.0", "P_bg117", "P_bg118"), 181 | **norm("model.diffusion_model.middle_block.1.norm", "P_bg119"), 182 | **conv("model.diffusion_model.middle_block.1.proj_in", "P_bg119", "P_bg120"), 183 | **dense("model.diffusion_model.middle_block.1.transformer_blocks.0.attn1.to_q", "P_bg121", "P_bg122", bias=False), 184 | **dense("model.diffusion_model.middle_block.1.transformer_blocks.0.attn1.to_k", "P_bg121", "P_bg122", bias=False), 185 | **dense("model.diffusion_model.middle_block.1.transformer_blocks.0.attn1.to_v", "P_bg121", "P_bg122", bias=False), 186 | **dense("model.diffusion_model.middle_block.1.transformer_blocks.0.attn1.to_out.0", "P_bg121","P_bg122", bias=True), 187 | **dense("model.diffusion_model.middle_block.1.transformer_blocks.0.ff.net.0.proj", "P_bg123","P_bg124", bias=True), 188 | **dense("model.diffusion_model.middle_block.1.transformer_blocks.0.ff.net.2", "P_bg125","P_bg126", bias=True), 189 | **dense("model.diffusion_model.middle_block.1.transformer_blocks.0.attn2.to_q", "P_bg127", "P_bg128", bias=False), 190 | **dense("model.diffusion_model.middle_block.1.transformer_blocks.0.attn2.to_k", "P_bg129", "P_bg130", bias=False), 191 | **dense("model.diffusion_model.middle_block.1.transformer_blocks.0.attn2.to_v", "P_bg129", "P_bg130", bias=False), 192 | **dense("model.diffusion_model.middle_block.1.transformer_blocks.0.attn2.to_out.0", "P_bg131","P_bg132", bias=True), 193 | **norm("model.diffusion_model.middle_block.1.transformer_blocks.0.norm1", "P_bg132"), 194 | **norm("model.diffusion_model.middle_block.1.transformer_blocks.0.norm2", "P_bg132"), 195 | **norm("model.diffusion_model.middle_block.1.transformer_blocks.0.norm3", "P_bg132"), 196 | **conv("model.diffusion_model.middle_block.1.proj_out", "P_bg132", "P_bg133"), 197 | 198 | **easyblock("model.diffusion_model.middle_block.2", "P_bg134", "P_bg135"), 199 | 200 | #output blocks 201 | **easyblock("model.diffusion_model.output_blocks.0.0", "P_bg136", "P_bg137"), 202 | **conv("model.diffusion_model.output_blocks.0.0.skip_connection","P_bg138","P_bg139"), 203 | 204 | **easyblock("model.diffusion_model.output_blocks.1.0", "P_bg140","P_bg141"), 205 | **conv("model.diffusion_model.output_blocks.1.0.skip_connection","P_bg142","P_bg143"), 206 | 207 | 208 | **easyblock("model.diffusion_model.output_blocks.2.0", "P_bg144","P_bg145"), 209 | **conv("model.diffusion_model.output_blocks.2.0.skip_connection","P_bg146","P_bg147"), 210 | **conv("model.diffusion_model.output_blocks.2.1.conv", "P_bg148", "P_bg149"), 211 | 212 | **easyblock("model.diffusion_model.output_blocks.3.0", "P_bg150","P_bg151"), 213 | **conv("model.diffusion_model.output_blocks.3.0.skip_connection","P_bg152","P_bg153"), 214 | **norm("model.diffusion_model.output_blocks.3.1.norm", "P_bg154"), 215 | **conv("model.diffusion_model.output_blocks.3.1.proj_in", "P_bg154", "P_bg155"), 216 | **dense("model.diffusion_model.output_blocks.3.1.transformer_blocks.0.attn1.to_q", "P_bg156", "P_bg157", bias=False), 217 | **dense("model.diffusion_model.output_blocks.3.1.transformer_blocks.0.attn1.to_k", "P_bg156", "P_bg157", bias=False), 218 | **dense("model.diffusion_model.output_blocks.3.1.transformer_blocks.0.attn1.to_v", "P_bg156", "P_bg157", bias=False), 219 | **dense("model.diffusion_model.output_blocks.3.1.transformer_blocks.0.attn1.to_out.0", "P_bg156","P_bg157", bias=True), 220 | **dense("model.diffusion_model.output_blocks.3.1.transformer_blocks.0.ff.net.0.proj", "P_bg158","P_bg159", bias=True), 221 | **dense("model.diffusion_model.output_blocks.3.1.transformer_blocks.0.ff.net.2", "P_bg160","P_bg161", bias=True), 222 | **dense("model.diffusion_model.output_blocks.3.1.transformer_blocks.0.attn2.to_q", "P_bg162", "P_bg163", bias=False), 223 | **dense("model.diffusion_model.output_blocks.3.1.transformer_blocks.0.attn2.to_k", "P_bg164", "P_bg165", bias=False), 224 | **dense("model.diffusion_model.output_blocks.3.1.transformer_blocks.0.attn2.to_v", "P_bg164", "P_bg165", bias=False), 225 | **dense("model.diffusion_model.output_blocks.3.1.transformer_blocks.0.attn2.to_out.0", "P_bg166","P_bg167", bias=True), 226 | **norm("model.diffusion_model.output_blocks.3.1.transformer_blocks.0.norm1", "P_bg167"), 227 | **norm("model.diffusion_model.output_blocks.3.1.transformer_blocks.0.norm2", "P_bg167"), 228 | **norm("model.diffusion_model.output_blocks.3.1.transformer_blocks.0.norm3", "P_bg167"), 229 | **conv("model.diffusion_model.output_blocks.3.1.proj_out", "P_bg167", "P_bg168"), 230 | 231 | **easyblock("model.diffusion_model.output_blocks.4.0", "P_bg169", "P_bg170"), 232 | **conv("model.diffusion_model.output_blocks.4.0.skip_connection","P_bg171","P_bg172"), 233 | **norm("model.diffusion_model.output_blocks.4.1.norm", "P_bg173"), 234 | **conv("model.diffusion_model.output_blocks.4.1.proj_in", "P_bg173", "P_bg174"), 235 | **dense("model.diffusion_model.output_blocks.4.1.transformer_blocks.0.attn1.to_q", "P_bg175", "P_bg176", bias=False), 236 | **dense("model.diffusion_model.output_blocks.4.1.transformer_blocks.0.attn1.to_k", "P_bg175", "P_bg176", bias=False), 237 | **dense("model.diffusion_model.output_blocks.4.1.transformer_blocks.0.attn1.to_v", "P_bg175", "P_bg176", bias=False), 238 | **dense("model.diffusion_model.output_blocks.4.1.transformer_blocks.0.attn1.to_out.0", "P_bg175","P_bg176", bias=True), 239 | **dense("model.diffusion_model.output_blocks.4.1.transformer_blocks.0.ff.net.0.proj", "P_bg177","P_bg178", bias=True), 240 | **dense("model.diffusion_model.output_blocks.4.1.transformer_blocks.0.ff.net.2", "P_bg179","P_bg180", bias=True), 241 | **dense("model.diffusion_model.output_blocks.4.1.transformer_blocks.0.attn2.to_q", "P_bg181", "P_bg182", bias=False), 242 | **dense("model.diffusion_model.output_blocks.4.1.transformer_blocks.0.attn2.to_k", "P_bg183", "P_bg184", bias=False), 243 | **dense("model.diffusion_model.output_blocks.4.1.transformer_blocks.0.attn2.to_v", "P_bg183", "P_bg184", bias=False), 244 | **dense("model.diffusion_model.output_blocks.4.1.transformer_blocks.0.attn2.to_out.0", "P_bg185","P_bg186", bias=True), 245 | **norm("model.diffusion_model.output_blocks.4.1.transformer_blocks.0.norm1", "P_bg186"), 246 | **norm("model.diffusion_model.output_blocks.4.1.transformer_blocks.0.norm2", "P_bg186"), 247 | **norm("model.diffusion_model.output_blocks.4.1.transformer_blocks.0.norm3", "P_bg186"), 248 | **conv("model.diffusion_model.output_blocks.4.1.proj_out", "P_bg186", "P_bg187"), 249 | 250 | **easyblock("model.diffusion_model.output_blocks.5.0", "P_bg188", "P_bg189"), 251 | **conv("model.diffusion_model.output_blocks.5.0.skip_connection","P_bg190","P_bg191"), 252 | **norm("model.diffusion_model.output_blocks.5.1.norm", "P_bg192"), 253 | **conv("model.diffusion_model.output_blocks.5.1.proj_in", "P_bg192", "P_bg193"), 254 | **dense("model.diffusion_model.output_blocks.5.1.transformer_blocks.0.attn1.to_q", "P_bg194", "P_bg195", bias=False), 255 | **dense("model.diffusion_model.output_blocks.5.1.transformer_blocks.0.attn1.to_k", "P_bg194", "P_bg195", bias=False), 256 | **dense("model.diffusion_model.output_blocks.5.1.transformer_blocks.0.attn1.to_v", "P_bg194", "P_bg195", bias=False), 257 | **dense("model.diffusion_model.output_blocks.5.1.transformer_blocks.0.attn1.to_out.0", "P_bg194","P_bg195", bias=True), 258 | **dense("model.diffusion_model.output_blocks.5.1.transformer_blocks.0.ff.net.0.proj", "P_bg196","P_bg197", bias=True), 259 | **dense("model.diffusion_model.output_blocks.5.1.transformer_blocks.0.ff.net.2", "P_bg198","P_bg199", bias=True), 260 | **dense("model.diffusion_model.output_blocks.5.1.transformer_blocks.0.attn2.to_q", "P_bg200", "P_bg201", bias=False), 261 | **dense("model.diffusion_model.output_blocks.5.1.transformer_blocks.0.attn2.to_k", "P_bg202", "P_bg203", bias=False), 262 | **dense("model.diffusion_model.output_blocks.5.1.transformer_blocks.0.attn2.to_v", "P_bg202", "P_bg203", bias=False), 263 | **dense("model.diffusion_model.output_blocks.5.1.transformer_blocks.0.attn2.to_out.0", "P_bg204","P_bg205", bias=True), 264 | **norm("model.diffusion_model.output_blocks.5.1.transformer_blocks.0.norm1", "P_bg205"), 265 | **norm("model.diffusion_model.output_blocks.5.1.transformer_blocks.0.norm2", "P_bg205"), 266 | **norm("model.diffusion_model.output_blocks.5.1.transformer_blocks.0.norm3", "P_bg205"), 267 | **conv("model.diffusion_model.output_blocks.5.1.proj_out", "P_bg205", "P_bg206"), 268 | **conv("model.diffusion_model.output_blocks.5.2.conv", "P_bg206", "P_bg207"), 269 | 270 | **easyblock("model.diffusion_model.output_blocks.6.0", "P_bg208","P_bg209"), 271 | **conv("model.diffusion_model.output_blocks.6.0.skip_connection","P_bg210","P_bg211"), 272 | **norm("model.diffusion_model.output_blocks.6.1.norm", "P_bg212"), 273 | **conv("model.diffusion_model.output_blocks.6.1.proj_in", "P_bg212", "P_bg213"), 274 | **dense("model.diffusion_model.output_blocks.6.1.transformer_blocks.0.attn1.to_q", "P_bg214", "P_bg215", bias=False), 275 | **dense("model.diffusion_model.output_blocks.6.1.transformer_blocks.0.attn1.to_k", "P_bg214", "P_bg215", bias=False), 276 | **dense("model.diffusion_model.output_blocks.6.1.transformer_blocks.0.attn1.to_v", "P_bg214", "P_bg215", bias=False), 277 | **dense("model.diffusion_model.output_blocks.6.1.transformer_blocks.0.attn1.to_out.0", "P_bg214","P_bg215", bias=True), 278 | **dense("model.diffusion_model.output_blocks.6.1.transformer_blocks.0.ff.net.0.proj", "P_bg216","P_bg217", bias=True), 279 | **dense("model.diffusion_model.output_blocks.6.1.transformer_blocks.0.ff.net.2", "P_bg218","P_bg219", bias=True), 280 | **dense("model.diffusion_model.output_blocks.6.1.transformer_blocks.0.attn2.to_q", "P_bg220", "P_bg221", bias=False), 281 | **dense("model.diffusion_model.output_blocks.6.1.transformer_blocks.0.attn2.to_k", "P_bg222", "P_bg223", bias=False), 282 | **dense("model.diffusion_model.output_blocks.6.1.transformer_blocks.0.attn2.to_v", "P_bg222", "P_bg223", bias=False), 283 | **dense("model.diffusion_model.output_blocks.6.1.transformer_blocks.0.attn2.to_out.0", "P_bg224","P_bg225", bias=True), 284 | **norm("model.diffusion_model.output_blocks.6.1.transformer_blocks.0.norm1", "P_bg225"), 285 | **norm("model.diffusion_model.output_blocks.6.1.transformer_blocks.0.norm2", "P_bg225"), 286 | **norm("model.diffusion_model.output_blocks.6.1.transformer_blocks.0.norm3", "P_bg225"), 287 | **conv("model.diffusion_model.output_blocks.6.1.proj_out", "P_bg225", "P_bg226"), 288 | 289 | 290 | **easyblock("model.diffusion_model.output_blocks.7.0", "P_bg227", "P_bg228"), 291 | **conv("model.diffusion_model.output_blocks.7.0.skip_connection","P_bg229","P_bg230"), 292 | **norm("model.diffusion_model.output_blocks.7.1.norm", "P_bg231"), 293 | **conv("model.diffusion_model.output_blocks.7.1.proj_in", "P_bg231", "P_bg232"), 294 | **dense("model.diffusion_model.output_blocks.7.1.transformer_blocks.0.attn1.to_q", "P_bg233", "P_bg234", bias=False), 295 | **dense("model.diffusion_model.output_blocks.7.1.transformer_blocks.0.attn1.to_k", "P_bg233", "P_bg234", bias=False), 296 | **dense("model.diffusion_model.output_blocks.7.1.transformer_blocks.0.attn1.to_v", "P_bg233", "P_bg234", bias=False), 297 | **dense("model.diffusion_model.output_blocks.7.1.transformer_blocks.0.attn1.to_out.0", "P_bg233","P_bg234", bias=True), 298 | **dense("model.diffusion_model.output_blocks.7.1.transformer_blocks.0.ff.net.0.proj", "P_bg235","P_bg236", bias=True), 299 | **dense("model.diffusion_model.output_blocks.7.1.transformer_blocks.0.ff.net.2", "P_bg237","P_bg238", bias=True), 300 | **dense("model.diffusion_model.output_blocks.7.1.transformer_blocks.0.attn2.to_q", "P_bg239", "P_bg240", bias=False), 301 | **dense("model.diffusion_model.output_blocks.7.1.transformer_blocks.0.attn2.to_k", "P_bg241", "P_bg242", bias=False), 302 | **dense("model.diffusion_model.output_blocks.7.1.transformer_blocks.0.attn2.to_v", "P_bg241", "P_bg242", bias=False), 303 | **dense("model.diffusion_model.output_blocks.7.1.transformer_blocks.0.attn2.to_out.0", "P_bg243","P_bg244", bias=True), 304 | **norm("model.diffusion_model.output_blocks.7.1.transformer_blocks.0.norm1", "P_bg244"), 305 | **norm("model.diffusion_model.output_blocks.7.1.transformer_blocks.0.norm2", "P_bg244"), 306 | **norm("model.diffusion_model.output_blocks.7.1.transformer_blocks.0.norm3", "P_bg244"), 307 | **conv("model.diffusion_model.output_blocks.7.1.proj_out", "P_bg244", "P_bg245"), 308 | 309 | **easyblock("model.diffusion_model.output_blocks.8.0", "P_bg246","P_bg247"), 310 | **conv("model.diffusion_model.output_blocks.8.0.skip_connection","P_bg248","P_bg249"), 311 | **norm("model.diffusion_model.output_blocks.8.1.norm", "P_bg250"), 312 | **conv("model.diffusion_model.output_blocks.8.1.proj_in", "P_bg250", "P_bg251"), 313 | **dense("model.diffusion_model.output_blocks.8.1.transformer_blocks.0.attn1.to_q", "P_bg252", "P_bg253", bias=False), 314 | **dense("model.diffusion_model.output_blocks.8.1.transformer_blocks.0.attn1.to_k", "P_bg252", "P_bg253", bias=False), 315 | **dense("model.diffusion_model.output_blocks.8.1.transformer_blocks.0.attn1.to_v", "P_bg252", "P_bg253", bias=False), 316 | **dense("model.diffusion_model.output_blocks.8.1.transformer_blocks.0.attn1.to_out.0", "P_bg252","P_bg253", bias=True), 317 | **dense("model.diffusion_model.output_blocks.8.1.transformer_blocks.0.ff.net.0.proj", "P_bg254","P_bg255", bias=True), 318 | **dense("model.diffusion_model.output_blocks.8.1.transformer_blocks.0.ff.net.2", "P_bg256","P_bg257", bias=True), 319 | **dense("model.diffusion_model.output_blocks.8.1.transformer_blocks.0.attn2.to_q", "P_bg258", "P_bg259", bias=False), 320 | **dense("model.diffusion_model.output_blocks.8.1.transformer_blocks.0.attn2.to_k", "P_bg260", "P_bg261", bias=False), 321 | **dense("model.diffusion_model.output_blocks.8.1.transformer_blocks.0.attn2.to_v", "P_bg260", "P_bg261", bias=False), 322 | **dense("model.diffusion_model.output_blocks.8.1.transformer_blocks.0.attn2.to_out.0", "P_bg262","P_bg263", bias=True), 323 | **norm("model.diffusion_model.output_blocks.8.1.transformer_blocks.0.norm1", "P_bg263"), 324 | **norm("model.diffusion_model.output_blocks.8.1.transformer_blocks.0.norm2", "P_bg263"), 325 | **norm("model.diffusion_model.output_blocks.8.1.transformer_blocks.0.norm3", "P_bg263"), 326 | **conv("model.diffusion_model.output_blocks.8.1.proj_out", "P_bg263", "P_bg264"), 327 | **conv("model.diffusion_model.output_blocks.8.2.conv", "P_bg265", "P_bg266"), 328 | 329 | **easyblock("model.diffusion_model.output_blocks.9.0", "P_bg267","P_bg268"), 330 | **conv("model.diffusion_model.output_blocks.9.0.skip_connection","P_bg269","P_bg270"), 331 | **norm("model.diffusion_model.output_blocks.9.1.norm", "P_bg271"), 332 | **conv("model.diffusion_model.output_blocks.9.1.proj_in", "P_bg271", "P_bg272"), 333 | **dense("model.diffusion_model.output_blocks.9.1.transformer_blocks.0.attn1.to_q", "P_bg273", "P_bg274", bias=False), 334 | **dense("model.diffusion_model.output_blocks.9.1.transformer_blocks.0.attn1.to_k", "P_bg273", "P_bg274", bias=False), 335 | **dense("model.diffusion_model.output_blocks.9.1.transformer_blocks.0.attn1.to_v", "P_bg273", "P_bg274", bias=False), 336 | **dense("model.diffusion_model.output_blocks.9.1.transformer_blocks.0.attn1.to_out.0", "P_bg273","P_bg274", bias=True), 337 | **dense("model.diffusion_model.output_blocks.9.1.transformer_blocks.0.ff.net.0.proj", "P_bg275","P_bg276", bias=True), 338 | **dense("model.diffusion_model.output_blocks.9.1.transformer_blocks.0.ff.net.2", "P_bg277","P_bg278", bias=True), 339 | **dense("model.diffusion_model.output_blocks.9.1.transformer_blocks.0.attn2.to_q", "P_bg279", "P_bg280", bias=False), 340 | **dense("model.diffusion_model.output_blocks.9.1.transformer_blocks.0.attn2.to_k", "P_bg281", "P_bg282", bias=False), 341 | **dense("model.diffusion_model.output_blocks.9.1.transformer_blocks.0.attn2.to_v", "P_bg281", "P_bg282", bias=False), 342 | **dense("model.diffusion_model.output_blocks.9.1.transformer_blocks.0.attn2.to_out.0", "P_bg283","P_bg284", bias=True), 343 | **norm("model.diffusion_model.output_blocks.9.1.transformer_blocks.0.norm1", "P_bg284"), 344 | **norm("model.diffusion_model.output_blocks.9.1.transformer_blocks.0.norm2", "P_bg284"), 345 | **norm("model.diffusion_model.output_blocks.9.1.transformer_blocks.0.norm3", "P_bg284"), 346 | **conv("model.diffusion_model.output_blocks.9.1.proj_out", "P_bg284", "P_bg285"), 347 | 348 | **easyblock("model.diffusion_model.output_blocks.10.0", "P_bg286", "P_bg287"), 349 | **conv("model.diffusion_model.output_blocks.10.0.skip_connection","P_bg288","P_bg289"), 350 | **norm("model.diffusion_model.output_blocks.10.1.norm", "P_bg290"), 351 | **conv("model.diffusion_model.output_blocks.10.1.proj_in", "P_bg290", "P_bg291"), 352 | **dense("model.diffusion_model.output_blocks.10.1.transformer_blocks.0.attn1.to_q", "P_bg292", "P_bg293", bias=False), 353 | **dense("model.diffusion_model.output_blocks.10.1.transformer_blocks.0.attn1.to_k", "P_bg292", "P_bg293", bias=False), 354 | **dense("model.diffusion_model.output_blocks.10.1.transformer_blocks.0.attn1.to_v", "P_bg292", "P_bg293", bias=False), 355 | **dense("model.diffusion_model.output_blocks.10.1.transformer_blocks.0.attn1.to_out.0", "P_bg292","P_bg293", bias=True), 356 | **dense("model.diffusion_model.output_blocks.10.1.transformer_blocks.0.ff.net.0.proj", "P_bg294","P_bg295", bias=True), 357 | **dense("model.diffusion_model.output_blocks.10.1.transformer_blocks.0.ff.net.2", "P_bg296","P_bg297", bias=True), 358 | **dense("model.diffusion_model.output_blocks.10.1.transformer_blocks.0.attn2.to_q", "P_bg298", "P_bg299", bias=False), 359 | **dense("model.diffusion_model.output_blocks.10.1.transformer_blocks.0.attn2.to_k", "P_bg300", "P_bg301", bias=False), 360 | **dense("model.diffusion_model.output_blocks.10.1.transformer_blocks.0.attn2.to_v", "P_bg300", "P_bg301", bias=False), 361 | **dense("model.diffusion_model.output_blocks.10.1.transformer_blocks.0.attn2.to_out.0", "P_bg302","P_bg303", bias=True), 362 | **norm("model.diffusion_model.output_blocks.10.1.transformer_blocks.0.norm1", "P_bg303"), 363 | **norm("model.diffusion_model.output_blocks.10.1.transformer_blocks.0.norm2", "P_bg303"), 364 | **norm("model.diffusion_model.output_blocks.10.1.transformer_blocks.0.norm3", "P_bg303"), 365 | **conv("model.diffusion_model.output_blocks.10.1.proj_out", "P_bg303", "P_bg304"), 366 | 367 | **easyblock("model.diffusion_model.output_blocks.11.0", "P_bg305", "P_bg306"), 368 | **conv("model.diffusion_model.output_blocks.11.0.skip_connection","P_bg307","P_bg308"), 369 | **norm("model.diffusion_model.output_blocks.11.1.norm", "P_bg309"), 370 | **conv("model.diffusion_model.output_blocks.11.1.proj_in", "P_bg309", "P_bg310"), 371 | **dense("model.diffusion_model.output_blocks.11.1.transformer_blocks.0.attn1.to_q", "P_bg311", "P_bg312", bias=False), 372 | **dense("model.diffusion_model.output_blocks.11.1.transformer_blocks.0.attn1.to_k", "P_bg311", "P_bg312", bias=False), 373 | **dense("model.diffusion_model.output_blocks.11.1.transformer_blocks.0.attn1.to_v", "P_bg311", "P_bg312", bias=False), 374 | **dense("model.diffusion_model.output_blocks.11.1.transformer_blocks.0.attn1.to_out.0", "P_bg311","P_bg312", bias=True), 375 | **dense("model.diffusion_model.output_blocks.11.1.transformer_blocks.0.ff.net.0.proj", "P_bg313","P_bg314", bias=True), 376 | **dense("model.diffusion_model.output_blocks.11.1.transformer_blocks.0.ff.net.2", "P_bg315","P_bg316", bias=True), 377 | **dense("model.diffusion_model.output_blocks.11.1.transformer_blocks.0.attn2.to_q", "P_bg317", "P_bg318", bias=False), 378 | **dense("model.diffusion_model.output_blocks.11.1.transformer_blocks.0.attn2.to_k", "P_bg319", "P_bg320", bias=False), 379 | **dense("model.diffusion_model.output_blocks.11.1.transformer_blocks.0.attn2.to_v", "P_bg319", "P_bg320", bias=False), 380 | **dense("model.diffusion_model.output_blocks.11.1.transformer_blocks.0.attn2.to_out.0", "P_bg321","P_bg322", bias=True), 381 | **norm("model.diffusion_model.output_blocks.11.1.transformer_blocks.0.norm1", "P_bg322"), 382 | **norm("model.diffusion_model.output_blocks.11.1.transformer_blocks.0.norm2", "P_bg322"), 383 | **norm("model.diffusion_model.output_blocks.11.1.transformer_blocks.0.norm3", "P_bg322"), 384 | **conv("model.diffusion_model.output_blocks.11.1.proj_out", "P_bg322", "P_bg323"), 385 | 386 | **norm("model.diffusion_model.out.0", "P_bg324"), 387 | **conv("model.diffusion_model.out.2", "P_bg325", "P_bg326"), 388 | 389 | #VAE 390 | #encoder down 391 | **conv("first_stage_model.encoder.conv_in", "P_bg327", "P_bg328"), 392 | **easyblock2("first_stage_model.encoder.down.0.block.0", "P_bg328"), 393 | **easyblock2("first_stage_model.encoder.down.0.block.1", "P_bg328"), 394 | **conv("first_stage_model.encoder.down.0.downsample.conv", "P_bg328", "P_bg329"), 395 | 396 | **shortcutblock("first_stage_model.encoder.down.1.block.0", "P_bg330","P_bg331"), 397 | **easyblock2("first_stage_model.encoder.down.1.block.1", "P_bg331"), 398 | **conv("first_stage_model.encoder.down.1.downsample.conv", "P_bg331", "P_bg332"), 399 | 400 | **shortcutblock("first_stage_model.encoder.down.2.block.0", "P_bg332", "P_bg333"), 401 | **easyblock2("first_stage_model.encoder.down.2.block.1", "P_bg333"), 402 | **conv("first_stage_model.encoder.down.2.downsample.conv", "P_bg333", "P_bg334"), 403 | 404 | **easyblock2("first_stage_model.encoder.down.3.block.0", "P_bg334"), 405 | **easyblock2("first_stage_model.encoder.down.3.block.1", "P_bg334"), 406 | 407 | #encoder mid-block 408 | **easyblock2("first_stage_model.encoder.mid.block_1", "P_bg334"), 409 | 410 | **norm("first_stage_model.encoder.mid.attn_1.norm", "P_bg334"), 411 | **conv("first_stage_model.encoder.mid.attn_1.q", "P_bg334", "P_bg335"), 412 | **conv("first_stage_model.encoder.mid.attn_1.k", "P_bg334", "P_bg335"), 413 | **conv("first_stage_model.encoder.mid.attn_1.v", "P_bg334", "P_bg335"), 414 | **conv("first_stage_model.encoder.mid.attn_1.proj_out", "P_bg335", "P_bg336"), 415 | 416 | **easyblock2("first_stage_model.encoder.mid.block_2", "P_bg336"), 417 | 418 | **norm("first_stage_model.encoder.norm_out", "P_bg337"), 419 | **conv("first_stage_model.encoder.conv_out", "P_bg338", "P_bg339"), 420 | 421 | **conv("first_stage_model.decoder.conv_in", "P_bg340", "P_bg341"), 422 | 423 | #decoder mid-block 424 | **easyblock2("first_stage_model.decoder.mid.block_1", "P_bg342"), 425 | **norm("first_stage_model.decoder.mid.attn_1.norm", "P_bg342"), 426 | **conv("first_stage_model.decoder.mid.attn_1.q", "P_bg342", "P_bg343"), 427 | **conv("first_stage_model.decoder.mid.attn_1.k", "P_bg342", "P_bg343"), 428 | **conv("first_stage_model.decoder.mid.attn_1.v", "P_bg342", "P_bg343"), 429 | **conv("first_stage_model.decoder.mid.attn_1.proj_out", "P_bg343", "P_bg344"), 430 | 431 | **easyblock2("first_stage_model.decoder.mid.block_2", "P_bg345"), 432 | 433 | #decoder up 434 | **shortcutblock("first_stage_model.decoder.up.0.block.0", "P_bg346","P_bg347"), 435 | **easyblock2("first_stage_model.decoder.up.0.block.1", "P_bg348"), 436 | **easyblock2("first_stage_model.decoder.up.0.block.2", "P_bg349"), 437 | 438 | **shortcutblock("first_stage_model.decoder.up.1.block.0", "P_bg350","P_bg351"), 439 | **easyblock2("first_stage_model.decoder.up.1.block.1", "P_bg352"), 440 | **easyblock2("first_stage_model.decoder.up.1.block.2", "P_bg353"), 441 | **conv("first_stage_model.decoder.up.1.upsample.conv", "P_bg353", "P_bg354"), 442 | 443 | **easyblock2("first_stage_model.decoder.up.2.block.0", "P_bg355"), 444 | **easyblock2("first_stage_model.decoder.up.2.block.1", "P_bg355"), 445 | **easyblock2("first_stage_model.decoder.up.2.block.2", "P_bg355"), 446 | **conv("first_stage_model.decoder.up.2.upsample.conv", "P_bg355", "P_bg356"), 447 | 448 | **easyblock2("first_stage_model.decoder.up.3.block.0", "P_bg356"), 449 | **easyblock2("first_stage_model.decoder.up.3.block.1", "P_bg356"), 450 | **easyblock2("first_stage_model.decoder.up.3.block.2", "P_bg356"), 451 | **conv("first_stage_model.decoder.up.3.upsample.conv", "P_bg356", "P_bg357"), 452 | 453 | **norm("first_stage_model.decoder.norm_out", "P_bg358"), 454 | **conv("first_stage_model.decoder.conv_out", "P_bg359", "P_bg360"), 455 | **conv("first_stage_model.quant_conv", "P_bg361", "P_bg362"), 456 | **conv("first_stage_model.post_quant_conv", "P_bg363", "P_bg364"), 457 | 458 | **skip("cond_stage_model.transformer.text_model.embeddings.position_ids", None, None), 459 | 460 | # **dense("cond_stage_model.transformer.text_model.embeddings.token_embedding","P_bg365", "P_bg366",bias=False), 461 | **dense("cond_stage_model.transformer.text_model.embeddings.token_embedding", None, None), 462 | **dense("cond_stage_model.transformer.text_model.embeddings.position_embedding","P_bg367", "P_bg368",bias=False), 463 | 464 | #cond stage text encoder 465 | **dense("cond_stage_model.transformer.text_model.encoder.layers.0.self_attn.k_proj", "P_bg369", "P_bg370",bias=True), 466 | **dense("cond_stage_model.transformer.text_model.encoder.layers.0.self_attn.v_proj", "P_bg369", "P_bg370",bias=True), 467 | **dense("cond_stage_model.transformer.text_model.encoder.layers.0.self_attn.q_proj", "P_bg369", "P_bg370",bias=True), 468 | **dense("cond_stage_model.transformer.text_model.encoder.layers.0.self_attn.out_proj", "P_bg369", "P_bg370",bias=True), 469 | **norm("cond_stage_model.transformer.text_model.encoder.layers.0.layer_norm1", "P_bg370"), 470 | **dense("cond_stage_model.transformer.text_model.encoder.layers.0.mlp.fc1", "P_bg370", "P_bg371", bias=True), 471 | **dense("cond_stage_model.transformer.text_model.encoder.layers.0.mlp.fc2", "P_bg371", "P_bg372", bias=True), 472 | **norm("cond_stage_model.transformer.text_model.encoder.layers.0.layer_norm2", "P_bg372"), 473 | 474 | **dense("cond_stage_model.transformer.text_model.encoder.layers.1.self_attn.k_proj", "P_bg372", "P_bg373",bias=True), 475 | **dense("cond_stage_model.transformer.text_model.encoder.layers.1.self_attn.v_proj", "P_bg372", "P_bg373",bias=True), 476 | **dense("cond_stage_model.transformer.text_model.encoder.layers.1.self_attn.q_proj", "P_bg372", "P_bg373",bias=True), 477 | **dense("cond_stage_model.transformer.text_model.encoder.layers.1.self_attn.out_proj", "P_bg372", "P_bg373",bias=True), 478 | **norm("cond_stage_model.transformer.text_model.encoder.layers.1.layer_norm1", "P_bg373"), 479 | **dense("cond_stage_model.transformer.text_model.encoder.layers.1.mlp.fc1", "P_bg373", "P_bg374", bias=True), 480 | **dense("cond_stage_model.transformer.text_model.encoder.layers.1.mlp.fc2", "P_bg374", "P_bg375", bias=True), 481 | **norm("cond_stage_model.transformer.text_model.encoder.layers.1.layer_norm2", "P_bg375"), 482 | 483 | **dense("cond_stage_model.transformer.text_model.encoder.layers.2.self_attn.k_proj", "P_bg375", "P_bg376",bias=True), 484 | **dense("cond_stage_model.transformer.text_model.encoder.layers.2.self_attn.v_proj", "P_bg375", "P_bg376",bias=True), 485 | **dense("cond_stage_model.transformer.text_model.encoder.layers.2.self_attn.q_proj", "P_bg375", "P_bg376",bias=True), 486 | **dense("cond_stage_model.transformer.text_model.encoder.layers.2.self_attn.out_proj", "P_bg375", "P_bg376",bias=True), 487 | **norm("cond_stage_model.transformer.text_model.encoder.layers.2.layer_norm1", "P_bg376"), 488 | **dense("cond_stage_model.transformer.text_model.encoder.layers.2.mlp.fc1", "P_bg376", "P_bg377", bias=True), 489 | **dense("cond_stage_model.transformer.text_model.encoder.layers.2.mlp.fc2", "P_bg377", "P_bg378", bias=True), 490 | **norm("cond_stage_model.transformer.text_model.encoder.layers.2.layer_norm2", "P_bg378"), 491 | 492 | **dense("cond_stage_model.transformer.text_model.encoder.layers.3.self_attn.k_proj", "P_bg378", "P_bg379",bias=True), 493 | **dense("cond_stage_model.transformer.text_model.encoder.layers.3.self_attn.v_proj", "P_bg378", "P_bg379",bias=True), 494 | **dense("cond_stage_model.transformer.text_model.encoder.layers.3.self_attn.q_proj", "P_bg378", "P_bg379",bias=True), 495 | **dense("cond_stage_model.transformer.text_model.encoder.layers.3.self_attn.out_proj", "P_bg378", "P_bg379",bias=True), 496 | **norm("cond_stage_model.transformer.text_model.encoder.layers.3.layer_norm1", "P_bg379"), 497 | **dense("cond_stage_model.transformer.text_model.encoder.layers.3.mlp.fc1", "P_bg379", "P_bg380", bias=True), 498 | **dense("cond_stage_model.transformer.text_model.encoder.layers.3.mlp.fc2", "P_bg380", "P_b381", bias=True), 499 | **norm("cond_stage_model.transformer.text_model.encoder.layers.3.layer_norm2", "P_bg381"), 500 | 501 | **dense("cond_stage_model.transformer.text_model.encoder.layers.4.self_attn.k_proj", "P_bg381", "P_bg382",bias=True), 502 | **dense("cond_stage_model.transformer.text_model.encoder.layers.4.self_attn.v_proj", "P_bg381", "P_bg382",bias=True), 503 | **dense("cond_stage_model.transformer.text_model.encoder.layers.4.self_attn.q_proj", "P_bg381", "P_bg382",bias=True), 504 | **dense("cond_stage_model.transformer.text_model.encoder.layers.4.self_attn.out_proj", "P_bg381", "P_bg382",bias=True), 505 | **norm("cond_stage_model.transformer.text_model.encoder.layers.4.layer_norm1", "P_bg382"), 506 | **dense("cond_stage_model.transformer.text_model.encoder.layers.4.mlp.fc1", "P_bg382", "P_bg383", bias=True), 507 | **dense("cond_stage_model.transformer.text_model.encoder.layers.4.mlp.fc2", "P_bg383", "P_bg384", bias=True), 508 | **norm("cond_stage_model.transformer.text_model.encoder.layers.4.layer_norm2", "P_bg384"), 509 | 510 | **dense("cond_stage_model.transformer.text_model.encoder.layers.5.self_attn.k_proj", "P_bg384", "P_bg385",bias=True), 511 | **dense("cond_stage_model.transformer.text_model.encoder.layers.5.self_attn.v_proj", "P_bg384", "P_bg385",bias=True), 512 | **dense("cond_stage_model.transformer.text_model.encoder.layers.5.self_attn.q_proj", "P_bg384", "P_bg385",bias=True), 513 | **dense("cond_stage_model.transformer.text_model.encoder.layers.5.self_attn.out_proj", "P_bg384", "P_bg385",bias=True), 514 | **norm("cond_stage_model.transformer.text_model.encoder.layers.5.layer_norm1", "P_bg385"), 515 | **dense("cond_stage_model.transformer.text_model.encoder.layers.5.mlp.fc1", "P_bg385", "P_bg386",bias=True), 516 | **dense("cond_stage_model.transformer.text_model.encoder.layers.5.mlp.fc2", "P_bg386", "P_bg387",bias=True), 517 | **norm("cond_stage_model.transformer.text_model.encoder.layers.5.layer_norm2", "P_bg387"), 518 | 519 | **dense("cond_stage_model.transformer.text_model.encoder.layers.6.self_attn.k_proj", "P_bg387", "P_bg388",bias=True), 520 | **dense("cond_stage_model.transformer.text_model.encoder.layers.6.self_attn.v_proj", "P_bg387", "P_bg388",bias=True), 521 | **dense("cond_stage_model.transformer.text_model.encoder.layers.6.self_attn.q_proj", "P_bg387", "P_bg388",bias=True), 522 | **dense("cond_stage_model.transformer.text_model.encoder.layers.6.self_attn.out_proj", "P_bg387", "P_bg388",bias=True), 523 | **norm("cond_stage_model.transformer.text_model.encoder.layers.6.layer_norm1", "P_bg389"), 524 | **dense("cond_stage_model.transformer.text_model.encoder.layers.6.mlp.fc1", "P_bg389", "P_bg390",bias=True), 525 | **dense("cond_stage_model.transformer.text_model.encoder.layers.6.mlp.fc2", "P_bg390", "P_bg391", bias=True), 526 | **norm("cond_stage_model.transformer.text_model.encoder.layers.6.layer_norm2", "P_bg391"), 527 | 528 | **dense("cond_stage_model.transformer.text_model.encoder.layers.7.self_attn.k_proj", "P_bg391", "P_bg392",bias=True), 529 | **dense("cond_stage_model.transformer.text_model.encoder.layers.7.self_attn.v_proj", "P_bg391", "P_bg392",bias=True), 530 | **dense("cond_stage_model.transformer.text_model.encoder.layers.7.self_attn.q_proj", "P_bg391", "P_bg392",bias=True), 531 | **dense("cond_stage_model.transformer.text_model.encoder.layers.7.self_attn.out_proj", "P_bg391", "P_bg392",bias=True), 532 | **norm("cond_stage_model.transformer.text_model.encoder.layers.7.layer_norm1", "P_bg392"), 533 | **dense("cond_stage_model.transformer.text_model.encoder.layers.7.mlp.fc1", "P_bg392", "P_bg393", bias=True), 534 | **dense("cond_stage_model.transformer.text_model.encoder.layers.7.mlp.fc2", "P_bg393", "P_bg394", bias=True), 535 | **norm("cond_stage_model.transformer.text_model.encoder.layers.7.layer_norm2", "P_bg394"), 536 | 537 | **dense("cond_stage_model.transformer.text_model.encoder.layers.8.self_attn.k_proj", "P_bg394", "P_bg395",bias=True), 538 | **dense("cond_stage_model.transformer.text_model.encoder.layers.8.self_attn.v_proj", "P_bg394", "P_bg395",bias=True), 539 | **dense("cond_stage_model.transformer.text_model.encoder.layers.8.self_attn.q_proj", "P_bg394", "P_bg395",bias=True), 540 | **dense("cond_stage_model.transformer.text_model.encoder.layers.8.self_attn.out_proj", "P_bg394", "P_bg395",bias=True), 541 | **norm("cond_stage_model.transformer.text_model.encoder.layers.8.layer_norm1", "P_bg395"), 542 | **dense("cond_stage_model.transformer.text_model.encoder.layers.8.mlp.fc1", "P_bg395", "P_bg396", bias=True), 543 | **dense("cond_stage_model.transformer.text_model.encoder.layers.8.mlp.fc2", "P_bg396", "P_bg397", bias=True), 544 | **norm("cond_stage_model.transformer.text_model.encoder.layers.8.layer_norm2", "P_bg397"), 545 | 546 | **dense("cond_stage_model.transformer.text_model.encoder.layers.9.self_attn.k_proj", "P_bg397", "P_bg398",bias=True), 547 | **dense("cond_stage_model.transformer.text_model.encoder.layers.9.self_attn.v_proj", "P_bg397", "P_bg398",bias=True), 548 | **dense("cond_stage_model.transformer.text_model.encoder.layers.9.self_attn.q_proj", "P_bg397", "P_bg398",bias=True), 549 | **dense("cond_stage_model.transformer.text_model.encoder.layers.9.self_attn.out_proj", "P_bg397", "P_bg398",bias=True), 550 | **norm("cond_stage_model.transformer.text_model.encoder.layers.9.layer_norm1", "P_bg398"), 551 | **dense("cond_stage_model.transformer.text_model.encoder.layers.9.mlp.fc1", "P_bg398", "P_bg399", bias=True), 552 | **dense("cond_stage_model.transformer.text_model.encoder.layers.9.mlp.fc2", "P_bg400", "P_bg401", bias=True), 553 | **norm("cond_stage_model.transformer.text_model.encoder.layers.9.layer_norm2", "P_bg401"), 554 | 555 | **dense("cond_stage_model.transformer.text_model.encoder.layers.10.self_attn.k_proj", "P_bg401", "P_bg402",bias=True), 556 | **dense("cond_stage_model.transformer.text_model.encoder.layers.10.self_attn.v_proj", "P_bg401", "P_bg402",bias=True), 557 | **dense("cond_stage_model.transformer.text_model.encoder.layers.10.self_attn.q_proj", "P_bg401", "P_bg402",bias=True), 558 | **dense("cond_stage_model.transformer.text_model.encoder.layers.10.self_attn.out_proj", "P_bg401", "P_bg402",bias=True), 559 | **norm("cond_stage_model.transformer.text_model.encoder.layers.10.layer_norm1", "P_bg402"), 560 | **dense("cond_stage_model.transformer.text_model.encoder.layers.10.mlp.fc1", "P_bg402", "P_bg403", bias=True), 561 | **dense("cond_stage_model.transformer.text_model.encoder.layers.10.mlp.fc2", "P_bg403", "P_bg404", bias=True), 562 | **norm("cond_stage_model.transformer.text_model.encoder.layers.10.layer_norm2", "P_bg404"), 563 | 564 | **dense("cond_stage_model.transformer.text_model.encoder.layers.11.self_attn.k_proj", "P_bg404", "P_bg405",bias=True), 565 | **dense("cond_stage_model.transformer.text_model.encoder.layers.11.self_attn.v_proj", "P_bg404", "P_bg405",bias=True), 566 | **dense("cond_stage_model.transformer.text_model.encoder.layers.11.self_attn.q_proj", "P_bg404", "P_bg405",bias=True), 567 | **dense("cond_stage_model.transformer.text_model.encoder.layers.11.self_attn.out_proj", "P_bg404", "P_bg405",bias=True), 568 | **norm("cond_stage_model.transformer.text_model.encoder.layers.11.layer_norm1", "P_bg405"), 569 | **dense("cond_stage_model.transformer.text_model.encoder.layers.11.mlp.fc1", "P_bg405", "P_bg406", bias=True), 570 | **dense("cond_stage_model.transformer.text_model.encoder.layers.11.mlp.fc2", "P_bg406", "P_bg407", bias=True), 571 | **norm("cond_stage_model.transformer.text_model.encoder.layers.11.layer_norm2", "P_bg407"), 572 | 573 | **norm("cond_stage_model.transformer.text_model.final_layer_norm", "P_bg407") 574 | 575 | }) -------------------------------------------------------------------------------- /prune.py: -------------------------------------------------------------------------------- 1 | import os 2 | import torch 3 | from easygui import fileopenbox, enterbox, diropenbox 4 | 5 | def prune_it(p, keep_only_ema=False): 6 | print(f"prunin' in path: {p}") 7 | size_initial = os.path.getsize(p) 8 | nsd = dict() 9 | sd = torch.load(p, map_location="cpu") 10 | print(sd.keys()) 11 | for k in sd.keys(): 12 | if k != "optimizer_states": 13 | nsd[k] = sd[k] 14 | else: 15 | print(f"removing optimizer states for path {p}") 16 | if "global_step" in sd: 17 | print(f"This is global step {sd['global_step']}.") 18 | if keep_only_ema: 19 | sd = nsd["state_dict"].copy() 20 | # infer ema keys 21 | ema_keys = {k: "model_ema." + k[6:].replace(".", ".") for k in sd.keys() if k.startswith("model.")} 22 | new_sd = dict() 23 | 24 | for k in sd: 25 | if k in ema_keys: 26 | new_sd[k] = sd[ema_keys[k]].half() 27 | elif not k.startswith("model_ema.") or k in ["model_ema.num_updates", "model_ema.decay"]: 28 | new_sd[k] = sd[k].half() 29 | 30 | assert len(new_sd) == len(sd) - len(ema_keys) 31 | nsd["state_dict"] = new_sd 32 | else: 33 | sd = nsd['state_dict'].copy() 34 | new_sd = dict() 35 | for k in sd: 36 | new_sd[k] = sd[k].half() 37 | nsd['state_dict'] = new_sd 38 | 39 | fn = enterbox("Please enter a name for your output ckpt") 40 | if not dst: 41 | fn = os.path.dirname(ckpt) + '/' + fn + '.ckpt' 42 | else: 43 | fn = dst + '/' + fn + '.ckpt' 44 | if not fn: 45 | fn = f"{os.path.splitext(p)[0]}-pruned.ckpt" if not keep_only_ema else f"{os.path.splitext(p)[0]}-ema-pruned.ckpt" 46 | 47 | print(f"saving pruned checkpoint at: {fn}") 48 | torch.save(nsd, fn) 49 | newsize = os.path.getsize(fn) 50 | MSG = f"New ckpt size: {newsize*1e-9:.2f} GB. " + \ 51 | f"Saved {(size_initial - newsize)*1e-9:.2f} GB by removing optimizer states" 52 | if keep_only_ema: 53 | MSG += " and non-EMA weights" 54 | print(MSG) 55 | 56 | 57 | if __name__ == "__main__": 58 | ckpt = fileopenbox('select your ckpt to prune') 59 | dst = diropenbox('select your output destination folder') 60 | ckpt = ckpt.replace('\\','//') 61 | prune_it(ckpt) 62 | -------------------------------------------------------------------------------- /weight_matching.py: -------------------------------------------------------------------------------- 1 | import torch 2 | from scipy.optimize import linear_sum_assignment 3 | import time 4 | import random 5 | from merge_PermSpec_ResNet import mlp_permutation_spec 6 | from PermSpec_Base import PermutationSpec 7 | from tqdm import tqdm 8 | 9 | def get_permuted_param(ps: PermutationSpec, perm, k: str, params, except_axis=None): 10 | """Get parameter `k` from `params`, with the permutations applied.""" 11 | w = params[k] 12 | # Printing on screen will make the process very slow. Don't leave it on in final version 13 | #print(k) 14 | 15 | # I will remove the try block also. Rewrite it when needed. 16 | for axis, p in enumerate(ps.axes_to_perm[k]): 17 | # Skip the axis we're trying to permute. 18 | if axis == except_axis: 19 | continue 20 | 21 | # None indicates that there is no permutation relevant to that axis. 22 | if p is not None: 23 | w = torch.index_select(w, axis, perm[p].int()) 24 | 25 | return w 26 | 27 | def apply_permutation(ps: PermutationSpec, perm, params): 28 | """Apply a `perm` to `params`.""" 29 | return {k: get_permuted_param(ps, perm, k, params) for k in params.keys() if "model_" not in k} 30 | 31 | def weight_matching(ps: PermutationSpec, params_a, params_b, special_layers=None, device="cpu", max_iter=3, init_perm=None, usefp16=False): 32 | """Find a permutation of `params_b` to make them match `params_a`.""" 33 | # tqdm layer will start from 1. 34 | 35 | perm_sizes = {p: params_a[axes[0][0]].shape[axes[0][1]] for p, axes in ps.perm_to_axes.items() if axes[0][0] in params_b} 36 | #print(perm_sizes) 37 | perm = dict() 38 | perm = {p: torch.arange(n) for p, n in perm_sizes.items()} if init_perm is None else init_perm 39 | special_layers = special_layers if special_layers and len(special_layers) > 0 else sorted(list(perm.keys())) 40 | #print(special_layers) 41 | sum = 0 42 | number = 0 43 | 44 | if usefp16: 45 | for _ in tqdm(range(max_iter), desc="weight_matching in fp16", position=1): 46 | progress = False 47 | random.shuffle(special_layers) 48 | for p_ix in tqdm(special_layers, desc="weight_matching for special_layers", position=2): 49 | p = p_ix 50 | if p in special_layers: 51 | n = perm_sizes[p] 52 | A = torch.zeros((n, n), dtype=torch.float16).to(device) 53 | for wk, axis in ps.perm_to_axes[p]: 54 | w_a = params_a[wk] 55 | w_b = get_permuted_param(ps, perm, wk, params_b, except_axis=axis) 56 | w_a = torch.moveaxis(w_a, axis, 0).reshape((n, -1)).to(device) 57 | w_b = torch.moveaxis(w_b, axis, 0).reshape((n, -1)).T.to(device) 58 | A += torch.matmul(w_a.half(), w_b.half()) 59 | 60 | A = A.cpu() 61 | ri, ci = linear_sum_assignment(A.detach().numpy(), maximize=True) 62 | 63 | assert (torch.tensor(ri) == torch.arange(len(ri))).all() 64 | 65 | oldL = torch.vdot(torch.flatten(A).float(), torch.flatten(torch.eye(n)[perm[p].long()]).float()).half() 66 | newL = torch.vdot(torch.flatten(A).float(), torch.flatten(torch.eye(n)[ci, :]).float()).half() 67 | 68 | if newL - oldL != 0: 69 | sum += abs((newL-oldL).item()) 70 | number += 1 71 | #print(f"{p}: {newL - oldL}") 72 | 73 | progress = progress or newL > oldL + 1e-12 74 | 75 | perm[p] = torch.Tensor(ci) 76 | 77 | if not progress: 78 | break 79 | 80 | if number > 0: 81 | average = sum / number 82 | else: 83 | average = 0 84 | return (perm, average) 85 | 86 | else: 87 | for _ in tqdm(range(max_iter), desc="weight_matching in fp32", position=1): 88 | progress = False 89 | random.shuffle(special_layers) 90 | for p_ix in tqdm(special_layers, desc="weight_matching for special_layers", position=2): 91 | p = p_ix 92 | if p in special_layers: 93 | n = perm_sizes[p] 94 | A = torch.zeros((n, n), dtype=torch.float32).to(device="cpu") 95 | for wk, axis in ps.perm_to_axes[p]: 96 | w_a = params_a[wk] 97 | w_b = get_permuted_param(ps, perm, wk, params_b, except_axis=axis) 98 | w_a = torch.moveaxis(w_a, axis, 0).reshape((n, -1)).to(device) 99 | w_b = torch.moveaxis(w_b, axis, 0).reshape((n, -1)).T.to(device) 100 | A += torch.matmul(w_a.float(), w_b.float()).cpu() 101 | 102 | ri, ci = linear_sum_assignment(A.detach().numpy(), maximize=True) 103 | 104 | assert (torch.tensor(ri) == torch.arange(len(ri))).all() 105 | 106 | oldL = torch.vdot(torch.flatten(A), torch.flatten(torch.eye(n)[perm[p].long()]).float()) 107 | newL = torch.vdot(torch.flatten(A), torch.flatten(torch.eye(n)[ci, :]).float()) 108 | 109 | if newL - oldL != 0: 110 | sum += abs((newL-oldL).item()) 111 | number += 1 112 | #print(f"{p}: {newL - oldL}") 113 | 114 | progress = progress or newL > oldL + 1e-12 115 | 116 | perm[p] = torch.Tensor(ci) 117 | 118 | if not progress: 119 | break 120 | 121 | if number > 0: 122 | average = sum / number 123 | else: 124 | average = 0 125 | return (perm, average) 126 | 127 | 128 | def test_weight_matching(): 129 | """If we just have a single hidden layer then it should converge after just one step.""" 130 | ps = mlp_permutation_spec(num_hidden_layers=3) 131 | #print(ps.axes_to_perm) 132 | rng = torch.Generator() 133 | rng.manual_seed(13) 134 | num_hidden = 10 135 | shapes = { 136 | "layer0.weight": (2, num_hidden), 137 | "layer0.bias": (num_hidden, ), 138 | "layer1.weight": (num_hidden, 3), 139 | "layer1.bias": (3, ) 140 | } 141 | 142 | rngmix = lambda rng, x: random.fold_in(rng, hash(x)) 143 | 144 | params_a = {k: random.normal(rngmix(rng, f"a-{k}"), shape) for k, shape in shapes.items()} 145 | params_b = {k: random.normal(rngmix(rng, f"b-{k}"), shape) for k, shape in shapes.items()} 146 | perm = weight_matching(rng, ps, params_a, params_b) 147 | print(perm) 148 | 149 | if __name__ == "__main__": 150 | test_weight_matching() 151 | --------------------------------------------------------------------------------