invoke-ai/InvokeAI · error · ValueError
The high-noise and low-noise models must use the same Wan va
Error message
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)}. What it means
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.
Source
Thrown at invokeai/app/invocations/wan_model_loader.py:185
"The same model is wired to both 'Transformer' and 'Transformer (Low Noise)'. "
"A Wan A14B expert pair needs two different single-file models."
)
low_config = context.models.get_config(self.transformer_low_noise_model)
self._validate_main_config(low_config, "Transformer (Low Noise)")
# The two experts don't have to share a format — both single-file
# loaders produce a plain WanTransformer3DModel, so a GGUF high-noise
# expert pairs fine with a safetensors low-noise one.
if low_config.format not in _SINGLE_FILE_FORMATS:
raise ValueError(
f"'Transformer (Low Noise)' must be a single-file Wan model (GGUF or checkpoint). "
f"'{low_config.name}' is in {low_config.format.value} format."
)
low_id = self.transformer_low_noise_model.model_copy(update={"submodel_type": SubModelType.Transformer})
low_expert = getattr(low_config, "expert", "none")
if getattr(low_config, "variant", None) != main_variant:
low_variant = getattr(low_config, "variant", None)
raise ValueError(
"The high-noise and low-noise models must use the same Wan variant, but "
f"'{main_config.name}' is {main_variant.value} and '{low_config.name}' is "
f"{getattr(low_variant, 'value', low_variant)}."
)
# The expert tag is a filename heuristic, so 'none' (untagged) is common on
# community finetunes. The wiring itself is explicit user intent — main slot
# = high, low-noise slot = low — so an untagged file is taken at its wired
# position (or inferred as the complement of its tagged partner). Only a
# genuine conflict, both files claiming the *same* expert, is an error.
if primary_expert == low_expert != "none":
raise ValueError(
f"Both selected models are tagged as the {primary_expert}-noise expert "
f"('{main_config.name}' and '{low_config.name}'). A Wan A14B expert pair "
"must contain one high and one low expert."
)
if primary_expert == "none" and low_expert == "none":
context.logger.warning(View on GitHub (pinned to 0b6a024f2f)
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.
Example fix
// before main_config.variant # WanVariantType.T2V_A14B low_config.variant # WanVariantType.T2V_5B -> ValueError // after: both experts from the same variant transformer = wan22_t2v_a14b_high transformer_low_noise_model = wan22_t2v_a14b_low # same variant
Defensive patterns
Strategy: validation
Validate before calling
main_config = context.models.get_config(model)
low_config = context.models.get_config(transformer_low_noise_model)
if getattr(low_config, "variant", None) != getattr(main_config, "variant", None):
raise ValueError("High- and low-noise experts must share the same Wan variant") Type guard
def variants_match(main_config, low_config) -> bool:
return getattr(low_config, "variant", None) == getattr(main_config, "variant", None) Try / catch
try:
out = wan_model_loader.invoke(context)
except ValueError as e:
if "same Wan variant" in str(e):
select_matching_variant_low_noise_model()
else:
raise Prevention
- 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.
When it happens
Trigger: 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.
Common situations: 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.
Related errors
- The same model is wired to both 'Transformer' and 'Transform
- 'Transformer (Low Noise)' must be a single-file Wan model (G
- Both selected models are tagged as the {primary_expert}-nois
- The Component Source VAE is incompatible with the selected t
- No VAE source provided. Single-file / GGUF transformers requ
AI-assisted analysis of invoke-ai/InvokeAI@0b6a024f2f (2026-08-29).
Data as JSON: /api/errors/3c2ade214ee8f45a.
Report an issue: GitHub.