{"record":{"id":"3c2ade214ee8f45a","repo":"invoke-ai/InvokeAI","slug":"the-high-noise-and-low-noise-models-must-use-the-s","errorCode":null,"errorMessage":"The high-noise and low-noise models must use the same Wan variant, but '{main_config.name}' is {main_variant.value} and '{low_config.name}' is {getattr(low_variant, 'value', low_variant)}.","messagePattern":"The high-noise and low-noise models must use the same Wan variant, but '(.+?)' is (.+?) and '(.+?)' is (.+?)\\.","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"invokeai/app/invocations/wan_model_loader.py","lineNumber":185,"sourceCode":"                        \"The same model is wired to both 'Transformer' and 'Transformer (Low Noise)'. \"\n                        \"A Wan A14B expert pair needs two different single-file models.\"\n                    )\n                low_config = context.models.get_config(self.transformer_low_noise_model)\n                self._validate_main_config(low_config, \"Transformer (Low Noise)\")\n                # The two experts don't have to share a format — both single-file\n                # loaders produce a plain WanTransformer3DModel, so a GGUF high-noise\n                # expert pairs fine with a safetensors low-noise one.\n                if low_config.format not in _SINGLE_FILE_FORMATS:\n                    raise ValueError(\n                        f\"'Transformer (Low Noise)' must be a single-file Wan model (GGUF or checkpoint). \"\n                        f\"'{low_config.name}' is in {low_config.format.value} format.\"\n                    )\n                low_id = self.transformer_low_noise_model.model_copy(update={\"submodel_type\": SubModelType.Transformer})\n                low_expert = getattr(low_config, \"expert\", \"none\")\n\n                if getattr(low_config, \"variant\", None) != main_variant:\n                    low_variant = getattr(low_config, \"variant\", None)\n                    raise ValueError(\n                        \"The high-noise and low-noise models must use the same Wan variant, but \"\n                        f\"'{main_config.name}' is {main_variant.value} and '{low_config.name}' is \"\n                        f\"{getattr(low_variant, 'value', low_variant)}.\"\n                    )\n\n                # The expert tag is a filename heuristic, so 'none' (untagged) is common on\n                # community finetunes. The wiring itself is explicit user intent — main slot\n                # = high, low-noise slot = low — so an untagged file is taken at its wired\n                # position (or inferred as the complement of its tagged partner). Only a\n                # genuine conflict, both files claiming the *same* expert, is an error.\n                if primary_expert == low_expert != \"none\":\n                    raise ValueError(\n                        f\"Both selected models are tagged as the {primary_expert}-noise expert \"\n                        f\"('{main_config.name}' and '{low_config.name}'). A Wan A14B expert pair \"\n                        \"must contain one high and one low expert.\"\n                    )\n                if primary_expert == \"none\" and low_expert == \"none\":\n                    context.logger.warning(","sourceCodeStart":167,"sourceCodeEnd":203,"githubUrl":"https://github.com/invoke-ai/InvokeAI/blob/0b6a024f2ff6a86bfb953dcdb9cc504ef7397a06/invokeai/app/invocations/wan_model_loader.py#L167-L203","documentation":"WanModelLoaderInvocation requires that both expert models share the same Wan variant. When the low-noise model's config 'variant' attribute differs from the main (high-noise) model's variant, invoke raises this ValueError naming both models and their variants. Mixing e.g. a 14B high-noise expert with a 5B low-noise model would produce incompatible transformers.","triggerScenarios":"Wiring 'Transformer' and 'Transformer (Low Noise)' with models whose variant metadata differs (e.g., wan2.2-t2v-a14b vs wan2.2-t2v-5b, or fp16 vs other variant tags mismatching); a model scanned/detected with the wrong variant in the model manager.","commonSituations":"Mixing Wan 2.2 5B and 14B files in one dual-expert setup; installing community finetunes whose variant metadata was mis-detected; combining models from Wan 2.1 and 2.2 releases.","solutions":["Pick a low-noise expert whose variant matches the main model's variant exactly (same A14B/5B variant).","Fix the mis-detected variant: rescan/reinstall the model so its recorded variant metadata is correct.","If the main model is really TI2V-5B, remember it is single-expert — don't wire a low-noise model at all."],"exampleFix":"// before\nmain_config.variant   # WanVariantType.T2V_A14B\nlow_config.variant    # WanVariantType.T2V_5B -> ValueError\n// after: both experts from the same variant\ntransformer = wan22_t2v_a14b_high\ntransformer_low_noise_model = wan22_t2v_a14b_low  # same variant","handlingStrategy":"validation","validationCode":"main_config = context.models.get_config(model)\nlow_config = context.models.get_config(transformer_low_noise_model)\nif getattr(low_config, \"variant\", None) != getattr(main_config, \"variant\", None):\n    raise ValueError(\"High- and low-noise experts must share the same Wan variant\")","typeGuard":"def variants_match(main_config, low_config) -> bool:\n    return getattr(low_config, \"variant\", None) == getattr(main_config, \"variant\", None)","tryCatchPattern":"try:\n    out = wan_model_loader.invoke(context)\nexcept ValueError as e:\n    if \"same Wan variant\" in str(e):\n        select_matching_variant_low_noise_model()\n    else:\n        raise","preventionTips":["Take both experts from the same release directory (e.g., wan2.2-t2v-a14b).","Never mix 5B and 14B Wan files in one dual-expert graph.","If a model's variant was mis-detected, reinstall/rescan it before pairing."],"tags":["invokeai","wan","model-loader","variant-mismatch","a14b"],"backgroundTag":"model-variant-mismatch","analyzedSha":"0b6a024f2ff6a86bfb953dcdb9cc504ef7397a06","analyzedAt":"2026-08-29T04:46:49.967Z","schemaVersion":2},"datasetVersion":"2026-08-29T07:17:48.351Z"}