{"record":{"id":"7b9b45c71448419e","repo":"microsoft/VibeVoice","slug":"unsupported-mixer-layer-mixer-layer","errorCode":null,"errorMessage":"Unsupported mixer layer: {mixer_layer}","messagePattern":"Unsupported mixer layer: (.+?)","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"vibevoice/modular/modular_vibevoice_tokenizer.py","lineNumber":661,"sourceCode":"\n        if mixer_layer == 'conv':\n            self.mixer = Convlayer(dim, dim, groups=kwargs.get('groups', 1),\n                                kernel_size=kernel_size, \n                                pad_mode=kwargs.get('pad_mode', 'reflect'), \n                                norm=kwargs.get('norm', 'none'), \n                                causal=kwargs.get('causal', True), \n                                bias=kwargs.get('bias', True),\n                                )\n        elif mixer_layer == 'depthwise_conv':\n            self.mixer = Convlayer(dim, dim, groups=dim,\n                                kernel_size=kernel_size, \n                                pad_mode=kwargs.get('pad_mode', 'reflect'), \n                                norm=kwargs.get('norm', 'none'), \n                                causal=kwargs.get('causal', True), \n                                bias=kwargs.get('bias', True),\n                                )\n        else:\n            raise ValueError(f\"Unsupported mixer layer: {mixer_layer}\")\n        \n        self.ffn = FFN(\n            dim, \n            kwargs.get('ffn_expansion', 4) * dim, \n            bias=kwargs.get('bias', False),\n        )\n        self.drop_path = nn.Identity() if drop_path <= 0. else nn.modules.DropPath(drop_path)\n\n        if layer_scale_init_value > 0:\n            self.gamma = nn.Parameter(layer_scale_init_value * torch.ones((dim)), requires_grad=True)\n            self.ffn_gamma = nn.Parameter(layer_scale_init_value * torch.ones((dim)), requires_grad=True)\n        else:\n            self.gamma = None\n            self.ffn_gamma = None\n\n    def forward(self, x):\n        # mixer\n        residual = x","sourceCodeStart":643,"sourceCodeEnd":679,"githubUrl":"https://github.com/microsoft/VibeVoice/blob/94da20d98b2fa7688e9cbfaf7692ddb4954f7600/vibevoice/modular/modular_vibevoice_tokenizer.py#L643-L679","documentation":"The SEANet-style attention block (modular_vibevoice_tokenizer.py:661) supports only specific mixer layers — the branches above handle e.g. 'conv'/'attention' and 'depthwise_conv' — and any other mixer_layer string raises ValueError. The default from config is 'conv' (getattr(config, 'mixer_layer', 'conv')).","triggerScenarios":"Building the tokenizer with config.mixer_layer set to an unsupported value such as 'mlp', 'gru', 'fft', or a typo like 'depthwiseconv'.","commonSituations":"Editing tokenizer config JSON to try new architectures; configs ported from other audio codebases with different mixer naming; missing value falling through to a custom string.","solutions":["Set mixer_layer to one of the implemented values ('conv' or 'depthwise_conv'; check the branch chain at that site).","Read the config from a known-good checkpoint instead of authoring it by hand.","If a new mixer is required, add an elif branch constructing your mixer before the raise.","Print/validate config.mixer_layer against the supported set at config-load time."],"exampleFix":"# before\ncfg[\"mixer_layer\"] = \"depthwiseconv\"  # typo -> ValueError\n\n# after\ncfg[\"mixer_layer\"] = \"depthwise_conv\"  # exact supported spelling","handlingStrategy":"validation","validationCode":"SUPPORTED_MIXERS = {\"conv\", \"depthwise_conv\"}\nmixer = getattr(config, \"mixer_layer\", \"conv\")\nassert mixer in SUPPORTED_MIXERS, f\"mixer_layer must be one of {SUPPORTED_MIXERS}, got {mixer!r}\"","typeGuard":"def is_supported_mixer(m: object) -> bool:\n    return m in (\"conv\", \"depthwise_conv\")","tryCatchPattern":null,"preventionTips":["Use exact spellings from the repo's configs","Validate mixer_layer before building tokenizers","Prefer checkpoint-shipped configs over hand-authored ones"],"tags":["tokenizer","mixer-layer","configuration","valueerror"],"backgroundTag":null,"analyzedSha":"94da20d98b2fa7688e9cbfaf7692ddb4954f7600","analyzedAt":"2026-08-15T04:12:07.418Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}