{"record":{"id":"73c9943b9eb2648e","repo":"AUTOMATIC1111/stable-diffusion-webui","slug":"key-weight-init-is-not-defined-as-initialization","errorCode":null,"errorMessage":"Key {weight_init} is not defined as initialization!","messagePattern":"Key (.+?) is not defined as initialization!","errorType":"validation","errorClass":"KeyError","httpStatus":null,"severity":"error","filePath":"modules/hypernetworks/hypernetwork.py","lineNumber":97,"sourceCode":"                if type(layer) == torch.nn.Linear or type(layer) == torch.nn.LayerNorm:\r\n                    w, b = layer.weight.data, layer.bias.data\r\n                    if weight_init == \"Normal\" or type(layer) == torch.nn.LayerNorm:\r\n                        normal_(w, mean=0.0, std=0.01)\r\n                        normal_(b, mean=0.0, std=0)\r\n                    elif weight_init == 'XavierUniform':\r\n                        xavier_uniform_(w)\r\n                        zeros_(b)\r\n                    elif weight_init == 'XavierNormal':\r\n                        xavier_normal_(w)\r\n                        zeros_(b)\r\n                    elif weight_init == 'KaimingUniform':\r\n                        kaiming_uniform_(w, nonlinearity='leaky_relu' if 'leakyrelu' == activation_func else 'relu')\r\n                        zeros_(b)\r\n                    elif weight_init == 'KaimingNormal':\r\n                        kaiming_normal_(w, nonlinearity='leaky_relu' if 'leakyrelu' == activation_func else 'relu')\r\n                        zeros_(b)\r\n                    else:\r\n                        raise KeyError(f\"Key {weight_init} is not defined as initialization!\")\r\n        devices.torch_npu_set_device()\r\n        self.to(devices.device)\r\n\r\n    def fix_old_state_dict(self, state_dict):\r\n        changes = {\r\n            'linear1.bias': 'linear.0.bias',\r\n            'linear1.weight': 'linear.0.weight',\r\n            'linear2.bias': 'linear.1.bias',\r\n            'linear2.weight': 'linear.1.weight',\r\n        }\r\n\r\n        for fr, to in changes.items():\r\n            x = state_dict.get(fr, None)\r\n            if x is None:\r\n                continue\r\n\r\n            del state_dict[fr]\r\n            state_dict[to] = x\r","sourceCodeStart":79,"sourceCodeEnd":115,"githubUrl":"https://github.com/AUTOMATIC1111/stable-diffusion-webui/blob/82a973c04367123ae98bd9abdf80d9eda9b910e2/modules/hypernetworks/hypernetwork.py#L79-L115","documentation":"During HypernetworkModule weight initialization, weight_init is matched against the literals 'Zero', 'XavierUniform', 'XavierNormal', 'KaimingUniform', 'KaimingNormal'; any other value falls through to raise KeyError. It indicates an unrecognized weight initialization scheme string in the hypernetwork's training parameters.","triggerScenarios":"Creating/training a hypernetwork whose weight_init parameter is not one of the five supported names — e.g. 'orthogonal', 'xavier_uniform' (underscored), or a mis-typed 'Kaiming Unifom'.","commonSituations":"API/script calls that pass a PyTorch-style initializer name instead of the webui's label; hypernetworks saved by newer forks that added initializer aliases; case/copy-paste mistakes from the UI dropdown.","solutions":["Use exactly one of: 'Zero', 'XavierUniform', 'XavierNormal', 'KaimingUniform', 'KaimingNormal'.","If you need another initializer, select the closest supported one and re-initialize manually after module creation.","Audit any template/state used to build the hypernetwork for a stray weight_init value before re-running."],"exampleFix":"# before\nweight_init = 'xavier_uniform'  # KeyError\n\n# after\nweight_init = 'XavierUniform'   # exact supported literal","handlingStrategy":"validation","validationCode":"SUPPORTED_INITS = {'Zero', 'XavierUniform', 'XavierNormal', 'KaimingUniform', 'KaimingNormal'}\n\nif weight_init not in SUPPORTED_INITS:\n    raise ValueError(f'weight_init must be one of {sorted(SUPPORTED_INITS)}, got {weight_init!r}')","typeGuard":"def is_supported_weight_init(name: str) -> bool:\n    return name in {'Zero', 'XavierUniform', 'XavierNormal', 'KaimingUniform', 'KaimingNormal'}","tryCatchPattern":"try:\n    module = HypernetworkModule(..., weight_init=weight_init)\nexcept KeyError as e:\n    if 'not defined as initialization' in str(e):\n        weight_init = 'KaimingUniform'  # safe default; log the substitution\n        module = HypernetworkModule(..., weight_init=weight_init)\n    else:\n        raise","preventionTips":["Restrict the input to the five literal names at the API/UI boundary.","Beware underscored PyTorch names (xavier_uniform) — the webui uses CamelCase labels."],"tags":["hypernetwork","weight-init","validation","stable-diffusion"],"backgroundTag":null,"analyzedSha":"82a973c04367123ae98bd9abdf80d9eda9b910e2","analyzedAt":"2026-08-14T16:46:43.225Z","schemaVersion":2},"datasetVersion":"2026-08-15T17:31:12.345Z"}